アンビソニックデコーダーは、アンビソニックなオーディオ形式をステレオやサラウンドなどの特定の出力形式にデコードするオーディオコンポーネントです。この形式は、プラットフォームがこれをオーバーライドしない限り、スピーカーの設定 (メニューで Edit > Project Settings > Audio > Default Speaker Mode を選択) に依存します。
Unity はアンビソニックオーディオをサポートしていますが、デフォルトではビルトインデコーダーは提供していません。代わりに、サードパーティ製のデコーダーを選択するか、独自のデコーダープラグインを使用する必要があります。
オーディオスペーシャライザーの設定と同じ方法で、アンビソニックオーディオデコーダーを設定できます。ただし、AudioPluginInterface.h ファイルの以下のパラメーターはアンビソニックオーディオデコーダープラグインに固有のものです。
プラグインのスキャン段階で、UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder フラグは、これがアンビソニックデコーダー効果であることを Unity に通知します。プラグインをアンビソニックデコーダーとして動作させるには、効果の説明ビットフィールドにフラグを設定する必要があります。
`````
definition.flags |= UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder;
`````
Unity は、Project Settings ウィンドウ (メニューで Edit > Project Settings > Audio > Ambisonic Decoder Plugin を選択) で、プラグインをオプションとしてリスト表示します。
UnityAudioAmbisonicData 構造体は、Unity がスペーシャライザーに渡す UnityAudioSpatializerData 構造体に似ており、ambisonicOutChannels 整数を含んでいます。
アンビソニックデコーダーは、Unity のオーディオパイプラインにおいて初期の段階で実行されるため、ambisonicOutChannels 変数は、Unity が使用する必要のある出力チャンネル数をプラグインに通知します。ambisonicOutChannels は、DefaultSpeakerMode のチャンネル数に自動的に設定されます。
例えば、4 つのチャンネルをもつ一次オアンビソニックオーディオクリップを再生し、スピーカーモードがステレオ (2 チャンネルのみ) の場合
アンビソニックデコーダーのプロセスコールバックは、入出力チャンネル数に対して 4 を渡します。
ambisonicOutChannels フィールドは自動的に 2 に設定されます。
プラグインは空間化されたデータを最初の 2 チャンネルに出力し、他の 2 つのチャンネルへの出力をゼロにします。
Unity 用の独自のアンビソニックオーディオデコーダープラグインを開発するには、以下の手順に従います。
ネイティブのオーディオプラグイン SDK を使用してカスタムオーディオプラグインを作成します。
効果の説明ビットフィールドにフラグを設定します。
definition.flags |= UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder;
プラグインの設定が完了したら、ファイルをコンパイルします。任意のプラットフォームでコンパイルできることを確認してください。
オプションで、ファイルを .dll ファイルに変換します。
プラグインファイルを Unity プロジェクトの Asset フォルダーに移動します。
Unity でアンビソニックオーディオプラグインを使用する方法の詳細については、アンビソニックオーディオを参照してください。
Unity アンビソニックソースのフレームワークは、一次および二次のアンビソニックをサポートします。プラグインインターフェースには、バイノーラルステレオ、クアッド出力をサポートする情報が含まれていますが、どの出力をサポートするかはプラグインによって決定されます。
最初は、アンビソニックデコーダープラグインは一次アンビソニックソースとバイノーラルステレオ出力をサポートします。二次アンビソニックはサポートされません。
利用可能なアンビソニック形式のうち、特定のものに対する専用のフレームワークはありません。クリップの形式がアンビソニックのデコーダープラグインの想定される形式と一致する場合は、アンビソニックオーディオは問題なく作動します。Unity にとって好ましいアンビソニック形式は、B-format で ACN コンポーネント順と SN3D の正規化を伴っているものです。
プラグインの開発方法については、ネイティブオーディオプラグイン SDK およびオーディオスペーシャライザー SDK を参照してください。オーディオプラグイン SDK もダウンロードする必要があります。