Units setup in 3ds max

I have read every thread I could find and the answer was not found.

I have set up my 3ds Max System Unit Setup to be 1 Unit = 1 Meter.

Then, under Units Setup, I also choose to work in Metric, Meters.

When I create a 1x1x1 meter cube, it is extremely tiny. When I import it to Unity, it is also extremely tiny.

Everyone seems to think that the units of measure in Unity are meters. Therefore, what anti-intuitive step must be taken in 3ds Max to ensure that the units are properly set?

It is useless to say that “the units are what I want them to be.” When creating the model in 3ds Max, I prefer to work with a known scale. And I do not want to any re-scaling of the imported FBX in Unity, so as to ensure a tidy workflow.

Thanks in advance.

thx for your help - just a short overview

3ds max settings:
Metric / 1Unit = 1 cm

FBX export settings:
change the Scale Factor from
“automatic” to “scene units converted to:” - “Centimeters”

Unity settings: leave the scale factor 0,01

When you change your unit(s) in 3Ds Max, you MUST change your system units as well

So, if you want 1mx1mx1m box to be appear as same as 1x1x1 in Unity;

In 3Ds Max, go to ‘Customize->Unit Setup’. Check Metric and set it to ‘Meters’

Click on ‘System Unit Setup’, then another window will pop up.

Change ‘1 Unit = 2.54 Inches’ to ‘1 Unit = 1 Meters’. Then change ‘Distance from Origin’ to 0.

Create a 1mx1mx1m in 3Ds Max, export it, just set Unit Conversion option to Automatic.

If you see scale factor as 1.0, then Unity will import asset as 1.0 scale(ie. 1m scale).

If you noticed, when you make 100cm x 100cm x 100cm box in 3Ds Max and set conversion to centimeters, scale factor automatically changed to 2.54. That’s because system scale was set to ‘1 Unit = 2.54 Inches’.

UPDATE: Tried some out-of-the-box googling, and may have finally found the answer.

Suppose you model a 1x1x1 meter cube, and want to export it to FBX for use in Unity.

In 3ds Max, when you set up your units, select 1 Unit = 1 cm. Do not use the sensible assignment of 1 Unit = 1 meter. Obviously, this appears to create an inconsistency, because an object imported to Unity will be imported at 1 Unit = 1 meter. But wait and see…

When you export to FBX, leave your scaling at 1. Leave it as 1 cm = 1 cm. In other words, do not do any scaling whatsoever.

When you import to Unity, you will get a properly scaled model. Clearly, this is not what is expected. You’ve exported a cube that is, in terms of raw units, 100x100x100. When Unity does the import, we know that it does so at a scale of 1 Unit = 1 meter. So the cube should appear enormous in Unity. Alas, it appears in the Unity scene properly scaled.

So where is exactly is the bug? Unknown which of the two is the culprit. Somewhere in the workflow, there is a divide by 100 being done where it shouldn’t. To work around this error, set your 3ds Max system units to 1 Unit = 1 cm.

If you want to have Unity fully recognize the exact units you used in 3DS max without any conversion, there’s how you can do it naturally :

  1. Set 3ds Max unity to “Generic”.
    From then, consider that 1 unit = 1 cm even if it’s not written anywhere.

  2. Once you’re done with the meshes, export it as an FBX.
    Leave the export setting as default. In case you modified it, make sure that the “Unit” conversion is set to automatic. (It’s a check square above the list of unit you could wish to have the current 3ds Max units converted to)

  3. Import it as that in Unity (you can literally drag and drop the asset from its folder into Unity’s folder.)

From now on, in Unity, the asset will have exactly the size you wanted it to have. The thing thought is that Unity will show its size in meters and not in units (centimeters) like 3ds Max. 100 Units in 3ds Max with the automatic conversion option on is equivalent to 1 meter in Unity. (And logically, 100cm = 1m)

If you want to test if things work correctly on your end, simply make a cube with 100 units on its sizes in 3ds Max. Do what I wrote above and export it into an FBX in Unity. Once in Unity, simply bring the cube on the scene and check its size. If it’s size is 1/1/1, you’re all good. If you still need to confirm it, just create a normal cube directly in Unity and that cube will have a 1m/1m/1m size.

If you do with the same units but with Meters or centimeters in 3ds Max and force an unit conversion, the size of the cube in Unity will be of 2.54/2.54/2.54 while it will have the size of a 1m/1m/1m and that means that the 1/1 ration size of the thing you made is of 40cm instead of 1 meter while in Unity.

The default Unit System of Unity is Centimeter…Set the System Unit in 3dsmax to Centimeter(Customize->Units Setups-> System Unit Setup). Make sure You set the units to centimeter in System Unit Setup and not the display unit scale.
Create a Cube of 1cm X 1cm X 1cm. Export it FBX with Units setting “Automatic” Checked. Now import it in Unity. When Imported check the Scale Factor of Mesh “It should be 1”. now load it in unity scene. Create a unity cube of 1 X 1 X 1. Now both the cubes will be of the same size.

Easy!

Unity units are 1m.
If you want a 1-1 scale in max (as i do), then set your system units scale to be meters.
When you export from max, be careful that the FBX exporter is exporting at a scale of 1 (its default is 0.1 for some reason.)

If you make a 1m cube in max, export it at a scale of 1 and import it to unity at a scale of 1, it matches a cube made in unity of 1m. I build architectural visualisations this way, and that means I can use real world units for everything. Walking speed, gravity, the works.

I work in a cad software in meter units, import the stuff in meter units in 3dmax and set 3d max to meters

to keep the stuff in meters in unity I just converte the crazy value of 0.01 to 1 and all works perfectly ok.

UNITY 0.01 ?.. please…

Guys you are half right. This is what worked for me and should cause less confusion.

Change your system units to 1=cm

Change display units to meters (So you can use 1m, by 1m, by 1m instead of 100cm, by 100cm, by 100cm)

Finally export as cm

And that’s it.

Please repost this because the internet is wrong about using meters!

Maybe they fixed it in the meantime but on my system it all works as exptected:

in 3Ds: unitsetup = meters
in 3DS: I make a 1x1x1m box
in 3DS - FBX export: scene units converted to: meters
in Unity: i get a 1x1x1 box… :slight_smile: