一次选择一个层次的关节

时间:2019-02-26 00:59:54

标签: python maya

我有此代码

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

当选择一个关节并运行此代码时,您将得到一个控制该关节的圆。在层次结构中,您必须选择该关节,然后运行代码。

我如何能够让所有关节都具有圆来控制它们,而不必通过大纲轮廓选择一个关节呢?

1 个答案:

答案 0 :(得分:0)

在您的关节链上运行它:

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