はじめに
UE4のアニメーション通知に存在する同期マーカー
ドキュメントを読んでも理解できなかったので
備忘録として使いどころをまとめておきます。
個人的にも手探りな状態なので間違っていたらコメントで教えていただけるとありがたいです。
↓ 公式ドキュメント
Sync Group | Unreal Engine ドキュメント
解説
①同期マーカーの使いどころ
シンプルなアニメーションステートを組みました。
ここで注目するのはWalkLoopとRunLoopのブレンドです。
ここのトランジションルールは走るキーを押しているかいないかで遷移する非常にシンプルなものです。
この状態で実行すると以下のようになります。
※変化が分かりやすいように切替キーを連打しています。
Gifだと分かりづらいですがRunLoopに遷移するときにキャラクターの右足から
必ず踏み出すようになっているためノイズが発生しています。
これはアニメーション遷移したときにRunFwdLoopのアニメーションが0にリセットされるため発生します。
これを防ぐには遷移前の歩行している足に応じて遷移後に踏み出す足を方向を決定する必要があります。
それを楽に実装できるのが同期マーカーです。
②同期マーカーを適応してみる
walkとrunステートのアニメーションに同期マーカーを適応します。
新規でLeftとRightを作成し、アニメーションの足が設置するフレームに配置します。
次にステートの中に入り
適応しているアニメーションノード(今回はWalkLoopとRunLoop)の
Sync Groupを画像のように名前を揃えます。
実行してみます。
先ほどと異なり
連打しても足が右足からではなく前回の足に応じたアニメーションをしているのがわかるでしょうか?
このように同期マーカーは異なるステート間で、
モンタージュのようにアニメーション開始位置をずらして再生することができるようです。
これによりブレンド間のノイズを軽減し、より自然なアニメーションを行うことができるようになりました。
比較
RunLoopState
同期前
同期後
さいごに
UE4やUE5向けの記事を書いています。
皆様の応援が投稿のモチベーションになりますので
コメントやTwitterのフォローなどしていただけるとありがたいです。
それではよきゲーム開発を。