目次
はじめに
今回はUE5から追加された新ノード
Montage Sync Followの解説をします。
その名の通り異なるモンタージュを同期することができるので便利です。
モンタージュって何ぞや!?という方は公式のラーニングがありますのでそちらを一度見ていただけると幸いです。
また、アニメーション通知に関する内容を含みます。
記事を過去に書いていますのでこちらを読んでいただけると理解が深まります。
記事を書くに当たって以下のソースを参考にしています。
https://github.com/EpicGames/UnrealEngine
・\Engine\Source\Runtime\Engine\Private\Animation\AnimMontage.cpp
環境 : UE5.1
個人の備忘録としてまとめています。
誤った情報がある場合があります。
コメントにてご指摘のほどお願いいたします。
使いどころ
キャラアニメーションと銃本体のアニメーションなど、異なるモンタージュを同期したい場面に使用するのがおすすめです。
特に再生時にヒッチなどが起きても手と銃がズレなくなります。
使用方法
モンタージュを同時に再生する仕組みを作ります。
Lyraのサンプルではキャラのリロードアニメーションの通知内で銃のリロードモンタージュを再生しています。
▼アニメーション通知Content/Characters/Heroes/Mannequin/Animations/AnimNotifies/AN_PlayWeaponMontage.uasset
MontagePlayの後にMontageSyncFollowを呼び出します。
ターゲットはリーダーに同期させるのAnimInstance
MontageFollowerはリーダーに同期させるモンタージュ
OtherAnimInstanceはリーダーのAnimInstance
MontageLeaderはリーダーのモンタージュ
これで銃のモンタージュをキャラのモンタージュに同期させることができました。
注意
実装にも書いてありますが、同期元と同期先が大きく離れている場合はテレポートが発生します。その場合テレポート間のアニメーション通知が呼ばれなくなるので注意しましょう。
例えば、Lyraのサンプルだとキャラと銃があってキャラがリーダーの場合、テレポートが発生する可能性がある銃のほうに仕様に関わるアニメーション通知を配置しないようにしましょう。
▼実際にLyraには銃にアニメーション通知が入っていない。
最後に
UE4やUE5向けの記事を書いています。
皆様の応援が投稿のモチベーションになりますので
コメントやTwitterのフォローなどしていただけるとありがたいです。
それではよきゲーム開発を。