The animation gets "corrupted" when the Initial Position value has an invaildad value. In this case, this means that the Initial Position value is outside the range of the duration of the Animation. For example, if we have an animation that has a duration of 1 sec, if we set a value of 1.5sec, the animation will stop refreshing in editor, and in gameplay/runtime.

The value will be changed and reflected correctly in the Property widget, but the AnimationData structure that handles the AnimationInstance, will have still the max clamped value.

There most be an issue with how the entered data is propagated and filled to the FPropertyChangedEvent struct, and later sended to the AnimationInstance. AnimationData.InitialPosition is wrong when it reaches USkeletalMeshComponent::PostEditChangeProperties, but correct in FPropertyValueImpl::ImportText.

Steps to Reproduce

1- Create a Blueprint that inherits from Character.
2- Go to the Mesh and add SKM_Manny.
3- Set AnimationMode to Use Animation Asset.
4- Set AnimToPlay to MM_Jump (Can by any animation)
5- Disable animation looping
6- Set the InitialPosition out of range, in this case 2 sec (MM_Jump has a duration of 0.87 sec)
7- Change the value now to a valid position, example 0.2. You will see that the Property Widget will update correctly, but the Animation will not refresh. This error happens in editor and in the level.

Have Comments or More Details?

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

Login to Vote

ComponentUE - Anim - Runtime
Affects Versions5.3
Target Fix5.5
CreatedMar 18, 2024
UpdatedApr 15, 2024