PyMel Maya Python - 设置联合位置

时间:2017-03-21 10:55:16

标签: python maya mel pymel

我是PyMel的新手(之前是Done Python),我发现文档非常复杂,有时只是MEL而不是Python。在这里做任何事都很沮丧。

我正在寻找一种方法来设置我的一个关节的绝对位置,以及它的骨骼方向。

我想要操纵的关节是这样的:

theJoint = ls("LeftArm")[0]

现在使用

theJoint.setAngleX(45)

我可以设置相对于父级的旋转。但我需要做的是在世界空间绝对坐标以及旋转中设置位置。

我没有使用任何setPositionX()setTransform(X)方法,所以我想知道我是否在正确的位置。

我如何开展这项任务,更重要的是:我在哪里开始寻找正确有用的命令库?如果没有工作示例或小型演示,这样做非常令人沮丧,总是依赖于上下文选择对象,这是我无法做到的。

1 个答案:

答案 0 :(得分:1)

当您使用pymels属性对象(类似mynode.rotate.set()这样的合成文件)设置属性时,您可以直接将数字戳到属性中;但数字只是数字,在下游解释,就好像您已将它们输入到通道盒。

您可以使用Pymel的xformmoverotate命令来设置绝对值。这些命令的工作方式与常规Maya文档中的命令相同。这个。例如,无论父母在做什么,都会将Joint2旋转到世界空间中的0,0,10:

import pymel.core as pm
example = pm.PyNode('joint2')
pm.rotate(example, [0,0,10], a=True, ws=True) 

a标志是绝对的'并且ws是'世界空间' (文档here表示旋转)。 movexform也有绝对值和世界空间值的选项。因此,要在世界空间中定位一个关节,它就是

 pm.move(example, [1,2,3], a=True, ws=True)

xform有点复杂,有更多选项,但做同样的事情,并允许你设置枢轴。