直接访问对象属性
在表达式中,可以直接访问对象属性,而在 MEL 中则必须使用 getAttr、setAttr、getParticleAttr 或 setParticleAttr 命令。
以下是一些直接访问对象属性的表达式语法示例。
persp.translateX = 23.2;
float $perspRotX = persp.rotateX;
要在 MEL 中执行类似以上的操作,必须使用 setAttr 和 getAttr 命令,如以下示例所示。
setAttr("persp.translateY", 23.2);
float $perspRotY = getAttr("persp.rotateY");
在“脚本编辑器”(Script Editor)中执行以下命令,以创建一组粒子:
particle -position 1 2 3 -position 2 1 3 -name dust;
现在,可将以下表达式语法用于粒子形状:
vector $pos = position;
acceleration = <<2, 1, 0>>;
要在 MEL 中执行类似以上的操作,必须使用 setParticleAttr 和 getParticleAttr 命令,如以下示例所示。
select dustShape.pt[0];
float $temp[] =
getParticleAttr("-attribute", "position", "dustShape.pt[0]");
vector $position = <>;
setParticleAttr("-attribute", "velocity", "-vectorValue",
-3, 0, 0, "dustShape.pt[0]");
上述 MEL 命令仅用于 particleShape 中的第一个粒子。