Unity
VR

3Dサウンド ~Resonance Audio編~

導入方法

Googleが出しているSDKなので、下記のUnity向けインテグレーションを参考に導入していきます。
Resonance Audio公式サイト

GithubのReleasesから最新のUnityパッケージをダウンロードし、Unityにインポートします。
パッケージの配布場所

最新版は2018年2月28日時点でv1.2.0ですのでこちらで進めていきます。

インポートが終わったら、まずはじめにAudioManagerを開いて使用するプラグインをResonance Audioに変更します。

SnapCrab_NoName_2018-2-28_11-33-1_No-00.png

Ambisonic Decorder PluginはAmbisonics音源を使用することがない場合そのままでも大丈夫です。

Assets/ResonanceAudio/Demos/Scenes以下にデモシーンがあるのでそこから試すことができます。

基本的には以下の4つのコンポーネントを使用します。

  • ResonanceAudioListener
  • ResonanceAudioSource
  • ResonanceAudioRoom
  • ResonanceAudioReverbProbe

ResonanceAudioListener

AudioListenerと併用します。
無くても問題はないのですが、いくつか追加でパラメーターが調整できるようになります。

また、このコンポーネントでUnityシーンの音場をAmbisonics音源として録音することも可能です。
ただし、Editor上非実行時のみ録音可能という制限付きです。

SnapCrab_NoName_2018-2-28_11-52-48_No-00.png

ResonanceAudioSource

AudioSourceと併用します。
こちらも無くても問題ないです。いくつか追加でパラメーターが調整できるようになります。
AudioSource側の設定をSpatial Blend3DSpatilizeSpatialize Post Effectsオンにします。

ただし、Ambisonics音源を再生する場合は、Spatial Blend2DSpatilizeSpatialize Post Effectsオフにします。
Ambisonicsは音場を録音し、再生する機能なのでオブジェクトベースではなく、シーンベースになります。
そのため、ここでは3Dではなく2Dで設定します。
少しややこしいですが、Unityでは3Dがオブジェクトベースで、2Dがシーンベース、チャンネルベース扱いになります。
立体音響についてはこちらの記事が参考になります。
空間音声入門:360度VR動画時代の音響とは(イベントレポート)

SnapCrab_NoName_2018-2-28_11-59-5_No-00.png

ResonanceAudioRoom

Dyanamic early reflectionsLate reverberationの反射処理を行います。反射音に関しては下記のサイトが分かりやすいです。
Early Reflection(初期反射音)と他の反射音の違いって何?

部屋のサイズに合わせて配置し、Left Wall、Right Wall、Floor、Ceiling、Back Wall、Front WallのMaterialを設定します。

Surface Materials
Transparent 設定なし
Acoustic Ceiling Tiles 吸音材(音楽室の壁)
Brick Bare 裸のレンガ
Brick Painted 塗装されているレンガ
Concrete Block Coarse 粗いコンクリート
Concrete Block Painted 塗装されたコンクリート
Curtain Heavy 厚手のカーテン
Fiberglass Insulation ガラス繊維断熱材
Glass Thin 薄いガラス
Glass Thick 厚いガラス
Grass ガラス
Linoleum On Concrete リノノウム床張りされたコンクリート
Marble 大理石
Metal 金属
Parquet On Concrete 合わせ木床張りされたコンクリート
Plaster Rough 粗い石膏
Plaster Smooth 滑らかな石膏
Plywood Panel 合板
Polished Concrete Or Tile 磨き上げられたコンクリート、タイル
Sheetrock 石膏ボード
Water Or Ice Surface 水面、氷面
Wood Ceiling 木製の天井
Wood Panel 木製のパネル

ResonanceAudioReverbProbe

場所によって細かくリバーブの調整を行うことができます。
またこのリバーブ設定は事前計算で焼き込むことが可能です。
ReverbBakingDemoシーンを見るとかなり細かく設定できることがわかります。

Only When Visibleをオンにすることで建物の中にいる時だけリバーブ処理のかかった音を聞くことができるようになります。
例えばShapeをSphereにして設置した際に、Sphere内には入ってはいるが、建物の中には入っていないというシチュエーションが発生するときに使える機能です。

reverb.png

チェックボックスをオンにすることでSphere内に入っている、かつ、建物の中に入ってるときのみリバーブの効いた音を聴くことができるようになります。

まとめ

ResonanceAudioでできること

  • Resoncance Audio PluginのHRTFの適用
  • Dyanamic early reflectionsとLate reverberationの反射処理
  • 反射素材の設定(全22種類)
  • Reflection ProbeによるReverbのBaking
  • Ambisonics音源の再生、録音(非実行時のみ)