読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Unity 5のサウンド再生機能について(2)音にエフェクトを付与する方法について

f:id:tsubaki_t1:20150531021732p:plain

サウンド再生についての続きです。

 

Unity5よりオーディオ再生先をグループ指定して行う事は前回書きました。つまり音はグループ単位で管理する事が出来る訳ですが、オーディオに付与するエフェクトもグループ単位で指定することが出来ます。

サウンドのエフェクト

サウンドにエフェクトを付与すると、音的に色々と面白い効果を付与することが出来ます。例えば洞窟の中を歩いた時の反響音、例えば通信時のノイズ、例えば耳が詰まって声が良く聞こえない状況。そういったサウンドに対するエフェクトを付与する事で臨場感を得る事が出来る訳です。

f:id:tsubaki_t1:20150531022538p:plain

https://kharma.unity3d.com/en/#!/content/32024

サウンドにエフェクトを付与する

エフェクトはグループ単位で設定します。グループの下の Add.. を選択し、エフェクトを追加すればエフェクトが追加出来ます。

f:id:tsubaki_t1:20150531023044g:plain

ビルトインでどのようなエフェクトがあるのかは、色々と見ていた限り、このサイトの説明が分かりやすくて良いように思います。

サウンドにエフェクトをかける方法 (After Effects CS6)

 

ちなみにエフェクトはC++を使用して自作出来るみたいです。

Unity-Technologies / NativeAudioPlugins — Bitbucket

他のサウンドに影響を与えるエフェクト

自身のサウンドを変更するだけではなく、他のサウンドに影響を与えるサウンドもあります。例えば「キャラクターが声を出している時はサウンドのボリュームを下げる」等です。

ここでは「Send」と「Recieve」もしくは「Duck Volume」を使用します。Sendはその名の通り音の情報を送信する機能で、「Recieve」や「Duck Volume」は送信した音情報やボリュームを受けてエフェクトを操作するエフェクトです。

f:id:tsubaki_t1:20150531030709p:plain

実際に「声が出ている時は音を小さくする」をやってみます。まず、BGMとVoiceのグループを追加し、それぞれBGMとボイスを再生するAudio Sourceから接続します。

f:id:tsubaki_t1:20150531031141p:plain

次にBGMのグループにDuck Volume、VoiceグループにSenderエフェクトを追加します。また、Duck VolumeグループをドラッグしAttenuationより上にします。エフェクトは上から順なので、こうすることでボリュームコントロールより前に送受信のボリュームコントロールが行えます。

f:id:tsubaki_t1:20150531031921p:plain

Voiceグループを選択中にInspectorを確認するとSendグループの設定項目があるので、RecieveをNoneからBGM/Duck Volumeへ変更し、Send Levelを-80dB(無音にいして送信)から0dB(音量そのまま送信)へ変更します。

f:id:tsubaki_t1:20150531031210p:plain

 後は音を受信した際に何らかのアクションを起こすしきい値(Threshold)を下げてやります。そうすることで、声が出ている間は音を下げる…が実現出来ます。

f:id:tsubaki_t1:20150531033252g:plain

この黄色いバーが音量な訳ですが、どうやらUnity 5.0.2fのエディタではコレが正常に表示されないバグがあるらしく、再生時にAttenuationDuck Volumeを入れ替える事で動作するようになります。音を再生しても音量が変わらなかったりバーが動かない場合は試してみると上手くいくかもしれません。

 

次は新しく追加されたオーディオフォーマットのPMC、Vorbis、ADPMCについて