目次

OBBファイルを使う (Android)

Overview of the OBB and Wwise IO

AndroidプラットフォームでUnityオプションを確認する際にPlayer Settings > Publishing Settings > Split Application Binary, APK Expansion Filesを使ってプロジェクトアセットをバンドルします。これによって拡張子.obbのZipファイルが作成され、ここにSoundBankを含むStreamingAssetsフォルダが入ります。デフォルトのAndroid SoundBankロードサポート機能は、SoundBankがAPKファイルまたはOBBファイルにあるものとしています。

自分で外部でOBBファイルを構築する場合は、AkSoundEngine.SetBasePathに渡すインナーパスがOBB内のものと同一である必要があるので、注意してください。圧縮されず暗号化されていないOBBファイルでなければ、デフォルトのI/Oシステムで稼働しません。そうでない場合は、OBBをpersistent データパスで解凍する必要があります。オンザフライで解凍するには、解凍のCPU負荷が高すぎます。

バンクをメモリにロードする

または、バンクをメモリ内にロードすることもできます。AkMemBankLoader.csに例があります。このスクリプトは、シーンの開始時点で指定されたSoundBankをロードして、シーンが破壊されるとアンロードするためのものです。この例を利用するには、以下の変更が必要です:

  1. SoundBankをロードする必要のある全てのゲームオブジェクトに対して、このスクリプトをコンポーネントとして追加する。.
  2. InspectorでSoundBankのファイル名をスクリプトコンポーネントのBank Nameフィールドに入力する。
  3. SoundBankがローカライズされている場合は、Inspectorで Is Localized Bank オプションを選択する。AkInitializer.cs で定義したグローバルランゲージが使用されます。
  4. 他のSoundBankロード機能を全て無効にして、シーンを保存する。

2種類の方法、 AkMemBankLoader.LoadNonLocalizedBank()AkMemBankLoader。LoadLocalizedBank() は、非ローカライズとローカライズ済みSoundBank用に直接コールすることもできます。

制約

  • メモリ内メソッドでは、ストリーミングSoundBankをロードできません。より優れているものの難しい手段として、ローレベルIOフックを実装するとオンザフライでZipファイルを解凍できるので、ストリーミングと非ストリーミングの両方のSoundBankに対応できます。ただしこの例は、現時点では提供しませ。ユーザは自由にこのようなフックを実装したりIntegrationを再ビルドしたりできます。詳しくは streamingmanager_lowlevel セクションを参照してください。
  • 単純にするためにスクリプト例ではスクリプトコンポーネント1つに対して1つのSoundBankしかロードしませんが、簡単に拡張してSoundBankのリストを一括ロードするコレクションバージョンも設定できます。
  • このスクリプト例では最も単純なメモリ内SoundBankロードAPIだけをラップしていますが、コールバックに基づくバージョンもあり、必要に応じて簡単に追加できます。APIバインディングは既にIntegrationで提供中です。
Wwise Unity Integrationに対してMon Jul 15 15:53:28 2019に生成されました。  doxygen 1.6.3