レッスン 1
目次
Allegro Kingdomというこの王国に、クレート(木箱)やバレル(樽)が何個も散在し、それを破壊するたびにCoinをスポーンするチャンスがあります。Coinをインスタンス化すると、地面に落ち、Adventurerがそれをピックアップできる状態になります。Coinをピックアップするには、Adventurerはそれを走り抜ければよく、Pickup_Coinイベントが再生されます。このEventをトリガーするのに使うのが、 AkEvent スクリプトです。では、その手順を説明します。
-
Unityのメニューで、 Audiokinetic > Certification > 301 > Lesson 1 > Trigger Conditions を選択します。
それでは、301_CoinをWwise Adventure GameプロジェクトのAssetsフォルダから探して追加します。
-
Projectビューで '301 Coin' を検索します。
-
301_Coin ゲームオブジェクトをSceneビューの中までドラッグします。
-
Moveツール ('W') を使い、 301_Coin をTraining Areaの地面に置きます。
このとき、Coinゲームオブジェクトの緑のトリガーが、プレイヤーと重なっていないことを確認してください。
プレイヤーがSphere Triggerとオーバーラップしていると、Sceneスタート時にコインが自動的にピックアップされてしまいます。そうではなく、プレイヤーが動いてコインをピックアップするようにしたいので、ここでは Is Trigger に設定されたSphere Colliderにゲームプレイ中に入ると、音が起動することを説明します。もし上図のような球体のアウトラインが表示されていなければ、InspectorでSphere Colliderコンポーネントが開いているか確認して下さい。名前をクリックすれば展開できます。
Triggerは厳密には、Is Triggerに設定されたColliderのことですが、ここではTriggerと呼びます。
これから301_Coinゲームオブジェクトにサウンドを追加します。ここではWwise Pickerを使うのではなく、マニュアル操作で既成スクリプトを探して追加する手順を学び、あとでこのコースで使いこなせるようにします。
-
Inspectorで Add Component を選択します。
-
' AkEvent' を検索し、それを選択します。
-
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のみにするためには、Startをもう一度選択するかNothingを選択します。
-
Trigger OnプロパティでNothingを選択してからAkTriggerEnterを選択します。
-
Play をクリックし、Coinに向かって走ります。
Pickup_Coinが何回もポストされたことに気づきましたか?AkEventコンポーネントは正しく設定できましたが、問題は、Triggerに入ってきたすべてのゲームオブジェクトに反応してしまうことです。ゲームをスタートすると、Triggerがまず地面自体を検知し、イベントをポストします。あとで、プレイヤーがTriggerに入ったときにもう一度、同じイベントをポストします。