This is an old revision of the document!
FBX Importing
Importing FBX files in Unity with the correct scale, rotation, and axis is fraught.
Scaling
FBX is in cm by default, but can support other units. Other unit scales are achieved in FBX by by setting GlobalSettings→Properties70→UnitScaleFactor
property in the fbx. For example, a 1 meter cube in 'meters' should be stored in an fbx file like:
GlobalSettings:
Properties70:
UnitScaleFactor = (100.0) # The 'unit' is 100 * 1cm
CubeObject:
Lcl Scaling = (1,1,1)
This file will show up in Unity's importer as '1m (File)'.
Instructions for Blender
In order to achieve the above scaling (scale of 1 on objects, UnitScaleFactor=100), in the export settings set one of the following for ''Transform->Apply Scaling'':
* FBX Units Scale
* FBX All
++++
===== Rotation =====
In the FBX file format, global axis alignment is stored in the GlobalSettings:
* UpAxis: 0,0,1 (+Z)
* FrontAxis: 0,1,0 (+Y)
* CoordAxis: -1,0,0 (-X)
* OriginalUpAxis: ??? <sup>[//[[:wiki:tag:research-needed
research needed]]]</sup>
Unity uses these properties to determine the coordinate system for the file. On import, the asset will be rotated to convert it from the file-coordinate system, to the Unity coordinate system. As of 2020.1, when “Bake Axis Conversion” is checked, these rotations will be baked into the meshes, rather than applied in the transforms.
++ Instructions for Blender ~2.92
In Blender 2.92, the export behavior changed slightly, so we can simply:
* Axis must be set as -Y Forward, and Z Up. 1)
* “Use Space Transform” must be off. 2)
* In Unity, select: “Bake Axis Conversion”
++++ Instructions for Blender ~2.83
In Blender 2.83:
* Select “!Experimental! Apply Transforms”.
* Axis must be set as -Z Forward, and Y Up.
* In Unity, “Bake Axis Conversion” must be off.
Note: If your object does not support Apply Transforms, you should either counter-rotate the object, or upgrade to Blender >2.92.
++
fbx_importing.1615772730.txt.gz · Last modified: 2025/01/15 04:35 (external edit)