Godot Version
Godot 4.7
Question
I’m building a 3rd-person shooter in Godot 4. Characters are rigged with Mixamo and imported as glTF/FBX. I attach a weapon to the right-hand bone with a BoneAttachment3D plus a per-weapon offset Transform3D.
The problem I hit: my animations come from different Mixamo downloads. Mixamo bakes the source character’s bone rolls into the animation tracks, so the hand bone’s local basis differs per animation batch (in my case up to ~130°). A rigidly attached weapon looked correctly held in one animation but visibly twisted in another — one calibrated offset never fit all clips.
How I solved it: import-time retargeting — a BoneMap targeting SkeletonProfileHumanoid with the Rest Fixer’s “Overwrite Axis” enabled, applied to every model and every animation FBX. That normalizes all rigs to one shared hand basis, after which a single calibrated mount transform works across every animation and character.
My question: Is this the canonical/recommended way? How do others keep hand-attached items/weapons consistent when animations come from mixed sources? Any pitfalls with BoneAttachment3D + retargeting (or a better approach — sockets, a dedicated hold bone, Marker3D on the mesh, etc.) I should know about?