Max Unity and fbx question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
i have some questions about the fbx format, max and unity.
i use fbx a lot going between 3dsmax 2018 and unity.
i have found i need to set max system units to meters to get an un-scaled model in unity
and prior to export i need to rotate all objects pivots +90 on the local x axis to keep models from being pre-rotated -90 on the x in unity.
this is just how its done it seems 🙂
i have automated the process with a maxscript so i don't even notice the extra steps really, but it gnaws at me that i am missing something.
hopefully yall can give me a hand understanding what im not understanding. 🙂
its my understanding that an fbx file knows what coordinate system it was authored in, knows what system units it was authored in and in general has a fair amount of data to pull from. i have poked around in the ascii format fbx and it seems it would be a relatively simple task to take the information and produce a perfectly converted and orientated mesh in the target application.
Question 1 : why don't fbx meshes brought into other programs come in with correct size and orientation and require scale and rotation to be applied automatically or by a users hand to fix?
in all my tests with unity, max, and fbx i have found that setting the up vector in "Axis Conversion" to either Y-up or Z-up does nothing to change how unity imports the mesh. With either setting the mesh is imported into unity with a -90 x rotation. In the ascii fbx files i can find the lines where this data is set and stored so my thought is that unity just doesn't pay attention to it.
Question 2: What am i missing about axis conversion, is it a problem with max or unity or my understanding of what it is supposed to do?
rotating the pivot only on a mesh in max prior to export will cause the imported mesh in unity to have a rotation of 0,0,0. while this works, it is hardly ideal and is destructive especially with hierarchies and animations. i am unclear though as to how unity knows that i rotated the pivot and that it should not apply the -90 degree rotation on the x axis after import.
Question 3: how does unity or the fbx format know the difference between a mesh that is rotated 90 degrees on the X axis and a mesh that has had only its pivot rotated 90 degrees on the X axis?
what got me here is i decided to write a converter to "fix" an fbx after export or to write a more focused exporter/importer so that it would be happy living in unity. that way my max files don't need any changes to its set up or system units and there is no cleaning up afterwards in unity. upon looking at the fbx format it just feels like it should already do this and i am hoping that i have just been missing something.
Question 4: any advice, suggestions or answers to questions i should have asked?
thank you in advance
-j
