Blender to Unreal Engine tips

Software:
Blender 2.9 | Unreal Engine 4.25

The following is a list of guidelines for preparation and export of 3D content from Blender to Unreal Engine 4 via the FBX file format.

Disclaimer:
This is not a formal specification.
It’s a list of tips I found to work well in my own experience.
* Some of the issues listed here may have already been solved


Blender Scene and model settings:

System units in Blender:
Define the scene units in Blender as:
Metric unit with 0.01 scale (centimeters)
And model your content correctly using centimeter units.
* Modeling in 1 meter units may seem to be imported correctly into UE4 but will cause unsolvable problems like a skeletal mesh physics asset having incorrect auto-generated shapes, a problem that in my experience can’t be fixed manually.

Transform:
Model your model in Blender facing the -Y world axis, +Z obviously being up (obviously for Blender).
* This way the model is aligned to Blender’s views so the front view displays the model’s front etc.
Make sure to apply your model’s transformations before export.

Armatures:
Make sure the Armature object isn’t named “Armature”.
naming or leaving the Blender skeleton named “Armature” will cause the UE4 importer to fail due to “multiple roots”.
* Also remember some weird related bug with animation scale incorrectly imported, but can’t confirm this now..
No need for a dedicated root bone in the hierarchy. the Armature object is the root of the bone hierarchy.
* See export option below

Texture baking:
Set the normal map’s green channel to -Y.
* This is not critical at all because if baked as +Y it can easily be fixed in UE4.

Metadata:
Blender custom properties import as UE4 asset metadata that can be read by editor scripts for automation purposes.
* See export option below


FBX Blender export and UE4 import settings:

I recommend saving an FBX export preset with these settings.

Optional:
I prefer the export settings to include only selected objects.
* It’s more efficient for me to select the specifics objects I want to export into a single FBX file prior to export, than to delete all the temp / reference / draft objects from the scene.
If you want to export Blender custom properties with to the FBX check the “Custom Properties” option

Axes:
Blender’s native model/world orientation is model’s forward facing the -Y axis, left side facing +X and of-course up facing +Z.
UE4’s native model/world orientation is model’s forward facing the +X axis, left side facing -Y and up facing +Z.
There are axis settings in Blender’s FBX export module, that theoretically, should be set like this:

However, in tests I did, The axis settings made no difference when importing to UE4, even when setting intentionally incorrect upside-down axes.
Maybe the FBX exporter writes these settings to metadata that the UE4 importer doesn’t read..
From my experience, what’s important is to orient the model correctly in Blender (see above), apply the transformations,
And in the UE4 import menu, check the “Force Front XAxis” option:

Geometry:
Make sure either “Edge” or “Face” is chosen in the “Smoothing” option to import the mesh’s smooth shading correctly ans avoid a smoothing groups warning on import:

Optional:
Depending on how much control you need over the mesh’s tangent space,
You may want to check the “Tangent Space” export option,
This will make Blender export the full tangent space to the FBX and make UE4 read it from FBX instead of generate it automatically.
* For this option to be supported, the mesh geometry must have only triangle or quad polys.
In the UE4 import settings, choose the “Import Normals and Tangents” option in “Normal Import Method”:

Armature:
Set “Armature FBXNode Type” to “Root”.
Uncheck the “Add Leaf Bones” option to avoid adding unneeded end bones.
Set bones primary axis as X, and secondary axis as -Z.

Animation:
Uncheck “All Actions” to avoid exporting actions that don’t actually belong to the skeleton.
* Un-related animations in the FBX can also corrupt the character rest pose in UE.
The “NLA Strips” option is useful for exporting a library of animations with the skeleton.
* In Blender’s NLA editor, activate the actions you want exported to the FBX.


Related:
3ds max & V-Ray to UE4 Datasmith workflow

Blender – Basic time-dependent animation driver examples

Software:
Blender 2.82

To setup a time-dependent Driver in Blender, simply use the built-in frame variable.
In this example the expression:

sin(frame)

Set as a Z axis location driver for the cube causes it to oscillate up and down:

frame_driver

Changing the expression to:

sin( frame * 0.1 ) * 2

Causes the motion to be twice as high and 10X slower:

frame_driver2

 

In this example, the expression:

( pow( -1 ,  floor( frame / 30 ) )  *  0.5 ) + 0.5

Set to the cube’s Emission shader’s Strength attribute causes it to alternate between values of 0 and 1 every second (30 frames in this case):

frame_driver3

 

Related:
Blender – Create constraints quickly

Blender 2.8 – Select bones in Weight Paint mode

Software:
Blender 2.8

To select bones while in Weight Paint mode in Blender 2.8:

  1. Select the Armature
  2. Shift select the skinned mesh
  3. Switch mode to Weight Paint
  4. Shift-Click bones to select them
    * Shift double click to select bones hidden under the mesh

Update:
This has also been verified on Blender 3.6

wpaint.gif

Blender – Copy Bone Constraints

Software:
Blender 2.83

To copy bone constraints from one bone to other bones:

  1. In Blender Preferences > Add-ons:
    Find the Interface: Copy Attributes Menu add-on, and enable it.
    Annotation 2019-12-12 165824
  2. In Armature Pose Mode,
    Select one or more bones, and select last the bone that has the constraints you want to copy.
  3. Press Ctrl + C to open the Copy Attributes menu, and select Copy Bone Constraints.

copyconstraints


Related post:

Quickly setup bone constraints

Blender Skeleton (Armature) Mirroring

Software:
Blender 2.8

To mirror a skeleton (Armature) in Blender:

  1. Create bones for one side of the rig and name them with “.L” for Left or “.R” for right.
  2. Select all the bones on that side.
  3. In Armature Edit Mode choose:
    Armature > Symmetrize

Blender will create mirrored copies of all the bones with respect to the Armature origin and flip their names to names ending with the opposite side.

  • When editing properly symmetrized bones,
    The X-Axis Mirror tool option will simultaneously update both sides of the Armature to maintain symmetry.

Untitled-1

 

Untitled-3.jpg

Untitled-4

 

Blender – Create constraints quickly

Software:
Blender 2.79

To create constraints quickly:

  1. Select the target object.
  2. Shift + Select the object to constrain (Active Object)
  3. Press Ctrl + Shift + C
  4. Choose the wanted constraint type.
  5. select the constrained object to set the constraint parameters.

cons

cons2
Related post:
Copy bone constraints

Blender – Bake NLA animation

Software:
Blender 2.79

When you wish to bake your NLA animation mix into one Action,
The Bake option in the Animation tab will not work.
The way to do this is to:

  1. Select the object in Object Mode.
  2. Press Space and type ‘bake
  3. Choose Nla: Bake Action
  4. In the Bake dialog, select Pose, deselect Only Selected, and press OK.
  5. After the process, the Armature will have a new action that is the baked animation.

Untitled-2

Untitled-3

Basic animation constraints in Maya

Software:
Maya 2018

To setup basic animation constraints in Maya:

  1. Select one or more target objects, and lastly the object to be constrained.
  2. In the Rigging Tab/Toolbar click the wanted constraint.
  3. Optional:
    In the channel box, highlight the constraint and set target objects weights.

Setting up a Point Constraint:

Maya_Point_Constraint

Setting up an Orientation Constraint:

Maya_Orientation_Constraint.gif

Setting up an Aim Constraint:

Maya_Aim_Constraint.gif