Unityに関連する記事です

AudioMixer


 Unity の機能の1つに AudioMixer があります。
オーディオに関するミキシングの設定を行うことができる機能であり、
BGM、SE といった形で目的別のグループを作成してボリュームを一括で制御してマスタリングしたり、
オーディオにエフェクトを追加する機能があります。


参考サイト
Unity 公式マニュアル
Audio Mixer


Unity 公式マニュアル
コンセプトと AudioMixer の概要



完成図



完成図




 仕組みとしては、AudioSource コンポーネントの Output プロパティに AudioMixer を利用することで、
該当する AudioMixer を経由してオーディオを出力することが出来るようになっています。

 このときに経由する AudioMixer のグループにより、音量が制御されたり、エフェクトがかかったりするようになっています。

 またスナップショットやダッキングといった機能もあります(各項目で別途説明します)ので、
しっかりと覚えて活用することが出来れば、オーディオを効果的にゲーム空間に適用することが出来ます。


Master 用の AudioMixer ファイルの作成


 新しく AudioMixer ファイルを作成していきます。
 
 AudioMixer ファイルを管理するためには、Audio フォルダ内に Mixer フォルダなどを作成して管理するとよいでしょう。


フォルダ例





 フォルダ内で右クリックをしてメニューを開き、Create → AudioMixer を選択します。


AudioMixer の作成



 新しく NewAudioMixer ファイルが作成されますので、名前を MasterMixer に変更します。
MasterMixer ファイルをダブルクリックすると、AudioMixer ウインドウが開きますので、操作しやすい位置に配置してください。


AudioMixer ウインドウ



参考サイト
Unity 公式マニュアル
AudioMixer ウィンドウの仕様



 MasterMixer ファイルは、すべてのオーディオの音量などをグループ分けし、管理するための、マスター用のファイルになります。



 続いて、AudioMixer ウインドウ内で操作を行います。
Groups の右側にある + ボタンを押して、新しいグループを2つ作成します。
グループを作成することで、オーディオを分類分けして管理することが出来ます。

 1つは Music、もう1つは SoundEffects とします。
Music は BGM に管理するグループ、SoundEffects は SE を管理するグループです。
名前の変更は右クリックしてメニューから Rename を選択することで行えます。


<手順動画 
動画ファイルへのリンク


<手順動画◆
動画ファイルへのリンク


 Groups の中に子 Groups も作ることもできますが、今回は利用していません。
画像を参考に、Groups の Master の子階層になるように作成してください。(孫のグループは作らないようにします)


Groups



完成図



 以上で MasterMixer ファイルの設定は完成です。


SoundEffect 用の AudioMixer ファイルの作成


 もう1つ AudioMixer ファイルを作成します。Mixers フォルダ内で作成してもよいですが、AudioMixer ウインドウ内で作成を行います。
こちらは SoundEffects、いわゆる SE に関するオーディオを制御するためのファイルです。

 Mixers 内にある + ボタンを押すことで新しい AudioMixer ファイルを作成できます。名前を SoundEffects に変更してください。


<手順動画>
動画ファイルへのリンク


SoundEffects



 MasterMixer ファイルと SoundEffects ファイルは、Mixers 内でファイル名をクリックすることで作業するファイルを変更できます。



 引き続き、AudioMixer ウインドウ内で操作を行います。Mixers 内で SoundEffects ファイルを選択した状態で作業します。

 Groups の右側にある + ボタンを押して、新しいグループを3つ作成します。

 それぞれ、Player、Enemies、Environments とします。
Player はプレイヤーに関連する SE の管理、Enemies は敵に関連する SE の管理、
Environments はそれ以外の環境音やシステム音に関する SE の管理用のグループです。
名前の変更は右クリックしてメニューから Rename を選択することで行えます。


<手順動画>
動画ファイルへのリンク


 Groups の中に子 Groups も作ることもできますが、こちらも今回は利用していません。
画像を参考に、Groups の Master の子階層になるように作成してください。(孫のグループは作らないようにします)


完成図



 以上で SoundEffects ファイルの設定は完成です。


MasterMixer ファイルと SoundEffects ファイルを関連付ける


 MasterMixer ファイルは、すべてのオーディオの音量などを管理するための、マスター用のファイルになります。
こちらに用意した SoundEffects グループに SoundEffects ファイルを関連付けることにより、
SoundEffects ファイルの情報を MasterMixer ファイル内の Group により管理出来るようにします。

 SoundEffects ファイルには4つのグループがありますが、この関連付けを行うことにより、
MasterMixer ファイルの SoundEffects グループによって SoundEffects ファイルのグループを一元管理できるようになります。



 ファイル通しを関連付ける(紐付ける)ためには、該当するファイルを、別のファイルに対してドラッグアンドドロップします。

 今回は、SoundEffects ファイルをドラッグして、MasterMixer ファイルの上にドロップします。
自動的にウインドウが開きますので、MasterMixer ファイル内の Groups に用意してある SoundEffects のグループを選択します。


<手順動画>
動画ファイルへのリンク


 以上の手順により、MasterMixer ファイルの SoundEffects グループと SoundEffects ファイルとが関連付けられました。

 関連付けを行うと、() の部分に、紐づいているファイルとグループ先が表示されます。
今回であれば、(SoundEffects of MasterMixer) と表示されていれば正しい操作になっています。


完成図



 なお今回は関連性を分かりやすくするために、ファイル名とグループ名を同じ名前にしていますが、
これが逆にわかりにくいのであれば、別称に変更して、自分の管理しやすい状況で作業してください。

 以上で設定は完成です。


Snapshot の作成


 Snapshot は、特定のミキシングの設定を保存(キャプチャー)しておく機能です。
例えば、Music グループのボリュームを下げた状態で作成しておくことにより、その Snapshot を選択すれば、
手動でボリュームを操作しなくても、Snapshot を切り替えるだけで
自動的に Music のボリュームを下げたミキシングの設定を即時に反映することが出来ます。

 Snapshot の機能を利用することにより、テーマに合わせて Snapshot を作成しておくことで
テンプレートのような形でミキシングした設定を事前に用意しておくことが出来ます。





 今回はよく利用する機会の多い、無音状態通常(音あり)の状態について Snapshot を作成しておきます。



 Mixers 内の MasterMixer ファイルを選択してください。

 最初から用意されている Snapshot を選択して、右クリックをしてメニューを開き、Rename を選択するか、
Snapshot の部分を左クリック長押しすると、Snapshot の名前を変更できます。

 UnMuted(音あり) に変更します。それ以外はそのままです。
なお、右側に★のアイコンがあるものがデフォルトで利用される Snapshot になります。


<手順動画>
動画ファイルへのリンク


<UnMuted>




 続いて、もう1つ Snapshot を作成します。Snapshot の右上にある + ボタンを押して、新しい Snapshot を1つ作成します。
名前は Muted(無音)に変更します。

 Muted では Master のボリュームを -80 に変更します。これが無音状態です。


<手順動画>
動画ファイルへのリンク


<Muted>



 作成した Snapshot を交互に選択して、それぞれの設定を確認してください。

 以上で完了です。

 そのほかにも、ムービー再生中用の Snapshot、特定の状況用の Snapshot などを用意しておくことで
ゲーム内で動的に切り替えることが可能です。


AudioEffect の設定


 AudioMixer には複数の AudioEffect が用意されています。それらは各グループごとに適用することが出来ます。

 グループを選択した状態で一番下にある Add ボタンを押すか、右クリックでメニューを開いて Add Effect at Top か Add Effect at Bottom を選択すると
選択可能なエフェクトが一覧表示されます。


Add 選択後のエフェクト一覧



 今回は Lowpass Simple と Duck Volume を利用しますが、それ以外のものも試しておくといいでしょう。
Music グループを選択して適用することで、BGM にエフェクトをかけることができますので、試しながら調整してみてください。


参考サイト
Unity 公式マニュアル
Audio Effect







 それでは MasterMixer ファイルを選択し、Music のグループを選択します。このとき Snapshot はどちらの状態(UnMuted、Muted)でも問題ありません。
Add ボタンを押して、Lowpass Simple を追加してください。グループの下段にも追加したエフェクトが表示されます。


<手順動画>
動画ファイルへのリンク


Music グループ



 Music グループにエフェクトが追加されると、インスペクターにもエフェクトの内容が追加されて、追加したエフェクトの設定を行える状態になります。


Music グループ選択時のインスペクター



 Lowpass Simple エフェクトは、Lowpass エフェクトにある Cuttoff freq のみを制御できるようにしているエフェクトです。
より詳細に設定したい場合には、代わりに Lowpass エフェクトを選択してください。


参考サイト
Unity 公式マニュアル
Audio Low Pass Simple Effect




 Lowpass Simple を追加したのでゲームを実行して、Cutoff freq の値を調整してみてください。

 ゲームを実行すると、AudioMixer ウインドウとインスペクターの上部に Edit in Playmode のボタンが追加表示されます。
このボタンを押すことで、ゲーム実行中での AudioMixer の値の調整が可能になります。Volume についても同様です。








 この時に設定した値は、ゲームを停止しても保持されます。

 Lowpass Simple の Cutoff freq の値は 250 - 350 辺りにするとよい加減になりますが、実際の BGM を聞きながら調整を行いましょう。


ダッキングの設定


 ダッキング機能とは、特定のグループのオーディオが再生された際に、その出力を受け取ることで
別のグループのオーディオのボリュームを自動的に下げる(絞る)ことができる機能です。


参考サイト
Untiy 公式マニュアル
AudioGroup インスペクター



 主な利用方法としては、以下のような状況があげられます。

 ・SE 再生時に BGM の音量を下げて SE を聞こえやすくする
 ・音声(ボイス)再生時に BGM の音量を下げて SE を聞こえやすくする

 事前にダッキングの設定をしておくことで、上記のような状態になった際に、自動的に BGM を絞ってくれるような機能を実装出来ます。



 ダッキング機能を利用するためには、オーディオを再生を送信するグループと、送信されたオーディオの情報を受信するグループの2つが必要になります。

 今回は、MasterMixer ファイルにある SoundEffects グループのオーディオを送信側とし、同じく MixerMixer ファイルにある Music グループのオーディオを受信側とします。
送信側を Send、受信側を Duck といいます。

 これらは各グループの上で右クリックをしてメニューを開き、それぞれの項目を選択することで設定できます。



 設定する順番としては、受信側→送信側の順番になります。
 
 最初に、MasterMixer ファイルにある Music グループを選択してメニューを開き、Duck Volume を選択します。
グループの下の方に Duck Volume が追加されます。これで受信側は一旦完成です。


<手順動画>
動画ファイルへのリンク





インスペクター




 続いて、同じく MasterMixer ファイルにある SoundEffects グループを選択してメニューを開き、Send を選択します。
グループの下の方に Send が追加されます。


<手順動画>
動画ファイルへのリンク






 SoundEffects グループを選択した状態でインスペクターを確認してください。新しく追加した Send の内容が追加されています。


インスペクター



 Send の設定項目には Receive という、どのグループにオーディオの情報を送信するかを設定する部分があります。
None になっていますので、こちらのプルダウンメニューを選択し、Music\Duck Volume を選択してください。

 選択して Receive を設定すると Send Level の項目が追加されます。
これはオーディオをどの位のレベル(ボリューム)で送信するかを設定する項目です。
最初は -80 (無音)になっていますので、0 に設定し、最大出力で送信するように設定してください。


<手順動画>
動画ファイルへのリンク


インスペクター 設定後



 これで、SoundEffects グループで出力したオーディオについては、すべて Music グループにも送信されるようになりました。





 あとは、実際に SE を再生しながら、どの位 Music のボリュームを絞るのかを、Duck Volume のエフェクトで設定します。
いまはここまで設定しておけば問題ありません。


完成


 以上で AudioMixer の設定は完了です。

 次は AudioMixer の実装例 です。

 現在はまだオーディオを再生するための機能は作成していませんので、折角設定した AudioMixer も機能していません。
そのため、AudioMixer と AudioSource コンポーネントを連携させる実装を行い、AudioMixer の機能を活用したオーディオ再生ができるようにしていきます。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

3Dトップビューアクション(白猫風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます