- Home /
Connection Unity Material Library - 3DS Max Material Library
hi,
I've been working with unity for a while and solving out lots of issues I had at the very beginning just using it but there is still a situation I can handle and it's really annoying me.
I've got a pretty nice materials library set up in my project with all the textures within a folder called textures and a type-based structure into it. Also I've got a material folder with the same structure in the project and all the materials defined with their categories, maps, settings... they all work fine and look as I need them to.
The problem comes when I work with different max files and I need them to use the textures (and of course, the materials already made) from my unity projects. I save those max files in a custom folder called "models" within my project's assets folder and they use the textures from my texture folder but I can find a way to make Unity understand I also want them to use my already pre-made materials.
I understand that is no so easy but then the problem is unity creates into my "models" folder another folder called materials where the materials are called MaxFileName - TextureName. Also, the problem is this is not always this way. Sometimes it uses materials coming from my materials library but I don't know the reason (maybe it has something to do with the texture name being the same than material name).
To sum up, I would like to know if is there any way Unity and 3ds max can share a materials library (don't know if the .mat files in max and unity are compatible either) so unity can understand the materials i'm using in max are the ones it already has.
Answer by alexnode · Apr 01, 2010 at 12:13 PM
OK this is not exactly an answer but I will share what I know. First of all I think that assetPostrocessor is the class that does the job, there are various scripts in the forums but nothing complete for max matlib as far as I have searched. It has many nice functions like reading user properties, strings etc. Because I am not a programmer I abandoned the idea to create a customized importer and instead I create my generic materials in unity like "A_gen_glass01" and I assign them manually. I only use the imported materials when I have unique lightmapped materials. if you import by texture for not lightmapped material then you will have to fix only the first material to look nice in unity and then all the other models with the same texture will automatically get the same material. but if you want to use different normal maps in one it will change for all and if you use this texture with another shader it will become messy. So you will have to create new materials in unity.
It might be fairly easy with user properties or a string to identify the models with generic identical material by name and assign a premade unity material. Nevertheless It is tedious work for the artist and I think that an editor script which imports identical materials properly not textures would be very welcomed .I always have to do something manual inside unity for any object I import.