SAT04 CREATIVE SPACE

メディア芸術作品、音楽制作、ゲーム開発(UE4)、アート、エンタメなどの創作に関する話題を扱うブログです

【UE4-Wwise】特定の場所で残響を付けるAkReverb Volume実装方法

WwiseDemoGameで使われている例。

Wwise側の設定

とにもかくにも、音側でGame-Defined Auxiliary Sendの設定をして置く必要があります。ゲーム側で動的にAuxバスへのアサインやSendをコントロールできるようにしておきます。
f:id:nowshika:20171029224446j:plain

Use Reverb Volumes

 WwiseDemoMapのレベルブループリントに、「Use Reverb Volumes」ノードを使って、AkReverbVolumeを有効にしています。

https://cdn-ak2.f.st-hatena.com/images/fotolife/n/nowshika/20171029/20171029154527_original.jpg


 プレイヤーキャラクターにCastして、Mesh1PをGetしています。更にMesh1PメッシュにアタッチされているAkComponentをGetしています。これにより銃を打つ音に対してリバーブが有効になります。

AkReverbVolume

音屋的にボリュームというと音量ですが、UE4では容積(体積)という意味で広く使われている言葉です。
https://cdn-ak2.f.st-hatena.com/images/fotolife/n/nowshika/20171029/20171029154450_original.jpg


AkReverbVolumeは、マップではこのように設定されています。Late Reverbの設定で、ボリューム内に入った時に有効になるAux Busと、Send Levelが設定できます。Fade Lateの設定によって、ボリュームに入った瞬間にいきなりAuxBudへのSendが最大にならないようフェードをかける事ができます。

察しの良い方はお気づきだと思いますが、AkReverbVolumeて名前だけどやってる事はAuxに音を送ってるだけなんで、別にリバーブだけじゃなく様々なサウンドデザインに活用出来るはずです。

MyCharacterとMesh1Pの確認

 WwiseDemoMapレベルは、GameModeが設定されていないので、プロジェクト設定の「マップ&モード」のDefault GameModeが有効になってます。

 つまり、MyCharacterがプレイヤーキャラクターPownという事になります。虫眼鏡押せばコンテンツブラウザーで「MyCharacter」が表示されます。

f:id:nowshika:20171029143727j:plain

 MyCharacterを開くと、先程取得した「Mesh1P」メッシュがある事がわかります。
f:id:nowshika:20171029153711j:plain

銃を打つ音(Fire_Weapon)はどうやって鳴らしているか

 これはAkEventから逆引きするのがてっとり速いです。

 コンテンツブラウザーに登録されてる「Fire_Weapon」を選択して右クリックメニューから「リファレンスビュアー」を選択
f:id:nowshika:20171029150535j:plain

 Fire_Weaponを参照しているアセットを、「コンテンツブラウザーで検索」するか、「アセットの編集」で開きます。
f:id:nowshika:20171029150919j:plain

「FPP_Fire」というアニメーションシーケンスの、AnimNotifyとしてAkEventをPostしているのがわかります。
f:id:nowshika:20171029151409j:plain

 ここからアニメーションの仕組みを理解していないと、ちょっとむずかしいですが基本的にリファレンスビューアーで、辿っていけばOKです。アニメーションシーケンス「FPP_Fire」は、アニメーションモンタージュ「FPP_Fire_Montage」が参照しています。

 その「FPP_Fire_Montage」を参照しているのが「MyCharacter」です。やっと戻ってきました。

 インプットアクション「Fire」が発生した時、「Mesh1P」をターゲットした「FPP_Fire_Montage」アニメーションモンタージュが再生され、その「FPP_Fire_Montage」の中の「FPP_Fire」からAkEvent「Fire_Weapon」がPostされて音が鳴っている……と。

「Mesh1P」に紐づけされた音の「Use Reverb Volumes」を有効にする。これがこの記事の最初で紹介したブループリントでやってる事です。
f:id:nowshika:20171029152255j:plain

 これまた蛇足ですが、インプットアクションはプロジェクト設定でされています。

f:id:nowshika:20171029154532j:plain

 なんか、自分のメモ程度に書こうと思ってたら、音とはあまり関係ないUE4の基礎部分まで書いちゃって読みにくくなってしまったので、次回は本当にシンプルに書こうかと……。

補足と注意点

  • AkReverbVolumeの、LateReverb項目「Fade Rate」を0にするとAUXへ音が送られません。仕様なのかBugなのか不明
  • 「Fade Rate」は数字が小さいほどゆっくりとした変化になります。エリアに入った瞬間Reverbをかけたいなら10とかにすると良い。仕様なのかBugなのか不明
  • Wwise側のGame-Defined Auxiliary Send項目のVolumeを0にしていた場合の音量変化は以下の通り
Send Level (UE4側の設定) Wwise側でのSend Volume(dB)
1 0dB
0.5 -6.0dB
0.25 -12dB
  • AkReverbVolumeの下の方にあるToggleの「Enable Late Reverb」で、AuxSendの有効化/無効化が可能

f:id:nowshika:20171029232223j:plain