Redot-Engine / redot-engine

Redot Engine – Multi-platform 2D and 3D game engine
https://redotengine.org/
MIT License
4.78k stars 214 forks source link

3D Animation play back is wrong when interpolation is cubic #854

Open RichardR01 opened 1 week ago

RichardR01 commented 1 week ago

Tested versions

Redot 4.3RC1, is present in Godot 4.3 stable

System information

Windows 10 - Redot 4.3 RC1

Issue description

I am creating an animation, with 6 meshes, 3 individually grouped into their own Node3D objects. I am animating those objects for ease, and also because one will be used for the left side and the other right side. I am using the Animation Player to animate these nodes.

My issue starts when I have keys, where the rotation is at Vector3(0, 0, 0), between 2.0 and 2.4. At frame 2.6 there is a key that sets the rotation of these nodes by 90 degrees on the Y axis. When I play or scrub through the animation, the 2 Node3D objects' rotation becomes skewed, when they should remain at 0. The interpolation for all the animation tracks are set to cubic for smoother transitions.

godot43_animation_jank

Steps to reproduce

Open the reproduction project, select the animation player, press play, and observe.

Minimal reproduction project (MRP)

reproduction.zip

RichardR01 commented 1 week ago

I have tested this when interpolation is set to linear, and the problem goes away. So the issue is only present when the interpolation is cubic.

Spartan322 commented 1 week ago

Could you check to see if this issue is reported in Godot's issue tracker? If not would you report it there. You didn't follow the standard to reporting the issue properly either when reporting system info and redot version info, when doing so you should validate this in Godot properly including system and version info using Godot, make sure your MRP works in Godot 4.3 stable and do not use Redot info when submitted there if you do.

RichardR01 commented 1 week ago

This is the closest thing I found on the Godot github. https://github.com/godotengine/godot/issues/87637

As for not following the standard in reporting, what did I get wrong? I specified my OS, and Redot version. I also specified the Godot version I initially had the problem with, and the Redot version I am using.

Spartan322 commented 1 week ago

The info you gave was not comprehensive as instructed by the template.

Tested versions

To properly fix a bug, we need to identify if the bug was recently introduced in the engine, or if it was always present.

  • Please specify the Redot version you found the issue in, including the Git commit hash if using a development or non-official build. The exact Redot version (including the commit hash) can be copied by clicking the version shown in the editor (bottom bar) or in the project manager (top bar).
  • If you can, please test earlier Redot versions (previous stable branch, and development snapshots of the current feature release) and, if applicable, newer versions (development snapshots for the next feature release). Mention whether the bug is reproducible or not in the versions you tested. You can find all Redot releases in our download archive.
  • The aim is for us to identify whether a bug is a regression, i.e. an issue that didn't exist in a previous version, but was introduced later on, breaking existing functionality. For example, if a bug is reproducible in 4.2.stable but not in 4.1.stable, we would like you to test intermediate 4.2 dev and beta snapshots to find which snapshot is the first one where the issue can be reproduced.

    System information

  • Specify the OS version, and when relevant hardware information.
  • For issues that are likely OS-specific and/or graphics-related, please specify the CPU model and architecture.
  • For graphics-related issues, specify the GPU model, driver version, and the rendering backend (GLES2, GLES3, Vulkan).
  • Bug reports not including the required information may be closed at the maintainers' discretion. If in doubt, always include all the requested information; it's better to include too much information than not enough information.
  • Starting from Redot 4.1, you can copy this information to your clipboard by using Help > Copy System Info at the top of the editor window.