UnityでサイドチェーンしてSEとBGMの自動バランス調整する話

最近のUnityは音楽制作用DAWのような機能が充実してて、試しにサイドチェーンできるか調べたらできたのでメモ。
 
サイドチェーンというのは音圧上げないと死ぬ病の人たちが発明した音楽用コンプレッサーの使い方で、キック(バスドラム)の音が鳴った瞬間、それ以外のシンセやベースなどの音量を自動的に下げる、というものです。これにより音圧をギリギリまで上げつつ、キックの音をしっかり目立たせ、バックの音にもンッアッンッアッというリズムを生み出すという一粒で三度美味しいワザです。
 
ゲーム制作でいうと、SEやセリフの音が鳴るときにBGMを自動的に下げるというような、よくある状況に応用できます。
 
早速やってみましょう。
 
UnityのWindowメニューからAudio Mixerを選択します。大丈夫、あなたのPersonal(無償)版でもできますから。
 
全然ミキサーっぽくない表示が出て若干不安になりますが、勇気を出して「+」印をクリックし、ミキサー名を入力します。ぼくはこれまでの人生でミキサーに名前をつけるような経験は一度もしたことがなかったので少しとまどいましたが、無難に「mixer」としました。


 

一歩前進しました。でもまだミキサーっぽくないのでGroupsのMasterを選択した状態で「+」をクリックしてトラックを追加します。トラック名はつけたことがあるので迷いません。「SE」と「BGM」にしました。


 

Audio Sourceをふたつ作ります。AudioClipとしては数小節分のキックのサンプリングとシンセのサンプリングループを用意します。サンプリングループは自分で作ると大変なので買ってきました。お金って便利。
 
キックの方はOutputを「SE(mixer)」に、シンセの方はOutputを「BGM(mixer)」にします。



 
サイドチェーンをかけずにそのまま混ぜて鳴らすとこんな感じになります。ふーん。

Download
 
サイドチェーンの登場です。
トラックの下の方の「Add ..」をクリックし、SEは「Send」、BGMは「Duck Volume」を選択します。ミキサーっぽくなってきた。


 
SendのReceiveを「BGM\Duck Volume」、Send levelを最大の「0.00 dB」に設定します。


 
Duck VolumeのThresholdやRelease Timeをこんな感じに設定します。Thresholdは左の方にするほど強くかかるので、最初は強めにして効果を耳で確かめてから丁度いいところまで上げていくと分かりやすいかもしれません。


 
サイドチェーンをかけて鳴らすとこんな感じ。キックがしっかり聞こえて、シンセがンッアッンッアッですね。

Download
 
次に別の音をトリガーにしてみます。
ユニティちゃんのボイスを公式サイトからダウンロードしてきました。
 
普通に混ぜるとこんな感じ。もごもご。

Download
© Unity Technologies Japan/UCL
  
これもキックと同じようにOutputを「SE(mixer)」にします。


 
Duck VolumeのThresholdはさっきより強め。ユニティちゃんが一言しゃべるたびにンッアッってならないようにRelease Timeは長めにします。


 
できた。

Download
© Unity Technologies Japan/UCL

 
ね?簡単でしょ。