Ochrestack

Guides / Blender animation export

Blender FBX export: why you get Rig|Idle, duplicate takes, and an Idle with the wrong pose

For Unity, Godot and Unreal. Measured on Blender 4.2 and 5.0 and in Godot 4.7. Published 6 November 2026.

1. The symptom

You export your character from Blender as FBX with the default settings and import it into Unity or Godot. Instead of Idle, Walk and Run you get:

2. What the default FBX settings do

In the FBX exporter's Bake Animation section, NLA Strips and All Actions are both on by default (Blender's Python API reference for bpy.ops.export_scene.fbx lists bake_anim_use_nla_strips=True and bake_anim_use_all_actions=True). The same reference describes what each does:

3. Measured: a two-clip test

One armature with an IK leg and two clips, each on its own unmuted NLA track, no active action. "Idle" keys only the spine. "Reach" keys only the IK target. We exported with Blender's FBX defaults, re-imported the file and compared every deform bone with the live rig at five frames per clip (1 mm and 0.001 rad tolerances).

Take in the fileWorst bone, position / rotation
Idle (from the NLA strip)0 m / 0 rad
Rig|Idle (from All Actions)0.60 m / 0.82 rad
Reach (from the NLA strip)0 m / 0.0007 rad
Rig|Reach (from All Actions)0.16 m / 0.25 rad

Four takes for two clips, and two of them wrong. In a Unity project, that is two clips called Idle, one of them broken. (When Blender re-imports an FBX file it puts the armature's name in front of each take again, so in a Blender re-import these four show up as Rig|Idle, Rig|Rig|Idle and so on.)

4. Measured on production characters, in Godot 4.7

The same thing happens on real characters, where the file holds more actions:

Godot 4.7, side by side at the same frame: Blender's default FBX export of Rain with 23 takes, Idle, Run and Walk each listed twice, playing RIG-rain|Idle with her legs caught mid-stride from the Run clip; on the right an export with exactly Idle, Run and Walk, playing Idle and standing as in Blender
Rain in Godot 4.7, same frame. Left: Blender's default FBX export, 23 takes, and in RIG-rain|Idle Run's legs leak in (0.33 m off). Right: Rigbake's export (Godot preset, .glb; Apply Modifiers set to Always for her Mask modifiers), 3 takes, posed as in Blender. Same materials on both sides. Character: Rain Rig (CC) Blender Foundation | studio.blender.org, used under CC BY 4.0; we added the animation clips and simplified two eye materials for the engine export.
Godot 4.7.2 editor: the animation list of Ellie's default FBX export, with Idle, RIG-Ellie_001|Idle, Run, RIG-Ellie_001|Run, Walk, RIG-Ellie_001|Walk and many RIG-Ellie_001| pose actions, 24 in all
Ellie's default FBX export in the Godot 4.7.2 editor: 24 takes for 3 clips, two of them called Idle. Character: Ellie from Sprite Fright, Blender Studio (Blender Foundation), CC BY; we keyframed the three clips.

5. Why one of them is wrong

A clip that doesn't key a channel does not reset it. When the exporter writes the extra Rig|Clip takes, a channel that the clip leaves alone keeps a value from another clip. In the two-clip test, Idle doesn't key the IK target, so the target stays where Reach put it, and the leg in the extra Idle take follows it: 0.60 m off. On Rain, the IK feet keyed by Run end up in her Idle the same way.

6. Stash instead of Push Down?

A clip you stash (the Action Editor's Stash button) sits on a muted NLA track, and NLA Strips skips muted tracks. So a stashed clip is written once, not twice, as Rig|Clip. It can still be wrong, for the same reason as above: a tester measured a stashed Attack clip 0.56 m off in Blender 4.2, and our own two-clip test with stashed clips gives an Idle 0.60 m off.

7. Avoiding it for free

If your file has one action and nothing on the NLA, Blender's default FBX export is correct, and you don't need Rigbake: rename the take in your engine and you're done.

8. With Rigbake

Rigbake, our Blender add-on, bakes each clip from the rest pose, so no channel leaks in from another clip, and writes one take per action, named after the action: Idle, not Rig|Idle. In the two-clip test both takes were exact. On Rain the file holds exactly Idle, Run and Walk, and on the tester's character exactly Attack, Idle and Walk. In Godot 4.7, with the AnimationPlayer's import Optimizer off, every one of Rain's deform bones was within 0.00004 m of Blender, and the tester's clips matched exactly. (Godot's Optimizer is on by default and thins keys: with it on, Rain's Run was up to 2.9 cm off. The Godot import tips show both settings.) Rigbake for Blender.

9. A note for Unity and Unreal users

These results were measured by re-importing the files in Blender (4.2 and 5.0; Blender 4.5's FBX importer misreads files with several takes, so it can't be used to check them) and by importing them in Godot 4.7, not in Unity or Unreal. We have not opened these files in either.

Related: Blender export has no animations: the control-rig case and Do you need to bake constraints before export?