サウンド再生についての続きです。
Unity5よりオーディオ再生先をグループ指定して行う事は前回書きました。つまり音はグループ単位で管理する事が出来る訳ですが、オーディオに付与するエフェクトもグループ単位で指定することが出来ます。
サウンドのエフェクト
サウンドにエフェクトを付与すると、音的に色々と面白い効果を付与することが出来ます。例えば洞窟の中を歩いた時の反響音、例えば通信時のノイズ、例えば耳が詰まって声が良く聞こえない状況。そういったサウンドに対するエフェクトを付与する事で臨場感を得る事が出来る訳です。
https://kharma.unity3d.com/en/#!/content/32024
サウンドにエフェクトを付与する
エフェクトはグループ単位で設定します。グループの下の Add.. を選択し、エフェクトを追加すればエフェクトが追加出来ます。
ビルトインでどのようなエフェクトがあるのかは、色々と見ていた限り、このサイトの説明が分かりやすくて良いように思います。
サウンドにエフェクトをかける方法 (After Effects CS6)
ちなみにエフェクトはC++を使用して自作出来るみたいです。
Unity-Technologies / NativeAudioPlugins — Bitbucket
他のサウンドに影響を与えるエフェクト
自身のサウンドを変更するだけではなく、他のサウンドに影響を与えるサウンドもあります。例えば「キャラクターが声を出している時はサウンドのボリュームを下げる」等です。
ここでは「Send」と「Recieve」もしくは「Duck Volume」を使用します。Sendはその名の通り音の情報を送信する機能で、「Recieve」や「Duck Volume」は送信した音情報やボリュームを受けてエフェクトを操作するエフェクトです。
実際に「声が出ている時は音を小さくする」をやってみます。まず、BGMとVoiceのグループを追加し、それぞれBGMとボイスを再生するAudio Sourceから接続します。
次にBGMのグループにDuck Volume、VoiceグループにSenderエフェクトを追加します。また、Duck VolumeグループをドラッグしAttenuationより上にします。エフェクトは上から順なので、こうすることでボリュームコントロールより前に送受信のボリュームコントロールが行えます。
Voiceグループを選択中にInspectorを確認するとSendグループの設定項目があるので、RecieveをNoneからBGM/Duck Volumeへ変更し、Send Levelを-80dB(無音にいして送信)から0dB(音量そのまま送信)へ変更します。
後は音を受信した際に何らかのアクションを起こすしきい値(Threshold)を下げてやります。そうすることで、声が出ている間は音を下げる…が実現出来ます。
この黄色いバーが音量な訳ですが、どうやらUnity 5.0.2fのエディタではコレが正常に表示されないバグがあるらしく、再生時にAttenuationとDuck Volumeを入れ替える事で動作するようになります。音を再生しても音量が変わらなかったりバーが動かない場合は試してみると上手くいくかもしれません。
次は新しく追加されたオーディオフォーマットのPMC、Vorbis、ADPMCについて