てんちょーの技術日誌

自分がつまづいたこととかメモ

【UE4】AnimationStateの遷移通知を取得してみた

はじめに

今再生してるアニメーションってどうやって取得するんだろ…と思っていろいろ見てたら発見したので、書いておきます

今回扱うのはこれ

f:id:shop_0761:20160423151057p:plain

AnimNotify

アニメーション自体に通知を追加するのが一般的な気がします。

f:id:shop_0761:20160423150211p:plain

けど、これってそのアニメーションでの状態をトリガーにするのであって これを使って再生開始とか再生終わりを設定するのって結構手間な気がします。

そこで発見したのがこれ

f:id:shop_0761:20160423150827p:plain

これはトロンとカノのボスのAnimBPなんですが、各Stateを選択すると 図で言う右下のところにAnimationStateってのがあります。

ここに設定したCustomBluePrintEventを使って通知できるみたいです。

今回はすでにイベント名を入れてありますが、何も入ってない状態だとNoneになってます。

f:id:shop_0761:20160423151057p:plain

で、ここで設定したイベントはそのAnimBPのEventGraphで呼べます。

f:id:shop_0761:20160423151139p:plain

f:id:shop_0761:20160423151147p:plain

で通知できるのは3パターンあって

  • EnteredStateEvent そのStateに入ったとき(再生開始)
  • LeftStateEvent そのStateを離れるとき(再生終了)
  • FullyBlendedStateEvent (よく分かりません…知っていたら教えてほしいです…)

呼ばれる順番的にはEntered→FullyBlended→Leftでした。

追記

だそうです!

まとめ

この通知方法だとアニメーション一つ一つに再生開始、終了みたいなものを仕込まずにstateごとに設定できるので便利なんじゃないかなと思います。(資料があまり見当たらないけど…