Here are the settings that I use to get a mesh (static or skeletal) from UE4 into Blender and from Blender into UE4. This process uses FBX as the intermediate file format. The process is relatively straight-forward unless your mesh needs to have a Physics Asset in UE4. I'll go over a solution for that in the Physics Asset Workaround section.
In this example, we will only be working with mesh and armature data. We will not be exporting or importing animation data, collision geometry, etc.
The software versions used here are Unreal Engine 4.24.2 and Blender 2.80.
This is the easiest part because we just use the default options for exporting.
- Right-click on the mesh asset in the content browser and select Asset Actions → Export...
- Choose a file name and location and leave the type as FBX File.
- In the FBX Export Options, use the default settings. (Leave the Fbx Export Compatibility as FBX 2013.) Click Export.
- Select File → Import → FBX (.fbx)
- Choose the FBX file that you exported from UE4. In the Import FBX options section, leave everything at the default setting except for one thing (if you're importing a skeletal mesh): Under Armatures, enable Automatic Bone Orientation. Click Import FBX.
NOTE: You may notice that the parent object of the imported data is an Empty that has a scale of 0.01. This is the Epic scale workaround that I will discuss later. It hides the fact that its children are 100 times bigger than they should be.
(If you created the asset in Blender and need a working Physics Asset in UE4, see the Epic Scale Workaround section below.)
- Select the mesh and the armature (if there is one) that you want to export. Make sure that nothing else is selected.
- Select File → Export → FBX (.fbx)
- Choose a file name and location. In the Export FBX options section, set the following options and then click Export FBX.
- Enable Selected Objects
- Leave Scale at 1.00
- Set Forward to Y Forward (assuming you used the -Y axis as the forward direction for your model)
- Set Up to Z Up
- Make sure only Mesh and Armature (if you have one) are selected
- Under the Geometry tab, set Smoothing to Edge or Face
- Under the Armatures tab, disable Add Leaf Bones
- Under the Animation tab, disable Baked Animation (since we aren't including animation data)
- In the Content Browser, navigate to the folder where you want the assets to be created and click on the Import button. Choose the FBX file that you exported from Blender. Click Open.
- In the FBX Import Options, we will use the default settings but not import materials or textures. Click Import All.
- In Blender, you can save Operator Presets for the FBX import and export settings.
- Use the -Y axis as the forward direction for your models in Blender (to keep with the convention of the models exported from UE4).
- With the Blender scene Unit System as None or Metric with a Unit Scale of 1.0, the units in the FBX will be meters. (This is the default, which you generally will want to keep unless you are doing workaround #3 below.)
- If you create any armatures in Blender, make sure to rename them. The default name, "Armature", causes a conflict when importing into UE4. (The root of the skeleton gets removed.)
- After importing a mesh into Blender, you can do a quick sanity check of the scale by adding a 1 meter cube to the scene.
- After importing a mesh into UE4, drag the mesh into the viewport to verify the scale.
The above method works fine for meshes that were exported from UE4 to begin with. However, if you are creating your own skeletal meshes in Blender and need a physics asset in UE4, be aware of the following issue.
If you simply export a mesh with an armature from blender at normal scale, there will be problems with the physics asset when you import it into UE4. While the scale of the imported mesh and skeleton will be correct, the physics asset will think it is 1/100 the actual size. This makes working with physics bodies in the physics asset tool difficult. Also, when this happens, physics bodies are not correctly generated for each bone because it thinks the bones are tiny.
There are a couple workarounds for this problem, although they could cause workflow issues for some people.
- Make the mesh and armature 100 times bigger in Blender. Export from Blender as usual. When importing into UE4, set Import Uniform Scale to 0.01. This seems to solve the issues because the mesh gets scaled down to the correct size while the physics asset size is not affected by the Import Uniform Scale setting (which is probably another bug with the physics asset).
- Make the mesh and armature 100 times bigger in Blender. Create an Empty. Make the armature a child of the Empty. Scale the Empty by 0.01. Then the mesh and armature can be exported from Blender and imported into UE4 as usual.
- In the Scene tab of the Properties panel, set the Unit System to Metric. Set Unit Scale to 0.01. (If you had an existing armature or mesh at normal size, scale it up by 100 to get it back to normal.) Then the mesh and armature can be exported from Blender and imported into UE4 as usual.