「ADX2 LE」Unity プラグイン クイック導入ガイド

60
1 Unity Proプラグイン クイック導入ガイド CRI・ミドルウェア 一條 貴彰 2013/08/26 Ver 1.2

description

Unity ProにADX2 LEのプラグインを導入する際の手順とチュートリアルです。 8/26追記 「3Dポジショニング」「標準サウンドシステムのオフ」 6月追記 「HCA-MXの利用」

Transcript of 「ADX2 LE」Unity プラグイン クイック導入ガイド

Page 1: 「ADX2 LE」Unity プラグイン クイック導入ガイド

1

Unity Proプラグイン

クイック導入ガイド

CRI・ミドルウェア

一條貴彰

2013/08/26

Ver

1.2

Page 2: 「ADX2 LE」Unity プラグイン クイック導入ガイド

2

「ADX2 LE」とは

• 個人のインディーゲーム開発、ゲームジャム– 無償で利用可能(有料アプリに使ってもOK)– アプリ販売の売上1,000万円以下まで

学生、専門学校生– 授業での教材利用は無償、作品配布もOK

• 法人– 前年度年商が1,000万円以下なら無償– それ以上は「ADX2」の評価目的のみで試用可

公式サイトhttp://www.adx2le.com/からSDKダウンロード

Page 3: 「ADX2 LE」Unity プラグイン クイック導入ガイド

3

「ADX2 LE」導入メリット

• 音声圧縮&再生負荷を軽減– mp3/Ogg同等クオリティながら、多重再生時に重くならない

独自コーデック。(wavを使わなくて済む)– イントロ付きループBGMが使える。(任意ポイントでのループ)

• ツールによるサウンド演出設計– 大量音声のハンドリングがラクに。– サウンド担当がコードを触らずに音量の調節ができる。– サウンド演出の開発が簡単に。

• ゲームでよくある再生制御は実装済み。

サウンド周りのコーディング量が大幅に減ります。

音質アップとアプリ容量削減が両立できます。

Page 4: 「ADX2 LE」Unity プラグイン クイック導入ガイド

4

「ADX2 LE」で設定できるサウンド制御

ボリューム制御‒

音ごとのボリューム制御‒

曲・効果音・ボイスをカテゴリ分 けして、一括ボリューム管理

再生制御‒

再生優先順位‒

効果音の後発優先、先発優先‒

同時発音数の制御‒

ランダム再生

DSP‒

ピッチシフト‒

リバーブやエコーなどエフェクト– パンニングや距離減衰など3D効果

• 曲の再生制御‒

曲と環境音の同時再生(2曲の同時ループ)

曲の途中ループ– 曲の途中停止・途中から再生

フェードイン、フェードアウト‒

フェードの長さ調整‒

クロスフェード‒

カテゴリをトリガにした自動音量ダッキング「REACT」

これは一例でス。便利な機能

はまだまだありまス!

Page 5: 「ADX2 LE」Unity プラグイン クイック導入ガイド

5

「ADX2 LE」ができないこと

• プラグイン利用はUnity Proが必要Native codeで書かれたライブラリから関数を呼び出す機能がUnity Pro Onlyのため。iOS/Android側はBasicで動作可能(法人はライセンス制限により不可)。

“デスクトッププラットフォームでは、プラグインはProのみの機能です。セキュリティ上 の理由から、プラグインはwebplayersで使うことはできません。(翻訳)”

– Unity公式の「Plugins

(Pro/Mobile-Only Feature)」より http://docs.unity3d.com/Documentation/Manual/Plugins.html

• webplayer出力に非対応(同上参照)

• Unity Proを持っていない場合の活用方法があります。「ADX2 LE」

は、Unity Proをお持ちで無い方でもwav出力機能を使って”効果音の作成ツール”として活用いただけます。資料:自力でゲームのSEを生成する方法

by 「ADX2 LE」http://www.slideshare.net/takaakiichijo/adx2-le-21311331

Page 6: 「ADX2 LE」Unity プラグイン クイック導入ガイド

6

スマートフォンのサウンド事情

• iOS/Androidデフォルトで使えるサウンドファイル

mp3 / Ogg• 圧縮率が良い

• 再生処理が重いため、たくさんは同時に鳴らせない

• 一般的なコーデックなので、データが抜かれやすい

– wave / CoreAudio

IM4(ADPCM)• 再生が軽い

• ファイルが大きいため、メモリが不足

アプリ容量も肥大化する。

Page 7: 「ADX2 LE」Unity プラグイン クイック導入ガイド

7

現状の手法

• アプリでよくある組み合わせ– BGM:mp3

• 処理が重いので1本再生のみ

• iOSならハードウェアで処理してくれるが、Androidは無い場合も

– 効果音とボイス:wave またはCoreAudio

IM4(ADPCM)• サンプリングレート(≒品質)を落として少しでもサイズを小さくする

このやり方は限界が…‒

Wavは無理に小さくすると、音質が酷いことに

– しかし、ボイスデータは今後増える一方。

Page 8: 「ADX2 LE」Unity プラグイン クイック導入ガイド

8

_人人人人人人人_ > <

> <

> < ‾Y^Y^Y^Y^Y^Y‾

困った!

( ˘⊖˘) 。o(圧縮できて、かつ再生が軽くならんもんか)

| CRI | ┗(☋` )┓三

( ◠‿◠

)☛「HCA-MX」

Page 9: 「ADX2 LE」Unity プラグイン クイック導入ガイド

9

ADX2 LEのHCA / HCA-MX

• ファイルサイズを軽量化– 「HCA」コーデックによる圧縮

• 音質を保ちつつ、1/16に圧縮。 (サンプリングレート32kHzの場合)

• 再生負荷を軽量化– 「HCA-MX」によるCPU負荷軽減

• 音質はHCAと同一、エフェクトの利用に制限あり

– iPhone

4Sで16音同時再生→CPU負荷10%以下

• 独自コーデックによる音声ファイルの保護効果– PC上のサウンドプレイヤーでは再生できません。– 「ADX2 LE」で出力したデータは「ADX2 LE」で聞けてしまいますが。。。

Page 10: 「ADX2 LE」Unity プラグイン クイック導入ガイド

10

「ADX2 LE」セット内容

• サウンドツール「CRI Atom Craft」– ゲーム内での音の鳴り方を管理・設定するツール

– 各種設定の結果をwavファイルとして出力することも可能

• Unityプラグイン•

サウンド演出の実装がラクに

インタラクティブな音作り

• サウンド圧縮コーデック「HCA」

• 動的なサウンドエフェクト適用– ピッチチェンジ、リバーブなど各種エフェクト

– 複数音をタイムライン上に配置して再生

Page 11: 「ADX2 LE」Unity プラグイン クイック導入ガイド

11

Unityプラグイン利用イメージ

1.

「CRI Atom Craft」上でファイル登録、圧縮や音の鳴り方を設定

2.

CRI形式のパックファイルにビルドしてUnityにインポート

3.

Unity上でオブジェクト貼り付けor スクリプトから再生

4.

Unityエディタ上でゲームを動作させながら、音の鳴り方をツールで調整

5.

調整済みデータのパックファイルを再びインポートして、完成!

Page 12: 「ADX2 LE」Unity プラグイン クイック導入ガイド

12

ADX2 LEのセットアップ

Page 13: 「ADX2 LE」Unity プラグイン クイック導入ガイド

13

「ADX2 LE」のダウンロード

http://www.adx2le.com/

Page 14: 「ADX2 LE」Unity プラグイン クイック導入ガイド

14

「ADX2 LE」のインストール

• インストールと言いつつ手動– ダウンロードしたzipファイルを展開。

– criフォルダをC://直下に置く。

(パス名に日本語が含まれていると、正しく動作しない場合があります。)

CRI Atom Craft を起動

Page 15: 「ADX2 LE」Unity プラグイン クイック導入ガイド

15

プロジェクトとは

Atom Craft管理ファイルの単位‒

1ゲーム(アプリ)に対して1プロジェクト作成

プロジェクトの中身‒

音(キュー)の設定情報

音素材(マテリアル)のリスト

ツールの全体的な設定

UnityやIDE等の「プロジェクト」と同じ

Page 16: 「ADX2 LE」Unity プラグイン クイック導入ガイド

16

CRI Atom Craft を起動

Page 17: 「ADX2 LE」Unity プラグイン クイック導入ガイド

17

音素材を時系列に並べる

ボリュームやピッチの

変化などグラフで加工

エフェクトの設定

キュー(音の単位)

キューの中身CRI Atom Craftのツール構成

Page 18: 「ADX2 LE」Unity プラグイン クイック導入ガイド

18

プロジェクト新規作成

Page 19: 「ADX2 LE」Unity プラグイン クイック導入ガイド

19

プロジェクト名をつける

「ディレクトリを新規で作りますか?」という表示が出たら

OKして作ってください。

Page 20: 「ADX2 LE」Unity プラグイン クイック導入ガイド

20

プロジェクトの全体設定

• ADX2 LE内部のコーデックに「HCA」を指定します。•「HCA」はエフェクトに強く、高音質なコーデックです。

•「HCA-MX」は同時再生の負荷が低いコーデックです。

(ピッチ変更など音個別のエフェクトは使えません。)

•「ADX」は再生負荷が低いコーデックです。

Page 21: 「ADX2 LE」Unity プラグイン クイック導入ガイド

21

プロジェクトを保存

Page 22: 「ADX2 LE」Unity プラグイン クイック導入ガイド

22

今回使うwave素材のダウンロード

CRI Atom Craft のメニューから、 素材の置き場所を開いてダウン

ロードできます。

Zipファイルをダウンロードしたら、

任意の場所に解凍しておいてくだ さい。

Page 23: 「ADX2 LE」Unity プラグイン クイック導入ガイド

23

波形をキューシートへドロップ

PCのセキュリティレベルの関係でデスクトップからのD&Dがうまくいかない場合は適宜変更して下さい。

成功するとCueSheet_0の下にキューが複数できます。

ダウンロードしたchiptuneを解凍して、

Atom Craftに登録。

チュートリアルですが、本番用のサウンド素材を

いきなり入れていただいてもOKです。aiff/waveが使えます。

Page 24: 「ADX2 LE」Unity プラグイン クイック導入ガイド

24

「キュー」とは

• Unityで呼び出す音の単位– 複数の波形、再生タイミング情報

– ピッチやボリューム、フィルタのパラメータ情報

– パンニングやランダマイズの設定情報

オレンジ色の玉が 「キュー」

この名前をUnity上 で呼び出して鳴らす。

キューの中身

Page 25: 「ADX2 LE」Unity プラグイン クイック導入ガイド

25

キューのプレビュー(再生)

またはF5キーで再生、F6キーで停止

①キューを選択

②再生ボタン

Page 26: 「ADX2 LE」Unity プラグイン クイック導入ガイド

26

警告が出たら

セキュリティ関連のダイアログが出た時は

「ブロックを解除する」を選択してください。

プレビューでアプリケーション間の通信処理を行うため、ブロック を解除する必要があります。

Page 27: 「ADX2 LE」Unity プラグイン クイック導入ガイド

27

データをパックファイルにビルド

「CueSheet_0」を選択して、

「Atomキューシートバイナリ のビルド」をクリック

ウィンドウが出たら、

「インゲームプレビュー用バ イナリ出力」と

「Unity情報出力」のチェック を入れて

「ビルド」をクリック

Page 28: 「ADX2 LE」Unity プラグイン クイック導入ガイド

28

出力したパックファイルの確認

「CueSheet_0」の上で右クリック

「Atomキューシートバイナリをエ クスプローラで開く」をクリック

Page 29: 「ADX2 LE」Unity プラグイン クイック導入ガイド

29

出力されたデータの確認

圧縮されたサウンドデータの パックファイルが出力されます。

あとで、Unityプラグイン側か らAssetsフォルダにインポート します。

このファイルを作った段階です。

Page 30: 「ADX2 LE」Unity プラグイン クイック導入ガイド

30

Unityプラグイン導入

Page 31: 「ADX2 LE」Unity プラグイン クイック導入ガイド

31

プラグインをインストールする

Unityを起動して、Assets右クリックから Import Package→Custom Package

Unityプラグインのパッケージは cri/unity/pluginにあります。

Page 32: 「ADX2 LE」Unity プラグイン クイック導入ガイド

32

プラグイン導入完了

Assets下に3つのフォルダがインポートされます

• メニューに「CRI」が追加されます

Page 33: 「ADX2 LE」Unity プラグイン クイック導入ガイド

33

標準サウンドシステムをオフにする

Unity 4.2以降の場合は標準サウンドオフのオプションがあります。

Project SettingsのAudioインスペクタでDisable Audioにチェックを入れます。

必須ではありませんが、推奨設定です。

Page 34: 「ADX2 LE」Unity プラグイン クイック導入ガイド

34

CRI Atom Windowを開く

• Select Assets Rootをクリック

• Update Assets of CRI Atom Craftをクリック– 以後、バイナリを出力したら都度ここでインポートする。

パックファイルを指定してインポート

先ほど出力したフォルダ群 の中のAssetsフォルダを選択

さきほどAtom Craftから出力したパックファイルを

ADX2 LEプラグインに読み込ませます。

Page 35: 「ADX2 LE」Unity プラグイン クイック導入ガイド

35

インポート完了

ツールから出力したバイナリの キュー一覧が表示されます。

StreamingAssetsフォルダが

作成されます。

他にもACFファイル(プロジェクト名.acf)とCriAtomProjInfo_Unity.csが追加されています。

Page 36: 「ADX2 LE」Unity プラグイン クイック導入ガイド

36

音の鳴らし方①

オブジェクトに貼り付け

Page 37: 「ADX2 LE」Unity プラグイン クイック導入ガイド

37

Unityで音を再生する準備

Initializerを追加‒

ADX2の初期化処理を行うためのオブジェクト

Criate

CRIWARE Library Initializerをクリック

CriWareLibraryInitializerオブジェクトが出来ます。

ランタイムライブラリの設定で発音数、インゲームプレビュー設定、サーバー周期(FPS)など設定できます。

Page 38: 「ADX2 LE」Unity プラグイン クイック導入ガイド

38

とりあえず音が鳴るオブジェクトを設置

CriWareLibraryInitializerの子になら ないように、ヒエラルキーの空白を クリックしてから

キュー一覧から「orchehit」を選び、

「Crate Game Object」をクリック

このように2つオブジェクトが出来ます。

Page 39: 「ADX2 LE」Unity プラグイン クイック導入ガイド

39

音を鳴らす!

orchehitオブジェクトのCri Atom Sourceスクリプトで「Play On Start」にチェックを入れます。

Unityのプレビューを押すと、音が鳴ります。

Page 40: 「ADX2 LE」Unity プラグイン クイック導入ガイド

40

特定オブジェクトに音を貼り付け

ヒエラルキーから貼り付けたい

オブジェクトを選んで、

「Add Component」をクリック。

同じように「Play On Start」に

チェックを入れてプレビューすると

再生されます。

Page 41: 「ADX2 LE」Unity プラグイン クイック導入ガイド

41

音の鳴らし方②

スクリプトで再生&同時発音数制御

Page 42: 「ADX2 LE」Unity プラグイン クイック導入ガイド

42

キーを押すと音が鳴るスクリプト

public class PlaySoundWithKey

: MonoBehaviour

{

private CriAtomSource

atomSource;

void Start () {//CriAtomSourceコンポーネントを取得atomSource

= GetComponent<CriAtomSource>();

}

void Update () {//スペースキー入力で再生if (Input.GetKey(KeyCode.Space)){atomSource.Play();

}}

}

このスクリプトを、

Cri Atom Sourceを含む

オブジェクトに貼り付け ます。

「Play on start」をオフ にして、プレビュー実行 してスペースキーを押す と音が鳴ります。

ただし、これでスペース キーを押し続けると

連続で音が鳴りっぱなし になります。

Page 43: 「ADX2 LE」Unity プラグイン クイック導入ガイド

43

同時発音数の制御

Atom Craft に戻り、鳴らす音(今回はorchehit)のキューを選択、

キュー情報の「キューリミット」にチェックを入れ、タイプを「先着優先」にします。

このときキューのプレビュー(F5)を連打すると、

同時に最大1音しか鳴らなくなったことがわかります。

Page 44: 「ADX2 LE」Unity プラグイン クイック導入ガイド

44

パックファイルの再ビルド

Atom Craftで設定を変更したら、メニューから「ビルド」→「Atomキューシートバイナリのビルド」を選び、「ビルド」をクリック。パックファイルが再び出力されます。

Unityに戻り、CRI Atom windowの「Update Assets of “CRI Atom Craft”」をクリックします。

この状態でUnityのプレビューを実行、スペースを押しつづけても最大1音しか鳴りません。

Page 45: 「ADX2 LE」Unity プラグイン クイック導入ガイド

45

SoundManagerクラスで集中管理

public class SoundManager

: MonoBehaviour

{

private string cueSheetName

= "CueSheet_0";private CriAtomSource

atomSourceSe;

//効果音用private CriAtomSource

atomSourceBgm;

//BGM用

void Start () {atomSourceSe

= gameObject.AddComponent<CriAtomSource> ();atomSourceSe.cueSheet

= cueSheetName;

atomSourceBgm

= gameObject.AddComponent<CriAtomSource> ();atomSourceSBgm.cueSheet

= cueSheetName;}

public void PlaySe(string

cueName, float volume){

atomSourceSe.volume

= volume;atomSourceSe.Play(cueName);

}}

オブジェクトごとにAtom Sourceを貼り付けるより、SoundManagerクラスを 作り、このクラス経由でゲーム全体の音を鳴らすようにすると管理が楽です。

※超単純な例

Page 46: 「ADX2 LE」Unity プラグイン クイック導入ガイド

46

HCA-MXの利用

Page 47: 「ADX2 LE」Unity プラグイン クイック導入ガイド

47

HCA-MXコーデックの特長

音を同時再生する際のCPU負荷が軽くなります。

セリフや効果音など、従来wavやADPCMで鳴らしていた素材も圧縮 できるようになり、アプリ容量とメモリ使用量が節約できます。

制限事項‒

HCA-MXでは音ごとのピッチ変更、フィルタ変更などができません。

サンプリングレートを統一する必要があります。(デフォルトは32KHz)

HCAを16音再生 HCA-MXを16音再生(iPhone4Sで測定)

Page 48: 「ADX2 LE」Unity プラグイン クイック導入ガイド

48

Atom Craft側の設定

右クリックから適当な名前のフォルダを作って、 HCA-MXエンコードする素材置き場とします。

ウェーブフォームフォルダ情報から、エンコードタ イプをHCA-MXにします。すると、フォルダ内の

データは全てHCA-MX設定になります。

エンコード品質はお好みで。

せっかくなので「最高圧縮」に してみましょう。

ツール上でキューをプレビュー すれば、実際のエンコード結果 が聞けます。

Page 49: 「ADX2 LE」Unity プラグイン クイック導入ガイド

49

パックファイルの再ビルド

Atom Craftで設定を変更したら、

メニューから「ビルド」→

「Atomキューシートバイナリのビルド」

を選び、「ビルド」をクリック。

パックファイルが再び出力されます。

Unityに戻り、CRI Atom windowの

「Update Assets of “CRI Atom Craft”」

をクリックします。

Page 50: 「ADX2 LE」Unity プラグイン クイック導入ガイド

50

CriWareLibraryInitializerの設定

CriWareLibraryInitializerインスペクタ内のSampling RateをHCA-MXデフォルトの32000Hzに設定。

HCA-MXのVoice Poolを、とりあえずMemory 8音に 設定。

これで鳴るようになります。

残念ながらUnity標準のプロファイラーにはADX2 LE の音声負荷情報が現れませんので、

負荷測定は実機でのFPS値やCPUの負荷を調べて下さ い。

Page 51: 「ADX2 LE」Unity プラグイン クイック導入ガイド

51

3Dポジショニング

Page 52: 「ADX2 LE」Unity プラグイン クイック導入ガイド

52

3Dポジショニング設定

Unity標準サウンドの「3D Sound」にあたる機能。– 距離や位置に応じてボリュームが変わる。

• ADX2 LEプラグイン使用時の「3Dポジショニング」– サウンド素材を3D設定にして、Unity内のカメラ位置にサウンド

リスナーをセットする仕組みは同じ。

– 3D設定はCri Atom Craft側で行い、リスナーはUnity内で 「Audio Listener」の代わりに「CriAtomListener」を付ける。

Page 53: 「ADX2 LE」Unity プラグイン クイック導入ガイド

53

Atom Craft側の設定①

3Dポジショニング設定するキューのウェーブフォーム(波形)を選択ウェーブフォームの「パンタイプ」で「3Dポジショニング」を選ぶ

波形をクリッ クして選択

Page 54: 「ADX2 LE」Unity プラグイン クイック導入ガイド

54

Atom Craft側の設定②

キューを選択してから「減衰距離」の「最小」、「最大」を設定する (最小:1~10くらい、最大:10~300くらい、単位:メートル)

キュー選択

Page 55: 「ADX2 LE」Unity プラグイン クイック導入ガイド

55

Unity側の設定

CriAtomListenerコンポーネントをMain Cameraに貼り付ける

パックファイルを再ビルド&再読み込みして

任意の位置にCri Atom Sourceオブジェクトを配置すれば完成!

Page 56: 「ADX2 LE」Unity プラグイン クイック導入ガイド

56

その他参考情報

Page 57: 「ADX2 LE」Unity プラグイン クイック導入ガイド

57

使用条件

前年度年商が1,000万円以下の会社または団体・個人であること

コンテンツの配信元が自身であること※販売権を自身で持ち、パブリッシャーを介さず自分でApp Storeなどに登録する。

コンテンツの売上が1,000万円以内であること※1,000万円を超えた場合は「ADX2」ライセンスに移行いただきます。

著作権表記が必要です。ストア上の説明文への表記です。詳しくは「ADX2 LE」公式サイトをご覧下さい。

「ADX2 LE」を使用したコンテンツ配信の条件(コンテンツの無償/有償に関わらず)

上記にあてはまらない法人の方は「ADX2」採用の評価目的として社内での性能評価・プロトタイプ開発等にご利用いただけます。

Page 58: 「ADX2 LE」Unity プラグイン クイック導入ガイド

58

• 「ADX2」ツールの更に詳しい情報– 「CRI ADX2で作るゲームサウンド制作ガイド」

詳細なチュートリアルと

充実したツールリファレンス。

ツールを使った超即戦力級の

ゲームサウンド書籍決定版!

「ADX2 LE」についての情報

Page 59: 「ADX2 LE」Unity プラグイン クイック導入ガイド

59

その他のツール利用方法

資料:自力でゲームのSEを生成する方法

by 「ADX2 LE」

http://www.slideshare.net/takaakiichijo/adx2-le-21311331

– ここで紹介している各種設定はそのまま使えます。

Unityプラグインを使っている状態なら、バウンスせずに

さきほどと同じ手順でビルドすればそのまま鳴らせます。

「バウンス」は波形そのものを加工してwavに出力しますが、

プラグイン利用であれば、PCや端末上で鳴らすときに

リアルタイム処理されます。

実際の波形データはひとつなので、Atom Craftの上で色々弄っ てバリエーションを作っても、音声データ量は増えません。

Page 60: 「ADX2 LE」Unity プラグイン クイック導入ガイド

60

おわりに

• 質問・意見お待ちしております。– 「ADX2 LE」でこんなことがしたい、これはできないか

– こんな使い方をしてもいいですか?

などなど何でも

Facebook「ADX2ユーザー助け合い所」

またはTwitterで彼をフォロー!→