`PhysicalBone3D` positions still affected when "Reset on save" is selected in `AnimationMixer`
Tested versions
- Godot v4.5.dev5
System information
Godot v4.5.dev5 - macOS Sequoia (15.5.0) - Multi-window, 1 monitor - Vulkan (Forward+) - integrated Apple M4 Pro - Apple M4 Pro (14 threads)
Issue description
When "Reset on Save" is set on an AnimationMixer, it will use the bone positions of the animation named RESET when saving the scene.
However, this only applies to bone rotations inside of the Skeleton3D being modified.
If the Skeleton3D has a PhysicalBoneSimulator3D that has PhysicalBone3D nodes inside of it, the transforms from the animation will still be saved for those PhysicalBone3D nodes. It seems like the transforms from the RESET animation should be saved there instead.
Steps to reproduce
- Create a physical skeleton inside of a
Skeleton3D- See https://docs.godotengine.org/en/stable/tutorials/physics/ragdoll_system.html
- Make sure it has a
RESETanimation - Make sure that "Reset on Save" (
reset_on_save) is selected for theAnimationPlayer - Save the file and commit to git
- Switch animations or let the current animation play for a bit
- Save the file again and look at the diff
- See that each
PhysicalBone3Dhas a changed position
Minimal reproduction project (MRP)
Follow the repro steps from above with the 3D platformer project; https://github.com/godotengine/godot-demo-projects/tree/master/3d/platformer
Steps to create the physical skeleton are here: https://docs.godotengine.org/en/stable/tutorials/physics/ragdoll_system.html
Can you please test this on 4.4.1 to see if this is a regression?
@AThousandShips this also happens in v4.4.1.stable.mono, so this is not a regression in v4.5
Can reproduce on:
Godot v4.6.dev (78d91947f) - Windows 11 (build 26100) - Multi-window, 2 monitors - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4080 SUPER (NVIDIA; 32.0.15.8180) - AMD Ryzen 7 7800X3D 8-Core Processor (16 threads) - 63.11 GiB memory