Unityのオーディオミキサーを使ってみました。
オーディオミキサーはProjectウィンドウで右クリックから新規作成できます。
作られたオーディオミキサーをダブルクリックすると、Audio Mixerウィンドウが開きます。
Mixersの右の+ボタンから、さらにオーディオミキサーを作成できます。
グループ
オーディオソースからは、オーディオミキサーのグループに音信号を入力します。デフォルトでMasterグループがあり、Groupsの右の+ボタンから新しいグループを追加できます。
すると、右側にあるメーターのついた部分が1つ増えました。ここでグループの音量の操作や、エフェクトの追加などができます。
今作ったNew GroupはMasterグループの子になっていることが、Groupsのリストでわかります。このNew Groupを選択した状態で、再度+ボタンを押すと、さらにその子としてグループが追加されます。
右クリックからグループ名を変えられます。
オーディオソースからミキサーへ出力
ゲームオブジェクトにAudio Sourceコンポーネントを付けて、オーディオクリップもアタッチしました。デフォルトではOutputがNoneになっていて、オーディオリスナーに直接出力されます。
右側の円マークから、オーディオミキサーグループを選択すると、オーディオミキサーを経由します。
今、鳥の鳴き声が入った環境音をGroup1に、足音をその子のGroup2に出力しました。オーディオソースでPlay On Awakeのチェックを入れているのでプレイモードにすると再生されます。
グループ毎に音量を変えてみると、Group2では足音だけの音量が変わり、Group1では両方の音量が変わりました。これはGroup2がGroup1の子グループだからです。
プレイモードでオーディオミキサーウィンドウの操作をするには、Edit in Play Modeをクリックします。この後のプレイ中の変更は、ヒエラルキー等での変更と違って、プレイモードが終わっても元に戻りません。
上の動画ではメーターの右の5角形のハンドルを動かしていますが、これは一番下のAttenuationというエフェクトを操作しています。この欄にカットオフやリバーブなどのエフェクトを追加することもできます。
Attenuationの上に、グループごとにS、M、Bのボタンがありますが、これらはソロ、ミュート、バイパスです。ソロはこのグループ以外を、ミュートはこのグループを無音にし、バイパスはエフェクトを無効にします。これらはゲームのプレイ中に変更するためのものではないようです。
スナップショット
オーディオミキサーの状態を保存するにはスナップショットを使います。スナップショットは設定して切り替えたり、ゲーム中にシームレスに遷移させたりできます。
Snapshotsの+ボタンからスナップショットを追加できます。
音量などを変えると、選択中のスナップショットに保存されます。スナップショットを選択して切り替えるとその状態が呼び出されます。
スナップショットの右にある星マークは、ゲームのスタート時に選択されることを表しています。もう一方のスナップショットを右クリックしてSet as start Snapshotで変更できます。
これで、このスナップショットへ星が移りました。
ビュー
Viewsの+ボタンからビューを追加できます。
Groupsの目のマークをオンオフすることで、各グループの表示/非表示を切り替えることができ、その状態が選択中のビューに保存されます。
オーディオミキサーを他のミキサーの子にする
一方のオーディオミキサーをもう一方のミキサーへドラッグアンドドロップしてグループを選択すると、はじめのミキサーの出力がそのグループに入力されます。ここではGroup1を選択しました。
オーディオミキサーの名前を変更したいときはダブルクリックします。
新しいゲームオブジェクトのAudioSourceに雨音のクリップをつけて、今ドラッグアンドドロップした子ミキサーのマスターグループに出力する設定にしました。
すると、Group1の操作で雨の音量もかわります。