レッスン 6

目次

Aux Environmentを作成する(Creating an Aux Environment)

これでTriggerにAkEnvironmentスクリプトを追加できるようになりましたが、新しいAux Environmentをゼロから作成するには、ほかにもいくつかの手順を実行する必要があります。ColliderをIs Triggerに設定すること以外に、Rigidbodyコンポーネントと、AkGameObjスクリプトも必要です。

ゲームオブジェクトのポジションをUnityが管理する場合、 AkGameObj は、そのポジションや、関連するGame Syncsや、Environment値を、Wwiseに報告します。

AkEventやAkAmbientコンポーネントを追加するときや、Playモードでサウンドをポストするだけのときも、自動的にAkGameObjコンポーネントが追加されます。ただし、AkGameObjがEnvironment Awareに設定されていなければ、それにアサインされているAux BusなどEnvironment関連の情報をWwiseに送れません。

Rigidbody は、ゲームが、オブジェクトに物理的なモーションを適用するために使うコンポーネントです。

重力や、特定方向の速度の計算なども含まれ、すべてのモーションをUnityのPhysicsエンジンがまとめて計算するので、Unityは、これらのオブジェクトが交差しているのか(Trigger)や、衝突しているのか(Collider)についても、把握しています。Rigibodyは、そのゲームオブジェクトにアタッチされたColliderコンポーネントを利用して、交差や衝突を計算します。2つのゲームオブジェクトのうち1つに、Rigidbodyがアタッチされていれば充分です。

[注釈]

グッドプラクティスとして、AkEnvironmentのゲームオブジェクトにRigidbodyを追加すれば、1つのSceneに追加するRigidbodyの数を最小限に抑えられます。

これから、 Woodlandsの中に新しいTriggerを作成し、そこに、AkEnvironmentスクリプトと、残りのRigidbodyと、AkGameObjを、追加します。

  1. Unityで Audiokinetic > Certification > 301 > Lesson 6 を選択し、 Creating an Aux Environment を選択します。

  2. Unityのメニューで、 GameObject > 3D Object を選択し、 Cube を選択します。

    Cubeの形が、Hierarchyでインスタンス化されます。

  3. Cube ゲームオブジェクトを右クリックし、 Rename を選択して Woodlands という名前にします。

  4. Hierarchyの Woodlands ゲームオブジェクトを AUX Environments ゲームオブジェクトまでドラッグします。

    最初に、Triggerのshapeを、Woodlandsに合わせるところから始めます。Woodlandsリージョンには、'Road to the Woodlands'と、'Road to the Pine Forest'があります。両方とも、それぞれに専用の音響があるべきで、あなたは、Woodlandsの中央部分を作成すればいいだけで、そこにはWaterfall(滝)やEvil Spit Plantなどが入っています。

  5. Moveツール、RotateツールScaleツール を使い、 WoodlandsのTriggerを、Woodlandsリージョンの中央部に合わせます。

    それでは、ゲームオブジェクトに様々なスクリプトを追加したり、不要なものを解除したりして設定してみます。まず最初に、ゲームプレイ中にTriggerをプレイヤーに見せたくないので、Mesh Rendererを無効にして見えないようにしてください。

  6. Inspectorで Mesh Renderer コンポーネントを無効にします。

    Box ColliderがTrigger設定になっていないので、ほかのColliderが入ろうとすると、阻止します。

  7. Box Colliderで、 Is Trigger を有効にします。

    次に、AkEnvironmentスクリプトをゲームオブジェクトに追加します。

  8. Add Component をクリックし、 AkEnvironment を検索して選択します。

    便利なことに、AkEnvironmentが、ここにRigidbodyが設定されていないことを警告してくれ、追加するボタンを提供してくれます。

    Wwise Adventure Gameで、一番最適な設定はRigidbodyをAkEnvironmentに配置することで、こうすればシーンに必要なRigidbody数を最小限に抑えられ、physicsの計算やCPU負荷を制限できます。

  9. AkEnvironmentで Add Rigidbody をクリックします。

    ここでメッセージとAdd Rigidbodyボタンの表示が消え、Rigidbodyが下に追加されます。

    前セクションでAux Busをアサインしたように、AkEnvironmentコンポーネントにもアサインしてください。

  10. Aux Name プロパティで、 Woodlands というAux Busを選択し、 OK をクリックします。

    Eventをポストするすべてのゲームオブジェクトに、AkGameObjコンポーネントを設定してありますが、Playerゲームオブジェクトだけは未設定なので、最後にこれを行います。PlayerにAkGameObjを追加し、Playerがポストしたサウンドがすべて、Aux Environmentに認識されるようにします。

  11. Hierarchyで Player ゲームオブジェクトを選択します。

  12. Inspectorで Add Component をクリックし、 AkGameObj を検索して選択します。

    PlayerゲームオブジェクトにAkGameObjコンポーネントが追加され、Environment Awareの設定が有効になっています。

    以上です。これで、完全に機能するAux Environment付きのTriggerを作成できました。ではProfilerを使って、この実装を検証してください。

  13. WwiseでLayouts を選択し、 Profiler を選択します。

  14. Advanced ProfilerのVoices Graph Filterで、 Master-Mixer Hierarchy > Default Work Unit > Master Audio Bus > World > AUX > Region_Woodlands を展開し、 Woodlands のAux Busを選択し、 OK をクリックします。

  15. ゲームに Remote Connect で接続してシーンを Play し、 Woodlands まで走っていきます。

    WwiseのAdvanced Profilerを見ます。Ambient_WaterfallとAmbient_Region_Woodlandsの2つのEventが、WoodlandsのAux Busを使っていて、トリガー内にあるインスタンス化されたサウンド、例えばPlayer_WeaponSwingやEvilSpitPlant_ShootBulletのEventなども、このAux Busを使うことに注目してください。これで Playモードを終了 できます。