この記事のゴール

「音がどの方向から発生しているのかが感覚的に分かる」立体音響を実装する.

映画の4Dみたいな音響がMetaquest3では再現できるとのことで実装しました.今までとは比べ物にならないほどめちゃくちゃ簡単にできました.
他にも屋内での反射や反響,障害物での遮蔽も再現できるようですが,それはまた実装したときに書きます.

音声ファイルの準備

拡張子は.wav,.mp3,.ogg,.aiff / .aifが対応.

UnityのAssetsフォルダ内に「Audio」フォルダを新規作成し,音声ファイルをコピーする.

MetaXR Audio SDKのインストール

https://assetstore.unity.com/packages/tools/integration/meta-xr-audio-sdk-264557 からMetaXR Audio SDKをインストールし,Window > Package Managerでインポートする.

デフォルトで設定済みだと思うが,以下も念のために確認する.

  • OVRCameraRig>TrackingSpace>CenterEyeAnchorにAudioListenerコンポーネントが含まれているか
  • Edit>ProjectSettings>Audio内のSpatializerPluginがMetaXRAudioになっているか

シーンの編集

Bulding Block > Audio > Spatial Audioを追加する.
(Hierarchy右クリック>Audio>AudioSourceでもできるが,こちらの方が立体音響のための設定がデフォルトでされているので楽.)

Spatial AudioのInspectorを開き,AudioSourceコンポーネント内を以下のように調整する.

  • Spatial Blendを1にする
  • Spreadを音源の用途に応じて設定(以下はChatGPTさんの提案)
    • 方向を意識したいなら0~90度
    • BGMなら180~360度
    • SEなら60~180度
    • 環境音なら360度
  • MinDistanceとMaxDistanceを適宜調整

Bulding BlockのSpatial Audioは以下のスクリプトがデフォルトでついている.立体音響の再現であればデフォルトのままでいい.

  • MetaXRAudioSource.cs
  • MetaXRAudioSourceExperimentalFeatures.cs

SpatialAudioをCamera Rigから離して配置してビルドすれば,その方向から音がしているのが確認できる.また,音源に近づくと音が大きくなり,離れると小さくなることもわかる.