Audio プロファイラー
オーディオクリップ

アンビソニックなオーディオ

はじめに

このページはアンビソニックスの再生方法と、アンビソニックオーディオデコーダーをサポートするために加えられたオーディオプラグインインターフェースに対する変更について説明します。

アンビソニックスはマルチチャンネル形式で保存されます。それぞれのチャンネルが特定のスピーカーにマッピングされる代わりに、アンビソニックスはより全般的な方法で音場を表します。そのため、音場はリスナーの向き (つまり、VR や AR におけるユーザーの頭部の回転) に基づいて回転させることができます。また、音場はスピーカーの設定と一致する形式にデコードすることもできます。アンビソニックスは一般に 360 度のビデオとペアになっており、離れた周囲の音のためのオーディオスカイボックスとしても使用できます。

アンビソニックオーディオデコーダーの選択

プロジェクトのAudio設定(メインメニュー: Edit > Project Settings から Audio カテゴリを選択)に移動します。プロジェクトの使用可能なデコーダのリストからアンビソニックなデコーダを選択します。 Unity 2017.1に同梱されているビルトインのデコーダーはありませんが、GoogleとOculusはそれぞれUnityにオーディオSDKを提供しています。

Ambisonic options in the Audio settings
Ambisonic options in the Audio settings

アンビソニックなオーディオクリップのインポート

マルチチャンネルの WAV ファイルを、通常どおりにインポートします。オーディオクリップの Inspector ウィンドウで、新しい Ambisonic のチェックボックスを選択します。WAV ファイルは B-format で、ACN コンポーネント配列で、SN3D 正規化されている必要があります。

オーディオクリップの Inspector の Ambisonic のチェックボックス
オーディオクリップの Inspector の Ambisonic のチェックボックス

オーディオソースを使ったアンビソニックオーディオクリップの再生

他のオーディオクリップと同じように、アンビソニックなオーディオクリップもオーディオソース経由で再生します。アンビソニッククリップを再生するとき、アンビソニッククリップはまず必要に応じて解凍され、アンビソニックデコーダーを介してプロジェクトで選択されたスピーカーモードに変換されます。それから、オーディオソースのエフェクトを通じて処理されます。

Audio Source プロパティーに関していくつか注意点があります。

  • Spatialize を無効に設定します。アンビソニックオーディオクリップを再生する場合、プロジェクトで選択されたアンビソニックオーディオデコーダーを通して自動的に処理されます。デコーダーは、クリップをアンビソニック形式からプロジェクトで選択したスピーカー形式に変換します。デコーダーはさらに、オーディオソースとオーディオのリスナーの位置に基づいて、このデコード操作の一部として空間配置をすでに処理しています。

  • 空間配置されたオーディオソースと同様に、アンビソニックオーディオクリップでは、リバーブゾーンは無効になります。

オーディオプラグインインターフェースの変更

プラグインオーサーの方は、まず、Unity マニュアルのネイティブのオーディオプラグイン SDK とオーディオスペーシャライザー SDK を参照し、オーディオプラグイン SDK をダウンロードしてください。

https://docs.unity3d.com/Manual/AudioMixerNativeAudioPlugin.html

https://docs.unity3d.com/Manual/AudioSpatializerSDK.html

https://bitbucket.org/Unity-Technologies/nativeaudioplugins

AudioPluginInterface.hにアンビソニックオーディオデコーダの2つの変更があります。1つ目は、新しいエフェクト定義フラグUnityAudioEffectDefinitionFlags_IsAmbisonicDecoderがあります。アンビソニックデコーダは、このフラグをエフェクトの定義ビットフィールドに設定する必要があります。プラグインスキャン中、このフラグでエフェクトがアンビソニックなデコーダーであるかをUnityは判断し、Audio 設定のアンビソニックデコーダリストにオプションとして表示されます。

2 つめは、アンビソニックデコーダーに渡す新しい UnityAudioAmbisonicData 構造体です。これは、スペーシャライザーに渡す UnityAudioSpatializerData 構造体に非常に似ていますが、新しい ambisonicOutChannels 整数が追加されています。このフィールドは、DefaultSpeakerMode のチャンネル数に設定されます。アンビソニックデコーダーは、クリップのチャンネル数で実行するオーディオパイプラインの非常に早い段階に配置されます。ですから、ambisonicOutChannels は実際に使用する出力チャンネルの数をプラグインに通知します。

1 次アンビソニックオーディオクリップ (4 チャンネル) を再生し、スピーカーモードがステレオ (2 チャンネル) の場合、アンビソニックデコーダーのプロセスコールバックは、インとアウトのチャンネル数に対して 4 つ渡されます。ambisonicOutChannels フィールドは 2 つに設定されます。この一般的なシナリオでは、プラグインは空間化されたデータを最初の 2 チャンネルに出力し、他の 2 チャンネルの出力はゼロです。

2017.1 の Unity アンビソニックソースフレームワークは、1 次と 2 次のアンビソニックスをサポートします。プラグインインターフェースには、バイノーラルステレオ、クワッド、5.1、7.1 の出力をサポートする情報が含まれていますが、サポートのレベルは、プラグインによって決定されます。初期段階では、まだ、アンビソニックデコーダープラグインが 1 次アンビソニックソースとバイノーラルステレオ出力をサポートすることだけが期待されています。

現在のフレームワークには、利用可能なアンビソニック形式のいずれかに特に対応するものはありません。クリップのフォーマットがアンビソニックのデコーダープラグインの予想される形式と一致する場合は、すべてうまく作動するはずです。しかし、現在の計画では、Unity にとって好ましいアンビソニックフォーマットは、B-format で ACN コンポーネント順と SN3D の正規化を伴っているもの、としています。


Audio プロファイラー
オーディオクリップ