Reference
Conventions
See the user guide for the panel-by-panel walkthrough.
Units and axes
- Blender scene: 1 unit = 1 cm (Scene panel → Set Up Scene for Unreal). Metre scenes still export correctly (data is rescaled while staging) but importing UE files into a metre scene needs a rescale, so work in centimetres.
- Exported files are written in Unreal's own axis convention (Z-up, front −Y, right-handed, centimetres). Unreal does not rotate or rescale anything on import. A model facing −Y in Blender (visible in Front view) faces +Y in Unreal, the same orientation as Epic's
SKM_Manny. - Every exported file carries
MorennBridge|BoneAxesin its FBX global settings so the importer knows which bone convention was used.
Names
| Thing | Blender | FBX node / UE asset |
|---|---|---|
| Static mesh | Crate, SM_Crate, Crate.001 |
SM_Crate |
| Skeletal mesh (armature + skinned meshes) | armature Hero |
SKM_Hero (skeleton SKM_Hero_Skeleton, renamed to SKEL_Hero by the UE script) |
| Simple collision | child mesh UCX_Crate / UBX_… / USP_… / UCP_… (or role = Collision) |
UCX_SM_Crate_01 |
| Generated collision mesh | Generate collision mesh checkbox | SM_Crate_COLL (separate asset; assign it as Complex Collision Mesh on SM_Crate) |
| Socket | child empty SOCKET_Lid |
SOCKET_Lid (child of the mesh node) |
| LOD | Crate_LOD1, Crate_LOD2 (or role = LOD + index) |
Interchange: LOD0_SM_Crate, LOD1_SM_Crate; legacy: LodGroup SM_Crate with SM_Crate_LOD0… |
| Animation | action Run on armature Hero |
A_Hero_Run |
Prefixes are stripped before being re-applied (SM_Crate does not become SM_SM_Crate); .001 suffixes are removed; characters Unreal rewrites (., space, /, …) are replaced. Use Export name on the object to override the base name.
Bone names must survive Unreal's sanitising (spine.001 would become spine_001): the pre-flight check offers a one-click rename so Blender and Unreal use identical names.
Skeletons
- One root bone (
rootby convention). Root motion lives on the root bone; the armature object must not be animated. - Bones exported: deform bones, bones tagged Always export,
ik_*andSOCKET_*bones, plus their ancestors. Weights on other bones are merged into the nearest exported ancestor. At most Max bone influences (default 8) per vertex. - Blender-made rigs are exported with the X axis along the bone (Unreal/Maya convention). Rigs imported from Unreal keep their original convention (stored on the armature).
- The temporary
Armaturenull node is removed from the file, so the root bone is the FBX root (works for both Unreal importers and other engines).
Manual Unreal import settings (until the push-to-Unreal feature exists)
Interchange (UE 5.8 default), in the import dialog: - Common Meshes: Recompute Normals off, Recompute Tangents on (MikkTSpace), Bake Meshes on, Import LODs on, Import Sockets on, Vertex Color Replace. - Static Meshes: Combine Static Meshes Do Not Combine (a combined MorennBridge file then yields one asset per node), Import Collision According To Mesh Name on, One Convex Hull Per UCX on, Nanite/lightmap UVs as you prefer. - Skeletal Meshes: Import Morph Targets on, Use T0 As Ref Pose off, Create Physics Asset as you prefer, Bone Influence Limit 0 (engine max) or 8. - Animations: Animation Range Timeline, Import Bone Tracks on; pick the Skeleton created by the mesh import. - Project settings → Interchange → FBX: Force Front X Axis off.
Legacy FBX importer (set Interchange.FeatureFlags.Import.FBX=0): Normal Import Method Import Normals (and Tangents), Import Mesh LODs on, Convert Scene Unit on, Force Front X Axis off, Auto Generate Collision off when UCX pieces are provided. Several meshes in one file are named <File>_<Node> by this importer; use one file per asset.
Manifest
Every export writes <batch>.morenn.json next to the FBX files: which files were written, their kind, destination path, asset/node names, LOD/collision/socket counts, skeleton to reuse, animation range. The Unreal-side script consumes it; it is also handy for your own tooling.