What would be the best, most durable way to have many versions of assigned materials in one scene, so that I can easily switch between a version of the vehicle with green paint with white plastic and the same model with metal and dark plastic. Making it extra complex is the fact that not all materials will be assigned precisely at the same location/subobjects.
Example: A vehicle (same model) with many colors/material variations, where for example in one version some parts are of a painted material and in another version some parts are plastic or metal. (And then with about 50 materials on thousands of objects) How would you manage that on complex scenes? None of the solutions I found is flexible enough:
- Splitting the scene in multiple 3dsmax scenes (The Problem with this is that if the model changes you have to import it in all scenes).
- Using multiple 'containing' scenes with the material variations and only import objects as XREF objects and re-auto assign the materials from that scene to the XREF objects. So the material variations/assignments exist in the 'containing scene' but the models in the xref file. (I have not gotten this to work properly because when I (re)import the Xref objects materials are not automatically assigned.
- Only importing materials from an external file or material library and merging that file with the scene each time I want to change the materials, overwriting the existing materials. In that case, I would have multiple scenes containing only the assigned materials that I can use to overwrite the materials. But the slate material editor with all my tabs and material node trees assignments will not stay ordered.
- Using multi/subobject ID materials and creating one (or more) for each material combination. Then assigning that to the objects all at once for each color/material variation of the objects. the disadvantage is that when I assign a new material to certain (sub)objects I have to update all those subobject materials.
- Using State Sets: This records material assignment (but I do not want to reassign each material like that). That would take too long. Also, state sets is not always that stable in my experience and hard to use with a recording states / making scene wide changes. Therefore state sets are better suited for batch rendering in my opinion.
- Using Scene states: Not good to use for assigning materials. Because of recording states interferes with modeling.
Replies
I'd suggest using an Excel spreadsheet for keeping track of which items get which materials, and coding up a Maxscript to assign them.
http://www.scriptspot.com/search/apachesolr_search/material assign
http://www.scriptspot.com/3ds-max/scripts/spreadsheet-editor
http://www.scriptspot.com/3ds-max/scripts/selectionsetmaterial-0
http://www.scriptspot.com/3ds-max/scripts/swapmaterials
http://www.scriptspot.com/3ds-max/scripts/matidtools
Multiple MatID materials is probably the way I'd go myself. Then I'd save out all the materials to specific material libraries(a multi-matID file for each variation) and use the Asset Browser(or Project Manager) and Slate to quickly swap out materials.
The Corona Material Library will have the ability to save custom materials in a future release, which will be very useful.
Apart from that, it's custom scripting(something I know very little about)
You can assign IDs using a modifier (which can be instanced) as well as per face. I do that a lot because it means you can make large sweeping changes to material assignments your scene very quickly.
poopipe Thanks, I know that workflow (more or less) but now I am more certain it is probably the best direction to take.
2) Material ID Modifier
2) Poly Select
1) Material ID Modifier
1) Poly Select