Meta XR Audio SDKを試す
はじめに
Meta XR Audio SDKの各機能を以下の条件で試してみる。
- M1 Mac
- Unity 6
- iPhone 15 Pro
Audio SDK 概要
以下のような空間オーディオ機能を提供している。
- Audio Sourceの空間化
- 室内音響(反射音や残響音の生成)
- アンビソニックオーディオの再生
公式ウェブサイト
Audio SDK セットアップ
以下の記事にセットアップ方法が説明されている。
このときSamplesのExample Scenesもインポートしておく。
Audio Sourceの空間化
以下の記事に沿って、Audio Sourceからの音が立体的に聞こえるようにする。
以前Oculus IntegrationのSpatializerを試した際M1 Macでは使えなかったが、Meta XR Audio SDKはM1 Macでも使える。また、MetaXRAudioSource.cs
やMetaXRAudioSourceExperimentalFeatures.cs
をAudio Sourceにアタッチすると、より多くのパラメータを制御できるようになる。ただし、反射音や残響音を生成するには、後述する音響モデルの設定をする必要がある。
MetaXRAudioSource.csで制御できるパラメータ
-
Enable Spatialization
: 空間化の有無を切り替える。基本的に有りのままにする。 -
Gain Boost dB
: 音量を上げられる。 -
Enable Acoustics
: 反射音や残響音の有無を切り替える。ただ、有りにするとCPUを消費する。 -
Reverb Send dB
: 後部残響音/後期残響(late reverberation)の大きさを調整する。
MetaXRAudioSourceExperimentalFeatures.csで制御できるパラメータ
-
HRTF Intensity
: HRTFを適用する度合いを調整する。0にすると基本的にステレオパンに簡略化される。 -
Volumetric Radius
: 音源を球体と見た際の半径を調整する。通常音源は点(つまり半径0)として扱われるが、半径が0より大きい球体として扱った場合その球体の中に入ると音源から聞こえる音が周囲全体に拡散する(つまり球体の中心から聞こえる感覚が薄まる)。
Volumetric Radius 関連記事
-
Early Reflections Send dB
: 初期反射音(early reflection)の大きさを調整する。 -
Reverb Reach
: 距離に応じて直接音と残響音の比率がどの程度増加するかを調整する。0だと残響音は直接音とともに減衰するが、1だと直接音が減衰するに従って残響音は増加する。 -
Occlusion Intensity
: オクルージョンの強さを調整する(ただし後述するAcoustic Ray Tracingモデルの使用時のみ)。1だと音源が物陰に隠れている場合完全に音が遮られる。 -
Directivity Intensity
: 指向性の強さを調整する。1に近づくほど指向性が高くなる(ただしDirectivity Pattern
をHuman Voice
に設定している場合のみ)。 -
Directivity Pattern
:Human Voice
に設定すると、音源が指向性を持つ。 -
Direct Enabled
: 直接音の有無を切り替える。
室内音響
2つの音響モデルが提供されている。
- Shoebox Room: 長方形の部屋における音響を手動で制御する。比較的負荷が軽い。
- Acoustic Ray Tracing: 制御のプロセスを自動調整することでより自然な音響をつくり出す。
Shoebox Room
以下の記事を参考に、反射音や残響音を生成する。
シーン内の1つのGameObjectにMeta XR Audio Acoustic Properties
をアタッチすると、音響シミュレーションのための直方体の部屋が配置される(Game Viewには表示されない)。
Lock Position To Listener
をtrueにすると、部屋の中心はAudio Listenerがアタッチされているオブジェクトになる。通常はMain CameraにAudio Listenerがアタッチされているので、部屋はMain Cameraに追従することになる。falseにすると、部屋の中心はMeta XR Audio Acoustic Propertiesがアタッチされているオブジェクトになる。
部屋のスケールを調整したり壁などのマテリアルを選択することができ、これらは反射音や残響音の生成に影響する。
Acoustic Ray Tracing
公式ウェブサイト
以下の記事に従って設定する。
- 空のGameObjectを配置して
Meta XR Acoustic Geometry
をアタッチし、シーン内の3Dオブジェクトをこの子オブジェクトにする。 - もう一つ空のGameObjectを配置して
Meta XR Acoustic Map
をアタッチし、Bake Acoustics
をクリックする。これにより、シーン内の3Dオブジェクトで構成された空間に基づいて音響シミュレーションが行われる。
マテリアル
各3Dオブジェクトに音響シミュレーション用のマテリアルを設定できる。
-
Acoustic Material Properties
アセットを作成する。Built-inのプリセット(レンガやカーペットなど)を選択するか、周波数ごとの吸収率などを自分で設定する。 - 3Dオブジェクトに
Meta XR Acoustic Material
をアタッチし、作成したAcoustic Material Properties
アセットを選択する。
コントロールゾーン
コントロールゾーンを配置すると、そのゾーン内で残響時間(RT60)や残響レベルを調整することができる。
- GameObjectに
Meta XR Acoustic Control Zone
をアタッチする。 - コントロールゾーンのTransform(Position, Rotation, Scale)はアタッチされたGameObjectのTransformによって決まる。
アンビソニックオーディオの再生
以下の記事を参考に、アンビソニックオーディオを再生する。
以下のウェブサイトからアンビソニックオーディオのサンプルを入手できる。