LeaderPoseComponentを使用しているメッシュがずれることがある

お世話になっております。

<br/>

表題の件について、現在LeaderPoseComponentを使用してキャラクターの指先につける装備を実装しております。

<br/>

LevelSequence上でBGMに合わせてキャラクターが2~3分ほどアニメーションし続けるという状況において、LeaderPoseのFollower側であるキャラクターの指装備が一瞬ずれることがあります。特に、手を素早く動かすシーンで多く発生しております。

(Follower側が参照しているLeaderのMatrixが1F前のMatrixを参照しているように見える状況です。)

<br/>

また、こちらの発生確率は100%ではなく、発生しやすいシーンにおいて10回中8回くらいの頻度で発生します。

<br/>

対象箇所のコンポーネント構造については、ACharacter継承のキャラクタークラスに指装備用のSkeletalMeshComponentをCreateDefaultSubobjectで持たせ、キャラクタークラス内にて指装備を装備させるタイミングでSkeletalMeshを設定、そしてGetMesh()で取得できるメインメッシュに対してAttachToComponent(GetMesh(), FAttachmentTransformRules::SnapToTarget)でアタッチ、SetLeaderPoseComponent(GteMesh())を呼び出しております。

<br/>

これに対してこちらで対処してみたこととしては以下となります。

<br/>

  • キャラクターのメインメッシュのスケルトンと装備のスケルトンが別のモノだったため、装備のスケルトンをキャラクターのスケルトンを利用するように変更
  • カメラカットが高頻度で変わるため、FrustumCullingの影響を受けてアニメーションの更新が止まることで影響を与えているのではないかと考え、Follower側のSkeletalMeshComponentの以下のプロパティを変更

<br/>

bUseAttachParentBound = true; bIncludeComponentLocationIntoBounds = true; bUseBoundsFromLeaderPoseComponent = true; bComponentUseFixedSkelBounds = true; BoundsScale *= 3;<br/>

<br/>

しかし、上記対応を入れた後でも、この問題は発生しております。

<br/>

こちらにつきまして、なにか解決策等はございますでしょうか?

<br/>

<br/>

こちら、5.2でボーンのTransform情報のバッファリングのタイミングが変更されたことによるものだそうでした。

5.4でFixされているようでしたので、対象の差分(https://github.com/EpicGames/UnrealEngine/commit/ee14c94c5e6e678a5438f7bafc5dd2ec9201ce00)をチェリーピックすることで問題は確認されなくなりました。

参考)​

[Content removed]

お世話になっております。

返信が遅くなり大変申し訳ございません。

ちょうどそのCLをご案内できればと調査していたところでしたので、当該差分の適用により修正されたと聞き、安心いたしました。もっと早く情報提供すべきだったところを、自己解決していただく結果となり、誠に申し訳ございませんでした。

それでは本チケットはCloseとさせていただきます。​

以上、よろしくお願いいたします。