BankやEventをWwiseのみで完結させる
PostEvent()ノードについて
前回使用したこのノードが具体的にどういう処理をしているのかを確認してみる
ノードの底辺にある▼を押すともう一つ引数が現れて、FString型のEventNameと言うものが現れる
このノードが実行される条件が
- Actorの参照がきている
- AkEvent、またはEventNameのどちらかの引数がきている
この二つを満たした時にEventがコールされる、つまり、EventNameさえ書けばAkEventの指定は必要ではなく、というかAkEventはアセットの名前をEventNameとしているだけで、何やらわざわざ同名のAkEventアセットを作る必要がないような気がしてくる
ちなみに参照にとるアクターは、前回自分でAkComponentを作成したが、これが存在していない場合自動で生成してくれる
より詳しい実装はAkGameplayStatics.cppにあるのでC++が読める人は自分で確認して下さい
UE4が生成するAudioBankについて
EventアクターをわざわざUE4側で作る必要がなさそうとなると、どのBankに入れるかという設定をどこでやるのかという問題が出てくる
とりあえずこれは置いておいて、前回UE4側からBankを生成した際、これがどこに生成されたのかを確認する
UE4プロジェクトのContentフォルダ内にWwiseAudioというフォルダがあって、この中にバンクファイルが生成されている(ビルド時にこのフォルダが生成される?)
例えばこういうBankAssetをUE4で作る、このアセット自体はContent内の作成した位置に.uasset形式で存在している、あくまでアセットなのでバンク本体ではない
ここでGenerateBankをこのアセットに対して行うと(イベントの設定はちゃんとやっておく)、先程確認したWwiseAudio\指定プラットフォーム内に.bnk形式のファイルが生成される
これがAudioBankの本体で、前回作成したBankもここに存在しているはず
WwiseでのAudioBank設定
これまではUE4側からGenerateBankを行っていたが、もちろんWwise側でもこれはでき、イベントの関連付けもそちらで行える
ただ、UE4側で作成、生成したBankは一切Wwise側から確認できないので、WwiseからのBank設定と生成を一からやっていく
ここで一度、これまでに生成されたバンクを全て消しておく、なんとなく気持ちの問題です
Wwiseのプロジェクトを立ち上げ、SoundBanksタブから、SoundBanks\Default Work Unitを右クリック、New Child > SoundBank でSoundBankObjectを作成、適当な名前をつけておく
次にメニューのLayouts > SoundBankを押し、エディタのレイアウトを変更すると、中央にSoundBankManagerと言うものが現れる
ここでEventsタブを開き、Bankに入れたいEventObjectをいま作成したAudioBankObjectに向かってDDする、これでイベントとバンクの関連付けができる
Bankの書き出し先の設定
次にビルド設定を行う、いまBankのGenerateをやると、.bnkファイルは
[UE4プロジェクト]\[Wwiseプロジェクト]\GeneratedSoundBanks\Windows
ここに書き出されてしまう、これを先程の
[UE4プロジェクト]\Content\WwiseAudio\Windows
こちらに書き出すように設定する必要がある
ウインドウ上部のUser Settingsを押すとSoundBanks Settingウインドウが立ち上がる
中央にあるOverride Project SoundBank Pathsにチェックを入れ、WindeosのPathを [UE4プロジェクト]\Content\WwiseAudio\Windows にして、右下のOKを押す、これで.bnkがUE4が認識できる位置に書き出されるようになった
WwiseでのBank生成
ProjectExplorerでもSoundBankManagerでも、目的のSoundBankObjectを右クリックして、Generate SoundBank for Current Platformをクリック、ログが表示され、問題ないようなら無事生成されている
一応エクスプローラでも確認しておく、[UE4プロジェクト]\Content\WwiseAudio\Windowsを見て、Wwiseで作成したバンクがあるようなら大丈夫