godotengine / godotengine/godot
Scrubbing an Animation Timeline with an animation track does not visually update the animation
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
-Reproducible in Version 4.2.1 Stable
### System information
Godot v4.2.1.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1650 (NVIDIA; 31.0.15.3623) - Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz (8 Threads)
### Issue description
I have a Sprite 3D node with an animation player, in which all the animations change the 'frame' value to progress through the sprite sheet.
I have a second animation player which I use for cutscenes. I use an animation track to control the Sprite's animation. When the animation is _played_, the editor visually updates just fine. However when I manually scrub through the animation, the Sprite retains the last frame that was played until the play button is pressed again.
https://github.com/godotengine/godot/assets/172264464/09f218b8-c54c-4e22-b4fb-94d7a6aecda6
I don't believe this is intentional behavior, as every other track value seems to update visually.
### Steps to reproduce
1. Create a Sprite3D node with a spritesheet texture. Set the HFrames and VFrames value accordingly.
2. Create an animation player node as a child of the Sprite3D.
3. Create an animation which increments the 'Frames' property of the Sprite3D.
4. Create a second animation player, as a sibling to the Sprite3D.
5. Create an animation of the second animation player, with an animation track linking to the first animation player.
6. Scrub through the timeline and observe that the animation does not update visually.
### Minimal reproduction project (MRP)
[MRP.zip](https://github.com/user-attachments/files/15784752/MRP.zip)
Contributor guide
Research direction
Open the attached MRP.zip and follow the six reproduction steps, focusing on the Sprite3D, its AnimationPlayer, and the second player's linked animation track. Scrub the timeline without playing it and compare the Sprite3D frame with playback. Done means scrubbing visibly updates the animation frame consistently with other track values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100