0

Создание контроллера между выделенными ребрами

Скрипт избавляет от рутиной работы по созданию контролов , для различных мелочей и окружения.

maya python script

Выделяем 2 противоположных ребра , и запускаем скрипт:

import maya.cmds as cm
inc =""
edS  =  cm.ls(sl=1)
cm.select(edS[0])
cm.SelectEdgeLoopSp()
cl1 = cm.cluster()

#filterEdgetoObj
i = edS[0].find('.')
nameObj =edS[0][:i]

cm.select(edS[1])
cm.SelectEdgeLoopSp()
cl2 = cm.cluster()
cl1_vec = cm.xform(cl1,q=1,rp=1,os=1)
cl2_vec = cm.xform(cl2,q=1,rp=1,os=1)
jnt1 = cm.joint(p=cl1_vec)
jnt2 = cm.joint(p=cl2_vec)
cm.joint(jnt1,e=1,oj='xyz',secondaryAxisOrient='yup',ch=1,zso=1)
cm.circle(n=(nameObj+inc+'_ctrl'),nr=[90,0,0],r=2.5)
cm.DeleteHistory()
tr_ctrl = cm.ls(sl=1)
trGRP = cm.group(n=(nameObj+inc+'_ctrl_SN'))
mainGRP = cm.group(n=(nameObj+inc+'_ctrl_PH'))
cm.xform(mainGRP,t=cl1_vec,ws=1)
jntOrient = cm.xform(jnt1,q=1,ro=1,ws=1)
cm.xform(mainGRP,ro=jntOrient,ws=1)
cm.select(jnt1)
cm.select(jnt2,add=1)
cm.select(mainGRP,add=1)
PointConstr = cm.pointConstraint()
cm.delete(PointConstr,jnt1,cl1,cl2)
cm.select(nameObj)
geoGrp = cm.group(n=(nameObj+'_grp'))
cm.select(tr_ctrl)
cm.select(geoGrp,add=1)
cm.parentConstraint(mo=1)
cm.scaleConstraint(mo=1)
cm.setAttr((tr_ctrl[0]+".overrideEnabled"), 1)
cm.setAttr((tr_ctrl[0]+".overrideColor"), 23)

Поделиться ссылкой:

3deeper

Добавить комментарий

Ваш адрес email не будет опубликован.