PoppyOS

Home › Guides › Blender FBX export missing the jiggle animation: bake it to keyframes first

Blender FBX export missing the jiggle animation: bake it to keyframes first

The tail or ears bounce correctly in the Blender viewport. You export an FBX, drop it into Unity, VRChat or Unreal, and the bones are stiff. Or you re-import the FBX into Blender and the animation curves for the jiggle bones are flat or missing. This guide explains where the motion goes and what to do about it. The fix does not need any particular add-on.

What the FBX exporter writes

An FBX file holds keyframe curves. It does not hold a physics solver, and it does not hold a constraint. Blender's manual says so for constraints: "The result of using constraints is exported as a keyframe animation however the constraints themselves are not saved in the FBX" (FBX page of the 4.2 manual). A live jiggle is the same kind of thing. It is worked out while Blender plays or scrubs, and it is not stored as keys in your action. Whether it ends up in the file depends on what the exporter sees while it steps through the frames.

What we measured

We tested this with our own add-on's live solver on a small rig: a five-bone tail, 60 frames, Blender 4.2.2 on Windows, on 2026-11-01. After each export we imported the FBX into an empty scene and counted the animation curves on the tail bones that change over time. We did not test other jiggle add-ons, other Blender versions or this export in a game engine for this page.

Setup at export timeAnimation in the file?Tail curves that move (of 50)
Baked Animation on, live solver runningyes10
Baked Animation on, live solver offyes, but only what the action already held0
Baked Animation offno animation at allnone
Jiggle baked to keyframes first, solver offyes10

So there are two ways to lose the jiggle. If the solver is not running when you export, the file has nothing to sample. If the exporter's Baked Animation checkbox is off, the file has no animation, whatever the scene is doing.

The first row needs one more caution. In our test the two files were not the same animation: a rotation value differed by up to 0.13 between the live-solver export and the bake. The bake settles the motion before frame 1 and the exporter's pass may not, but we did not isolate the cause. A baked clip is also the only version you can open in the Dope Sheet, trim, loop and check before it leaves Blender.

Other reasons the animation is missing

These have nothing to do with jiggle, and they cause most "my FBX has no animation" threads. The descriptions below are the exporter's own, read from Blender 4.2.2.

Check what is actually in your FBX

Do not trust the export dialog. Import the file into an empty scene and count the curves that change. Paste this into Blender's Scripting tab and put your own path in. We ran it on Blender 4.2.2; in Blender 5.0 and later an action's curves live under its layers, so the act.fcurves line needs changing there and we have not tried it.

import bpy
bpy.ops.wm.read_factory_settings(use_empty=True)
bpy.ops.import_scene.fbx(filepath=r"C:\path\to\your.fbx")
for act in bpy.data.actions:
    moving = 0
    for fc in act.fcurves:
        v = [k.co[1] for k in fc.keyframe_points]
        if v and max(v) - min(v) > 1e-5:
            moving += 1
    print(act.name, len(act.fcurves), "curves,", moving, "change over time")
if not bpy.data.actions:
    print("no animation in this file")

On the test files this printed Rig|Scene 60 curves, 11 change over time for the live and baked exports, and 1 change over time with the solver off. The one curve that always moves is the rig's root, which the test animates. The other ten are the tail.

The fix: bake, then export

Turn the live motion into keyframes on the armature's action, then export that action.

  1. In Pose Mode, with the armature active and the live jiggle still running, choose Pose › Animation › Bake Action (the same operator the NLA editor calls Bake Action).
  2. Set the frame range, switch Visual Keying on, and bake the pose, not the object.
  3. Turn the live solver off so it cannot add to the baked keys, check that the new action is the one assigned to the armature, and export with Baked Animation on.

We ran Blender's own Bake Action this way, with visual_keying=True and the pose selected, on the same rig. The exported curves matched the ones from our add-on's bake to within 0.001. We did not try it on other physics add-ons, and one test rig is not a guarantee for yours.

Baking every frame gives you one key per frame per channel, which is a lot of keys. If the clip is going to a game engine, thinning them is worth doing, and it is the part that takes the most care. Compare the thinned curves with the full bake before you ship them.

Doing it with Jiggle Bake

Our own free add-on, Jiggle Bake, does the bake and the export in two buttons. It writes the keys into a copy of your action, so the original is untouched, and its FBX button uses fixed settings: armature and child meshes only, no leaf bones, apply scale, forward -Z and up Y, only the active action, deform bones only. If the armature has no action yet, the button refuses with "Bake first". In one test chain, key reduction took 3,992 keys down to 1,604 with every channel within 0.002 of the full bake. It works on bone chains and rotation only, and its colliders act on bone tips. The FBX it writes has been re-imported into Blender, and not opened in Unity, VRChat or Unreal.

Last updated 2026-11-01. The tests described were run on Blender 4.2.2 on that date with our own add-on only. The FBX files were re-imported into Blender, not opened in a game engine.

More guides

All guides