ADX2LE超初心者

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ADX2LEをダウンロードしてみたけど、何して良いかいさっぱりわからない人向けのページです。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (adx2マップ.png)

目次

あなたはどんなタイプ?


ADX2LEを使うと何が出来るようになるか?


そもそも音を鳴らすってどうやるのか?

通常はwaveファイル(.wav)のファイルを鳴らすとかがよく行われます。
.wavの中身は、例えば、1秒間における空気の振動を44100回とらえた数値のようなものになります。
マイクで入力して、スピーカーで流せば音が再現できます。

ですが、音のデータは膨大になりがちなので、圧縮したくなります。

ADX2では、HCAといった圧縮フォーマットがあります。
1秒間の振動情報を1/12くらいに圧縮できるのでサイズが減ってお得です。
(12倍の音声が入れられる)

再生するときは元の44100の振動に戻す処理が入ってスピーカーから音がでます。

振動を数値にするのがエンコード、
数値を振動に戻すのがデコード。
これらのフォーマットのことをコーデックと呼びます。

話はそれましたが、音を鳴らすときに、情報を圧縮したり展開したりを簡単にやってくれるのがADX2の持つ最大の特徴です。


面倒な事が簡単になり、且つ容量を削減しコストを下げる。


ゲームのサウンドに求めるものとは?

  • ゲームにおいて、無駄に高い負荷の処理は望まれません。

  • 一方で、ユーザーは心地の良い音を望みます。

サウンドの再生において、心地よさはさまざまな要因で決まります。
例えば、音質とか音の変化とか。

最低限の処理でたくさんの音を鳴らす。
メモリの少ない状況でも飽きさせない音を鳴らす。

こういうチューニング(心遣い)が大事です。

これらを行うには、プログラムの知識、サウンドの知識、そしてハードウェアの知識など様々なものが必要です。
また、それらを理解したところで、昨今のゲームにおける大量のサウンドを効率よくハンドリングする必要があります。

なるべくなら、これらを楽したいところ。ちょっとした事は、チェックボックスひとつで済ませたい。
でもこだわるところ、気になるところがあればとことん調整したい。

こういったサウンドの願いは
ADX2LEのオーサリングツールを使うことで、簡単に定義することができます。
ゲームサウンド再生におけるほぼすべての基本的な動作を網羅しています。

また、それらの再生するプログラムもものすごく簡単にできるようになります。


音をなるべく簡単に扱う


ターゲットコンフィグで設定が楽に


ADX2のオーサリングツールでは「ターゲットコンフィグ」というデータセットによって、ビルド内容を置き換える機能があります。

ここには、主に圧縮音声についての設定が行えます。
より低負荷を求められるターゲットの場合、再生時の負荷の軽いコーデック。
PCなど負荷に余裕があるターゲットでは音質の良いコーデックを選びます。

ADX2のオーサリングツールでは、初期状態で良さげなコーデックが選択されています。
例えば、PS4とかなら専用の再生モジュールを利用して再生とかします。

これらをゲーム内容や状況に応じて変更することもできます。

ADX(低負荷)HCA(高圧縮)HCA-MX(制限付き低負荷高圧縮)のエンコード設定のデフォルトが指定できます。
波形単位での設定はデフォルトから変えたい時だけ設定します。
デフォルト設定は機種に対して良い感じの設定になっていますが、用途に合わせて変更してください。

ただ、今時ではADXはさすがにもう古いかもしれません。(ファミコン後期くらいの時代のもの)
HCAがおすすめです。(HCAは最近のもの)

エンコード品質ひとつ変えるだけで、さらに小さく。

デフォルトではエンコード品質は「高品質」。でも、もっと圧縮したい場合は「最高圧縮」を選択することでさらに小さくなります。
(HCA,HCA-MX時のみ)


メモリ再生かストリーム再生かをデータ側で設定


ストリームという言葉は「流れ」という意味。
溜め込まずに流し続けるという意味で、
コンピュータのメモリをちょっとしか使わずに再生する方式。

一方、メモリを大量に消費して、どーんと読み込んでしまうのがメモリ再生方式。


音声(ダイアログ)や、楽曲など長めの音声データはストリーム再生にすると、メモリを低消費にすることができます。
再生中常にちょっとずつ読む処理のために若干の遅延が発生します。

逆に効果音など、応答性の良い音の場合はメモリ再生方式が良いです。
再生前にどーんと読み込んでいるので、メモリは食いますが即座に再生が可能です。

すべてのデータがストリームで良い場合は、ターゲットコンフィグでまとめて設定しても良いです。

なお、マテリアルフォルダでデフォルト設定を上書きできるので、特定のフォルダだけストリームといった事もできます。

これらの設定はデータ作成時に行うので、

プログラムからはメモリかストリームか気にせず
Play("CueName");
といった関数で簡単再生できます。

プログラマが意識するのはボイスプールというボイスの事前予約数を決めておくことくらいです。
プログラマは利用するメモリを固定でとり、そのとる量によって、発音数がきまります。
その発音数の制限内であればいくらでも鳴らせます。

鳴らし過ぎた場合は、プライオリティの低い音、古い音から消えていきます。

プライオリティの設定はデータ側で行います。
重要で消えて欲しくない音はデザイナがプライオリティを上げておくことで、
プログラマは意識せずに再生をがんがんできます。

ADX2は、プライオリティに従って低いものは止めたりします。

キューシートは大量音声時に役立つ


通常、音声を大量に扱う場合、用途によって大きく2つの方法が考えられます(3つありますが最初の2つ)

  • 複数の波形情報を個々に管理する場合(波形個別再生)
波形単位は非常に分かりやすい。数が少ない場合はこれで問題ない。
音声(ダイアログ)など、一言しゃべるだけで再利用されない場合など、使って、破棄がはっきりしているものはこれ。
大量にある時のデータ管理(ロード、破棄単位)など管理がしっかりしたものはこちら。

  • ある程度の単位でまとめて一ファイルにパックする(あるいはバンク化する)

もし、一音ごとに1ファイルに分かれているとその管理だけでも大変なことになるのが分かります。

例えば、再生するには、開いて、再生し、再生が終わったら閉じる。
これだけでも、大変です。音が鳴り終わるのをプログラムが知っている必要があったり、どれくらいの頻度で監視すれば良いかなど。
同時に複数鳴っていたり、それらがいつどのタイミングで必要かを、何かしら別情報で管理するとしても、
数が膨大になるとミスが発生しがちです。

さらに、ADX2では、波形の再利用によるバリエーションによって容量を小さくしつつも、自然な音のバリエーションが増やせる強力な機能があるのですが、
効果音などで、同じ波形を共通で利用しているものはキューシート内で一つの波形メモリとして共有されることで実現しています。

これらも、他の波形に依存する形となるため、個々に扱うと大変です。
※プログラマであれば、グラフィックでいうところのテクスチャアトラス的なものといえば、用途が分かりやすいかもしれません。

足音のバリエーションなどピッチパラメータやタイミングだけ変更したようなデータが多い場合はこちらがの方がメモリが少なくすみます。
パックする単位はシーン、ステージ、キャラクター、エネミー種類など工夫が必要になります。
1ファイルで扱うので、プログラムやバージョン管理はシンプルになります。

  • ストリーム波形もパック?

キューシートは再生パラメータ情報はacbとして出力されます。
メモリ再生の場合、acb側に波形情報がパックされます。
ストリーム再生の場合、波形要素はawbという別ファイルで出力されます。これはストリーム用なので、メモリに展開しない(例えばCDメディアやSDカード上などに置かれる)ため、別ファイルとなり配置場所が変わる場合があります。(iOSなどではもはやメディアの区別がありませんが...速度の違うメモリ上に配置されるイメージで、若干遅く容量が多いのはストリーム、超高速なのはメモリという使い分け)

ADX2ではストリームのパラメータ情報はacb側、波形情報はawb側に出力され非常に小さいメモリとしてロードすることができます。

ストリーム再生のPrep再生で遅延を無くす


条件が整わないと完全に遅延0とまではいきませんが、ストリーム再生のオーバーヘッドを極力少なくする方法としてPrep再生があります。

これは、ポーズ状態で再生を行うことで、ストリーム用の先頭部分をバッファ上にあらかじめ溜め込む動作で、ポーズを解除すると即座にストリームが開始される仕組みです。(いわゆる先読みのテクニック)

ゲームでは先読みして、ユーザーにロードの遅延を気がつかせない工夫が必要な場合が多く、
この解釈をもう少し広げると、キューシートによってある程度の処理ブロック単位で先読みし、その分の音声データ情報を用意しておくという事ができます。

3Dサウンドの扱いについて


ADX2では、パン3Dと3Dポジショニングの2つの音像のコントロール方法が提供されています。

  • パン3D
現実のスピーカ配置に従った位置で指定します。
2mixの再生などはこちら。

水平面の360度の方向で音の位置を指定します。
5.1chオーディオシステムへの親和性があります。

環境音など音像をサラウンドに配置して広がりをもたせたい場合もこちら。
ダイアログなどセンタースピーカから出したいといったものもこちらで指定可能。(3Dのボリュームを下げる)

  • 3Dポジショニング
ゲーム中のxyz座標によって位置を指定します。

仮想空間上で、リスナー、ソースそれぞれの相対距離で設定情報(距離減衰、最小(Near)、最大(Far))から自動的に音量や再生角度が計算されます。

プログラムで3D空間上に音を配置する場合はこちらが便利です。

  • スペーシャルオーディオ
オブジェクトベースオーディオなどとも呼ばれます。
最近のVRなどでの再生で、3Dポジショニングとほぼ同等に扱えますが、上下方向の音の変化も扱えます。
変わりに少し特殊な経路で再生が必要になります。


センター、LFE出力


センタースピーカやLFEなど特殊装置への出力は、センド方式となっています。
センターへどれだけ出力するかといった指定になります。
パン3Dや3Dポジショニングとは別系統の出力があると思うと良いです。
他にもADX2Pro版ではリモコンのスピーカやヘッドセットなど様々な出力への対応が可能。(基本的にメモリが許す限り何chでも拡張可能)

バスセンド


DSPバス設定という、少し重めのエフェクトを動かすためのバスがデフォルトで8本用意されています。
これらにエフェクトの設定、ルーティングなどを設定し、各音はバスのセンド量だけを指定することで、
多くの音声にエフェクト効果をかける事ができます。
例えば、各音毎にエフェクトをかけてしまうと発音数xエフェクト処理負荷となってしまうので、バス(ミキサーみたいなもの)にまとめて、一括でかけてしまう方法をとります。
バスセンド-スナップショット
エフェクトのルーティング、アルゴリズムの配置は変更せず、パラメータだけ異なるものをスナップショットのグループとして持つ事ができます。
同じDSPバス設定に依存するスナップショットは、個別に持てるパラメータの設定集(プリセットのうなイメージ)で持て、
これをプログラムから名前で指定することでリアルタイムに変更が可能となる。変化にかかる時間を指定することで、パラメータも補間が行われ
スムーズにエフェクトを変化させる事ができます。

音にこだわった演出ができるようになる

音の消え方

例えば、音を止める時、ブツッと切れるのではなく、ちょっとフェードアウトしたい場合は、エンベロープのリリースタイムを20msecとか指定するだけでOK。音毎にリリースタイムを指定できる。

音を重ねない

ボイスリミットグループを使うと、同じグループの音の数を制限することができる。例えば、同じ声優のボイスはリミット数1にしておくだけで、必ずどれか一つしか鳴らないようにできる。
ルールは、音にプライオリティ(優先度)をつけておくだけでOK。
ボイスリミット:確実にリミットしたい時に使う。
ボイスは一つの波形をデコードする単位。キューをリクエストすると音を一つ鳴らすために使われる。あらかじめ初期化時に用意したボイスプールと呼ばれるものから利用される。ボイスプール側にも最大数があるが、ボイスリミットグループ単位でもリミットできる。
例えば、ストリーミングは最大2音のみといった形で制限できる。2音以上リクエストするとリミットがかかりプライオリティの低いものが停止する。
キューリミット:キュー単位でリミットしたい時に使う。リリース分はオーバーラップする。

カテゴリで再生中の音を管理

カテゴリって聞き慣れない人もいるかもしれません。

プログラムではBGMカテゴリとかよく使われるのですが、
ゲームの効果音とBGM(iTunesミュージック)は同時に鳴っても問題ないとかいった場合に、
音が何のカテゴリなのかが重要になります。

ゲームでもBGMだといっておけば、iTunesで音が再生している時は、効果音だけのモードにしたいといったことが可能になります。

カテゴリでボリュームを変えたり、ミュート(まったく鳴らさない)といったことができます。

カテゴリキューリミットを使うことで、どのカテゴリにどれだけ発音を許すか?といった設定ができます。

カテゴリリスト:カテゴリのボリューム調整などにも便利

カテゴリプライオリティ:カテゴリ内でのプライオリティ設定で優先度も音ごとにコントロールできる。


距離に応じて変化させる


音が遠くで鳴ると小さくなる(3Dポジションサウンド)が可能です。(距離減衰設定)
さらに、こだわりたければ
距離に応じてローパスフィルターをかけたり(距離AISAC)角度によって音色を変えたり(角度AISAC)といった変化のデザインが可能です。

音が近い時と遠い時での変化、近い時には音につつまれているといった表現で、
インテリア(内部)かエクステリア(外部)かといった設定も可能で、
最小距離以内の場合、各スピーカからもれる(ダイバシティー)ようになり、自然な通過音が可能となっている。

音源の大きさといったもので、スプレッドの設定もできます。

これらの設定はどこまでやるかは悩みどころですが、
プログラムには負担がかからないように、(データ差し替え程度)
後から一部の音だけでもこだわるといったことができます。

状況によって色々変化する音の扱いを楽にしたい


例えば耳元だと「びゅん」って鳴るけど、遠くだと「スカッ」。武器の振る速度に応じて変化する音、武器の大きさによって変化する音、武器の耐久度によって変化する音など。なんとなく一つの音なんだけど、ちょっとパラメータ付与して音にバリエーションをつける事が簡単にできます。複数のパラメータ変化や波形の切り替えなどをまとめてキューとして呼びます。

任意のコントローラパラメータを追加できる

AISACを使うことで、ゲーム内の変化量を音色変化に割り当てる事が可能。グラフで直感的にパラメータ指定が可能。
状況に応じて変化する音のデザインが楽になる。(例えば、高度に応じて音にハイパスフィルターをかけるなど)

エフェクトが楽に使える

空間演出のためのリバーブ設定、エコー(ディレイ)などをバスエフェクトとして使える。
また、音毎(インサーションエフェクト)としてバンドパス、バイクアッドフィルターの2系統を同時に使用可能。

モジュレーションエフェクト

AISACオートモジュレーションを使うと、LFOのような音のパラメータの揺れを作る事が可能になる。
ピッチを揺らしてビブラートしたり、ボリューム変化でトレモロ効果、パンを相対的にふることでロータリースピーカのような効果も可能。
複数のモジュレータを並列(最大8個)で扱える。
AISACコントロールのグラフも描けるので、モジュレータを直列に設定することも可能。

カテゴリ間の相互作用が可能

REACTを使うと、ある音が鳴った時だけ音量を下げるといった事が可能。
音量以外にもAISACも変化可能なので、音量ではなくローパスやハイパスフィルターにしたり、バスセンドを変えたりといった事も可能です。

プログラムは一切かかわらずにデータ側でやろうとおもえばできます。

シーケンサーやDAWのようなエディター

CRI Atom CraftはDAWのようにマルチトラックでタイムライン上に波形を置いたり、オートメーションカーブを書いたりできます。
波形のループ(自動繰り返し間隔)機能や、再生タイミングのランダム(プリディレイランダム)といったゲーム向けの拡張も行われています。
トラックをランダムに切り替えて再生するといった機能もあります。
ほとんどすべての設定をこのタイムライン上で行え、プレビュー再生も行えるため、直感的に作業が行えます。
複数まとめてパラメータを変更したい場合はタイムラインではなくリスト編集やプロパティ編集が行えます。

これに登録する素材は、使い慣れたProtoolsやLogicなどで作ります。
DAWに似ていますが、リアルタイムの制御のためのオーサリングツールになります。
ボリュームの操作や、リアルタイムにクロスフェードするなどといった、DAWでは設定できない
プログラムで行うような処理を簡単にするために、ここで苦労をしておくことになります。

階層構造でパラメータ管理

一つの音(キュー)も以下のような構造を持ちます。
キュー
 トラック
  ウェーブフォーム
各階層それぞれにピッチ、ボリュームなどのパラメータが存在し、それぞれ内容によって、乗算、加算されるようになっています。
階層の下位のものは、上位の設定に従うという事を覚えておくと、まとめてパラーメータ変更などに役に立ちます。
ほとんどの場合、キューのパラメータだけで事足りる形となっています。
AISACを付ける位置などで影響範囲が変化します。

サブシンセ
キューの中にキューと同じ構造を入れ子で持つ事ができます。
キュー
 トラック
  サブシンセ
   トラック
    ウェーブフォーム
サブシンセ側でランダムなども可能です。
キューリンク
キューの中にサブシンセとしてではなく他のキューを取り込む事が出来ます。
キュー
 トラック
  キューリンク
同じキューシート内のキューをキューリンク、他のキューシートのキューを指定する場合外部キューリンクと呼びます。
サブシンセとの違いとして、複数のキューから参照される場合に使用します。(カットシーンで再利用するなど)
外部キューリンクは、同時に読み込まれたキューシートから検索して再生を行います。(サウンドを差し替えるといった用途)

AISACリンク
AISACも共有したい場合、リファンレンスAISACやグローバルAISACとしてつくることができます。
キュー
 AISACリンク

階層構造でウェーブフォーム(マテリアル)パラメータ管理

一つの波形の圧縮の設定、メモリかストリームかといった情報はマテリアルフォルダで管理されています。
階層の例
マテリアルルート
 マテリアルサブフォルダ
  マテリアル(wavファイル)
各階層それぞれにコーデックの指定ができますが、初期状態では、デフォルトという設定が割り当てられています。
デフォルト設定は、上位のフォルダの設定に従うようになっています。
さらにマテリアルルートの上位には、ターゲットコンフィグという、機種別設定によるデフォルトパラメータの設定があります。
基本的なデフォルト設定は、ターゲットコンフィグ側で行い、各フォルダの単位で個別設定をオーバライド(上書き)するイメージで管理します。

コマンドラインツール(ADX2Pro版のみ)

大量のデータをデイリービルドしたいといった場合などコマンドラインツール上でビルドする事ができます。

音程をつけて鳴らすのが簡単

音を1cent単位(1/100半音)2オクターブまで上げられる。(初期化時の上限サンプリングレートを越えない限り上げられる)

圧縮音声のデメリットがない(ゲーム的な意味で)

ゲーム用なので、mp3などにあるような細かなピッチの変更ができないとか変化までのレーテンシーとか気にせず使える。沢山鳴らしてもOK。
例えばmp3は可変ビットレートなどで再生中のサイズ変化が多様になり処理にピークが発生しやすい(データ依存による処理負荷変動が多い)が、
hcaでは固定ビットレートなので処理負荷が一定で見積もりしやすい。音の劣化具合もシンプルなので調整しやすい。
ループもサンプル単位で指定可能だし、シーク再生(途中からの再生)もmsec単位で可能。
複数波形の同時リクエスト、再生もずれない。(メモリ再生時。ストリーム再生時はprep(先読み)再生を使う必要あり。)

大量発音時の制限がかけられる

発音が多重に鳴ってしまうと耳障りな音がある場合、その音(音色、キュー)単位で全体の再生数を制限する事ができる。
音をカテゴリに分けて音量コントロールしたり、カテゴリ毎にリミット(再生数制限)をかけられる。

ランダムな要素に音の変化を加える事ができるようになる

例えば、花火アプリで、花火の「大きさ」「種類」「距離」などパラメータに応じた音のデザインが可能になります。
さらに、「天候」「場所」などの違いも演出できるようになります。
車のエンジン音なら「回転数」「負荷」「速度」など。地面の材質などによる変化などもこだわる事ができます。
料理アプリなら、油の温度変化による音の違い。とかお湯が湧く時の音の鳴るケトルのシミュレーションとか。
これらは、プログラムでも設定できるかもしれませんが、ADX2LEのオーサリングツールを使う事で楽に作れます。
AISACという機能が任意のコントローラとなります。

曲が切り替わる時のこだわり演出

遷移時のみ音が鳴るといったものが作れます。複数のトラックの同期再生などのデザインが、
オーサリングツール上でできます。
ブロック再生を使います。

環境音のデザイン

ランダムといってもでたらめではなく、どれくらいの割合で、どんな音が鳴るのか?といった設定も
オーサリングツール上で調整できます。(ランダム確率、再生確率、複数波形組み合わせ)
トラックのランダム再生やパラメータのランダム再生などを使用する事で、音素材が少しでも多様な音を再生できます。
(キューのシンセタイプのランダム、AIASCのコントロールタイプのランダム)

再生中の音に対しての情報取得が可能

再生している音の音量(Peak,RMS値)が取得できます。(Pro版ではラウドネス値も)
再生時刻を取り出したりできるので、音ゲーなど作る時に重宝します。
音の一時停止や、再開、時刻指定による途中から再生なども可能です。

音声解析その他(Pro版のみ)

ピッチやBPM検出機能。外部入力やメモリ上の波形へのエフェクト処理(リバーブ、コンプ、ピッチシフト、解析など他ADX2で使用できる全てのエフェクト)およびターゲット上でのリアルタイムエンコード。

圧縮音声を使っても苦労しない

基本的な設定は、メモリ再生かストリーム再生かの2択。さらに細かい設定として圧縮品質も選択できます。
メモリ再生はメモリ上に展開されるため、高速に再生が可能です。
ストリーム再生は、メディアから直接読みながら再生するので、BGMや台詞などに向いています。
圧縮品質を変えてもほとんど処理負荷は変化しません。圧縮率が高い方が処理量が減る分動作が軽くなる場合もあります。

acb,awbという独自フォーマットのため、ダウンロードコンテンツ化できる

acb,awbは波形情報や再生パラメータなど複数の音をひとまとめにした独自形式のファイルです。
これらを読み込むだけで音が鳴らせるので、差し替えや追加が容易です。

ストリーム再生が手軽且つローコスト

流量管理をやってくれるので、裏読みしても音が途切れない
よほどの高負荷状態が続かないかぎり音とびは発生しません。
ADX2ではサウンドの為に、ファイルシステムや動画再生も含めて音の問題を解決します。
それでも音が途切れる場合は初期設定で調整、変更する事ができます。

多言語リソース管理

波形レベルでの差し替えによりacb単位(複数ボイスをまとまった形)で言語別データを作る事ができます。
これにより、プログラムからは言語によってacbを読み替えるだけでOK。

#adx2leハッシュタグをつけてtwitterでつぶやく


まずはマニュアルを読む

http://www.criware.jp/adx2le/docs/plugin/contents/index.html
http://www.criware.jp/adx2le/docs/tools/index.html
ダウンロードして解凍したcriフォルダの中の
documentationフォルダ内のindex_criadx2le_unity_j.htmlを読みます。

CRI_ADX2LE_Unity_Plugin_Manual_j.chmを読みます。

サンプルを動かす

unity/samples/criatom/basic/Assets/Scenes/Scene_01_SimplePlayback.unity
をダブルクリックして開く

サンプルがうまく動かないよくある例:日本語のパスが含まれる環境でexeが動作している(Unityの日本語パスのバグの影響)

ちなみに日本語パスの問題はADX2製品版では解決済みで、ADX2LEに反映されるのは春頃になる予定。

もういちどマニュアルを読む


CRI_ADX2LE_Unity_Plugin_Manual_j.chmを読みます。
Macの人はchmビューワーとかで見れます。

CriAtomCraft.exeを動かす

波形(.wav)はC:/WINDOWS/Media/にあるファイルとかをマテリアルとかに入れてみる。

DemoProj



ADX2LEの本


ADX2LEのトレーニング


ADX2LEスクリプト


ADX2LEの動画解説


ADX2ユーザー助け合い所で聞いてみる


問題が発生したら聞く習慣をつける。遠慮は要りません。なぜなら皆が同じ事を疑問に思っているから。
誰かの解決策が、みんなのためになります。
助け合い所を活用しましょう。

りんごのツイート


ADX2LEリアルタイム検索


ADX2 x Oculus


よくある勘違い

波形編集ソフトではない

→音の鳴らし方を工夫できる。波形編集ソフトは別途必要。

音楽作成ソフトではない

→音楽の組み合わせやつながりを工夫できる。音楽素材はDAWなどで作る必要あり。

効果音集ではない

→ある程度の効果音を作る事はできる。

MAソフトではない

→ある程度の動画に音を付ける事は可能。

シーケンサではない

→ある程度のシーケンス(時間軸配置)は可能。
録音機能はない。→再生した音を録音(バウンス)は可能だが、マイクからの入力した音の録音とかの機能は無い。

Unityのサウンドシステムを叩いているわけではない

→独自のサウンドシステムが動く。ネイティブプラグインなので高速。

何でもできるわけではない

→基本的な演出はやりやすい。特殊な演出は工夫次第。足りないものは要望次第。(LE版は直接要望はNGですが、twitterとかに)
Pro版の機能がゆっくりLE版にも反映していきます。(急ぎ必要な場合はPro版を)

制限される事

Windowsのツールでデータ作成する。(Macだけでは使えない。MacではParallelsなどVM環境が必要。)

良い事

Unity上での管理がシンプルになる。(機種共通(PC,Mac,iOS,Android)で扱えるので、SwitchPlatformで待たされる時間が少なく済む)
サウンド演出の調整のほとんどがデータ側で行える。(バージョン管理がしやすくなる)
大量のデータも独自形式でパックしているため、管理しやすい。サウンドの方とのデータのやりとりなど分業しやすい。
その気になれば、プログラムでもいろいろ音が弄れる。
ADX2が持つ独自の圧縮アルゴリズムなので、機種依存が無い。ループやシーク再生が可能。
HCA-MXを使うと再生数が増えた時にmp3やoggレベルの圧縮率なのに、ADPCM再生より処理負荷が軽くなる。
圧縮音声なのでメモリ(ストリーミング帯域、ダウンロードコンテンツ)に優しい。

ADX2Pro版とのデータ互換性

ADX2Pro版に移行すればストリーミング(音声、動画、データ)に強い独自のファイルシステムや動画再生など魅力的な機能にグレードアップできる。
また暗号化も可能なのでコンテンツ保護も強い。
さまざまなゲーム機や環境(家庭用、携帯ゲーム機、アーケード機、組み込み機器、WebAudio、UE4など)のネイティブ環境に対応しているためデータ移行がスムーズに行える。
基本的に古いデータもランタイムで再生可能なため数年のオーダーでデータ互換性も保たれる。

何がやりたいのか自問自答する


音を作る、鳴らす、といった事は様々な方法が考えられます。

大抵のことはプログラムを組むことでできるでしょうし、より自由度もあるでしょう。
ADX2を使うことで
  • 圧縮音声を意識せず簡単に扱える。
  • オーサリングツールによって、ゲームに組み込む前に、複数音の再生、それらの相互作用、音量の調整ができる。
  • ランダマイズによるメモリ使用量を押さえたバリエーションの増量が可能。
  • シーケンスによる波形の長さ以上のサウンド演出。
音量調整に加え、発音制御、発音時のふるまい、カテゴリによるバランス調整、
リアルタイムの変化音のデザインとコントロールをデザインし、直感的に扱える。

例えば、「たった一つの音」を鳴らすためにADX2LEが必要か考えてみます。
もし、エンジン音や時間によって多様に変化する音であれば、ADX2LEのAISAC機能が役に立ちます。
短い波形を数音、ただ単純再生するのであれば、標準のオーディオソリューションでやった方が楽でしょう。

でも、
「たった一つの音」の単純再生でも、とても長いBGMのようなものであれば、圧縮の利点、圧縮時の音質での利点がある可能性があります。
圧縮音声を用意するのもオーサリングツール上で簡単に行えます。実際の音質で確認できます。

圧縮音声は好みがあります。ADX2LEではADPCMとHCAで大きく音質、圧縮率が異なります。
BGMの場合よくイントロ付きループ(サステインループ、ABループ)といった波形にループポイントを設定してイントロ部分は初回しか鳴らないといったデータを用意する事があります。ADX2LEではループをサポートしているので、ADX,HCAどちらのコーデックでも手間をかけずにループ再生が可能です。

HCAであれば、圧縮率を5段階で指定できます。よほどの高級オーディオ機器につなぐのでない限り、最高圧縮でも問題ない場合がほとんどです。
音は圧縮時に変化するので、それらも考慮して調整が要るかもしれません。例えば、圧縮率を上げると何らかの音の情報が欠けてしまいます。可聴範囲外の要素や、位相情報(ステレオ感)、時間変化粒度など。
これらの変化を必ず耳で確認し、問題ないかチェックする必要があります。

また、負荷の問題、ワークフローの変化による作業効率の比較も重要でしょう。
もし、ADX2LEと長く付き合うのであれば、将来との互換性なども重要です。極端にADX2LEの機能に依存したデータを作った時、将来においてそれが再利用されるシーンでの保証はありません。とても長い期間(例えば5年10年とか)使う場合、標準的、一般的なソリューションの選択も考慮した方が良いでしょう。

これらを比較、検証し、
自分のコンテンツでは有用だと判断した場合にのみ利用する事が良いです。

とりあえずは、手元にある波形を入れてみて一音だけでも鳴らしてみる。
それにかかる手間とやりたい事へのトータルの手間を比較してみると良い。

と、固くかいてありますが、基本無料ですので、サウンドプログラムのノウハウを勉強したり、どんなものか興味本位で触ってみたり、
ゲームジャムで実践するために調べたりといった感じで触れて行くのもあり。

手軽に音がこだわれる環境を手にした時、もう他のサウンドシステムでは満足出来なくなっているでしょう。

ご意見はこちら

名前:
コメント: