レッスン 3

目次

SoundBankをScene別に整理する

[注釈]

このセクションに入る前に、直前のセクションの Loading SoundBanks using Triggers を終わらせてください。

ゲームコンテンツの構成としてよくあるのは、シーケンス、エピソード、レベルなどで分けてまとめる方式で、Wwise Adventure Gameの場合も同じです。現在、プイレイヤーがWoodlands Triggerのゲームオブジェクトに入ると、WoodlandsというSoundBankがロードされます。

これは、ゲームによって最適の方法で、設定もとても簡単ですが、その場合はWoodlandsのSoundBankがロードされる前に、このSoundBankの中にあるEventが絶対に一切ポストされないようにする必要があります。あるいは、似たような成果を得るために、Sceneの関連Eventがすべて入ったSoundBankをSceneからロードする方法もあります。こうすればSoundBankに関連するアセットを非常に効率的に管理でき、 AwakeStart のファンクションは、それが存在するSceneの初期化に基づいてコールされるので、先ほどのTrigger Onの設定を使えばアセットを適切な順番でロードさせることができます。

もう1つのメリットとして、SceneをUnityでアンロードすると、その中のEventがすべて停止されます。つまり、Woodlandsだけで使うコンテンツをそのシーンの中に入れることで、このリージョン用SoundBankに関連するEventが、すべてSoundBankと同時に開始・停止されるようになります。さらに、Unityのゲームオブジェクトは、敵や回転する風車など、どれをシーンに追加してもいいので、ゲームのメモリやCPU消費を効率的に管理できます。Unityの追加シーンの詳細については、 Unityドキュメンテーション を参照してください。

これから、新しいWoodlandsのSceneを作成し、そのSceneにAkBankコンポーネントを追加してからそれをロードする手順を説明します。

  1. ProjectビューのScenesフォルダで、右側のペインの空いたスペースを右クリクし、Createを選択して Scene を選択します。

    Sceneを選択すると、新しいSceneファイルが追加され、そのファイル名が強調表示されて、名前を変更できます。

  2. 名前を Woodlands にします。

    通常は、SceneをProjectウィンドウでダブルクリックすれば、開けます。しかしWoodlandsのSceneを 'L3_1 - Loading SoundBanks using Triggers' シーンと同時にロードしたいので、それをあえてHierarchyの中にドラッグして、追加で開く必要があります。

  3. Woodlands Scene をHierarchyの中までドラッグします。

    何も入っていないシーンを作成すると、カメラやライトなどのデフォルトゲームオブジェクトが、いくつか含まれます。ただそ主要シーンがL3_1 - Loading SoundBanksで、そちらのMain CameraとDirectional Lightを使うので、デフォルトの方のオブジェクトはWoodlandsのSceneから削除します。

  4. Woodlands シーンのゲームオブジェクトをすべて選択し、右クリックして Delete を選択します。

    SoundBankをロードするために使う、新しいゲームオブジェクトを作成してください。

  5. Woodlands Scene というヘッダーを右クリックし、GameObject を選択して Create Empty を選択します。

  6. 名前を Wwise にします。

    'L3_1 - Loading SoundBanks using Triggers'のSceneを見ると、Woodlands Triggerのゲームオブジェクト(前セクション'Triggerを使い SoundBankをロードする'で作成)があり、そこにWoodlandsのSceneで使うAkBankコンポーネントがあります。

  7. 'L3_1 - Loading SoundBanks using Triggers' シーンの Woodlands Trigger ゲームオブジェクトを選択します。

    Inspectorに、WoodlandsのSoundBankをロードするAkBankコンポーネントがあります。

  8. AkBank タイトルバーをクリックしてホールドし、そのままドラッグしてWoodlands Sceneの Wwise ゲームオブジェクトの上に持っていきます。

    これでAkBank(プロパティ設定も含む)が、Woodlands Triggerゲームオブジェクトから削除され、Wwiseゲームオブジェクトに追加されます。

  9. Woodlandsシーンで Wwise ゲームオブジェクトを選択します。

    これでAkBankコンポーネントがWwiseゲームオブジェクトに追加されます。

    次にLoad onプロパティを変更します。Woodlands Triggerに入ると、WoodlandsのScene全体がロードされます。このためSoundBankのロードをAkTriggerEnterではなく、WoodlandsのSceneのAwake時に行います。

  10. Load On プロパティに Awake だけを設定します。

    また、ランタイムからこのSceneが削除されたら、SoundBankも削除したいので、Unload Onプロパティの設定をDestroy、つまりSceneがアンロードされて削除されたタイミングとしてください。

  11. Unload On プロパティに Destroy だけを設定します。

    Woodlandsシーンの変更点は以上で、このSceneは 'L3_1 - Loading SoundBanks using Triggers' のSceneでロードされるので、削除して構いません。まず最初に、このSceneを保存してください。

  12. Woodlands Sceneを右クリックし、 Save Scene を選択します。

    Sceneを保存すると、名前Woodlandsの脇の小さい星印が消えます。次に、このSceneはLoadSceneAsyncOnEnterスクリプトでロードされるので、HierarchyからSceneも削除しておきます。削除しないと、このSceneが2回もロードされてしまいます。

  13. もう一度右クリックし、 Remove Scene を選択します。

    Woodlands SceneはもうHierarchyにはありませんが、Projectタブで見つけることができます。次に、LoadSceneAsyncOnEnterスクリプトを使いSceneをダイナミックにロードし、プレイヤーがWoodlandsトリガーに入ったときにHierarchyに再表示されるようにすれば、同時にWoodlandsのSoundBankもロードされます。LoadSceneAsyncOnEnterスクリプトはカスタムスクリプトで、AkAudioListener (Main Camera) がTriggerに入るのを認識してからSceneをロードします。

  14. Woodlands Trigger ゲームオブジェクトを選択します。

  15. Inspectorで Add Component をクリックし、 LoadSceneAsyncOnEnter を検索してダブルクリックし選択します。

    ここでLoadSceneAsyncOnEnterの下を見ると、警告メッセージがあり、'WARNING: No Scene name!'と表示されています。

    スクリプトが、Build Settingsで追加されたシーンを自動的に検索し、このフィールドのテキストに合致するシーンを探します。今は空白の文字列なので、警告メッセージが表示されています。

    [注釈]

    Build Settingsとは、コンパイルされたゲームのバージョンを作成するための設定です。Playモードのときに、ゲームはここを見て、ロードして追加するべきシーンを確認します。Build Settingsで設定できるSceneは、Unityプロジェクトにあるものだけです。

  16. Scene to Load プロパティに、 Woodlands と入力します。

    新しい警告が出ました。ランタイムにHierarchyにないシーンをロードするには、まずBuild Settingsで追加する必要があり、そうすればPlayモードがそれを認識できます。

  17. Unityのメニューで、 File から Build Settings を選択します。

  18. Woodlands Scene を、Projectビューから Scenes in Build リストまでドラッグします。

    このSceneは、リストの一番上以外であればどこに追加しても構いませんが、一番上だけは、コンパイルしたゲームのバージョンの場合、常にMain Sceneにしておきます。警告表示がないか確認し、あればスペルミスがないかを見てください。これで、Woodlands TriggerによってSceneがロードされるようになりました。

  19. Build Settingsウィンドウを閉じ、 Play をクリックします。

  20. Woodlandsまで走っていきます。

    WoodlandsのSceneがHierarchyにロードされています。

  21. Woodlands Triggerの外まで走って出て、Villageに入ります。

    Hierarchyを確認すると、WoodlandsのSceneが再びアンロードされています。それでは、WoodlandsのSceneにオブジェクトを追加していき、Trigger entryでSoundBankがロードされるときに、サウンドだけでなく、木や滝などのゲームオブジェクトも含まれます。

  22. ESC を押してWAGメニューを開き、 Play をもう一度クリックしてPlayモードを終了させます。