Python 将关节值调零

Python 将关节值调零,python,maya,Python,Maya,我的场景中有几个关节,当我将这些关节设置为不同网格(位于场景中的不同位置)的父对象时,我需要将其通道值归零 我知道我可以手动键入其他平移以及旋转属性的cmds.setAttr(joint01.translateX,'0')等等。 有没有其他方法可以在一两行内编译它(比如冻结转换,尽管它在关节上不起作用),而不是写出6行 ls = cmds.ls(type="joint") for item in ls: cmds.setAttr(item + ".translateX",0) .

我的场景中有几个关节,当我将这些关节设置为不同网格(位于场景中的不同位置)的父对象时,我需要将其通道值归零

我知道我可以手动键入其他平移以及旋转属性的
cmds.setAttr(joint01.translateX,'0')
等等。 有没有其他方法可以在一两行内编译它(比如冻结转换,尽管它在关节上不起作用),而不是写出6行

ls = cmds.ls(type="joint")
for item in ls:
    cmds.setAttr(item + ".translateX",0)
    ...
    ...
    ...
编辑:我正在创建用于创建ribbon spine的solo关节,因此我想知道是否还有其他较短的方法可以编写,而不是写出3个或更多句子的
setAttr

,我认为您需要。可以指定要归零的属性


但是,请记住,这会对几何体和关节产生不同的影响。在将变换值归零之前,它会更改几何体的顶点位置以反映移动、旋转和缩放;对于关节,它将旋转移动到关节中并重新定位子关节。

您好,如果我错了,请纠正我,但每当我在单个关节上使用冻结变换时,它仅将旋转值置零。我也尝试过使用makeIdentity命令,但它没有按预期工作,因为菜单?命令不起作用不能对单个关节的平移归零:如果关节是层次的根,它将保留其原始平移。如果是子关节,则其平移将更改以补偿其上方关节上的缩放和旋转。冻结几何体时,将移动实际顶点以保留视觉外观;这在关节上是不可能的。如果在关节中确实需要0-0-0值,则需要在其上方插入一个新关节或变换,以隐藏基础变换。我理解您的意思。也请原谅我,因为我意识到我在我的帖子里说的不清楚。事实上,在创建单独关节时,我并没有尝试将“父关节”或子关节归零,对于带状脊椎,如果关节是单独的,则将其归零的唯一方法是在其上方使用虚拟变换。在重置变换之前,可以通过移动几何体来“归零”几何体;对于仅是具有额外JointOrient/RotateOrient的变换的关节,不能这样做。将tx、ty和tz设置为零,如您发布的示例所示,将关节移动到originI see。。。嗯,我想我会继续使用
setAttr
命令,然后我会将关节“捕捉”到每个毛囊上。再次感谢!