例えばこのようなステートマシンで抜刀モーションを制御したいとする。
アニメーションブループリントを編集
ステートの遷移を制御するためのフラグ変数を定義する。
Unsheatheステートへの遷移条件を定義する。
UnsheatheからIdleへの遷移は、抜刀モーション終了時に遷移させたいので遷移を選択した状態で「Automatic Rule Based on Sequence Player in State」にチェックを入れる。
また、抜刀モーション終了時にフラグ変数をFalseに設定するため、その遷移の通知イベントを作成する。
※「End Transition Event」だと意図通りに動作しないので「Start Transition Event」の方に定義する。
EventGraphでフラグをFalseにする処理を書く。
キャラクターブループリントを編集
EventBeginPlayなどにアニメーションブループリントの参照を取得し保存する処理を書く。
そしてアニメーションを実行したいタイミングでアニメーションブループリントに定義したフラグをTrueにする。
ルートモーションを使用する
アニメーションブループリントでルートモーションを使用する場合、「ClassDefaults > Details > RootMotion」を「Root Motion from Everything」に設定する。