I've been using Maya to create assets for Unity. In general I'm happy with the results. I'm wondering what kind of workflow most people are using for complex level design going from Maya to Unity. What I've been doing in general is cutting up chunks of the environment in Maya and then importing them to Unity and placing the prefabs manually.
Does anyone have a more improved workflow where you can keep the level intact in Maya and then do a somewhat 1:1 import into Unity? How are you guys doing it?
Replies
unity should maintain the scene hierarchy, so you should be able ot drag the whole thing into the unity scene set it to 0,0,0 for location, and once in the scene like that any changes in maya should show in unity, and in unity because it still has a scene hierarchy, you can select the individual objects still and apply materials and effects to them.
I guess after the initial import of the scene layout you need to manually update individual meshes since reimporting the whole scene will get rid of all the material assignments. It really would be great if Unity had a way of reading meta data from Maya that says "Use this Material".
1) Export the scene from Maya to the Unity Assets folder. (I use a sub folder called Level Geometry).
2) Create and empty game object in Unity at 0,0,0.
3) Drag the imported asset into that game object.
4) Rotate the game object by 180 degrees. This allows the axis layout in Maya to match the layout in Unity. I use maya set to centimeters. This allows me to do a 1:1 import into Unity at scale, but I treat 1 unit in Unity as 1 meter and 100 units in maya as a meter.
5) Continue to work in Maya and export selected objects as the main level geometry. Note the entire "scene" is one FBX export. To export all the objects I select them all and export the entire selection as one FBX. This limits the export selection to only the objects. (no cameras or lights).
This also seems to preserve materials that have been setup on the objects that are placed in Unity. I have both apps open at the same time on separate machines linked with a shared folder.
SelectAllGeometry;
ExportSelection;
You can put that in your script editor and then save it to a shelf. This allows the geometry in the scene to be selected and the export dialog to be opened. I then export again over my the FBX scene in the Unity Assets folder and reimport the asset in Unity to update it.
This way I can have all the scene objects in Max and just roughly select all the elements I want to export or update.
If you name your materials properly and assign the correct materials to all geo then you wont have problems with the materials. The problem arises when you re assign materials in Unity, then re-import.