Arrays Maya M.E.L:是否可以存储关节类型的数组?
嗨,我是一个新的MEL用户,一直在到处玩,到处搜索,但无法理解这一点: 我尝试将所有关节变换旋转值移动到关节方向值,以便在不丢失关节方向的情况下清理变换的属性,我的mel尝试如下:Arrays Maya M.E.L:是否可以存储关节类型的数组?,arrays,maya,mel,Arrays,Maya,Mel,嗨,我是一个新的MEL用户,一直在到处玩,到处搜索,但无法理解这一点: 我尝试将所有关节变换旋转值移动到关节方向值,以便在不丢失关节方向的情况下清理变换的属性,我的mel尝试如下: string$joints[]=`ls-type“joint”`; //打印($接头); int$jnt_count=尺寸($joint); 对于mel中的($i=0;$i),您只能使用字符串、浮点或整数-它们是场景中对象的名称,而不是对象本身的包装器或句柄 在您的特定示例中,您希望: string $joints
string$joints[]=`ls-type“joint”`;
//打印($接头);
int$jnt_count=尺寸($joint);
对于mel中的($i=0;$i),您只能使用字符串、浮点或整数-它们是场景中对象的名称,而不是对象本身的包装器或句柄
在您的特定示例中,您希望:
string $joints[]=`ls -type "joint"`;
int $jnt_count = size($joints);
for ($i = 0; $i <= $jnt_count; $i++)
{
float $attr1 = `getAttr ($joints[$i] + ".rotateX")`;
// etc. See how this is done by adding the strings to
// create the string "youJointHere.rotateX", periods and all...
// the parens make sure string is composed before the command is called
setAttr ($joints[$i] + ".jointOrientX") $attr1;
// etc. Same trick
}
string$joints[]=`ls-type“joint”`;
int$jnt_count=尺寸($joint);
对于($i=0;$i),正如theodox所指出的,Pymel使这更容易!并且更接近您的帖子
joints = pm.ls(sl=1, type='joints')
jountCount = len(joints)
for i in range(jointCount):
rot = joints[i].r.get()
joints[i].jointOrient.set([rot[0], rot[1], rot[2]])
在我看来,Pymel比mel优越得多,因为它与mel一样易于阅读、编写和从api派生,它的执行速度也一样快:)Hi,感谢您的回复,当我以这种方式尝试时,我收到一个错误:“错误:行..:所有“I”都无效使用Maya对象“I”在for循环中使用,所以我认为这是因为相同的字符串问题,并尝试了以下方法:int$attr1=getAttr$joints+“[+$i+”]“++.rotateX”
和int$attr1=getAttr$joints+“[+i+”]“++.rotateX”
但是这两种方法都不起作用,你知道问题出在哪里吗?我也会尝试学习python!python在攻击自己的腿方面更强大。Mel很好,因为它有回声功能和局限性,但仅此而已。是的,你读到了正确的局限性是Mel如此优秀的一个重要原因。你的书名是made me Gluckle:)Mel代表Maya嵌入式语言,因此您实际上是在编写Maya嵌入式语言:D抱歉:D,我只是觉得从Maya开始可能会更清楚,以防m.e.l可能是其他地方的东西!谢谢你的回复!(此处回复非常晚)
joints = pm.ls(sl=1, type='joints')
jountCount = len(joints)
for i in range(jointCount):
rot = joints[i].r.get()
joints[i].jointOrient.set([rot[0], rot[1], rot[2]])