I model and texture in Maya, export as .fbx, and bring into Unity. I usually apply materials by faces. In Unity I need certain materials to be certain elements for my code. Is there a way of controling the element order in Unity without having to create another script?
Example: I have a female character and a male character. I have an eye material and a skin material. Each character is a combined mesh so I apply the materials by selecting eye faces and appling eye material and then selecting the skin faces and apply the skin material. When I bring them into Unity however, the Male eye material is applied to element 1 but the female eye material is applied to element 2 (and vice versa for the skin). This is not due to which material was created first in Maya, it's not due to alphabetical order, and it's not due to which material was applied first. I don't know what could be causing this.
For females, skin is more important ;-P
(sorry, couldn't resist...)
Answer by tomekkie2
Jun 15, 2012 at 09:24 PM
This is due to to the id sequence of faces. The material of lowest id faces gets assigned to element0 and so on
Thank you for your response! After knowing this I continued research and found this similar post: http://forum.unity3d.com/threads/27738-Multi-Material-ID. Apparently 3DS Max has a way to assign face id's (found here: http://www.maxbasics.com/materials-tutorials/concepts/multi-material) and Maya handles materials and faces in a different way, where I cannot access face id info to change it. If anyone knows a way in Maya please let me know!
At this point it is just worth it to fix it in code in Unity rather than dealing with 3DS Max.
I really hope Unity finds a way to control face id's since this is crucial in my workflow as an artist. I shouldn't have to rely on programing for simple texture application.
Answer by motodream
Dec 06, 2012 at 03:55 AM
Uncombine meshes in Maya, then combine meshes which must share the same material, and assign the material to combined mesh, then recombine the meshes how do you like. The element order should be normal.
You also can see, are you in the right dirrection or no, just looking at the material order in the Maya's "Attribute Editor".
This is perfect! That did it alright. Thanks for the answer.
No problem. I'm glad to help. )
Answer by bugmagnet
Jun 29, 2016 at 05:53 AM
I just solved this myself in Maya. I did it by separating out the mesh by materials.. ie object A has been split up into A1 which has only material 1 and A2 which has only material 2.
Then, depending on the order I select A1/A2 when i recombine them: the exported mesh will have the material id's accordingly.
Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
The best place to ask and answer questions about development with Unity.
To help users navigate the site we have posted a site navigation guide.
If you are a new user to Unity Answers, check out our FAQ for more information.
Make sure to check out our Knowledge Base for commonly asked Unity questions.
If you are a moderator, see our Moderator Guidelines page.
We are making improvements to UA, see the list of changes.
Answers and Comments
8 People are following this question.
Can material animation be exported from maya and imported into unity ?
Combining blender submeshes
How to change all material elements of object's children
How to highlight only one face of a Cube from script?
Floating GUI button to change correct material of character