HomeBlog
Rigging

Blender armature to Unreal modular control rig

Explaining common pitfalls when exporting armatures from blender to Unreal.

Arnout Meysman

Rigging Artist

5 min. read
20 May 2026
Quick summary

A short tutorial on a quick workflow, going from a Blender armature to an Unreal modular rig.

Exporting a Blender armature for Unreal modular control rig

Unreal control rig is a powerful rigging tool. The procedural, node based approach allows you to quickly jump into more complex systems with handy preconstructed nodes and functions. I recommend checking out the Control Rig Samples Pack on FAB. In this post, we will discuss the workflow from blender to modular control rig. Modular, meaning we only use the premade control rig modules that come with the system. This tutorial will not talk about making custom setups or custom control rig modules. Assets shown in this tutorial belong to Epic Games - Unreal Engine Control Rig Samples Pack.

Let’s get started!

Getting the export settings right in blender takes a few tries, especially when there are things that are broken under the hood when you import in Unreal engine. At the time of writing, I’m working in Blender 5.0.1 and Unreal 5.7 What follows is the method that worked for me and handles some common pitfalls when exporting for modular control rig.

Armature

In Blender, you can set up a simple armature, bind it to the mesh and paint your skin weights. Once you have that you can follow along with the tutorial.

Blender export settings

I have included code for a blender config file that works for me in FBX export. You can save this code in a python file in your blender presets directory.

If you want to set it up yourself, all settings are shown in this tutorial as well. This configuration works for me. Make sure to also check out the scaling issue when exporting.

import bpy
op = bpy.context.active_operator

op.filepath = ''
op.use_selection = True
op.use_visible = False
op.use_active_collection = False
op.collection = ''
op.global_scale = 1.0
op.apply_unit_scale = True
op.apply_scale_options = 'FBX_SCALE_NONE'
op.use_space_transform = True
op.bake_space_transform = False
op.object_types = {'ARMATURE', 'MESH'}
op.use_mesh_modifiers = True
op.use_mesh_modifiers_render = True
op.mesh_smooth_type = 'FACE'
op.colors_type = 'SRGB'
op.prioritize_active_color = False
op.use_subsurf = False
op.use_mesh_edges = False
op.use_tspace = False
op.use_triangles = False
op.use_custom_props = False
op.add_leaf_bones = False
op.primary_bone_axis = 'X'
op.secondary_bone_axis = 'Z'
op.use_armature_deform_only = True
op.armature_nodetype = 'ROOT'
op.bake_anim = False
op.bake_anim_use_all_bones = True
op.bake_anim_use_nla_strips = True
op.bake_anim_use_all_actions = True
op.bake_anim_force_startend_keying = True
op.bake_anim_step = 1.0
op.bake_anim_simplify_factor = 1.0
op.path_mode = 'AUTO'
op.embed_textures = False
op.batch_mode = 'OFF'
op.use_batch_own_dir = True
op.axis_forward = '-Z'
op.axis_up = 'Y'

Save this code in a python filewhen putting it in your directory.

Usually it is saved in the default blender presets directory, example path below.

C:\\Users\\%USERNAME%.%USERDOMAIN%\\AppData\\Roaming\\Blender Foundation\\Blender\\5.0\\scripts\\presets\\operator\\export_scene.fbx\\

Step by step armature settings and export settings

Fixing the scaling from blender to Unreal

A common issue is the scaling unit conversion going from blender to unreal. While you can leave everything default and export/import, it will cause issues in Unreal even if you don’t see them right away. Problems in the modular control rig that are giveaways of scaling issues:In both cases Unreal thinks that the rig is 100x discrepancy. This is because Blender works in meters by default and Unreal in centimeters. Simplest fix for exporting your blender armature to Unreal with correct scale:

  • Whenever you enable dynamics on a chain, the mesh ‘disappears’ . This can be the dynamics using the wrong scale and making the mesh 100x smaller.
  • Every module you place into the sockets has greatly oversized controllers.

In both cases Unreal thinks that the rig is 100x discrepancy. This is because Blender works in meters by default and Unreal in centimeters, here is the fix.

  • Apply model and armature transforms

  • Scale only the armature to 100
  • Apply armature transforms
  • Put armature on 0.01 scale

Your scale is now correct for export!

Root of the armature

  • It’s the easiest if you name your armature ‘root’ as Unreal will see that as the root bone. It’s not necessary, but for consistency it can help.

Naming convention

  • Follow the Unreal naming convention for the quickest result. The modules tend to interact better if the bone names are recognized.

Export

  1. Select everything you want to export
  2. Usually you select your meshes and armature. I tend to select them all and set Include - Export Limit to Selected Objects in the FBX export settings.
  3. Navigate to File-Export-FBX with everything selected

FBX export settings

  • Limit to Selected Objects
  • Specify the object types to the ones you want to export, so we don’t export anything else by accident. In our case: Armature and Mesh
  • For Transform settings, I left everything on default
  • Geometry - set ‘Smoothing’ to ‘Face’ or ‘Smoothing Groups’ → avoids the no smoothing groups found warning in Unreal import
  • Armature  → Axes matter for modular components. The legs work best with X-axis as primary and Z-axis as secondary, the same as the default Unreal skeletons.
  • Put FBXNode Type to ‘Root’
  • Check Deform Bones, in our case we won’t be needing any others, because the actual rigging will be done in Unreal
  • Uncheck ‘Add Leaf Bones’, we won’t be needing any extra bones in our skeleton in Unreal
  • Uncheck ‘Animation’

Save out your preset template for easy access later

Export your FBX :)

Unreal

In this part I use the very handy Unreal Engine Control Rig Samples Pack, like I mentioned before. https://www.fab.com/listings/2ce3fe44-9ee6-4fa7-99fc-b9424a402386

Import

  • Import your newly created FBX file into Unreal engine

Import settings

  • Since my FBX file name is not very pretty, I override the name in the import settings
  • You can leave the rest of the settings on default

  • This now imports the following:
    • Skeletal Mesh
    • Physics Asset
    • Skeleton
    • Material and textures (optional)

Create a new control rig asset

  • Right click in the content shelf and add a control rig blueprint under animation - control rig. When prompted select 'Modular control rig'.

  • Name and open up the control rig bluepring.
  • Set your skeletal mesh in the control rig asset

  • Since our naming convention is set up nicely, we can already see the first socket in which we can parent the spine module. Drag and the spine module in there to create it.

  • You can now see the module is added to the rig hierarchy

  • Select it and in the details panel we can adjust controller sizes and colors. Adjust controller shapes by looking for ‘transform’ on the module

  • The modules should already create new sockets for legs, arms and neck. If you don’t see sockets, you can add them yourself, by right clicking the root of your chain in the rig outliner and selecting New Element → New Socket. You can drag your module in to the new socket.

  • Small pitfall with parenting:
    • When creating a new socket on a bone and dragging a module in there, it’s often not enough to set the parent controller. Physically parent the module to the parent module first in the Module Hierarchy window and then set the parent controller in the details panel.
    • There are instances where not parenting the modules causes the generated chain to not follow the correct parent controller. This can be the fix.

  • Here I have a socket for the antenna. When dropping a chain module in there, you can see that the chain gets created under the spine module instead of under the rig. So I first parent it correctly

  • Then set the controllers in the details  panel

  • Since we set the primary and secondary axes in the blender FBX export, the leg pole vectors will be calculated correctly and the leg doesn’t flip when applying the leg modules.
  • Add all modules to the rig. For custom chains use the Chain module.
  • You can shift select multiple sockets and drag one module, which will be created for all selected sockets.

After adjusting all the controller sizes and colors, you’re modular control rig should be good to go!


That concludes this quick tutorial.

Frequently Asked Questions

How do I solve the scaling issue on armatures when exporting from Blender to Unreal
keyboard_arrow_down

The simplest method to get results fast and without any headaches, is to apply model and armature transforms and scale the armature up to 100 units. Then you apply the armature scale and set the scale to 0.01 afterwards. Your armature is now ready for export to Unreal with correct scaling.

What to do when the sockets in the Unreal modular rig do not get generated automatically
keyboard_arrow_down

It is normal that you only see one socket in the beginning. Adding a spine module to this socket, will create new sockets for arms, legs and the neck. It is an additive process. If your sockets do not show up when placing the spine, you probably have to update your naming convention, to match the one form Unreal skeletons. While it is not necessary, it is handy for the full power of modular control rig.