Ambisonics (アンビソニックス) とは、リスナーを完全に取り囲むような音の表現を提供するオーディオの一種です。アンビソニックスは、遠くの環境音のためのオーディオスカイボックスを提供し、特に 360 度のビデオやアプリケーションに有効です。
アンビソニックスはマルチチャンネル形式で保存されます。それぞれのチャンネルが特定のスピーカーにマッピングされる代わりに、アンビソニックスはより全般的な方法で音場を表します。そのため、音場はリスナーの向き (つまり、VR におけるユーザーの頭部の回転) に基づいて回転させることができます。また、音場をスピーカーの設定と一致する形式にデコードすることもできます。
プロジェクトのアンビソニックオーディオデコーダーを選択するには、Ambisonic Decoder Plugin のリストからデコーダーを選択するには、プロジェクトの Audio 設定 (Edit > Project Settings > Audio) に移動します。プロジェクトで使用可能なデコーダーのリストから Ambisonic Decoder Plugin を選択します。Uniy にビルトインのデコーダーはありませんが、一部の VR ハードウェアメーカーは Unity 用のオーディオ SDK でそれらを提供しています。プロジェクトで利用可能かどうかについては、ターゲットプラットフォームのメーカーのドキュメントを確認してください。
アンビソニックスのオーディオクリップを読み込むには、ACN コンポーネントオーダリング、SN3D 正規化が施されたマルチチャンネル B フォーマットの WAV ファイルを読み込みます。オーディオクリップの Inspector ウインドウで Ambisonic を有効にします。
オーディオソースを使ったアンビソニックなオーディオクリップの再生は、以下のように行います。
Unity がアンビソニックオーディオクリップを再生するとき、必要に応じてファイルを解凍し、デコードしてプロジェクトで選択されているスピーカーモードに変換します。その後、オーディオソースの効果を適用します。
ノート: リバーブゾーンは、アンビソニックスオーディオクリップに対して無効になります。
プラグインのオーサリング方法については、Unity のユーザーマニュアルのページで、Native Audio Plugin SDK 、Audio Spatializer SDK 。また、Audio plugin SDK をダウンロードしてください。
アンビソニックオーディオデコーダーのために、AudioPluginInterface.h
に 2 つの変更があります。
UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder
UnityAudioAmbisonicData
プラグインのスキャン段階で、このフラグは、この効果がアンビソニックデコーダーであることを Unity に通知します。Unity は、このデコーダーが Audio の Project settings でアンビソニックデコーダーのオプションとして表示されるようにします。
definition.flags |= UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder;
UnityAudioAmbisonicData
構造体は、Unity がスペーシャライザーに渡す UnityAudioSpatializerData
構造体と似ていますが、ambisonicOutChannels
整数が追加されています。UnityAudioSpatializerData
構造体の詳細については、オーディオスペーシャライザー SDK ドキュメントのスペーシャライザーエフェクトメタデータ を参照してください。
UnityAudioAmbisonicData
構造体の場合、 ambisonicOutChannels
に、 DefaultSpeakerMode
のチャンネル数を設定する必要があります。アンビソニックデコーダは、Unity のオーディオパイプラインで早めに実行されるため、ambisonicOutChannels
は、Unity が使用する必要のある出力チャンネルの数をプラグインに伝えます。
1 次アンビソニックオーディオクリップ (4 チャンネル) を再生し、スピーカーモードがステレオ (2 チャンネル) の場合、アンビソニックデコーダーのプロセスコールバックは、インとアウトのチャンネル数に対して 4 つ渡されます。ambisonicOutChannels
フィールドは 2 に設定されます。プラグインは空間化されたデータを最初の 2 チャンネルに出力し、他の 2 チャンネルへの出力はゼロです。
Unity のアンビソニックソースのフレームワークは、1 次と 2 次のアンビソニックスをサポートします。プラグインインターフェースには、バイノーラルステレオ、クワッドの出力をサポートする情報が含まれていますが、どの出力をサポートするかはプラグインによって決定されます。最初は、アンビソニックデコーダープラグインが 1 次アンビソニックソースとバイノーラルステレオ出力をサポートします。2 次アンビソニックスはサポートされません。
利用可能なアンビソニック形式のうち、特定のものに対して専用のフレームワークはありません。クリップの形式がアンビソニックのデコーダープラグインの想定される形式と一致する場合は、アンビソニックオーディオは問題なく作動します。Unity にとって好ましいアンビソニックフォーマットは、B-format で ACN コンポーネント順と SN3D の正規化を伴っているものです。