【问题标题】:MaxScript to collect all VRay materials in the sceneMaxScript 收集场景中的所有 VRay 材质
【发布时间】:2017-10-01 10:57:18
【问题描述】:

您好,这是我的第一个脚本。 我正在尝试编写一个脚本,将场景中的所有 VRay 材质放入一个数组中,然后我想将它们拉到循环中并将每个 vray 材质附加到多维/子对象中的一个插槽。然后将 multi/sub 对象的输出连接到 VRayMtlWrapper 并保留旧的 multisub 对象作为子材质。

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

我已经抓取了一些脚本并阅读了 maxscript 帮助以找到我需要的内容,但没有运气。

Atm 我知道在场景中收集材料

materials = for m in scenematerials collect m;

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

这甚至是我试图自动处理脚本的图像 example

【问题讨论】:

    标签: 3dsmax maxscript


    【解决方案1】:

    我找到了解决办法。 如果你只想捡起 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 = Multimaterial numsubs:matVray.count
    multiSub.materiallist = matVray
    

    最后一部分将 multisub 连接到 vray 包装器:

    vrayWrapper = VRayMtlWrapper baseMtl:multiSub
    

    【讨论】:

      猜你喜欢
      • 2017-10-03
      • 2014-12-07
      • 1970-01-01
      • 2020-07-12
      • 2020-11-12
      • 2014-12-14
      • 2015-01-26
      • 2019-04-10
      • 1970-01-01
      相关资源
      最近更新 更多