AnimationPlayer capture blends fine, discrete frame stuck until loop

Godot Version

4.6.1

Question

Hi! I’m running into something weird with AnimationPlayer in Godot Engine 4 and I’m not sure if I’m misunderstanding how blending is supposed to work.I have a single AnimationPlayer that contains both frame animations (using discrete tracks for frames) and transform animations (position/rotation using capture tracks). The capture tracks blend perfectly fine. The blend time is set directly in the AnimationPlayer and the transitions for position and rotation look exactly as expected.

The problem happens when there’s a discrete track involved, when I transition from one animation to another, the sprite frame from the previous animation just stays there until the next time the new animation updates that frame again. For example, imagine I blend over 0.3 seconds into a 6-second animation. The transform blending works during those 0.3 seconds, but the sprite frame stays incorrect for the full 6 seconds, until the animation reaches the point where it sets the frame again. So visually, the object moves correctly, but the frame is stuck from the previous animation.

I’m not sure if this is just how discrete tracks behave and if this is actually a case where I should be using AnimationTree instead. If so, I’d really appreciate some guidance on how to replicate the same blending effect properly with AnimationTree, I already tried using a separate AnimationPlayer for the frames, but the same issue happens and the wrong frame still persists. I also tried setting the easing time to 0.0, but that didn’t change the behavior.

Thanks a lot in advance!