ゲーム開発備忘録

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

【UE5】〈Tips〉異なるモンタージュのタイミングを同期するMontage Sync Followノードの使い方

目次

 

はじめに

 

今回はUE5から追加された新ノード

Montage Sync Followの解説をします。

その名の通り異なるモンタージュを同期することができるので便利です。

 

モンタージュって何ぞや!?という方は公式のラーニングがありますのでそちらを一度見ていただけると幸いです。

docs.unrealengine.com

また、アニメーション通知に関する内容を含みます。

記事を過去に書いていますのでこちらを読んでいただけると理解が深まります。

namiton.hatenablog.jp

 

 

記事を書くに当たって以下のソースを参考にしています。

docs.unrealengine.com

www.unrealengine.com

 

ソースコード

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のフォローなどしていただけるとありがたいです。

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

投げ銭を投げる