Выбор соединений в иерархии по одному - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть этот код

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 голосов
/ 26 февраля 2019

запустите это в вашей цепочке соединений:

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

Обратите внимание, что вместо использования select вы можете указать pointConstraint: cmds.pointConstraint (имя_круга, имя_состояния, n = 'что-то')

...