0
$\begingroup$

I have been playing around with character models, trying to import them into unreal. I have read that unreal works in centimeters while Blender does it in meters so i changed the scale to 0.01 in the scene configuration:

scene configuration showing 0.01 in the unit scale parameter

I have used the measuring tool in the model and it displays 1.8~ meters (180~ meters if i restore the scale configuration).

enter image description here

After exporting the .fbx file and importing it to unreal it is too small, about 1.2 centimeter. What could be happening? Something change in the last version of unreal and now it works on other units?

$\endgroup$

1 Answer 1

1
$\begingroup$

I have only found one way to have a character that is 1.80 meters in Blender be 1.80 meters in Unreal with the entire skeleton hierarchy showcasing a scale of 1.0. And that's by working in Blender with a "Unit Scale" at 0.01.

bpy.data.scenes["Scene"].unit_settings.scale_length = 0.01

If you are starting from a scene that's already been built at 1.0, you can simply change the value to 0.01, then scale your armature to 100 and use Object > Apply > Scale while the entire hierarchy is selected. This will "bake" the 100 scale into all the objects resetting the actual scale to 1.0.

Export your FBXs with "Apply Unit" checked and "Scale" at 1.0. Save an export. When importing in Unreal leave the default "Import Uniform Scale" to 1.0. Below my current export script in Python for static and skeletal meshes.

bpy.ops.export_scene.fbx(
    apply_unit_scale=True,
    bake_anim=False,
    filepath=r"C:\Your\File\Name.fbx",
    global_scale=1.0,
    mesh_smooth_type="FACE",
    object_types={"MESH", "ARMATURE"},
    use_selection=True,
)

There is a setting called "Apply Scalings" on export that I have not explored and that might provide an alternate way, but nothing is less sure.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .