Bone poses getting messed up when going from one retargeted animation to another

Godot Version

4.5.1

Question

Hello! I am trying to add an animation from one imported library to another imported library using skeleton retargeting and I’m running into an issue.

Specifically I am trying to add one of the animations from KevDev’s melee animations to Quaternius’ universal animation library. I have added a BoneMap with the SkeletonProfileHumanoid in the advanced import settings for both of the imported animation libraries.

I made an inherited scene for Quaternius’ animations library and saved the library locally. I did the same thing for the single animation I wanted to try adding from KevDev’s animations and saved the animation as a .res file

On the AnimationPlayer node in my inherited scene for Quaternius’ animations library I selected ManageAnimations → Load animation from file and add to library and selected the .res file I saved for the KevDev melee animation I wanted to use. At this point every animation from Quaternius’ library is still behaving as expected.

However, as soon as I select the melee animation I added from the .res file in the animations dropdown, all the other Quaternius animations are now slightly off, it appears as though the skeleton is leaning slightly to the left and angled forward. This only occurs after I select the animation I imported from the .res file.

This is what the skeleton looks like before selecting the added animation.

And this is what that same animation looks like after I select the added animation and then swap back. Notice the significant lean to the left and angle forward.

If I select the GeneralSkeleton node and then select Skeleton3D → Reset all bone poses the animations start behaving as intended again, but as soon as I select the animation I added to the library from the .res file they break again.

I am sure I am doing something incorrect with the way I am trying to retarget in the advanced import settings. I have reviewed this tutorial in the Godot docs. I’ve tried to modify different import settings, and have even tried setting the default rest pose for the KevDev animation to be the same rest pose used by Quaternius’ animation library, but the issue persists.

I think I might be misunderstanding how re-targeting is meant to work. Do the skeletons used by the two different animation libraries need to have an identical set of bones? If anyone can share some insight on how I can resolve this issue without having to modify the skeletons in Blender I’d be extremely grateful!

I’m not an expert here, but I had something similar happen to me when I started making new animations using the Quaternius .blend file. Basically if I switched from my animation back to a Quaternius animation it would look a bit off. Much like you’re seeing in Godot.

I think this happened to me in blender and you in Godot because because a lot the Quaternius animations use curve modifiers which allows the animation to have less key frames. So when you switch between the animations the bones that aren’t key framed retain their position and orientation from the previous animation and then the curve modifier is applied.

I’m not totally sure how to fix it. I would have thought having matching reset poses would be the fix. But like I said I’m new to animation in blender and godot. Maybe try messing with the silhouette correction settings on import.

It might be worth checking if Quaternius animations look correct when the game is running. This might be a non-issue.