Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Animation bezier tracks without a matching RESET track do not function #92617

Closed
krdluzni opened this issue Jun 1, 2024 · 4 comments
Closed

Comments

@krdluzni
Copy link
Contributor

krdluzni commented Jun 1, 2024

Tested versions

  • Reproducible in: v4.3.beta2.official [b75f048], v4.3.beta1.official [a4f2ea9], v4.3.dev2.official [3524346]
  • Not reproducible in: v4.3.dev1.official [9d1cbab], v4.2.2.stable.official [15073af]

Regression between 4.3.dev1.official and 4.3.dev2.official

System information

Godot v4.3.beta1 - Windows 10.0.22631 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4090 (NVIDIA; 31.0.15.5123) - AMD Ryzen 9 7950X 16-Core Processor (32 Threads)

Issue description

Edit: Simplified steps with simple MRP, and notes providing a better understanding of the actual, underlying issue are available in comment #92617 (comment). This main issue description and steps can be considered outdated as there's a much clearer way to see this issue.

When creating a bezier track in an animation player that only contains keys made via right click on the timeline > Insert key... > modifying the key data in the the AnimationTrackKeyEdit inspector, the bezier track has no effect on the actual scene. This applies both in-game if the animation is played, and when scrubbing through the timeline to preview the animation in the editor.

Steps to reproduce

Edit: These steps reproduce the issue from a blank project, but there is now a better understanding of the issue and simplified reproduction from an MRP available in a followup comment.

  1. Create a new Godot project.
  2. Create a new scene with the following structure (everything positioned at 0,0,0):
  • Node3D
    • CSGBox3D
    • AnimationPlayer
  1. Go the the animation editor and click Animation > New... > OK.
  2. Go to the animation timeline and click +Add Track > Bezier Curve Track....
  3. Pick CSGBox3D.
  4. Pick position as the field to animate.
  5. In the timeline, right click near the start of the animation for CSGBox3D:position:x, and choose to Insert Key....
  6. In the timeline, right click near the end of the animation for CSGBox3D:position:x, and choose to Insert Key... one more time.
  7. Click the second created key to see the AnimationTrackKeyEdit in the Inspector.
  8. In the Inspector, modify the Value field to 5.
  9. Return to the timeline and try to scrub through it. Note that the box position does not visibly change.

Known Workaround (in current version, does not work in all broken versions):
If you now scrub to the middle of the timeline, open the Inspector for the CSGBox3D, key the position using the key button in that inspector, and then delete the key frame info made by doing so, suddenly the animation does what it should have at step 11. Something appears to be broken when initially setting up the track, but gets fixed as soon as the key button is clicked, even if the animation keys made that way are deleted.

Minimal reproduction project (MRP)

Edit: An MRP with simpler steps to reproduce is include in a followup comment: #92617 (comment).

As the behaviour breaks during the making of the scene, and changes depending on the steps made to create the scene, no MRP is provided. The steps above outline as precisely as possible how to create an animation that does not apply correctly.

@krdluzni krdluzni changed the title Animation Bezier tracks, filled with manually inserted keys do not function Animation Bezier tracks using only manually inserted keys do not function Jun 1, 2024
@krdluzni krdluzni changed the title Animation Bezier tracks using only manually inserted keys do not function Animation bezier tracks using only manually inserted keys do not function Jun 1, 2024
@krdluzni
Copy link
Contributor Author

krdluzni commented Jun 19, 2024

Additional info after further testing:
It appears that the underlying issue here is that bezier tracks that do not have a matching RESET track are unable to function. Based on this information I've provided an MRP with simpler reproduction steps, and updated the title to represent the real issue.

Steps to reproduce

  1. Open MRP
  2. Open node_3d.tscn
  3. Select the animation player and ensure the animation named MRP is selected.
  4. Play selected animation from current position.
  • Note that the animation does not have any effect.

If a matching reset track for the animated field is created, the animation will start to work. If that track (or the whole RESET animation) is then deleted, it will again stop working. RESET track must exist for bezier animation to have any effect on the scene.

Updated minimal reproduction project (MRP)

bezier-reset.zip

@krdluzni krdluzni changed the title Animation bezier tracks using only manually inserted keys do not function Animation bezier tracks that do not have a matching RESET track do not function Jun 19, 2024
@krdluzni krdluzni changed the title Animation bezier tracks that do not have a matching RESET track do not function Animation bezier tracks without a matching RESET track do not function Jun 19, 2024
@krdluzni
Copy link
Contributor Author

Tested to confirm regression is still present in v4.3.beta2.official [b75f048]

@matheusmdx
Copy link
Contributor

Bisecting points to #86687 as the culprit:

image

@TokageItLab
Copy link
Member

Fixed by #93785

@TokageItLab TokageItLab closed this as not planned Won't fix, can't repro, duplicate, stale Jul 7, 2024
@TokageItLab TokageItLab added this to the 4.3 milestone Jul 7, 2024
@TokageItLab TokageItLab reopened this Jul 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants