レッスン 1

目次

Trigger Conditionを追加する

Allegro Kingdomというこの王国に、クレート(木箱)やバレル(樽)が何個も散在し、それを破壊するたびにCoinをスポーンするチャンスがあります。Coinをインスタンス化すると、地面に落ち、Adventurerがそれをピックアップできる状態になります。Coinをピックアップするには、Adventurerはそれを走り抜ければよく、Pickup_Coinイベントが再生されます。このEventをトリガーするのに使うのが、 AkEvent スクリプトです。では、その手順を説明します。

  1. Unityのメニューで、 Audiokinetic > Certification > 301 > Lesson 1 > Trigger Conditions を選択します。

    それでは、301_CoinをWwise Adventure GameプロジェクトのAssetsフォルダから探して追加します。

  2. Projectビューで '301 Coin' を検索します。

  3. 301_Coin ゲームオブジェクトをSceneビューの中までドラッグします。

  4. Moveツール ('W') を使い、 301_Coin をTraining Areaの地面に置きます。

    このとき、Coinゲームオブジェクトの緑のトリガーが、プレイヤーと重なっていないことを確認してください。

    [注釈]

    Collider、またはTriggerとは? Colliderは、Unityでゲームオブジェクト同士の接触を検出するために利用します。何種類ものCollider(Box、Sphere、Capsuleなど)があり、主にオブジェクトのメッシュ(形)の物理的な形状を決めて交差を妨害するために使います。Triggerは、コリジョン(衝突)を検知するColliderで、ほかのColliderはこれを通過することができます。Colliderは、Meshで形状を描く(岩を平たんなポリゴン面で描くように)のではなく、Colliderの大きさや形を定義するために、目に見えないMeshを使います。

    プレイヤーがSphere Triggerとオーバーラップしていると、Sceneスタート時にコインが自動的にピックアップされてしまいます。そうではなく、プレイヤーが動いてコインをピックアップするようにしたいので、ここでは Is Trigger に設定されたSphere Colliderにゲームプレイ中に入ると、音が起動することを説明します。もし上図のような球体のアウトラインが表示されていなければ、InspectorでSphere Colliderコンポーネントが開いているか確認して下さい。名前をクリックすれば展開できます。

    [注釈]

    Triggerは厳密には、Is Triggerに設定されたColliderのことですが、ここではTriggerと呼びます。

    これから301_Coinゲームオブジェクトにサウンドを追加します。ここではWwise Pickerを使うのではなく、マニュアル操作で既成スクリプトを探して追加する手順を学び、あとでこのコースで使いこなせるようにします。

  5. Inspectorで Add Component を選択します。

  6. ' AkEvent' を検索し、それを選択します。

  7. Event Name プロパティで Events > Player > General を展開し、 Pickup_Coins をダブルクリックします。

    これで、ゲームをスタートしたときに、301_Coinゲームオブジェクトを参照先するPickup_CoinのEventがポストされます。次に、このEventのトリガー方式を設定する必要があります。301_CoinゲームオブジェクトにはSphere Colliderがあり、それはTriggerに設定されています。AkEvent > Trigger Onプロパティに、サウンドをトリガーする最も一般的な方式が、選択肢としていくつか表示されます。Sphere Triggerに入ったときにPickup_CoinのEventをトリガーするには、AkTriggerEnterという選択肢を使います。今、Trigger OnプロパティはStartに設定されています。今まで選択されていた条件をすべて変えてAkTriggerEnterだけにするには、まずNothingを選択してすべてをリセットし、次にAkTriggerEnterを選択します。

  8. Trigger On プロパティで、 Nothing を選択します。

  9. もう一度開き、 AkTriggerEnter を選択します。

  10. Play をクリックし、Coinに向かって走ります。

    Pickup_Coinが何回もポストされたことに気づきましたか?AkEventコンポーネントは正しく設定できましたが、問題は、Triggerに入ってきたすべてのゲームオブジェクトに反応してしまうことです。ゲームをスタートすると、Triggerがまず地面自体を検知し、イベントをポストします。あとで、プレイヤーがTriggerに入ったときにもう一度、同じイベントをポストします。