Description

After scanning through SkeletalMeshComponent, it looks like there are several places where AnimInstance is updated but SubInstances are not. This can potentially cause states to get out of sync, and cause bad behavior.

Likely necessary calls that are missing:

  • PerformAnimationEvaluation should call ParallelUpdateAnimation
  • RefreshBoneTransforms should call ParallelUpdateAnimation
  • PostAnimEvaluation should call PostUpdateAnimation
  • RecalcRequiredBones should call RecalcRequiredBones

Other potential calls that are missing (but may not be necessary):

  • OnUnregister should call UninitializeAnimation for SubInstances (and PostProcessAnimInstance?)
  • ClearAnimScriptInstance should empty the SubInstances list
  • TickPose should call OnUROSkipTickAnimation (not actually sure what this is supposed to do) for SubInstances
  • PostAnimEvaluation should call OnUROPreInterpolation (not actually sure what this is supposed to do) for SubInstances
  • RecalcRequiredCurves should call RecalcRequiredCurves for SubInstances (and PostProcess?)
  • RefreshMorphTargets should call RefreshCurves for SubInstances
Steps to Reproduce

Still working on Repro

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-36529 in the post.

1
Login to Vote

Fixed
ComponentOLD - Anim
Affects Versions4.134.14
Target Fix4.14
Fix Commit3148746
Main Commit3153517
Release Commit3159180
CreatedSep 28, 2016
ResolvedOct 3, 2016
UpdatedMay 18, 2020