このメソッドは、以下の場合に適しています。
ゲームのオーディオアセットやモーションアセットの数が、限定されている。
ゲームのフリーメモリが、大量にある。
もちろん、無駄使いできるメモリのあるゲームは滅多にありませんが、このテクニックの大きなメリットは、使い方と管理が非常にシンプルだということです。このテクニックを使う主な理由は、1つのWwiseプロジェクトを全て、最短時間でゲームに実装できることです。
Wwiseで"All-in-one"バンクを作成するには
1つのSoundBankを作成して、適切な名前を付ける。
このSoundBankを、SoundBank Editorにロードして、以下のアイテムを、Addタブにドラッグする。
“\Actor-Mixer Hierarchy\Default Work Unit”
“\Events\Default Work Unit”
“\Interactive Music Hierarchy\Default Work Unit”(ただし、インタラクティブミュージックを使う場合のみ)
“\Dynamic Dialogue\Default Work Unit”(ただし、ダイナミックダイアログを使う場合のみ)
デフォルトで、Event、Structure(構造)、Mediaの各列のチェックボックスが、全て選択されます。このメソッドは全てを1つのSoundBankに入れるので、チェックボックスの選択をそのままにします。
![]() |
注釈 |
---|---|
新しいプロジェクトにあるのは、Default Work Unitだけです。もしこれ以外のWork Unitを作成した場合は、必要に応じてこれらのWork UnitもSoundBankに入れます。 |
この1つのSoundBankに全てのWork Unitを追加できたら、SoundBankを生成して、生成されたバンクフォルダをゲームアプリケーションにコピーする。
"All-in-one" SoundBankを、ゲームに実装するには:
今回の例のゲームのSoundBankは1つだけなので、ゲームを初期化する時にこれをロードするだけである。もちろん、最初にサウンドエンジンを正しく初期化する必要がある。
"All-in-one"SoundBankをゲームにロードする方法として、以下のサンプルコードを参照してください。
// Initialize the sound engine here. ... // Load the Init bank and the "All in one" SoundBank. AkBankID bankID; // Not used in this sample. AKRESULT eResult = AK::SoundEngine::LoadBank( L"Init.bnk", AK_DEFAULT_POOL_ID, bankID ); if( eResult == AK_Success ) { eResult = AK::SoundEngine::LoadBank( L"MyAllInONeBank.bnk", AK_DEFAULT_POOL_ID, bankID ); } ...
"All-in-one"SoundBankを利用するメリットとデメリットを下表に示します。
メリット |
デメリット |
---|---|
サウンドデザイナーにとって、バンクのコンテンツ(中身)が最も管理しやすい。 ゲームが常に同じSoundBankをロードするので、あるSoundBankのコンテンツを変更しても、ゲームのリコンパイルが不要。 複雑なSoundBankのロードやアンロードが、ゲーム中に不要。 どのサウンドが使えて、どれが使えないかを知るために、ゲーム中にトラッキングする必要がない。 |
ゲームの全てのイベント、構造、そしてメモリに保存するメディアが、全て常にロードされた状態のため、メモリ使用効率が悪い。 |
このメソッドは、ゲームのオーディオやモーションを素早く簡単に実装するには良い方法ですが、プロジェクトの終盤になってから、ゲームのメモリをより効率的に活用できるメソッドに変更することは、避けてください。