VRコンテンツにおいてレンダリングは非常に重要な要素ですが、没入感を高める要素として音も非常に重要な要素です。
今回は、Unityでの3D音響システムをさらに進化させるOculus Audio SDKについてご紹介したいと思います。

Oculus Audio SDKについて


Oculus社から出ている3D音響システムのSDKです。
OculusのHMDとHTC VIVEでも使用できます。
Unityに標準で搭載されている3D音響システムを拡張するようなイメージです。
SDKは以下のURLからダウンロードできます。
https://developer.oculus.com/audio/

ダウンロードしたファイルの「OculusNativeSpatializer.unitypackege」をUnityにインポートしてください。
まずは、デモシーンでどんな風に聴こえるか確認してみましょう。

始めに、「Edit」>「Project Settings」>「Audio」を開いてください。
「Spatializer Pulgin」を「OculusSpatializer」に、「DSP Buffer Voices」を「Good latency」に設定します。
インポートした「OSPNative」フォルダ配下にある「RedBallGreenBall」シーンを開きます。
イヤホンかヘッドフォンをしてシーンを再生すると、ループで音楽が流れます。
体験者はカプセルで表現されており、マウスを動かす事でy軸回転が可能です。
赤と緑のスフィアはそれぞれ、演奏と歌の音源となっており、
カプセルの向きによって左右の音が変化することが確認できます。

Oculus Audio SDKの使い方


「ONSP Audio Source」スクリプト


通常の音響システムの構築と同様、Game Objectに音源となるAudio Sourceをアタッチし、「ONSP Audio Source」スクリプトもアタッチします。
Audio Mixtureに新しく「SpatializerMixer」が加わっているので、通常の音響システム構築と同様、配下にSEやBGMなど必要なグループを作成します。特にグループを分けて音源を設定する必要がない場合は、Masterのみで大丈夫です。
Audio Sourceの設定は、「Spatialize」にチェックを入れ、Audio Mixtherに先程作ったをグループかMasterを設定します。

「ONSP Audio Source」の各項目は、以下のようになります。
・Spatialization Enabled:空間化を有効にするか
・Reflections Enabled:反射を有効にするか
・Gain:ゲイン(dB)
-OCULUS ATTENUATION-
・Enabled:距離による音の減衰を有効にするか
-RANGE(0.0~1000000.0 meters)-
・Minimum:減衰の範囲の最小値
・Maximum:減衰の範囲の最大値

「OculusSpatalizerReflection」エフェクト


「OculusSpatalizerReflection」エフェクトでは、屋内や洞窟などに音源がある場合などの反射の設定やその範囲を設定できます。
各設定項目の内容は、以下のようになります。

エフェクトの各設定項目は、以下のようになります。
-GLOBAL SCALE(0.00001〜10000.0)-
・Reflections Engine On:反射を有効にするか
・Late Reverberation:残響を有効にするか
-ROOM DIMENSIONS(meters)-
・Width:反射部屋の幅
・Height:反射部屋の高さ
・Length:反射部屋の長さ
-WALL REFLECTION COEFFICIENTS(0.0〜0.97)-
・Left:壁の反射割合(左)
・Right:壁の反射割合(右)
・Up:壁の反射割合(上)
・Down:壁の反射割合(下)
・Back:壁の反射割合(後ろ)
・Front:壁の反射割合(前)
-SHARED REVERB ATTENUATION RANGE(1.0〜10000.0 meters)-
・Minimum:共有の残響減衰範囲の最小値
・Maximum:共有の残響減衰範囲の最大値

「ONSP Reflection Zone」スクリプト


「ONSP Reflection Zone」スクリプトでは、オーディオミキサーのスナップショットを利用することができます。
適応させたい環境のオーディオミキサーをスナップショットで保存し、スクリプトに設定すれば反映されます。

各設定項目の内容は、以下のようになります。
・Mixer Snapshot:オーディオミキサーのスナップショット
・Fade Time:消滅する時間

使ってみて


今回、開発中のプロジェクトでOculus Audio SDKを導入し、没入感が倍増しました。
まさにそこに物があるかのような、人がいるかのような体験ができます。
もちろんメモリやCPUの消費率が上がるので、必要な箇所のみに設置しなければなりません。
今後もさらなる没入感を求めてOculus Audio SDKの設定を色々いじってみたいと思います。