Sometimes AnimNotify does not fire when an animation is executed under the following conditions.
1. The CharacterMesh's AnimationMode uses UseAnimationAsset
2. CharacterMesh's URO is enabled (Enable Update Rate Optimizations)
3. Using Animation Track on LevelSequencer to run the animation
When the animation runs, it appears that we calculate the AnimNotifies using PreviousPosition and CurrentPosition within the UAnimSequenceBase::GetAnimNotifiesFromDeltaPositions() function, so that those will fire in this frame.
The problem seems to be that when AnimNotify is running normally, it takes into account the time that the tick has not been updated with URO to calculate the PreviousPosition, but when it is run through Level Sequencer to trigger an animation, it does not take into account URO and enters the PreviousPosition.
Please watch the issues in the attached mp4.
1. In the ThirdPersonTemplate, set the AnimationMode of the [BP_ThirdPersonCharacter] Mesh to UseAnimationAsset
2. Change EnableUpdateRateOptimizations on the [BP_ThirdPersonCharacter] Mesh to true
3. For testing purposes, prepare an animation that fires AnimNotify at a quick time (say 0.05s)
4. Create a new LevelSequencer, register a [BP_ThirdPersonCharacter], and run the Animation using AnimationTrack.
5. Verify that the AnimNotify fires correctly in actual gameplay.
Results: Sometimes AnimNotify runs, sometimes it doesn't
Expected: All AnimNotify should run normally.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-282956 in the post.
0 |
Component | UE - Anim - Gameplay |
---|---|
Affects Versions | 5.5 |
Created | May 19, 2025 |
---|---|
Updated | May 26, 2025 |