Blender Root Motion Configurations for Game Animation

Root motion is a game development technique where the character's movement is driven directly by the animation data rather than by programmed controller velocity. Configuring root motion in Blender requires setting up a dedicated root bone in the armature hierarchy, properly keyframing translational movement, and adjusting FBX export parameters to ensure seamless integration with game engines such as Unreal Engine and Unity. This guide covers the essential steps and export settings required to successfully configure and export root motion animations from Blender.

Setting Up the Armature Hierarchy

To implement root motion, your character rig must have a proper bone hierarchy:

  1. Create a Dedicated Root Bone: Place a bone at the world origin (0, 0, 0) oriented flat on the ground. Name this bone root.
  2. Hierarchy Parenting: Set the character's main controller or pelvis/hips bone as a child of the root bone. The root bone should be the absolute top-level parent of the armature with no parent of its own.
  3. Deformation Settings: Ensure the root bone does not have the Deform property enabled if your mesh does not need to deform relative to the root itself, though game engines still require it to exist in the exported skeletal tree.

Animating with Root Motion

When creating animations in Blender, movement is applied directly to the bones:

  • In-Place Animations: Keep the root bone static at (0, 0, 0) throughout the timeline.
  • Root Motion Animations: Keyframe the root bone along the horizontal plane (X and Y axes in Blender) to follow the character's forward and lateral trajectory. The hips/pelvis handles the vertical bounce and rotation, while the root bone tracks the overall ground displacement.

Blender FBX Export Settings

Exporting to FBX requires specific configurations to avoid scale, rotation, and hierarchy issues in game engines. Go to File > Export > FBX (.fbx) and configure the following panels:

Main & Transform Settings

  • Path Mode: Auto (or Copy with the embedded textures toggle if packaging textures).
  • Apply Scalings: FBX Units Scale or All Local (to avoid unintended scale multiplication).
  • Forward: -Z Forward
  • Up: Y Up
  • Apply Unit: Enabled.
  • Apply Transform: Checked (ensures rotation and scale are normalized).

Geometry Settings

  • Apply Modifiers: Checked (applies Armature and other active modifiers).

Armature Settings

  • Primary Bone Axis: Y Axis
  • Secondary Bone Axis: X Axis
  • Armature FBXNode Type: Null (helps prevent an unwanted extra root node in Unreal Engine).
  • Add Leaf Bones: Unchecked (prevents Blender from adding extra dummy bones at the ends of bone chains).
  • Only Deform Bones: Uncheck this if your root bone has the "Deform" checkbox disabled, ensuring it is still exported.

Animation Settings

  • Bake Animation: Checked.
  • Key All Bones: Checked.
  • Simplify: 0.0 (set to zero to avoid animation curve drift or jitter on the root bone).
  • NLA Strips / All Actions: Choose based on your workflow (use All Actions if exporting multiple animations in one file, or export each action separately).

Engine-Specific Integration

Unreal Engine

  • Ensure the root bone in Blender is named exactly root in lowercase.
  • In Unreal Engine's Animation Asset editor, enable EnableRootMotion under the Root Motion category.
  • Set the Root Motion Root Lock to specify how the root transformation is tracked (e.g., Ref Pose or Anim First Frame).

Unity

  • In the Unity Inspector for the FBX model, navigate to the Rig tab and set the Animation Type to Humanoid or Generic.
  • Under the Animation tab, enable Apply Root Motion in the Animator Component.
  • Configure Root Transform Rotation, Root Transform Position (Y), and Root Transform Position (XZ) to bake into pose or drive the transform based on your specific gameplay requirements.