レッスン 3

目次

EventをScene別にポストする

[注釈]

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

シーンによってゲームオブジェクトを分けておくと、様々なメリットがあります。1つは、同時にロードするアセット数を最小限に保てることで、もう1つは異なる複数のアセットを整理してまとめておくことで、同時にそれらを有効にできることです。前セクションの 'L3_1 - Loading SoundBanks using Triggers' のSceneをもう一度見て、その中にあるWaterfallゲームオブジェクトを使って、これらのメリットを説明します。

Waterfallゲームオブジェクトは、Waterfall(滝)をグラフィックレンダリングしたものです。その子としてWaterfall_UpCloseゲームオブジェクトがあり、さらにその子として、 Ambient_Waterfall AkEventがあります。Ambient_WaterfallのEventはWoodlandsのSoundBank内にあるので、少なくともWaterfall_UpCloseのゲームオブジェクトはWoodlandsシーンに入っていた方がよいように思えますが、実際には、プレイヤーにWaterfallが見えるのは、Woodlandsシーンの中に入ってからなので、Waterfallゲームオブジェクト全体をWoodlandsのSceneに入れると、さらに理にかなっています。

[注釈]

子ゲームオブジェクトのポジションは、親と相対関係にありますが、それで音のポジショニングがオフセットされることはありません。Wwiseは常に、ゲームオブジェクトのポジションをグローバルの観点でとらえ、ゲームオブジェクトの親を考慮しません。

これから、WaterfallゲームオブジェクトをWoodlandsシーンに移し、WaterfallゲームオブジェクトがWoodlandsのSceneと同時に有効になり、そしてロードされるように設定する手順を説明します。

  1. Projectビューで Woodlands を検索し、 Woodlands Scene をHierarchyまでドラッグします。

  2. Hierarchyで Waterfall ゲームオブジェクトを探し、これを選択します。

    Waterfallゲームオブジェクト(Waterfall_UpCloseの親オブジェクト)は、プレイヤーがWoodlandsリージョンにいるときだけロードすればいいので、Main Sceneから出し、WoodlandsのSceneまでドラッグしてください。

  3. Waterfall ゲームオブジェクトをWoodlandsのSceneまでドラッグします。

    ここまでやれば充分で、あとは、すでにあなたが設定したSceneの構成によって、シーンに必要なアンロードやロードが処理されます。グッドプラクティスとして、ProfilerのVoice Graphを使いゲームのプロファイリングを行い、特にAmbient_WaterfallのEventに注目してSceneのロード時にポストされ停止されることを、確認してください。

  4. WwiseメニューでLayoutsをクリックし、Profiler を選択します。

  5. Advanced ProfilerのVoices Graphタブで、Filterの ブラウズ (...) ボタンをクリックします。

  6. Events > Ambient > SoundBankSpecific と展開し、 Ambient_Waterfall というEventを選択し、 OK をクリックします。

    フィルタをAmbient_WaterfallのEventに設定することで、Voices GraphにはWaterfallのEventだけが表示されます。Sceneは自動的にロードされるので、Playモードに入る前に除いてください。

  7. Unityで、最初にシーンを Save し、次にシーンを Remove します。

    この演習でゲームをプロファイリングするときは、UnityとWwiseを横並びに表示させると良いでしょう。もし画面の解像度が低すぎれば、一番大事なウィンドウであるAdvanced Profilerだけを切り離して、Unityの隣に配置してみます。

  8. UnityとWwiseのプロジェクトが横並びになるように調整してください。

    [注釈]

    Unity GameビューでMaximize on Playを選択すると、Playモードに入ったときにUnityエディタの端が引き延ばされ、ゲームが操作しやすくなります。Playモードで一時停止を押すと、一時的に通常のレイアウトに戻ります。

  9. Wwiseで Remote… をクリックします。

  10. Remote Connectionsウィンドウで Wwise Adventure Game (Editor) を強調表示にして、 Connect をクリックします。

  11. Playをクリックします。

  12. Woodlands Trigger の中に駆け込みつつ、Main Cameraが中に入らないようにします。

    まだWaterfallのEventがアクティブになっていません。

  13. Main Cameraを Woodlands Trigger の中へと回転させます。

    Main CameraをWoodlands Triggerの中へと回転させると、WoodlandsのSceneがロードされ、Ambient_WaterfallのEventがポストされます。

    [注釈]

    もし赤い半透明のメッシュ面が見えなければ、いったんPlayモードを終了して前の演習に戻り、Woodlands Triggerをもっと橋に近づけてください。

  14. Main Cameraを Woodlands Trigger の外へと回転させます。

    Main CameraがWoodlands Triggerを出ると、それをLoadSceneAsyncOnEnterスクリプトが認識して、数秒後に、シーンとAmbient_WaterfallのEventをアンロードして取り除きます。

    このようにシーンのゲームオブジェクトを整理することで、Eventと該当SoundBankを一緒にロードしたりアンロードしたりでき、プロファイラを使って試したようにできます。このレッスンを続けるために、Advanced ProfilerのVoices Graphビューをリセットし、Playモードを終了させてください。

  15. WwiseでFilterの横にある ブラウズ (...) をクリックします。

  16. Filterの一番上にある None を選択し、 OK をクリックします。

  17. Unityで ESC を押してWAGのメニューを開き、再び Play をクリックしてPlayモードを終了させます。


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