A simple way to send objects and texture sets from Maya to Unity.
You need at least FBX 2020 version (Maya 2019).
- Create your asset (modeling, texturing etc.)
- In Maya use the aiStandardSurface shader and connect the textures
(Use the bump2d node for Normal maps.)
- Export the object as FBX.
Make sure the the Embed Media option is turned on!
An FBX can contain aiStandardSruface shaders and the basic File node connections.
Fortunately Unity have a dedicated ArnoldStandardSurface shader type and also a special process to create the correct shader and connections when necessary. 🙂
- In Unity, import the FBX (drag and drop or export directly into your asset folder).
- Select the imported asset than select the Material tab on the Inspector panel.
- Set the Material Creation Mode to Import via MaterialDescription
- Set the Location to Use Embedded Materials
- Press the Extract Textures button (set the folder)
- Press the Extract Materials button (set the folder)
- Turn off the sRGB (Color Texture) option for all but the Albedo (base color) texture, press apply.
- If you don’t need transparent shader, select the generated material and set the Surface Type to Opaque.
When using the transparent surface type you might have to change a few things (Depth Test mode, Double-Sided switcher etc.).
thanks for this super helpful post!
yet, unfortunately it didnt work. My project is in 2018, I guess I was over zealous in my excitement.
The first FBX version with full aiStandardSurface support is FBX 2020.
So you need at least Maya 2019.
I added this information to the post.
Hi, this doesn’t seem to work for me:/ The textures won’t update in Unity, leaving me with just the blank model.
Nevermind, had to place the textures folder inside of the Unity assets folder. Might be a handy thing to update the post with! 🙂
I’m having a new issue where the textures suddenly turned green though lmao
If you want to update an existing asset in Unity:
You just have to overwrite the already existing texture files and fbx files inside the Unity project (you don’t need the redo the whole process).
Unity will automatically update the textures and geometry.