ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【UE4・UE5】〈Tips〉アニメーションの同期マーカー(Sync Group)とは?

はじめに

UE4のアニメーション通知に存在する同期マーカー

ドキュメントを読んでも理解できなかったので

備忘録として使いどころをまとめておきます。

個人的にも手探りな状態なので間違っていたらコメントで教えていただけるとありがたいです。

f:id:namiton:20220215200058p:plain

↓ 公式ドキュメント

Sync Group | Unreal Engine ドキュメント

解説

 

①同期マーカーの使いどころ

シンプルなアニメーションステートを組みました。

ここで注目するのはWalkLoopとRunLoopのブレンドです。

f:id:namiton:20220215201233p:plain

 

ここのトランジションルールは走るキーを押しているかいないかで遷移する非常にシンプルなものです。

f:id:namiton:20220215201453p:plain


この状態で実行すると以下のようになります。

※変化が分かりやすいように切替キーを連打しています。

f:id:namiton:20220215202034g:plain

Gifだと分かりづらいですがRunLoopに遷移するときにキャラクターの右足から

必ず踏み出すようになっているためノイズが発生しています。

 

これはアニメーション遷移したときにRunFwdLoopのアニメーションが0にリセットされるため発生します。

f:id:namiton:20220215202251p:plain

 

これを防ぐには遷移前の歩行している足に応じて遷移後に踏み出す足を方向を決定する必要があります。

 

それを楽に実装できるのが同期マーカーです。

 

②同期マーカーを適応してみる

walkとrunステートのアニメーションに同期マーカーを適応します。

新規でLeftとRightを作成し、アニメーションの足が設置するフレームに配置します。

f:id:namiton:20220215202838p:plain

f:id:namiton:20220215203012p:plain

 

次にステートの中に入り

適応しているアニメーションノード(今回はWalkLoopとRunLoop)の

Sync Groupを画像のように名前を揃えます。

f:id:namiton:20220215203227p:plain

 

実行してみます。

先ほどと異なり

連打しても足が右足からではなく前回の足に応じたアニメーションをしているのがわかるでしょうか?

f:id:namiton:20220215203732g:plain

このように同期マーカーは異なるステート間で、

モンタージュのようにアニメーション開始位置をずらして再生することができるようです。

これによりブレンド間のノイズを軽減し、より自然なアニメーションを行うことができるようになりました。

 

比較

RunLoopState

 

同期前

f:id:namiton:20220216114615g:plain

 

同期後

f:id:namiton:20220216114640g:plain

 

さいごに

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。