query.all_animations_finished transitions a frame too late, showing default pose for one frame
Partner Rank: 3
Verification builds: 1.10, 1.11, 1.12, 1.13, 1.14
Regression builds: Broken since 1.10, the first version that added this query
Summary: When an animation controller transitions between two states with query.all_animations_finished, the default pose of the geometry appears for a single frame. If blend_transition is used, the time is spent blending between the default pose and the new animation pose, rather than the old pose and the new one.
Impact: Noticeable flicker that makes hasty/frequent animation transitions look really bad
Repro Steps:
- Download and open the attached world.
- Observe the flicker.
- Check out the files in the resource pack. This entity has a very large default geometry pose, and it is rapidly switching between two animations, both of which scale it down.
Expected Results: Seamless transition between animations without flicker.
Observed Results: Flicker every time the animations are switched: flicker.mp4
. If blend_transition is used, it becomes even more noticeable: warp.mp4
. Scale is not the only affected thing here, the entire default geometry is visible for at least one frame.
Screenshots/Videos attached: Yes
Notes: If the animation is set to loop, the old animation will display the initial keyframe for a single frame before transitioning to the new animation. This is not visible with my attached world but can easily be recreated.