イベント

イベントはアニメーション中、何かを引き起こすトリガーです。例えば、キャラクターの足が地面を打つと音が再生されます。イベントはオーディオだけではなく、ランタイムに実行されるいかなるコードにも使用できます。例えば粒子生成エフェクト、ドアを開く、敵を倒す、コードを通してスケルトンを操作するなどです。

設定

ツリー内で「イベント」ノードを選択し、「新規イベント」をクリックするとイベントが作成されます。

イベントに適切な名前が付けられると、ツリーに表示されます。イベントは整数、フロート、文字列という3つのプロパティを有します。

これらのプロパティはイベントに追加情報を指定します。オプションとして設定モードでこれらにデフォルト値を与えることもできます。

キー作成

アニメーション中イベントをトリガーするには:

  1. アニメ化モードであることを確認します。
  2. タイムラインを希望のポジションに移動します。
  3. オプションとして、ツリーの中でイベントのプロパティを設定します。
  4. ツリーの中でイベントの横のキーボタンをクリックします。

アニメーションが再生される、またはタイムラインが前方にスクラブされる時、イベントがトリガーされます。エディターエリアでスケルトンの上にイベント名が表示されます。

イベントへの反応

イベント名と値およびイベントがトリガーされた時の実行内容は、好きなように設定できます。イベント自体はアクションを起こしません。アプリケーションの中でイベントが起こった時にトリガーし、適切なアクションが実行されるようにコードを書く必要があります。通常、これは「AnimationState」にコールバックを設定することで実行されます。

AnimationState state = ...
state.addListener(new AnimationStateAdapter() {
   public void event (int trackIndex, Event event) {
      // Inspect and respond to the event here.
      if (event.name == "footstep")
         Audio.play("footstep" + event.intValue + ".wav");
   }
});

コールバックは個々の「TrackEntry」にも設定できます:

TrackEntry entry = state.setAnimation(0, "run", true);
entry.setListener(new AnimationStateAdapter() {
   public void event (int trackIndex, Event event) {
      // Inspect and respond to the event here.
      if (event.name == "audio")
         Audio.play(event.stringValue);
   }
});

次: Constraints 前: スキン