バージョン
Wwise Unity Integration Documentation
|
The Unity Addressables system uses AssetBundles to package assets separately from the player. 追加のアセットを外部サーバに格納することのできるDLCなどの用途には、特に便利です。
If you are new to Addressables, see
Addressables package and Get started with Addressables for essential background information.
The following topics explain how to set up the Wwise Unity Addressables package:
The following sections describe how the Wwise Addressables package works:
Be aware of the following characteristics of the Addressables system:
Wwise Addressablesサンプル でWwise Addressablesアセットの管理を助けるために設計されたコードサンプルの追加情報を提供します。
The WwiseBankImporter classes process .bnk
and .wem
files. このスクリプトで、ファイルのバイナリデータの入ったアセットが作成されます。次に、独自のアセットポストプロセッサであるWwiseBankPostProcessが、新アセットをそれぞれのプラットフォームのAddressablesグループに追加します。 各プラットフォームのInit SoundBankは、そのプラットフォームのAddressablesグループに追加されます。ここでInit Bankを別に扱っているのは、リリース後にプロジェクトへの変更(新しいオーディオバスの追加など)があった場合に、それをアップデートする必要があるからです。 Init SoundBankを、Addressable対象の専用AssetBundleにパッケージすることで、ホスティングサービスから、このアセットの最新バージョンを短時間でフェッチできます。 どのAddressablesグループにアセットを追加するのかや、どのラベルをアセットに適用するのかをカスタマイズしたい場合は、 Wwise Addressablesサンプル を参照してください。
アセットポストプロセッサは、プロジェクトの各SoundBankのWwiseAddressableSoundBankも作成してくれます。 このアセットには、プラットフォーム名を、そのSoundBankやストリーミングメディアアセットに対してマッピングするディクショナリが入っています。
注意:
|
Init SoundBankのWwiseAddressableSoundBankが作成されると、InitBankHolderコンポーネントが、そのシーンのWwiseGlobalゲームオブジェクトに追加されます。 このコンポーネントは、AddressableBankManagerが見つけやすいように、単純にWwiseAddressableSoundBankを保存します。
When using Wwise Addressables, the AkAddressableBankManager handles loading and unloading of SoundBanks into memory. このクラスに、ロード中やロード済みのAddressableSoundBankへのリファレンスが保存され、必ずInit SoundBankが最初にロードされるようにしてくれます。 If an AkEvent is triggered before its SoundBank has finished loading, this class stores the triggered call's parameters and retriggers the event after the SoundBank is loaded.
When a SoundBank is loaded, the SoundBank asset that corresponds to the current platform is loaded using Addressables. After it is loaded, the SoundBank data is pinned and a copy of the memory is loaded into the sound engine with AkUnitySoundEngine.LoadBankMemoryCopy().
When in Play Mode in the Unity editor, the AssetDatabase is used instead of Addressables to load SoundBanks synchronously. 非同期のロードは、ビルドしたゲームでしかテストできません。
注記: Ensure that you use AkBank to load your SoundBanks instead of manually calling the API. |
WwiseBankReferenceクラスは、Ak.Wwise.Bankコンポーネントのために、カスタムInspectorで使います。 WwiseBankReference に、 WwiseAddressableSoundBank へのハードリファレンスが入っています。 このリファレンスはWwiseAddressableSoundBank Assetを AkAssetUtilities.AddressableBankUpdated デリゲート経由で作成した時に更新されます。 WwiseBankReference が WwiseAddressableSoundBank の後に作成された場合は、そのバンク名に一致するWwiseAddressableSoundBankアセットをSoundBanksフォルダ内で探します。 シリアル化されたWwiseBankReferencesは、 Assets\Wwise\ScriptableObjects\SoundBank
に保存されます。
注記: ゲームオブジェクトによって直接参照されるアセットは、すべてそのゲームオブジェクトと共にパッケージされます。 AkBank Componentには、WwiseBankReferenceへのハードリファレンスが含まれ、WwiseBankReferenceには、それに対応するWwiseAddressableSoundBankへのハードリファレンスが含まれます。 AkBankコンポーネントのあるGameObjectをAddressablesグループに入れると、それと共にWwiseBankReferenceや、WwiseAddressableSoundBankも、パッケージされます(グループに意図的に追加しなくても)。 |
ストリーミングメディア(.wem ファイル)にも、WwiseBankImporterスクリプトが対応します。 WwiseAddressableSoundBankには、このバンクに関連するプラットフォーム別のストリーミングメディアアセットへのリファレンスのリストが、含まれます。 バンクをロードすると、メディアアセットがAddressables経由でロードされ、 Application.persistentDataPath フォルダにコピーされます。 同名のファイルがすでにフォルダ内にある場合は、両者のハッシュを比較します。異なるファイルであれば、そのファイルを、AssetBundleのファイルで上書きします。