Page MenuHome

FBX I/O Imports and exports objects with wrong scale transform
Open, Needs Triage by DeveloperPublic


System Information
Operating system: Windows-10-10.0.18362 64 Bits
Graphics card: GeForce GTX 1080 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 431.70

Blender Version
Broken: version: 2.80 (sub 75), branch: master, commit date: 2019-07-29 14:47, hash: rBf6cb5f54494e
Worked: (optional)

Short description of error
Blender's FBX exporter and importer consistently exports and imports objects with wrong scale transform:

  1. Whenever Blender imports any FBX from any non-Blender FBX supporting software, many objects have the scale transforms imported at 0.01
  2. Whenever Blender exports FBX to any non-Blender FBX supporting software, the objects come in scaled at 100.0 parented under a root node scaled at 0.01.

This is despite the fact that all the objects had scale at 1.0 when imported or exported. The experimental apply transform checkbox does solve the issue to some extends, but will always break any hierarchy that's deeper than one level, and will break any skeletal skinning. The experimental apply transform checkbox is also wrong, and misleading, implying that the option will apply/collapse any irregular transformations. This is not the case when exporting scene where all the scale transformations are at 1.0, so it makes no sense that the checkbox has actually any effect, if the scale transformations are uniform and already applied at 1.0 prior to export.

The scale parameter slider (defaulting at 1.0) is also not helpful, as modifying it in any way changes the actual physical scale of the imported objects to be non matching of the original scene scale. Any value other than 1.0 will results in imported scene being either larger or smaller than they should be.

This issue makes it very difficult for Blender to interoperate with Unreal Engine 4.

Exact steps for others to reproduce the error

  1. Import any FBX file exported from any standard non-Blender 3D app, which had scale transforms at 1.0 (100%) when exported
  2. Notice most objects have transforms imported at 0.01
  1. Export FBX from Blender to any standard non-Blender 3D app, and make sure all the objects have uniform default scale of 1.0
  2. Observe that the imported objects in target application have non-default scale, usually 100.0 or 10000%, depending on how the destination application displays scale

Result: Blender's FBX I/O consistently both imports and exports wrongly scaled objects

Expected Blender's FBX I/O consistently imports and exports correctly scaled objects, without necessity to anyhow "apply transforms", breaking rigs and hierarchies in the process.



Event Timeline

Ludvik Koutny (rawalanche) renamed this task from FBX I/O Imports and exports objects in wrong scale to FBX I/O Imports and exports objects with wrong scale transform.Sep 22 2019, 11:35 AM
Ludvik Koutny (rawalanche) updated the task description. (Show Details)
Ludvik Koutny (rawalanche) updated the task description. (Show Details)
Ludvik Koutny (rawalanche) updated the task description. (Show Details)

I have this problem as well, except for the fact that blender does this to a random mesh that's animated:

An example of scaling being wrong is if you have an empty in the scene that you export. Blender sets the FBX Local Scaling of empties to 100. Doing a unit conversion only makes sense if lengths are being converted. If a unit-less multiplier is being used, it should not be scaled.

That said, it isn't clear to me how Blender can distinguish between unit and unitless values to decide what it should apply the FBX scaling factor to, though perhaps it should only apply the scaling factor to renderable objects like meshes.