レッスン 4

目次

Wwise-Type Eventをアサインしポストする

[注釈]

このセクションに入る前に、直前のセクションの Wwise-Type Eventプロパティを作成するを終わらせてください。

EventをポストするためにStart()ファンクションを使い、これをゲームを実行するときに1回コールします。スクリプトを書くときに、クラスプロパティのファンクション、変数、またはプロパティをアクセスするには、プロパティ名のあとにピリオド '.' を入力します。前セクションで気づいたかもしれませんが、そうすると、あなたが使いやすいように、そのクラスに関連する設定項目のリストがVisual Studioに表示されます。

  1. Start() ファンクションに、 MyEvent と入力し、そのあとに ピリオド '.' を入れます。

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
        
    public class PostWwiseEvent : MonoBehaviour {
        public AK.Wwise.Event MyEvent;
        // Use this for initialization.
        void Start () {
            MyEvent.
        }
        
        // Update is called once per frame.
        void Update () {
        
        }
    }

    これで、Unityに対し、Eventを使って何かをしたいことを示します。

    ピリオドを入力すると、ドロップダウンメニューが表示されるはずです。Visual Stuidoはそのドロップダウンに、AK.Wwise.Eventクラスで使えるファンクションや変数などのリストを表示します。

    もしコードエディタにドロップダウンが表示されなければ、以下のように自分で入力すればいいのです。ここでEventを再生するのに使うのは、Post()ファンクションです。

  2. MyEvent. のあとに入力する、または Post() をダブルクリックします。

    public AK.Wwise.Event MyEvent;
    // Use this for initialization.
    void Start () {
        MyEvent.Post()
    }

    このファンクションコールは、まだ不完全です。ファンクションの上にマウスを置くと、何が不足しているのかが分かるように、ヘルプメッセージが表示されます。

    沢山の情報が提示されていますが、突き詰めると、サウンドをポストする対象となるゲームオブジェクトが少なくとも1つ必要だということです。スクリプトがアタッチされているゲームオブジェクト、つまりPlayerゲームオブジェクトに対してこのサウンドをポストしたいので、以下のように書くだけで、特定のゲームオブジェクト名を入れる必要はありません。

  3. Post() の括弧内に、 gameObject と入力します。

    public AK.Wwise.Event MyEvent;
    // Use this for initialization.
    void Start () {
        MyEvent.Post(gameObject)
    }

    最後にセミコロンを追加して、行を終わりにします。スクリプトを構成する上でこれが最後の手順となるので、スクリプト全体に目を通し、必要なところにセミコロンや終わり括弧が入っているかを確認するのに、ちょうどよいタイミングです。

  4. 続いて MyEvent.Post(gameObject) のあとに、 semicolon (;) を追加します。

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
        
    public class PostWwiseEvent : MonoBehaviour {
        public AK.Wwise.Event MyEvent;
        // Use this for initialization.
        void Start () {
            MyEvent.Post(gameObject);
        }
        
        // Update is called once per frame.
        void Update () {
        
        }
    }

    以上です。InspectorでEventをアサインすることが可能になり、Eventは、ゲームスタート時にPlayerゲームオブジェクトに対しポストされます。それでは、試してみてください。

  5. スクリプトを保存し、Unity Inspectorで PostWwiseEvent を選択し、 MyEvent というproperty drawerを選択し、 Destruction_Rock_Destroy というEvent を選択します。

    property drawerは、あなたのWwiseプロジェクトのEventsフォルダを自動的に開きます。

  6. Play をクリックし、Eventの音を確かめます。

    ゲームをロードしたあと、大きな岩とプレイヤーが衝突する音が聞こえ、確かにスクリプトからEventをポストできました。ここで「なぜプレイヤーに岩の衝突音を追加する必要があったのか?」と思うかもしれませんが、Destruction_RocksのEventは、単に、あなたのスクリプトの実装が正しく機能するかを確認するためのものです。次のセクション Eventをアニメーションからポストする' でも、同じスクリプトを使い、さらに発展させていきます。それでは、Playモードを終了してください。

スクリプトの作成はゲーム開発において非常に重要な部分の1つなので、今後、あなたがUnityを使い作業することがあれば、このスクリプトの知識と経験が必ず役に立ちます。