Best workflow for FPS weapon animations with multiple armatures in Blender → Godot?

Godot Version

4.6

Question

Hi everyone,

I’m working on FPS weapon animations for my Godot project and running into issues with my workflow. I’d appreciate any advice from people who’ve done this before!

My Setup:

  • Blender 4.4.3 / Godot 4.6

  • Multiple weapons (AK-47, Pistol, Scar, Sniper, etc.)

  • Each weapon has 2 separate armatures:

    • Arms_Rig (FPS arms with bones: root, upper_arm_L/R, Hand_Ctrl_L/R, fingers, etc.)

    • Armature_Weapon (weapon-specific bones: body, magazine, bolt, grip, safety, etc.)

  • The weapon armature is parented to Hand_Ctrl_R bone (right hand)

  • Left hand (Hand_Ctrl_L) uses 3 Child Of constraints to switch between:

    • Grip (Influence 1.0 for idle/fire)

    • Magazine (Influence 1.0 during reload)

    • Bolt (Influence 1.0 when chambering)

My Problem: When I create multiple animations (idle, reload, fire, bolt), they sometimes “bleed” into each other. For example:

  • After animating reload, the magazine position gets messed up in the idle animation

  • Constraint influences from one animation affect others

What I’ve Tried:

  • Keyframing all bones at frame 1 and last frame of each animation

  • Keyframing constraint influences in each animation

  • Using NLA Editor with “Push Down Action” to isolate animations

  • Exporting with “Bake Animation” enabled

My Questions:

  1. Is using 2 separate armatures a good approach, or should I merge them into one?

  2. What’s the proper export settings for glTF with multiple armatures and constraints?

  3. Should I use NLA tracks or just export individual actions?

  4. Any tips for preventing animation “pollution” between actions?

Export Settings I’m Using:

- Format: glTF 2.0 (.glb)
- Include: Selected Objects (both armatures + meshes)
- Animation: ✓ Enabled
- Group by NLA Track: ✓ Enabled
- Bake Animation: ✓ Enabled
- Export Deformation Bones Only: ✓ Enabled

Has anyone successfully implemented a similar system? What workflow worked best for you?

Thanks in advance for any help!

Did you ever figure out a good workflow? I am struggling with separate armatures for weapons/arms. Also it would be nice to use the left arm for things like parrying or taking meds. I can’t find much info online.

Hi!

What’s the part where are you struggling?
In blender or godot?

For the blender part, there are tons of howto’s. You can ignore the target game engine, there is no major difference for this.

It’s more about Blender than Godot. I’m having issues using a separate rig for the arms and gun. In Blender I have two separate actions, one for the arms and one for the weapon, which play simultaneously. I export as a .glb file. I haven’t been able to get the playback to work correctly in Godot, there is always something broken. So instead I am just going to combine the rigs before animating.