maya脚本 下载本文

objectName.attributeName

其中objectName是物体的名字,attributeName是该物体的属性名。属性名中不要使用空格或特殊字符,可以用下划线。

产生一个名字为Brawl的球:

sphere -name Brawl;

可以获取它的属性的一个值:

float $yScale = `getAttr Brawl.scaleY`;

Brawl.scaleY是Brawl物体的scaleY属性的全名。

路径

如果两个物体具有不同的父物体,它们可以有相同的名字。当说明有相同名字的物体时必须使用路径:

pathname|objectname

其中pathname物体的父物体。管道字符(|)用于区分路径。

sphere -name doughnutHole; group -name GroupA;

sphere -p 3 0 0 -name doughnutHole;

现在我们有两个叫做doughnutHole的物体,但一个有父物体GroupA,另一个没有父物体。以?*噶畈桓龃砦螅?br /> 因为Maya不知道哪个doughnutHole物体要设立scaleY属性:

setAttr doughnutHole.scaleY 3.3; // ERROR: 哪个?

你必须输入属性的路径:

setAttr GroupA|doughnutHole.scaleY 3.3; setAttr |doughnutHole.scaleY 0.3;

你可以说明物体的所有路径,用管道符进行区分:

group -name GroupB GroupA;

setAttr |GroupB|GroupA|doughnutHole.scaleY 1;

物体属性的可能的数据类型

每个属性有特定的数据类型。几何体, 粒子物体, Maya中的其他项都具有这些数据类型的属性:

数据类型 意义 属性例 数据例

浮点小数 numbers Ball.translateX 2.6, 7.0, -9.1int 整数 (...-1, 0, 1, 2...) BallShape.spansU -289, 33, 0

boolean 0或1 Ball.visibilityon, off, yes, no, 1, 0, true, false

考虑一个由以?*噶畈慕凶鯢ire的粒子物体:

particle -name Fire -position 7 0 7;

它可以具有以下另外的数据类型:

数据类型 意义 属性例 数据例

vector array 矢量阵列 FireShape.position {<<3.2,?7.7,?9.1>>, <<7,?10,?2.2>>}

double array 浮点阵列 numbersFireShape.lifespan 1.333 1.666

你可以使用getParticleAttr和setParticleAttr指令设立矢量的元素或一个粒子系统的双阵列。

float $Tmp[] =

`getParticleAttr -at position FireShape.pt[0]`;

vector $particlePosition = <<$Tmp[0], $Tmp[1], $Tmp[2]>>; (完)