3DMax中的MCG工具集允许用户创建几种不同类型的插件。在这个例子中,我们正在创建一个简单的克隆修改器。
将修改器添加到对象时,将使用“数量”整数值克隆网格n次,并使用X、Y和Z中的“缩放”、“旋转”和“移动”微调器控制每个网格的偏移。
UI(用户界面)是在计算MCG图时自动生成的,但可以通过Max Script进行自定义。
使用MCG可以创建更复杂的工具,这是快速开发任何类型插件的好方法。
让我们更深入地了解一下这个图是如何工作的。
“计数”组包含两个控制克隆网格数量的节点。
工具输入:整数
创建一个微调器,用户可以输入克隆的数量。
包含浮点数组
此节点创建一个从0到1的浮点值数组。如果输入整数设置为5,它将创建一个看起来像0.0、0.25、0.5、0.75、1.0的数组。然后,可以使用此数组将克隆网格的位置相乘,以将其展开。
“缩放”组只有用于调整克隆整体比例的输入。
工具输入:矢量
矢量输入在UI中创建了三个微调器来控制X、Y和Z。默认值设置为1,1,1,因为它是一个乘数。
旋转组控制克隆的整体旋转。
工具输入:矢量
创建三个微调器来控制网格的旋转输入,并输出Vector 3值。
常数
常数值用于将矢量旋转从角度转换为弧度。您还可以使用Vector X、Y和Z节点将旋转分解为三个轴,然后使用Degrees to Radian节点,然后使用Vector节点将它们重新组合在一起。这需要比乘以0.0174444多得多的节点。
倍增向量
Multiply Vector节点取一个Vector 3值,并将其乘以一个Float,然后输出一个Vector 3。
Euler的四元数
将Euler角转换为四元数以构建矩阵。
“变换”组控制每个克隆网格的位置。
工具输入:矢量
在UI中创建三个微调器,用于输入每个轴上的位置偏移。
值数组
使用计数整数输入创建值向量值数组。我们的想法是,在创建网格数组之前,先创建一个值数组。
矢量
此节点不需要作为乘法节点,因为它可以是乘法向量节点,但我将其包含在内以显示其他方法。此节点接受三个输入,X、Y和Z,并输出Vector 3值。
倍增
将输入向量数组与包含浮点数组中从0到1创建的数组相乘,并返回一个新的向量3值数组。
网格组是创建网格的位置。
修改器:网格
从修改器堆栈返回网格。此时,这是一个单一的网格。
变换旋转缩放矩阵
根据缩放、旋转和平移值数组构建生成的变换矩阵数组。MCG中的节点被映射,这意味着如果其中一个输入是数组,它们会自动循环。返回一个Transform Matrix值数组。
变换网格
Transform Mesh节点有两个输入,传入网格和一个Transform Matrix。在这种情况下,只有一个网格传入,但有一个Transform Matrixs数组。节点再次被映射并遍历所有矩阵数组,并为每个矩阵构建一个网格。
连接所有网格
由于修改器不能返回多个网格,我们需要在返回最终结果之前将它们全部附加在一起。
输出:修改器
将最终网格输出到修改器堆栈。
高级克隆修改器。允许径向克隆。
内置投影复合的高级克隆修改器,用于将对象放置在场景中对象的表面上。