レッスン 7
目次
多くのビデオゲームはレベル毎に構成されており、特定のレベルのみに関連付けられたサウンドがあります。例えば、最後のゲームレベルが完了した際に、勝利のお祝いのシーンでのみ聞こえる花火のサウンドなどです。プレイヤーがゲームで、そこまで到達していなければ、サウンドをメモリにロードする必要はありません。
本ビルドのCubeデモでは、dcp_the_coreというCubeデモの特定レベルでのみ聞こえる台詞を含むMap Voicesと呼ばれるActor-Mixerオブジェクトがあります。
-
Map VoicesActor-Mixerを開き、その中に包含されているSound SFXオブジェクトのいずれかを試聴してみてください。
Map Voices Actor-Mixer内のオブジェクトはdcp_the_coreという一か所のレベルでのみ使用されます。このレベルだけに読み込まれるSoundBankに設定することで、メモリーを効率よく管理できます。
-
Project Explore内で、SoundBanksタブを選びます。
これまでのレッスンで使用してきたプロジェクトと違い、本プロジェクトにはSoundBankが1つも含まれていません。ゲームにはそれぞれ最低一つのSoundBankが必要で、それはSoundBankにはオーディオアセットの他に、そのオーディオがどのように再生されるかの情報が含まれているからです。これまでのプロジェクトでは、1つのSoundBankしか使いませんでしたが、今度のプロジェクトでは、ゲームを通して使うメインのサウンド用と、dcp_the_coreという特定ゲームレベルで使うサウンド用の、2つのSoundBankを使います。
-
Default Work Unit を右クリックし、 New Child > SoundBank を選択します。
-
このSoundBankをMainと命名します。
ゲームプログラマーはゲームエンジンのコードにロードするSoundBankの名前を使うので、あなたのSoundBankの名前が正しいことが非常に重要です。
-
同じDefault Work Unit内にDCP_the_coreという名前の別のSoundBankを作成します。
これで、どのサウンドを、どのSoundBankに含めるのかを指定する準備が整いました。
-
Wwiseメニューバーで Layouts > SoundBank を選択するか、 F7 を押します。
-
SoundBank Managerで Default Work Unit を展開します。
作成した2つのSoundBankが確認できます。
各SoundBankに、データサイズに関する列があります。現在、どちらのSoundBank値も0ですが、これはSoundBankに何もアサインされていないからです。また、Max Size列に、SoundBankに想定されるメモリ予算値を単位byteでアサインできます。メモリ予算は、しばしばゲーム開発プロセスの初期に決定されますが、開発期間中に変更されることもあります。あなたが使うメモリリソースは、ゲームのグラフィックなどほかの部分に使えなくなるので、自分のメモリ予算を知り、それを守ることが大切です。
Max Sizeの設定は技術的な制限を設定しているわけではありません。予算を超えた場合の警告を表示するための設定になります。
-
Main SoundBankのMax Size値を 9,500,000 に設定し、DCP_the_coreのサイズを 6,000,000 に設定します。
次に、SoundBankにオブジェクトをアサインする必要があります。これまでのレッスンでは、EventやオブジェクトをSoundBankにドラッグすることで、必要なオーディオアセットが自動的にそのSoundBankの一部になるようにしました。
dcp_the_core レベルのみでトリガーされるEventを特定する必要があります。幸い、レベル専用のEventには、レベル専用であることを示す固有のプレフィックスがつくので、特定は簡単です。
-
DCPのプレフィックスが付いたEventを全て選択し、DCP_the_core SoundBankへドラッグします。
これまでのレッスンのプロジェクトでは、DCP_Music EventがMain SoundBankに入っていたので、ゲームのどのレベルでもMusic Trackを聞くことができました。しかし本レッスンでは、DCP_Music イベントを 、このゲームの最後に使用する特定のゲームレベルがロードされた時だけにロードされる、DCP_the_core SoundBankに入れます。つまり、本レッスン後半で使用するレベルと異なるレベルでゲームをプレイすると、音楽は再生されません。
DCP_the_coreのデータサイズは、まだ増えていません。SoundBankをまだ生成していなからで、Main SoundBankの中身を入れてから生成します。
-
残りの全てのEventをMain SoundBankへドラッグします。
Event ViewerでDefeated_Bauulを選択してからリストの最後までスクロールし、Shiftを押しながら一番最後のEventであるWeapLoadをクリックすれば、必要なEventを全て一回で選択できます。
次に、どのSoundBankを生成するのかを指定します。
-
Main とDCP_the_core のSoundBank、Windows(Macintoshコンピューターで実行中であれば、Mac)プラットフォーム、言語はEnglishのチェックボックスを選択します。
-
Generate Selected をクリックします。
Generating SoundBanksウィンドウが表示され、あなたがSoundBankに追加したばかりのEventを再生するのに必要な全てのオーディオアセットを、システムが発見して変換する進捗状況が示されます。
-
Generating SoundBanksウインドウを閉じます。
-
Wwiseツールバーを見て、生成したばかりのSoundBankのプラットフォーム(MacまたはWindows)と同じプラットフォームがPlatform Selectorで設定されていることを確認します。
SoundBank Managerを見ると、どちらのSoundBankのData Size(データサイズ)も予算を超過していて、Free Space(空きスペース)は赤字の負の数となっているのが分かります。これが、予算範囲内に各SoundBankを収めるために削減しなくてはならない、データのbyte数です。