一次选择一个层次结构中的关节

Selecting Joints in hierarchy one at a time

我有这个代码

joint_name = cmds.ls(sl=1)[0]
circle_name = cmds.circle(name = joint_name + "_CTL", nr=(1, 0, 0) )
group_name = cmds.group(name = joint_name + "_OFFSET")
cmds.select(joint_name, group_name)temp_constraint = cmds.parentConstraint()
cmds.delete(temp_constraint)
cmds.select(circle_name, joint_name)
cmds.pointConstraint()
cmds.orientConstraint()

当您 select 一个关节和 运行 此代码时,您将得到一个控制该关节的圆圈。在沿着层次结构向下移动时,您必须 select 该关节,然后 运行 代码。

我怎样才能让所有关节都有圆圈控制它们而不必通过大纲select离子关节?

运行 这个在你的关节链上 :

for x, joint_name in enumerate(cmds.ls(sl=1, dag=True, type='joint')):
    circle_name = cmds.circle(name = '{}_CTL{:02d}'.format(joint_name,x), nr=(1, 0, 0) )
    group_name = cmds.group(name = '{}_OFFSET{:02d}'.format(joint_name,x))
    cmds.select(joint_name, group_name)
    temp_constraint = cmds.parentConstraint()
    cmds.delete(temp_constraint)
    cmds.select(circle_name, joint_name)
    cmds.pointConstraint()
    cmds.orientConstraint()

请注意,您可以输入 pointConstraint 而不是使用 select: cmds.pointConstraint(circle_name, joint_name, n='something')