Unityでは音が鳴るのにAppleVisionPro実機だと音が鳴らないんですが!?
visionOS用のアプリを開発をしていたのですが、先日VisionPro実機で音が鳴らない現象に遭遇しました!
しかも厄介なことに、音が鳴るアプリと鳴らないアプリがあるんです。(複数のアプリを開発してました)
解決に3日くらいかかったので、忘れないうちにメモを残します。
シーンの状態
シーンの構成は以下のようにしていました。
- シーン内にAudioSource を設置している
-
Play On Awake
をONにしており、シーン起動時に音が鳴るようにしている
症状
症状としてはこんな感じです。
- UnityEditorでは音がなるが、AppleVisionPro実機では音が鳴らない
- ただし、アプリ起動中にControl Centerを開くと鳴る
録画したので、以下をご覧ください!
VisionProで自作アプリを起動すると、一瞬だけBGMが鳴ってすぐに消えるという現象に遭遇しました!
— segur(せぎゅ)@ARエンジニア (@segur_vita) April 3, 2024
しかもControl Centerを開くと、何故かBGMの続きが鳴るという謎挙動です
同じ症状に悩む人がいるかもなので、録画を残しておきます!
解決方法は引用元Postに載せてます!https://t.co/v7frblQwF1 pic.twitter.com/YdrmgVvQhC
この症状が発生するアプリと、発生しないアプリがあるという状況です。
調べたこと
最初は Play On Awake
がよくないのかと思い、C#から Play
を明示的に実行したりしましたが、解決しませんでした。
仕方なく、Unityプロジェクトを再構築したり、Xcodeをクリーンビルドしたり、いろいろ試しましたが解決しませんでした。
症状が発生するアプリとしないアプリで何が違うのか?設定画面をにらめっこしましたが、決定的な違いは見つけられませんでした…
そんな中、似たような症状がないか調査したところ、以下のページを見つけました!
まさしく同じ症状です!
原因
以下の2つに別々のファイルを指定していたことが原因でした!
- Project SettingsのVolume Window Config
- シーンのVolume Window Config
実際に起きていたこと
- アプリが起動した直後は、Project SettingsのVolume Window Configを読み込まれる
- その際、AudioSourceが音を鳴らそうとする
- その直後にシーン内のVolume Cameraが読み込まれ、そこに設定されている別のVolume Window Configが読み込まれる
- その際、BoundedやUnboundedの設定が変わってしまうと、AudioSourceの音が消えてしまう(理由は不明)
解決方法
以下の2つに同じファイルを設定したら、AudioSourceが鳴るようになります!
- Project SettingsのVolume Window Config
- シーンのVolume Window Config
設定箇所は以下の通りです。
Project SettingsのVolume Window Config
Project Settings > PolySpatial > Default Volume Camera Window Config
にファイルを設定できます。
シーンのVolume Window Config
シーン内に設置した VolumeCamera
の Volume Window Config
にファイルを設定できます。
さいごに
本記事作成にあたり、以下のページを参考にさせていただきました。ありがとうございました。
また、原因調査中にいろいろと助言してくれたみなさま、大変励みになりました!ありがとうございました!