ランタイムでサウンド バンクをロードする

ランタイムでゲーム内ですべてのサウンドを再生するには、オーディオ ファイルが格納されたサウンド バンク リソースをゲームのメモリにロードする必要があります。サウンド バンクを使用して操作を完了したら、ゲームのメモリからサウンド バンク リソースをロード解除して、オーディオ ファイルがメモリ内の追加容量を消費しないようにする必要があります。

サウンド バンクのロードおよびロード解除の管理は、次のセクションに示された 3 つの方法で行うことができます。

フローを使用してサウンド バンクをロードする

Audio > Wwise > Banks > Wwise Load Bank および Audio > Wwise > Banks > Wwise Unload Bank ノードをトリガして、サウンド バンクをロードまたはロード解除します。

たとえば、一般的な用途は、Event > Level Loaded イベント エミッタ ノードに対応して、このレベルのフロー グラフ内にゲーム レベルごとに必要なサウンド バンクをロードすることです。ロードしたバンクは、Event > Level Shutdown イベントに対応してロード解除することができます。

Lua を使用してサウンド バンクをロードする

stingray.Wwise.load_bank() および stingray.Wwise.unload_bank() 関数を使用して、サウンド バンクをロードおよびロード解除します。ロードするサウンド バンクのリソース名をパラメータとして渡します。

たとえば、ゲーム内で Appkit および SimpleProject を使用している場合、このコード スニペットは現在のレベルと同じリソース名を持つサウンド バンクを自動的にロードおよびロード解除します。

function Project.on_level_load_pre_flow()
    stingray.Wwise.load_bank(SimpleProject.level_name)
    ...
end

function Project.on_level_shutdown_post_flow()
    stingray.Wwise.unload_bank(SimpleProject.level_name)
    ...
end

リソース パッケージのサウンド バンクをロードする

Stingray リソース パッケージ システムを利用して、他の種類のリソースのバンドルをロードおよびロード解除するのと同時に、サウンド バンクをロードおよびロード解除することができます。リソース パッケージの仕組みについての背景情報については、「ランタイムでコンテンツをロードおよびロード解除する」を参照してください。

この方法に従う場合は、Lua およびフロー内でロードおよびロード解除コマンドを発行する必要はありません。

リソース パッケージの一部としてサウンド バンクをロードおよびロード解除するには、リソース パッケージの SJSON ファイルに wwise_dep キーを追加します。この値に、プロジェクトのソース フォルダ内にある .wwise_dep リソース ファイルのリストを設定します。プロジェクト内のバンクごとに、これらの .wwise_dep ファイルのいずれかが自動生成されます。

たとえば、次のようになります。

wwise_dep = [
    "content/audio/Init"
    "content/audio/menu"
    "content/audio/menu.level_1"
    "content/audio/menu.level_2"
]

サウンド バンクのロードおよびロード解除にこのシステムを選択するかどうかに関係なく、ゲームが常にブート パッケージ内の content/audio/Init .wwise_dep リソースをロードすることを確認する必要があります。このリソースには、Wwise プラグインがバンクおよびイベントとの連携を可能にする場合にランタイムで必要となるメタデータが含まれています。