バージョン

menu_open
ターゲットプラットフォーム:
Wwise Unity Integration Documentation
Androidに固有の情報

Android用にビルドする

APKに含まれるAndroid用SoundBankは、LoadBank() API経由で直接アクセスできます。StreamingAssets フォルダの下にあるSoundBankは、Unityプロジェクトをビルドする時にAPKの Assets フォルダに含まれます。Low-Level IOがSoundBankへのアクセスをAPKからトランスペアレント(透過的)に扱います。

Low-Level IOはAndroidファイルシステム内のSoundBankファイルも、SDCardなどからアクセスできます。ネーティブファイルシステムをアクセスするためには AkSoundEngine.AddBasePath(YourPath) を呼び出す必要があります。この新しいパスはデフォルトのAPKファイルよりも優先されます。ファイルの名前が外部パスとAPK内で同じ場合は、外部パスが使用されます。外部ファイルにアクセスできることは、APKのビルド後にDLCを追加したりオーディオコンテンツのパッチを追加したりする場合に便利です。

バックグランドモード

アプリがバックグランドにある時は AkSoundEngine.Suspend() を呼び出すことを推奨します。アプリがフォアグランドに戻った時は AkSoundEngine.WakeupFromSuspend() を使用してサウンドを復活させます。現在これはAkInitializerに実装されていますが、必要に応じてあなたのゲームの別の部分に移動したり複製したりできます。

バックグランドミュージックをミュートする

バックグランドミュージックをAudio BusでミュートするオプションがWwise Authoringにあります。このオプションを使用することでプレイヤー音楽を開始した時にゲームミュージックをミュートすることができます( ゲームミュージックを、プレイヤーのミュージックに置き換える を参照してください)。ただしこのオプションを有効にし、さらにAndroidでUnity Audioを有効にした場合は、このバスを通過する音楽は常にミュートされます。

このためバックグランドミュージックをWwise設定を使用してミュートするのか、それともUnity Audioを有効にするのかを決める必要があり、この2つは互いに互換性がありません。

OBBファイルを使用する

OBBと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を再ビルドしたりできます。
  • 単純にするためにスクリプト例ではスクリプトコンポーネント1つに対して1つのSoundBankしかロードしませんが、簡単に拡張してSoundBankのリストを一括ロードするコレクションバージョンも設定できます。
  • このスクリプト例では最も単純なメモリ内SoundBankロードAPIだけをラップしていますが、コールバックに基づくバージョンもあり、必要に応じて簡単に追加できます。APIバインディングは既にIntegrationで提供中です。
参照

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

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう