Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Maya M.E.L:是否可以存储关节类型的数组?_Arrays_Maya_Mel - Fatal编程技术网

Arrays Maya M.E.L:是否可以存储关节类型的数组?

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

嗨,我是一个新的MEL用户,一直在到处玩,到处搜索,但无法理解这一点:

我尝试将所有关节变换旋转值移动到关节方向值,以便在不丢失关节方向的情况下清理变换的属性,我的mel尝试如下:


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]])