バージョン
Wwise Unity Integration Documentation
|
DLCをWwiseでサポートするデフォルトの手段は、File Packageの利用です。 機能の説明は、Authoringに関するドキュメント: Wwise > Help > Finishing Your Project > Managing File Packages > Downloadable Content Overviewにあります。パッケージに入れるBNKやWEMの置換用ファイルや追加ファイルについて、またそれらを自由にロードしたりアンロードしたりすることでDLCを有効・無効にする方法などが、簡単に説明されています。このパッケージフォーマットの使用は必須ではありませんが、現在のWwise/Unityプラグインに組み込まれて提供されています。自分のパッケージフォーマットを書くには、新しいLow-Level IOを書いてデフォルトのものと置き換えてください。
Unityでパッケージに使うには、パッケージをAkInitializerのプロパティとしてBase Pathに設定したパスに置くだけです。Then call AkUnitySoundEngine.LoadFilePackage()
. Wwiseはファイルをロードする時に、必ずファイルパッケージ経由で、逆順でロード(最後に追加したものを最初にサーチ)しようとします。
この方法は、ゲーム出荷後にBase Pathにディスク書き込みができる全てのプラットフォームで利用できます。残念ながら、iOSやAndroidはこれが行えません。
AndroidとiOSの場合は全てのデータをリードオンリーのファイルシステムにバンドル化するため、パッケージを別のディレクトリに入れる必要があります。This is done by calling AkUnitySoundEngine.AddBasePath()
, before AkUnitySoundEngine.LoadFilePackage(). 複数のパスを追加でき、最後に追加したものを最初にサーチします。制約事項については、該当するOperating Systemドキュメントを確認してください。以下のコードは、ファイルを保存する場所のパスを選択するためのコードの例です:
なおAndroidでは、sdcardや同様のメモリデバイスなど他にも書き込み可能なパスがいくつかあります。
UnityのAddressablesシステムを使い、SoundBankのパッケージングや配信と、メディアファイルのストリーミングができます。 詳細は UnityのためのWwise Addressablesパッケージ ページを参照してください。
UnityのUnityWebRequestクラスを利用して、直接DLCオーディオファイルを取得してロードすることも可能です。 これはメモリ内にバンクをロードして行い、AkMemBankLoader.csで実現できる通りです。 Unityの古いバージョンでは、AkMemBankLoaderで、WWWクラス(すでに廃止)のあるバンクもロードできます。 既存のバンクを新しいバンクで置き換えたい場合は、まず以前のバンクをアンロードする必要がありますが、その理由は、Wwise IOシステムがそのコードについて認識していないので、同じバンクをあなたが誤ってもう一度ロードしようとしているのか、それとも置き換えようとしているのかを、判断できないからです。