レッスン 7

目次

Memory Pools

メモリプール(memory pool)は、各SoundBankが提供するランタイム情報をすべて把握する以外にも、ランタイムに必要なオーディオの様々な処置も行います。例えばバッファ解凍やエフェクト処理に対応します。メモリにロードされたすべてのサウンドに対応するために使われるのは、以下のプールです:

  • Default Memory Pool: WwiseプロジェクトのオーディオオブジェクトやEventのすべてのプロパティが含まれます。登録されたすべてのゲームオブジェクトの情報、例えばゲームシンク値、ポジション、オリエンテーションなどが、ここに含まれます。

    このプールはロード中のEvent数やオーディオオブジェクト数によって、直接影響を受けます。そこで、SoundBankをさらに小分けにしたり、階層の構造を簡素化させたりすれば、Default Memory poolを削減できます。

  • Lower Engine Memory Pool: 音の再生に特化したプールで、同時再生中のアクティブボイスの数に直接影響されます。メインの処理パイプラインで、再生中のサウンドの解凍、フォーマットコンバージョン、エフェクト処理、ミキシングなどが必要に応じて行われます。Virtual Voiceシステムの管理を担うのもこのメモリプールで、詳しくはLesson 3で説明しています。

    上手に設計されたバーチャルボイスシステムは同時発生のボイス数を減らすのに役立ち、その結果、Lower Engine Poolの大きさを減らせます。また一部のエフェクトは、ほかよりも多くのメモリを必要とします。例えばWwise RoomVerbのようなリバーブは、信号をリピートするよう設計され、このプールにその信号を一時的に保存することに注目してください。

[ヒント]

すでにエフェクトの適用や最適化、コンバージョン設定の変更、Virtual Voiceビヘイビアの設定などについて学びましたが、オーディオ品質を下げ過ぎないようにすることも大事で、Lower Engine Poolで数メガバイトを節約するよりも、良いサウンドのゲームを提供することの方が大事かもしれません。Virtual Voice Behaviorsの調整に注力し、聞こえないのにアクティブになっている音がないようにしたほうが得策です。

それでは、Caveの中のEvil Headsを使い、メモリプールを活用してみてください。

Evil Headがスポーンされると、Enemy_EvilHead_Hover_PlayというEventと、該当するすべてのオーディオソースがSoundBankから取得され、Default Memory Poolに登録されます。Evil HeadがAdventurerに近づくとき、ゲームオブジェクトのポジションを常に更新し、減衰を再計算してボリュームを設定します。Evil HeadがAdventurerに突進してくると、EvilHead_Attack_ChargeというEventのオーディオソースに対し、RoomVerbが適用され、リバーブのテイルやリフレクションが、Lower Engine Poolに一時的に保存されます。

このように、メモリプールは整理をしながらそれぞれの相互関係を認識し、計算はすべてプロセッサが担います。


このページはお役に立ちましたか?