目次
はじめに
UE5のThirdPersonテンプレからアニメーションステートの中身が変更され、ステートマシンにも変化があったのでメモ。
ここで触れているのはMainStatesの中身です。
認識違いなどミスがあったらコメントで指摘お願いします。
▼UE4
▼UE5
メモ
①UE4との違い
まず大きなところでは足のIKが標準で利用できるようになっているところ。
それを実現するにコントロールリグが利用されている。
コントロールリグについては割愛
ステート内にもコントロールリグ用のノードが追加されている。
もう一つは落下モーション時の変化。
UE4ではジャンプスタートモーション落下直後に再生されるが、UE5ではすぐに落下中のアニメーションが再生される。
細かいところだが、UE4ではジャンプをするだけの設計で、UE5では落下も考慮した設計に変更されているのが分かる。
▼ジャンプスタートを無視して直接落下モーションに移動している。
②ステータス エイリアス
ステート間の遷移を制御してくれるノードらしい。
使い方はシンプル。
選択したステータスに遷移すると、このノードから繋がれている遷移条件が判定される。遷移条件を満たしていれば、このノードにワープして処理が走る。
GlobalAliasはどこの遷移にいても判定を行うかどうかの項目のようだ(未確認)
例えばこれまでの機能でこの遷移を実現しようとしたら、以下の画像のようにジャンプ動作だけで複数のステートから同じ条件分岐を出す必要がある。
これでは、今後アクションが増えていくたびに考慮する遷移が増えていき管理が大変になってしまう。
▼ステートエリアスを使わないで書いた場合
それを回避するために出てきたであろうステートエリアス。
コンセントの延長ケーブルのように遷移を中継していて、遷移可能なステートに到達している間に中継先の条件を確認しているようだ。
▼左が通常の書き方、右がステートエリアスで中継した書き方
遷移条件でステートマシン内が視覚的に複雑にならないように、かつ柔軟性が高い仕組みになっていると感じた。
ただ、意識して利用しないと表面上は整理されているが、裏では大量の遷移を確認する処理が走る原因にもなりそうな予感がしたので注意した設計を行いたい。
最後に
UE4やUE5向けの記事を書いています。
皆様の応援が投稿のモチベーションになりますので
コメントやTwitterのフォローなどしていただけるとありがたいです。
それではよきゲーム開発を。