レッスン 2
目次
Village(村)の小さな丘の上で、ゆっくりと回るWindmill(風車)があります。Allegro Kingdomにあるほかの様々なアセットと同様に、このWindmillもアセットの1つですが、プレイヤーがVillageに足を向けるように促す重要な役割を担い、機械音を出して人々が近くに住んでいることを表します。ここでは、WindmillのEventを、Windmillゲームオブジェクトに、AkAmbientスクリプトを使ってポストする手順を説明します。
-
Unityのメニューで、 Audiokinetic > Certification > 301 > Lesson 2 > Posting an Ambience を選択します。
Hierarchyに、Village Environment Sceneと、L2_1 - Posting an Ambienceの、2つのシーンが表示されています。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スクリプトを追加します。
-
Hierarchyの L2_1B - Village Environment Scene で Wwise を展開して Windmill ゲームオブジェクトを選択します。
ここでSceneビューを調整し、Windmillゲームオブジェクトが見えるようにします。
-
Hierarchyで Windmill ゲームオブジェクトを選択した状態で、マウスをSceneビューの中に置き、 F をクリックします。
次にAkAmbientスクリプトを追加してください。
-
Inspectorで AkAmbient スクリプトを追加します。
スクリプトの追加の仕方が分からなければ、 レッスン 1 で確認してください。
AkAmbientコンポーネントを見て、プロパティを確認します。
追加したAkAmbientコンポーネントには、 Trigger On、Action on Event、Use Callback 、 Event Name のプロパティがあり、AkEventコンポーネントと全く同じです。それ以外にAkAmbientには、 Position Type や Show Attenuation Sphere のプロパティフィールドもあります。まだEvent Nameが選ばれていないので、Ambient_WindmillのEventを追加してください。
-
Event Name で、 Events > Ambient > SoundBankSpecific を選択して Ambient_Windmill というEvent を選択します。
Trigger Onの設定が Start になっています。Windmillはゲームロード時にすぐに"Start"すべきなので、このままにします。それでは、Playモードでインテグレーション結果を検証してください。
-
Play をクリックしてからVillageまで走っていきます。
-
ESC を押してWAGメニューを開き、 Play をもう一度クリックしてPlayモードを終了させます。
風車に近づくにつれ、次第にボリュームが大きくなります。ところで、Training Areaでは風車が再生されていなかったのに、接近するにつれ、聞こえるようになったことに気づきましたか?近くに人間社会が存在することの前触れのように、WindmillサウンドがTraining Areaで聞こえてくるはずなのですが、今それが聞こえないのは単純にボリュームが小さすぎたのか、それともMax Attenuation Range外にいるからなのかを、どうすれば判断できるでしょうか?一般的な方法として、Game Object 3D Viewerを使ってサウンドまでの距離を確認できます。ただ今回はAkAmbientコンポーネントを使っているので、Show Attenuation Sphereプロパティを利用すれば、UnityのSceneビュー内にMax Attenuationを表示させて簡単に判断できます。