【UE4】AnimationStateの遷移通知を取得してみた
はじめに
今再生してるアニメーションってどうやって取得するんだろ…と思っていろいろ見てたら発見したので、書いておきます
今回扱うのはこれ
AnimNotify
アニメーション自体に通知を追加するのが一般的な気がします。
けど、これってそのアニメーションでの状態をトリガーにするのであって これを使って再生開始とか再生終わりを設定するのって結構手間な気がします。
そこで発見したのがこれ
これはトロンとカノのボスのAnimBPなんですが、各Stateを選択すると 図で言う右下のところにAnimationStateってのがあります。
ここに設定したCustomBluePrintEventを使って通知できるみたいです。
今回はすでにイベント名を入れてありますが、何も入ってない状態だとNoneになってます。
で、ここで設定したイベントはそのAnimBPのEventGraphで呼べます。
で通知できるのは3パターンあって
- EnteredStateEvent そのStateに入ったとき(再生開始)
- LeftStateEvent そのStateを離れるとき(再生終了)
- FullyBlendedStateEvent (よく分かりません…知っていたら教えてほしいです…)
呼ばれる順番的にはEntered→FullyBlended→Leftでした。
追記
@aizen76 そんな丁寧な感じでブレンドしてくれましたっけ…?
— てんちょー@カノちゃん改変中 (@shop_0761) 2016年4月23日
前のステートと今のステートのアニメーションって割とぶっつり切れる感じで遷移してた気が…(アニメーションの補完はされないだけ…?
@aizen76 なるほどー それは全然知りませんでした… あとで追記しておきますー
— てんちょー@カノちゃん改変中 (@shop_0761) 2016年4月23日
だそうです!
まとめ
この通知方法だとアニメーション一つ一つに再生開始、終了みたいなものを仕込まずにstateごとに設定できるので便利なんじゃないかなと思います。(資料があまり見当たらないけど…