- Home /
[3DS Max] Imported model scale issue with Unity 5
Before I upgraded to Unity 5, I was able to FBX-export my 3ds max models wihtout problems; FBX Exorter unit conversion was set to automatic, and inside Unity, imported model Scale Factor was 0.01 and File Scale 1 as usual.
However, now with Unity 5, it's messed up. Even though I haven't changed anything, suddenly imported models have a Scale Factor of 1, and a File Factor of 0.0254! I noticed that in max's FBX exporter window, in Unit Conversion, if it's set to automatic, the drop-down list for specific units is greyed out as it should, but still shows Inches, which is probably where the 0.0254 comes from. Anyone else had this problem?
Answer by Cherno · Mar 24, 2015 at 07:19 PM
The solution (with 3DS Max, at least) is to set teh SYSTEM units to meters (they are set to inches by default), and after you did this, everything works as before.
Answer by Bobap · Mar 11, 2015 at 06:35 PM
I've been playing around with this since it's causing an issue for me. It seems like Unity5 is adjusting the file scale value so that when the objects are instanced, they all appear the same size regardless of the exported units. The exported unit is used to determine the instanced scale value instead of the file scale value. IE exporting with Inches as units will import into Unity5 with a 0.0254 file scale, but instance in the scene with a scale of 1. Likewise the same model exported as Decimeters will import with a file scale of 0.01, but instance in the scene with a scale of 0.254. Both models are identical in size when instanced with this method. Unity4 took the file scale from the unit and I believe instanced everything with a scale of 1. This new way Unity is handling importing is just a big headache. An annoying workaround I've found is to match the old automatic FBX scale (which I believe is the same as Inches) is to export with Decimeters as the unit and change the scale of the instanced object in the scene to 1.
Thanks, yeah I think you are right. I have so far managed to get it exported correctly by just setting things to inches or meters... Seems like it's kind of random, but after a few tries it's usually exported correctly.
I'm having the same issue out of both $$anonymous$$aya and Softimage. only it seems to be worse when animation is involved. Its halted my project
Answer by maestroxxx · Jan 04, 2016 at 02:25 PM
This bothered me also, so here is my workflow:
1) Change Unit settings in Max
(Customize > Units Setup)
System Unit Setup: 1 Units = 1 Centimeters
Display Unit Scale: Meters
2) Modelpreparation in Max
(3ds Max Object Hierarchie Panel)
Reset Scale // can fix scale issues if scaling in 3dsMax was done on object level
(Reset Transform) // can fix XForm problems
Affect Pivotpoint only: Rotate (90,0,0) // needed to have the right rotation in Unity
(Align Pivot to Z-Minimum)
3) Export to FBX
(Advanced Options)
Unity Scale Factor : Automatic
Axis Conversion : Y-Up
4) Unity Import Settings
( I recommend to use an asset like "Importer Rules" to save some time)
Scale factor = 1
(Scale factor = 0.01 if you use the max file directy without FBX export)
I found these settings best to work with and hope it saves someone some time.
Answer by Burton-Radons · Oct 25, 2015 at 04:51 PM
I finally got this working by switching the System Unit Scale in 3ds Max 2016 to 1.0 = 0.0254 metres, with "Respect system units in files" checked (that's for loading). This is for "direct" importing of ".max" files in Unity, not for exporting ".fbx" files.
"1.0 = 1.0 inches" doesn't work for me even though that's the same ratio, so if 0.0254 metres doesn't work try entering different equivalent ratios. Display units should not matter.
A related bug will show itself if your model only has one mesh, which is that it will be centred and have an initial scale of 0.0254 instead of 1. This is due to the way the meshes are imported. A resource-cheap way to get the importer to work properly is to insert a Point anywhere (In 3ds they're under the Create tab in Helpers, the tape measure icon; or go through Create > Helpers > Point); Unity turns those into blank, empty GameObjects.
The way I do it is to set $$anonymous$$ax's system units to Centimeters, and then create the models as if 100 units (= 100 cm = 1 meter) would be a real-world meter, and also 1 Unity unit. Then I FBX-export with a unit conversion set to centimeters, and then in Unity the import scale can be kept to 1:1.
$$anonymous$$an, I would kiss you! This point thing helped completely. I just had problems using Dummies and then export it (everything set on meters.. EVERYTHING) then I had two different outputs, depending on parenting of the dummies. Actually I tried to work even on $$anonymous$$$$anonymous$$, this is just overwrited by the FBX export configuration, so, for me it does nothing to work on any scale, I just export always in meters
At the end, the only thing I have to be worried is to set FBX exported on meters and add this Point to get "whatever.fbx" 1:1 , ¿is it really this monster bug? then I get a 1 scale object, 1:1 on importer with objects inside at 0.0254 scale, but at least the main object is 1:1
Its a really annoying issue. The highlighted answer didn't helped at all
Answer by Alfonmc · Feb 23, 2017 at 02:05 PM
So, I am working in 2016 and Unity 5.5
3Dsmax - It does not matter wich Units you are working with, those are overwrited by the FBX export, so.. you can choose between Meters or Inches
If you choose Meters, you get on FBX import settings at Unity 1:1 but.. the objects, then you have a 1:1 object with different meshes inside with 0.0254 (Wich is the difference between meters and inches)
If you choose Inches when you export from 3Dsmax, you get at FBX import settings at Unity 1:0.0254 and then, you get 1:1 objects with 1:1 objects inside
¡¡¡BUT ONLY, If you are working in Meters!!! you export at the same time a Point Helper.. and then is gets consistent THEN you have a 1:1 object with 0.0254 meshes inside. If you dont include the Point Helper you can get or 0.0254 object with 1:1 meshes inside or you get 1 scale object with 0.0254 meshes inside, depending on the things included on the fbx.. dummies, meshes or whatever, because apparently Unity reads (or is it max?? I dont know) first one or another, but if you include the Point helper, you are saved. Blessed workaround!!
So, if you work with meters (screw us.. metric system users) then add a point helper. If you export in inches.. you have no problem adding or not adding this point object, because there is no unit conversion. Apparently
(And I hope I don't have to waste more of my time trying to figure this out.. )
Hi Alfonmc,
it is hard to tell what your setup/problem is without a picture. I just tested my workflow with Unity 5.5/$$anonymous$$ax 2017/ FBX Export 1415 and it worked fine. I exported a parent child structure and the scale was right on both objects. It is important that you dont use the FBX scale override. The export setting for units has to be automatic in the export settings and the right units setup need to be set inside $$anonymous$$ax System Units.
Of course, if you set to auto, then you wont have this dilema, cause then it does what it is supposed to do as auto, but then, what do you do with a $$anonymous$$m wich have different unit scale and then set it into auto.. wich is not consistent between different people. I need a zero issue workflow wich does not have this issue with cm, so.. the result is to get all the object exported as Inches ins$$anonymous$$d by FBX export override.
I wouldn't post at all if I had no problem at all with the import issue. Wich.. actually is the opposite of the green answer of this chat... Really a big headache.
I am quoting Burton Radons.
A related bug will show itself if your model only has one mesh, which is that it will be centred and have an initial scale of 0.0254 ins$$anonymous$$d of 1. This is due to the way the meshes are imported. A resource-cheap way to get the importer to work properly is to insert a Point anywhere (In 3ds they're under the Create tab in Helpers, the tape measure icon; or go through Create > Helpers > Point); Unity turns those into blank, empty GameObjects.
You are confusing me, but that might be due to language issues. To my knowlege there is no point helper needed, everything can be set right by changing the system units accordingly. $$anonymous$$aybe the parenting structure might also confuse you since child objects are shown relation to their parent: a parent with scale of 0.0254 and and a child of scale 1 means both have a original size of 0.0254 compared to the system unit.
Your answer
Follow this Question
Related Questions
Blender Mesh Import issue 9 Answers
Unity FBX to Prefab Position reseting 1 Answer
Fatal error with import from Blender 2 Answers
Blender 2.62 FBX not importing 2 Answers
Unity reading animations incorrect when constraints used 0 Answers