Description

When playing AnimMontage with BlendOutTime set to 0.f with AnimNode_Slot of AnimBP, it seems that the last frame pose may not be evaluated.

this issue does not occur in high frame rate and does not occur in UE4.27.

--------
licensee comment:

After investigating, it seems that the cause is that Blend.Update(0.0f); was added in the FAnimMontageInstance::Stop function in UE5.

When the last frame is reached in FAnimMontageInstance::Advance (), Stop () is called.
Then  Blend.Update(0.f); puts it in Blend.IsComplete() state if BlendOutTime is 0.f.
Next, Teminate(); near the end of Advance() is called.
Finally at the time of UAnimInstance::UpdateMontageEvaluationData () of the same frame, the Montage is excluded from the Evaluate target (because Motage is nullptr).

--------

Sure, commen out Blend.Update (0.0f) solves this issue, but it's probably not the correct solution. Must be modified in consideration of CL-14831887 ([Link Removed]) with Blend.Update (0.0f) added

Steps to Reproduce
  1. Open Attached Project
  2. PIE
  3. run t.maxfps 30
  4. press 1 key

expect : eval last frame of AnimMontage ( can see raise left arm when finishing animation )
result : skip last frame otf AnimMontage

Have Comments or More Details?

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

4
Login to Vote

Backlogged
ComponentUE - Anim - Gameplay
Affects Versions5.0
CreatedApr 26, 2022
UpdatedAug 28, 2022