Closed16

Unity向け立体音響SDKをいろいろ試す

ピン留めされたアイテム
Ekito|駅人Ekito|駅人

以下のSDKを試してみた。

  • Oculus Integration
  • Resonance Audio
  • Steam Audio
  • Microsoft Spatializer
Ekito|駅人Ekito|駅人

※Windowsならインポートできた

Windowsでプロジェクトを作り直したらインポートできた。
というわけで、Oculus Integraionを試した作業環境は以下の通り。

  • Windows 11
  • Unity 2021.3.16f1
  • Oculus Integration 47.0
Ekito|駅人Ekito|駅人

インポート&シーン作成

  1. Oculus Integrationをインポートする際に、Spatializerのフォルダのみにチェックを入れてインポートする(他のフォルダにもチェックを入れると、OpenXR関連でエラーが発生した)。
  2. こちらの記事( https://xrdnk.hateblo.jp/entry/2020/07/02/224809 )の「手順」を参考に、Audioの設定をする。
    2-1. Edit > Project Settings > Audioを開く。
    2-2. DSP Buffer SizeをBest latencyにする。
    2-3. Spatializer PluginをOculusSpatializerにする。
  3. 音源となるオブジェクトを作成し、Audio SourceとONSP Audio Sourceスクリプトをアタッチする。ONSP Audio Sourceスクリプト内のOCULUS ATTENUATIONのEnabledにチェックを入れる。
  4. 音を受け取るオブジェクト(自分の場合はAR Camera)にAudio Listenerをアタッチする。
Ekito|駅人Ekito|駅人

インポート&シーン作成

こちらの公式ガイドを参考にしながら、シーンを作成する。
https://resonance-audio.github.io/resonance-audio/develop/unity/getting-started.html

  1. ダウンロードしたパッケージをインポートする。このとき、以下のようなScript Updating Consentというウィンドウが表示されたので、Yesをクリックする。

    また、「"audiopluginresonanceaudio.bundle"は、開発元を検証できないため開けません。」というウィンドウも表示されたので、システム環境設定 > セキュリティとプライバシー > ダウンロードしたアプリケーションの実行許可から「このまま開く」をクリックする。
  2. Audioの設定をする。
    2-1. Edit > Project Settings > Audioを開く。
    2-2. Spatializer PluginをResonance Audioにする。
    2-3. Ambisonic Decoder PluginをResonance Audioにする。
  3. 音源となるオブジェクトを作成し、Audio SourceとResonanceAudioSourceスクリプトをアタッチする。公式のサンプル(Assets > ResonanceAudio > Demos > Scenes > ResonanceAudioDemo)の設定に倣って、AudioSourceの
    • OutputにMaster(ResonanceAudioMixer)を登録する。
    • Spatialize、Spatialize Post EffectsとBypass Reverb Zonesにチェックを入れる。
    • Spatial Blendを1にする。
  4. 音を受け取るオブジェクト(自分の場合はAR Camera)にAudio ListenerとResonanceAudioListenerスクリプトをアタッチする。公式サンプルの設定に倣って、ResonanceAudioListenerのOcclusion MaskでIgnore Raycastのチェックを外す。
Ekito|駅人Ekito|駅人

インポート&シーン作成

こちらの公式ガイドを参考にしながら、シーンを作成する。
https://valvesoftware.github.io/steam-audio/doc/unity/getting-started.html

  1. ダウンロードしたファイルの中からSteamAudio.unitypackageをインポートする。
  2. Audioの設定をする。
    2-1. Edit > Project Settings > Audioを開く。
    2-2. Spatializer PluginをSteam Audio Spatializerにする。
    2-3. Ambisonic Decoder PluginをSteam Audio Ambisonic Decoderにする。
  3. 音源となるオブジェクトを作成し、Audio Sourceをアタッチする。Audio SourceのSpatializeにチェックを入れて、Spatial Blendを1にする。
  4. 音を受け取るオブジェクト(自分の場合はAR Camera)にAudio Listenerをアタッチする。
Ekito|駅人Ekito|駅人

インポート&シーン作成

こちらの公式ガイドを参考にしながら、シーンを作成する。
https://github.com/microsoft/spatialaudio-unity/blob/develop/Documentation/QuickStart.md#1-add-the-spatializer-package-reference-to-manifestjson

  1. ダウンロードしたパッケージをインポートする。
  2. Audioの設定をする。
    2-1. Edit > Project Settings > Audioを開く。
    2-2. Spatializer PluginをMicrosoft Spatializerにする。
  3. Microsoft Spatializer Mixerをプロジェクトに追加する。
    3-1. Assetsフォルダを右クリックしてCreate > Audio Mixerをクリックし、Audio Mixerを作成する。
    3-2. 作成したAudio MixerをダブルクリックしてAudio Mixerウィンドウを開く。ウィンドウ内のAudio Mixerを右クリックしてAdd effect at bottom > Microsoft Spatializer Mixerをクリックする。
  4. 音源となるオブジェクトを作成し、Audio Sourceをアタッチする。Outputに先ほど作成したAudio Mixerを登録する。Audio SourceのSpatializeにチェックを入れてSpatial Blendを1にする。
  5. 音を受け取るオブジェクト(自分の場合はAR Camera)にAudio Listenerをアタッチする。
Ekito|駅人Ekito|駅人

以上、立体音響SDKを4つほど試した。どれを使っても基本的な立体音響は実現できた(ただしOculus IntegrationとMicrosoft SpatializerはWindowsのみ対応と思われる)。応用機能はそれぞれのSDKによって異なってそうなので、引き続き調べて比較してみたい。

このスクラップは2023/07/02にクローズされました