Why is my FBX with units set to cm still importing small?

I have been troubleshooting this and looking through the questions here. When importing my fbx files they would come in very small. At first I scaled them in the engine, but it of course would stretch the textures, and lower the quality. Then I found out that if my units are set to meters in my modeling program that it would import the asset very small, since unreal’s units are about a cm. I opened my modeling program(mudbox) and check the units in the settings, which was set to centimeters, then also in the fbx exporter, which was also set to centimeters.

The asset still imports very small, I am not sure why it is doing this, considering the units are set to centimeters.

Have you measured the object in the scene to match real life size? For example, if you have a human for reference, see if the height is at roughly 180 units (cm).

Set the scale option to auto in export dialog box and see if it works.

I did some tests in Maya since I don’t have Mudbox, but chances are good the behavior is the same.

First of all the units in UE4, or any other 3D engines, are not cm as much as they’re loosely assumed to be cm. UE4, Mudbox or FBX has no idea what a cm is. It all comes down to scale. A cube that is 1x1x1 units in Mudbox will be 1x1x1 units in UE4, Unity or whatever.

However the FBX exporter has the option to rescale the object. What Mudbox does know is the ratio between meters and centimeters. So if you’re working in meters and choose to export to centimeters, what the FBX exporter does it it multiplies everything with 100. Working in meters a 1x1x1 cube exported as centimeters will give the same result as a 100x100x100 cube exported as meters.

Now from a quick google it seems Unity is using meters as default units, which would explain why your models import correctly to Unity and smaller to UE4. What you want is to have your application settings set to meters, and your export settings set to centimeters. However if you have any objects in your scene when you switch application settings, these objects will be resized so that they are the same real world size as before. If you work in meters, create a 1x1x1 cube, then change to working in centimeters that cube object will be reized to 100x100x100. Try changing changing your settings in an empty scene and then open/import your mesh you wish to export.

You want meters as working units since your meshes seems to have been modelled like this to begin with. It’s not a universal preferred setting. The only truth is that 1 unit in Mudbox/Maya/3DS Max/Blender is 1 unit in UE4/Unity.

Correct answer but there is more to consider for “What you want is to have your application settings set to meters, and your export settings set to centimeters.”

You want to set your DCC to a unit size that gives you a reasonable amount of precision for the game you are making. In 3ds Max a 1U=1Meter may not give you the precision you’d want for 1st person shooter assets. If you were making a RTS where precision at the CM level is not needed, then 1M may be sufficient.

I think for most games it makes sense to set DCC to 1u=1cm and scale according on export (in this case, scale to meters for Unity and leave as is for Unreal).