【问题标题】:PyMel Maya Python - Set Joint locationPyMel Maya Python - 设置关节位置
【发布时间】:2017-03-27 02:10:46
【问题描述】:

我对 PyMel 非常陌生(以前做过 Python),我发现可用的文档非常复杂,有时只是 MEL 而不是 Python。在这里做任何事情都非常令人沮丧。

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

我要操作的关节是这样找到的:

theJoint = ls("LeftArm")[0]

现在使用

theJoint.setAngleX(45)

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

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

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

【问题讨论】:

    标签: python maya mel pymel


    【解决方案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 有点复杂,有更多选项,但做同样的事情并允许您设置枢轴。

    【讨论】:

      猜你喜欢
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 2022-06-30
      • 1970-01-01
      • 2022-10-08
      • 1970-01-01
      • 1970-01-01
      • 2018-12-18
      相关资源
      最近更新 更多