レッスン 2

目次

AkAmbientでポストする(Posting with AkAmbient)

Village(村)の小さな丘の上で、ゆっくりと回るWindmill(風車)があります。Allegro Kingdomにあるほかの様々なアセットと同様に、このWindmillもアセットの1つですが、プレイヤーがVillageに足を向けるように促す重要な役割を担い、機械音を出して人々が近くに住んでいることを表します。ここでは、WindmillのEventを、Windmillゲームオブジェクトに、AkAmbientスクリプトを使ってポストする手順を説明します。

  1. Unityのメニューで、 Audiokinetic > Certification > 301 > Lesson 2 > Posting an Ambience を選択します。

    Hierarchyに、Village Environment Sceneと、L2_1 - Posting an Ambienceの、2つのシーンが表示されています。L2_1 - Posting an Ambienceは、Main Sceneのコピーですが、Main SceneとはWwise Adventure Gameの基盤となるSceneで、ほかのリージョンのシーンをすべてロードします。Village Environment Sceneは、Village限定のゲームオブジェクトがすべて入っている、1つのリージョン(地域)のSceneです。このSceneは普段は自動的にロード・アンロードされるので、通常、Playモード以外でHierarchyに表示されることがありませんが、これから、このシーンのWindmillゲームオブジェクトに変更を加えるので、L2_1 - Posting an Ambience Sceneに追加でロードされています。

    [ヒント]

    Unityの複数シーンの取り扱いについて詳しく知りたければ、 https://docs.unity3d.com/Manual/MultiSceneEditing.html を参照してください。

    まず最初にWindmillゲームオブジェクトを探し、そこにAkAmbientスクリプトを追加します。

  2. Hierarchyの L2_1B - Village Environment SceneWwise を展開して Windmill ゲームオブジェクトを選択します。

    ここでSceneビューを調整し、Windmillゲームオブジェクトが見えるようにします。

  3. Hierarchyで Windmill ゲームオブジェクトを選択した状態で、マウスをSceneビューの中に置き、 F をクリックします。

    次にAkAmbientスクリプトを追加してください。

  4. Inspectorで AkAmbient スクリプトを追加します。

    [注釈]

    スクリプトの追加の仕方が分からなければ、 レッスン 1 で確認してください。

    AkAmbientコンポーネントを見て、プロパティを確認します。

    追加したAkAmbientコンポーネントには、 Trigger On、Action on Event、Use CallbackEvent Name のプロパティがあり、AkEventコンポーネントと全く同じです。それ以外にAkAmbientには、 Position TypeShow Attenuation Sphere のプロパティフィールドもあります。まだEvent Nameが選ばれていないので、Ambient_WindmillのEventを追加してください。

  5. Event Name で、 Events > Ambient > SoundBankSpecific を選択して Ambient_Windmill というEvent を選択します。

    Trigger Onの設定が Start になっています。Windmillはゲームロード時にすぐに"Start"すべきなので、このままにします。それでは、Playモードでインテグレーション結果を検証してください。

  6. Play をクリックしてから Villageまで走っていきます。

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

    風車に近づくにつれ、次第にボリュームが大きくなります。ところで、Training Areaでは風車が再生されていなかったのに、接近するにつれ、聞こえるようになったことに気づきましたか?近くに人間社会が存在することの前触れのように、WindmillサウンドがTraining Areaで聞こえてくるはずなのですが、今それが聞こえないのは単純にボリュームが小さすぎたのか、それともMax Attenuation Range外にいるからなのかを、どうすれば判断できるでしょうか?一般的な方法として、Game Object 3D Viewerを使ってサウンドまでの距離を確認できます。ただ今回はAkAmbientコンポーネントを使っているので、Show Attenuation Sphereプロパティを利用すれば、UnityのSceneビュー内にMax Attenuationを表示させて簡単に判断できます。