2017-05-03 276 views
0

您好,这是我的第一个脚本。 我想写一个脚本,将场景中的所有VRay材质放入一个数组中,然后我要将它们拖到槽的for循环中,并将每个vray材质附加到Multi/Sub-Object中的一个槽中。然后输出多/子对象连接到VRayMtlWrapper,并将旧的多子对象保留为子材质。MaxScript收集场景中的所有VRay材料

我可以在图中做到这一点,但需要长达两位数的材料。

我已经刮了一些脚本,阅读maxscript帮助找到我需要的东西,但没有运气。

大气压我知道收集材料场景

materials = for m in scenematerials collect m; 

但之后,我不知道怎么写,这样我可以访问他们的输出/输入或属性,并将其与多子对象连接。 我已经开发了我的头脑中的逻辑,但不知道如何编写语法来实现它。 任何信息,方向,链接将不胜感激。

这里甚至什么我尝试用一​​个脚本automaticaly example

回答

0

我已经找到了解决方案,做一个图像。 如果你想摄取仅VRay的你刚刚写:

matVray = for m in scenematerials m.category == #vray collect m; 

如果你想摄取仅材料VRay的图书馆,只需添加

matVray = for m in scenematerials m.category == #vray and superclassof m == material collect m 

为了把材料从阵列到multisub对象,然后其:

multiSub = Multimaterial numsubs:matVray.count 
multiSub.materiallist = matVray 

而最后一部分连接multisub到VRay的包装:

vrayWrapper = VRayMtlWrapper baseMtl:multiSub