Uninomicon

Documenting the dark corners of the Unity Engine.

User Tools

Site Tools


fbx_importing

This is an old revision of the document!


Table of Contents

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)'. image

Instructions for Blender


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: ??? [research needed]

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

Instructions for Blender ~2.83

1)
Blender coordinates
2)
This feature was, interestingly, built to help export to Unity properly. However, this actually adds a root rotation to the file, which can confuse other tools
fbx_importing.1615772945.txt.gz · Last modified: 2021/03/15 01:49 by 73.95.178.156