3d 如何在MEL中选定对象的拉伸节点内设置属性
我想将3d 如何在MEL中选定对象的拉伸节点内设置属性,3d,maya,mel,3d,Maya,Mel,我想将subCurveExtrMax属性设置为x和y之间的随机数,但我在选择属性时遇到问题: string $sel[] = `ls -sl`; string $obj; for ($obj in $sel) { float $ran = rand(0.972, 0.984); setAttr ($obj+".polyExtrudeFace.subCurveExtrMax") $ran; } polyExtrudeFace不是选定对象的属性。它将是一个连接到对象的节点 您必须
subCurveExtrMax
属性设置为x
和y
之间的随机数,但我在选择属性时遇到问题:
string $sel[] = `ls -sl`;
string $obj;
for ($obj in $sel) {
float $ran = rand(0.972, 0.984);
setAttr ($obj+".polyExtrudeFace.subCurveExtrMax") $ran;
}
polyExtrudeFace不是选定对象的属性。它将是一个连接到对象的节点 您必须将其视为节点,并使用setAttr设置其属性。假设节点的名称为polyExtrudeFace1。你会做:
string $extrudeNode = "polyExtrudeFace1";
setAttr ($extrudeNode + ".subCurveExtrMax") $ran;
如果要动态查找挤出节点,可以在类型为“polyExtrudeFace”的选定对象上使用listConnections来获取连接的挤出节点列表
另外,请注意,拉伸节点连接到形状节点,而不是变换节点。因此,我们必须确保在形状节点上执行listConnections
在您的情况下,类似的操作可能会起作用(修改代码):
这将在对象的所有挤出节点上应用rand。如果这不是您想要的,那么您可以应用您的逻辑,在最内部的for循环中,仅选择要应用rand的挤出节点
希望这有帮助。您也可以在第一次调用挤出时提供随机挤出深度:
polyExtrudeFacet -lt $ranx $rany $ranz; // to specify all 3 offsets
polyExtrudeFacet -ltz $ranz; // to specify just the extrusion depth
polyExtrudeFacet -lt $ranx $rany $ranz; // to specify all 3 offsets
polyExtrudeFacet -ltz $ranz; // to specify just the extrusion depth