Godot Version
4.6.1
Question
Hi everyone,
I’m a beginner currently learning 3D game development in Godot, and I’ve run into an issue with character animations.
I imported some FBX animation assets originally made for Unreal Engine. The skeleton has already been retargeted/remapped in Godot.
Here’s the situation:
-
If character A uses a UE-style skeleton, the animations play correctly.
-
But for character B (downloaded from Mixamo), even after the skeleton has been retargeted, the animations behave incorrectly. The most noticeable issue is that the hands become twisted or distorted.
Since the skeleton retargeting has already been done, I’m not sure what I might be missing. Could this be due to differences in bone orientation, naming, or rest pose?
Has anyone encountered a similar issue? Are there recommended steps or best practices for retargeting UE animations to Mixamo rigs in Godot?
Any help would be greatly appreciated!
Thanks!
In my personal experience, the retargeting from a non T-Pose on Godot doesn’t works as in Unity.
For proper retargeting, the animations should be related to a T-Pose character and even sometimes the retarget doesn’t properly works.
Mixamo animations works great as other sources like Kevin Iglesias and Quaternius.
In godot you need to create a bonemap. This is done through double clicking the asset in the file view to open the import window, then selecting the skeleton in the hierarchy. The entry for the bonemap should appear in the properties on the right. Once you have the bonemap, you should click it to open up the properties and create a skeleton profile humanoid (or a custom one). The skeleton profile shows a diagram with the important bones displayed as dots, if you click the dots the bone name is listed. If any of the dots are red you can try to reassign the bone.
You should save the bonemap to the file system, then click reimport.
If you can load and use the same bonemap and skeleton profile for another imported model, then the animations can be retargeted. There can be issues if the models parent node has a different name, i.e. human.001 and human.002.