[Closed] Test for multi/sub object
Hi all,
I’m stuck with some script and any help would be much appreciated.
I have a maxscript that loops though the SceneMaterials and searches for a selection of textures, which names are obtained from a text file. When located a texture is placed into its opacity map.
Now the problem I have is when I get to a multi/sub object in the material list I get this error
Unknown property: "diffuseMap" in #Multi/Sub-Object:02 - Default(Standard:Material #46, Standard:Material #38, Standard:Material #39, Standard:Material #40, Standard:Material #41, Standard:Material #42)
So I need a way to test whether the current material is a multi/sub object.
Something like:
if( SceneMaterials[i] == multi/sub) then
Thanks
A much better way to approach this than searching through the scenematerials for scenematerials[i].diffusemap is to use the getclassinstances function. This means it doesn’t matter if your map is in a multi-sub, a multi-sub within a multi-sub, a blend material, a composite etc…
example bit of psuedo code… doesn’t work…
For o in getclassinstances Standardmaterial where o.diffusemap != undefined and (matchpattern o.diffusemap.bitmap.file pattern:“something”) == true then o.opacitymap = bitmaptexture filename:(getfilenamepath o.diffusemap.bitmap.filename + getfilenamefile o.diffusemap.bitmap.filename + “_opacity.bmp”)
This will then work for all StandardMaterials regardless of where they are in material heirachy.
Thanks dude. That way works much better.
As a quick fix I made another script that would work on the selected material, but now I can combine them both
The funny thing is I came across that method but didn’t think it applied to my situation.