Unity5よりUnityのオーディオ周りに大きな変化がありました。今日はUnity5のオーディオ周りの使い方について確認していきます。
大雑把な機能の変更点としては、大体下のような認識です。
基本的な使い方
Unity5でも基本的な使い方はほぼ変化ありません。つまり、AudioSourceで音を出しAudioListenerで音を聴きます。
一つ大きく変化があったのが、2D Soundの扱いです。Unity4では2D Soundの情報はAudioClip側が持っていたのですが、Unity5からAudioSource側が持つようになりました。
また完全な2D/3Dだけでなく、部分的な2Dといった「何となく音の向きが分かるけど常に音楽が聞こえる」状況も設定可能になりました。
[Unity5] 3D Sound設定 | Unity | Zabaglioneのさもありなん
音を再生するには、Play On Awakeを使用するか、API: AudioSource.Playメソッドを呼び出します。UIのEventから呼び出しもできます。
Unityの新GUI、UGUIのイベント制御について - テラシュールブログ
再生中の音を確認する
Unity5よりプロファイラに現在再生中の音・及び再生中のAudioSourceが確認出来るようになったみたいです。該当オブジェクトの所属するグループや、音量等も確認出来るので中々に良さそうです。
オーディオミキサー
オーディオミキサーはUnity5から追加された機能です。この機能で複数のAudioSourceのボリュームを一括制御/Offにしたり、オーディオグループにエフェクトを付与するといった事が可能になりました。
Audio Mixerを作るには、ProjectブラウザのCreate >Audio Mixerから作成します。
オーディオミキサーを使用するシナリオとしては、音全体・効果音・BGM・ボイスのボリューム制御するがあります。全体の音量を調整すれば全体が減りますが、効果音/BGMは個別に設定できるといった感じです。
Unity - マニュアル: An overview of the concepts and AudioMixer
グループ
これを実現するために、AudioMixerに各要素ごとのグループを作成します。
各要素のボリュームは、ミキサーのボリュームのところで制御します。親のボリュームは子に影響するので、Masterボリュームを操作すると全体のボリュームが増減し、子のボリュームを増減させると、対象のボリュームのみ増減します。
各グループへの所属はAudioSource毎に行います。AudioSourceにはoutputの項目があり、ここにグループをD&Dする事で、所属するグループを設定します。
Unity - マニュアル: AudioGroup インスペクター
また、ミキサーで指定のグループのみ音を出す/指定のグループの音を出さないようにする等も確認出来ます。
スナップショット
スナップショットは、オーディオグループの音量やエフェクトの設定を保存しておき、ブレンド・再現する事ができます。
下のコードは、それをランタイム時に実行するコードです。Snapshot1からSnapshot2へ最終的なブレンドがsnapshot1が0%、Snapshot1が100%になるように、3秒かけて移行します。
また、AudioMixer.SetFloatで指定のボリュームを設定することも出来るみたいです。
次回は各グループに設定できるエフェクトについてです。
参考
[Unite 2015 TOKYO]Unity 5オーディオ新機能の真髄 from Unity Technologies Japan G.K. on Vimeo.