Game Dev

Scales in 3ds Max, Unity 3D and Unreal Engine

This is the last article in a series about coordinate systems comparison between 3ds Max, Unity 3D and Unreal Engine. Here is the complete list of articles:

Units Setup in 3ds Max

I have set up a 3ds Max scene with a unit scale of 1 centimeter. Here I have created a cube of 100 cm size (see picture below). To access the units setup dialog go to Customize > Units setup…

Max-scales

Units setup in 3ds Max

I exported this cube in FBX format three times using different scales: centimeters, decimetres, meters. I will import these three files in Unity 3D and Unreal Engine to test the unit scales of each system.

Scales in Unity 3D

The picture below shows the tree cubes imported in Unity compared with a standard unity asset cube of 1 unit size (white).

Unity-scales

The cubes imported in Unity 3D

As you can see, the cube exported in centimeters matches the size of the 1 unit cube. This means that 1 unit is equal to 1 meter in Unity. The decimeter scaled cube is 10 times larger than the red and the meter scaled is 100 times larger.

These are the file scales you can read in the Unity inspector for each imported object:

  • Box centimeter scaled – file scale = 0.01
  • Box decimeter scaled – file scale = 0.1
  • Box meter scaled – file scale = 1

You can force a different scale in Unity 5 by entering a scale factor in the object inspector. In Unity 4 you can change the file scale directly.

Unreal Engine Scales

Below you can see the same three cubes imported in Unreal Engine. On the left there is an Unreal standard assets cube with a side of 100 units. Here the behaviour is the opposite of Unity. The box in decimeters is ten times smaller than the one in centimeters and so on. The box in centimeters has the same size of the Unreal box of 100 units, thus in Unreal 1 unit equals 1 centimeter. This is the default scale in Unreal, you can change it in World Settings > VR > World to Meters.

Unreal-scales

The cubes imported in Unreal Engine

Summary

If you have a cube of 100 cm and you export it in centimeters, Unity reads it as 1 unit, if you export it in meters, Unity reads it as 100 units. Here Unity is making a unit replacement: when you export in centimeters 100cm = 1 meter, when you export in meters 100cm = 100mt.

If you have a cube of 100 cm and you export it in centimeters, Unreal reads it as 100 units, if you export it in meters, Unity reads it as 1 unit. Here Unreal is making a unit conversion, 100 units become 1 unit when converting from centimeters to meters.

Leave a Reply