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
.
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. 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,
)