【Unity / Polyspatial】Apple Vision Proで空間オーディオの調査
UnityでApple Vision Pro向けアプリを開発する際にはPolyspatialパッケージを使用しますが、PolyspatialはReality Kitの空間オーディオに対応していません。
この記事ではApple Vision ProでのUnity標準オーディオの対応状況と、Apple Vision Proでの空間オーディオについて調べるとよく出てくる2つの空間オーディオプラグインPHASEとResonance Audioについて検証します。
検証にはvisionOS 2.6, Unity 6000.1を使用しています。
空間オーディオとは
そもそも何ができていれば空間オーディオを実現できていると言えるのでしょうか?
上の記事を参考にすると、まず第一に空間オーディオに求められるものとして音から音源の位置を推定できることがあげられそうです。音源の位置を推定するためには音源と頭の向きによる左右の耳に音が届くまでの時間差や、距離減衰による左右の耳の音量差、距離による高音域の減衰などを再現できていることが必要そうです。
音源の位置推定の他にも環境に応じた残響音(リバーブ)、遮蔽物による減衰、音の指向性の再現も空間オーディオに含まれるようです。
Unity標準オーディオ
Polyspatialのドキュメントには、オーディオの対応状況についてNot Fully Spatialized
となっています。
これは標準オーディオの3D Sound機能により距離による減衰と音源との向きによる音量差(定位の変化、パンニング)のみに対応しているということだと考えられます。
実際に試してみると、距離による減衰は機能していることがわかりますが、定位の変化は感じることができませんでした。Apple Vision Proでは構造的に片方の耳側から鳴っている音が反対の耳にも聞こえるので、その影響もありわかりづらくなっているのではと考えています。
PHASE
PHASEはAppleが提供する空間オーディオプラグインでUnityパッケージとして利用することができます。
使用方法は以下の記事が詳しいのでこの記事では割愛します。
PHASEを利用することで音が鳴っている方向を感じ取ることができ、壁による遮蔽も機能していました。ただし、アプリがバックグランドから復帰すると音が出なくなるという問題があり、この問題を解決することができませんでした。
Resonance Audio
Resonance AudioはGoogleが提供する空間オーディオプラグインでUnityパッケージとして提供されていますが、すでに開発が終了しておりvisionOS向けのビルドは存在していません。
ソースコードは公開されているためvisionOS向けに独自でビルドして使用しているという事例もありましたが、自分のビルド力ではビルドできませんでした。
Resonance AudioをFMOD Plugin経由でUnityで使用しているという情報もフォーラムにあり、こちらはFMODのサポートにvisionOSに対応したFMOD Pluginビルドを提供してもらっているようです。
まとめ
Unityを用いたApple Vision Pro向けアプリで空間オーディオを実現する方法について調査しました。正直なところ、今のところ現実的に使える方法がないというのが結論です。そもそも情報が少ないというのもあり、もし知見があれば教えていただきたいです。一番良いのはPolyspatialがReality Kitの空間オーディオに対応することなのですが、フォーラムなどを見ていると残念ながらすぐに対応することはなさそうです。
Discussion