Exemplo n.º 1
0
    def neckMiddleCtlSet(self):
        self.neckMiddleCtl = rigbase.Controler(n='NeckMiddle_CTL')
        self.neckMiddleCtl.setShape(normal=[0, 1, 0], radius=.5)
        self.neckMiddleCtl.setColor(29)

        self.middlePoint1 = rigbase.Transform(n='NeckMiddle_spline_Point1')
        self.middlePoint2 = rigbase.Transform(n='NeckMiddle_spline_Point2')

        self.middlePoint1.setParent(self.neckMiddleCtl)
        self.middlePoint2.setParent(self.neckMiddleCtl)
        rigbase.transformDefault(self.middlePoint1, self.middlePoint2)

        midPnt1Dist = cmds.createNode('distanceBetween',
                                      n='NeckMiddle_spPnt1_dist')
        midPnt2Dist = cmds.createNode('distanceBetween',
                                      n='NeckMiddle_spPnt2_dist')
        midMult1Dist = cmds.createNode('multDoubleLinear', n='NeckMiddle_md1')
        midMult2Dist = cmds.createNode('multDoubleLinear', n='NeckMiddle_md2')

        cmds.setAttr(midMult1Dist + '.input2', -.4)
        cmds.setAttr(midMult2Dist + '.input2', .4)

        cmds.connectAttr(self.neckMiddleInit + '.m',
                         midPnt1Dist + '.inMatrix1')
        cmds.connectAttr(self.headInit + '.m', midPnt2Dist + '.inMatrix2')
        cmds.connectAttr(midPnt1Dist + '.distance', midMult1Dist + '.input1')
        cmds.connectAttr(midPnt2Dist + '.distance', midMult2Dist + '.input1')
        cmds.connectAttr(midMult1Dist + '.output', self.middlePoint1 + '.ty')
        cmds.connectAttr(midMult2Dist + '.output', self.middlePoint2 + '.ty')

        attrEdit = rigbase.AttrEdit(self.neckMiddleCtl.name)
        attrEdit.lockAndHideAttrs('sx', 'sy', 'sz', 'v')

        self.rigInstance.neckMiddleCtl = self.neckMiddleCtl.name
Exemplo n.º 2
0
    def annotation(self, side):
        if side == 'L':
            eyeCtl = self.rigInstance.eyeLCtl
            eyeJnt = self.rigInstance.eyeLJnt
        else:
            eyeCtl = self.rigInstance.eyeRCtl
            eyeJnt = self.rigInstance.eyeRJnt

        loc = cmds.spaceLocator(n='Eye_%s_AnnotatLoc' % side)[0]
        locShape = cmds.listRelatives(loc, s=1)[0]
        annotateShape = cmds.createNode('annotationShape',
                                        n='Eye_%s_AnnotateShape' % side)
        annotate = cmds.listRelatives(annotateShape, p=1)[0]
        cmds.rename(annotate, 'Eye_%s_Annotate' % side)
        cmds.parent(annotate, eyeCtl)
        rigbase.constraint(eyeJnt, annotate, r=0)
        cmds.connectAttr(locShape + '.wm',
                         annotateShape + '.dagObjectMatrix[0]')

        cmds.parent(loc, eyeCtl)
        rigbase.transformDefault(loc)

        cmds.setAttr(loc + '.v', 0)
        cmds.setAttr(annotate + '.overrideEnabled', True)
        cmds.setAttr(annotate + '.overrideDisplayType', 2)
Exemplo n.º 3
0
 def neckMiddleCtlSet(self):
     self.neckMiddleCtl = rigbase.Controler( n='NeckMiddle_CTL' )
     self.neckMiddleCtl.setShape( normal=[0,1,0], radius = .5 )
     self.neckMiddleCtl.setColor( 29 )
     
     self.middlePoint1 = rigbase.Transform( n='NeckMiddle_spline_Point1' )
     self.middlePoint2 = rigbase.Transform( n='NeckMiddle_spline_Point2' )
     
     self.middlePoint1.setParent( self.neckMiddleCtl )
     self.middlePoint2.setParent( self.neckMiddleCtl )
     rigbase.transformDefault( self.middlePoint1, self.middlePoint2 )
     
     midPnt1Dist= cmds.createNode( 'distanceBetween', n='NeckMiddle_spPnt1_dist' )
     midPnt2Dist = cmds.createNode( 'distanceBetween', n='NeckMiddle_spPnt2_dist' )
     midMult1Dist = cmds.createNode( 'multDoubleLinear', n='NeckMiddle_md1' )
     midMult2Dist = cmds.createNode( 'multDoubleLinear', n='NeckMiddle_md2' )
     
     cmds.setAttr( midMult1Dist+'.input2', -.4 )
     cmds.setAttr( midMult2Dist+'.input2', .4 )
     
     cmds.connectAttr( self.neckMiddleInit+'.m', midPnt1Dist+'.inMatrix1' )
     cmds.connectAttr( self.headInit+'.m',       midPnt2Dist+'.inMatrix2' )
     cmds.connectAttr( midPnt1Dist+'.distance', midMult1Dist+'.input1' )
     cmds.connectAttr( midPnt2Dist+'.distance', midMult2Dist+'.input1' )
     cmds.connectAttr( midMult1Dist+'.output', self.middlePoint1+'.ty' )
     cmds.connectAttr( midMult2Dist+'.output', self.middlePoint2+'.ty' )
     
     attrEdit = rigbase.AttrEdit( self.neckMiddleCtl.name )
     attrEdit.lockAndHideAttrs( 'sx','sy','sz','v' )
     
     self.rigInstance.neckMiddleCtl = self.neckMiddleCtl.name
Exemplo n.º 4
0
 def setDefaultTransform( self, targets, *args ):
     for target in targets:
         targetClass = getProperClassInMenuModule( target, ctlModules, allCtls.AllCtls )
         if 'transformAttrs' in dir( targetClass ):
             if targetClass.transformAttrs == 'All':
                 targetAttrs = cmds.listAttr( target, k=1 )
             else:
                 targetAttrs = targetClass.transformAttrs
             for attr in targetAttrs:
                 rigbase.trySetAttr( target+'.'+attr, 0 )
         rigbase.transformDefault( target )
Exemplo n.º 5
0
 def pinFollow(self, target, *args ):
     ns = self.getNamespace(target)
     
     targetOriginName = target.replace( ns, '' )
     pinCtl    = ns+targetOriginName.replace( 'Switch_CTL', 'IK_Pin_CTL' )
     ikCtl     = ns+targetOriginName.replace( 'Switch_CTL', 'IK_CTL' )
     poleVCtl  = ns+targetOriginName.replace( 'Switch_CTL', 'PoleV_CTL' )
     
     mtxList = cmds.getAttr( ikCtl+'.wm' )
     poleVmtxList = cmds.getAttr( poleVCtl+'.wm' )
     cmds.xform( pinCtl, ws=1, matrix=mtxList )
     
     self.__setNoneFollow( target )
     cmds.setAttr( target+'.pinFollow', 10 )
     
     rigbase.transformDefault( ikCtl )
     cmds.xform( poleVCtl, ws=1, matrix = poleVmtxList )
Exemplo n.º 6
0
    def pinFollow(self, target, *args):
        ns = self.getNamespace(target)

        targetOriginName = target.replace(ns, '')
        pinCtl = ns + targetOriginName.replace('Switch_CTL', 'IK_Pin_CTL')
        ikCtl = ns + targetOriginName.replace('Switch_CTL', 'IK_CTL')
        poleVCtl = ns + targetOriginName.replace('Switch_CTL', 'PoleV_CTL')

        mtxList = cmds.getAttr(ikCtl + '.wm')
        poleVmtxList = cmds.getAttr(poleVCtl + '.wm')
        cmds.xform(pinCtl, ws=1, matrix=mtxList)

        self.__setNoneFollow(target)
        cmds.setAttr(target + '.pinFollow', 10)

        rigbase.transformDefault(ikCtl)
        cmds.xform(poleVCtl, ws=1, matrix=poleVmtxList)
Exemplo n.º 7
0
 def setStartUpObj(self):
     self.startUpObj = rigbase.Transform( n='Neck_SplineStartUp' )
     self.startUpObj.setParent( self.neckCtl )
     rigbase.transformDefault( self.startUpObj )
     
     mtxDcmp = cmds.createNode( 'multMatrixDecompose', n='Neck_SplineStartUp_mtxDcmp' )
     ffmMtx = cmds.createNode( 'fourByFourMatrix', n='Neck_SplineStartUp_ffm' )
     smOri = cmds.createNode( 'smartOrient', n='Neck_SplineStartUp_SmOri' )
     
     cmds.setAttr( smOri+'.aimAxis', 1 )
     
     cmds.connectAttr( self.headCtl+'.wm' ,mtxDcmp+'.i[0]' )
     cmds.connectAttr( self.neckCtl+'.wim' ,mtxDcmp+'.i[1]' )
     cmds.connectAttr( mtxDcmp+'.otx'  ,ffmMtx+'.i10' )
     cmds.connectAttr( mtxDcmp+'.oty'  ,ffmMtx+'.i11' )
     cmds.connectAttr( mtxDcmp+'.otz'  ,ffmMtx+'.i12' )
     cmds.connectAttr( ffmMtx+'.output',smOri+'.inputMatrix' )
     cmds.connectAttr( smOri+'.outAngle'  ,self.startUpObj+'.r' )
Exemplo n.º 8
0
    def setStartUpObj(self):
        self.startUpObj = rigbase.Transform(n='Neck_SplineStartUp')
        self.startUpObj.setParent(self.neckCtl)
        rigbase.transformDefault(self.startUpObj)

        mtxDcmp = cmds.createNode('multMatrixDecompose',
                                  n='Neck_SplineStartUp_mtxDcmp')
        ffmMtx = cmds.createNode('fourByFourMatrix',
                                 n='Neck_SplineStartUp_ffm')
        smOri = cmds.createNode('smartOrient', n='Neck_SplineStartUp_SmOri')

        cmds.setAttr(smOri + '.aimAxis', 1)

        cmds.connectAttr(self.headCtl + '.wm', mtxDcmp + '.i[0]')
        cmds.connectAttr(self.neckCtl + '.wim', mtxDcmp + '.i[1]')
        cmds.connectAttr(mtxDcmp + '.otx', ffmMtx + '.i10')
        cmds.connectAttr(mtxDcmp + '.oty', ffmMtx + '.i11')
        cmds.connectAttr(mtxDcmp + '.otz', ffmMtx + '.i12')
        cmds.connectAttr(ffmMtx + '.output', smOri + '.inputMatrix')
        cmds.connectAttr(smOri + '.outAngle', self.startUpObj + '.r')
Exemplo n.º 9
0
 def annotation(self, side ):
     if side == 'L':
         eyeCtl = self.rigInstance.eyeLCtl
         eyeJnt = self.rigInstance.eyeLJnt
     else:
         eyeCtl = self.rigInstance.eyeRCtl
         eyeJnt = self.rigInstance.eyeRJnt
     
     loc = cmds.spaceLocator( n='Eye_%s_AnnotatLoc' % side )[0]
     locShape = cmds.listRelatives( loc, s=1 )[0]
     annotateShape = cmds.createNode( 'annotationShape', n='Eye_%s_AnnotateShape' % side )
     annotate = cmds.listRelatives( annotateShape, p=1 )[0]
     cmds.rename( annotate, 'Eye_%s_Annotate' % side )
     cmds.parent( annotate, eyeCtl )
     rigbase.constraint( eyeJnt, annotate, r=0 )
     cmds.connectAttr( locShape+'.wm', annotateShape+'.dagObjectMatrix[0]' )
     
     cmds.parent( loc, eyeCtl )
     rigbase.transformDefault( loc )
     
     cmds.setAttr( loc+'.v', 0 )
     cmds.setAttr( annotate+'.overrideEnabled', True )
     cmds.setAttr( annotate+'.overrideDisplayType', 2 )
Exemplo n.º 10
0
 def originalOrientSet(self):
     shoulderLOr = rigbase.Transform( n='Shoulder_L_OriginalOrient' )
     shoulderROr = rigbase.Transform( n='Shoulder_R_OriginalOrient' )
     shoulderLOr.setParent( self.shoulderLCtl )
     shoulderROr.setParent( self.shoulderRCtl )
     rigbase.transformDefault( shoulderLOr, shoulderROr )
     cmds.setAttr( shoulderLOr+'.t', 0,0,0 )
     cmds.setAttr( shoulderLOr+'.r', 0,0,-45 )
     cmds.setAttr( shoulderROr+'.t', 0,0,0 )
     cmds.setAttr( shoulderROr+'.r', 0,0,-45 )
     
     hipLOr = rigbase.Transform( n='Hip_L_OriginalOrient' )
     hipROr = rigbase.Transform( n='Hip_R_OriginalOrient' )
     hipLOr.setParent( self.hipCtl )
     hipROr.setParent( self.hipCtl )
     cmds.connectAttr( self.hipLInit+'.t', hipLOr+'.t' )
     cmds.connectAttr( self.hipRInit+'.t', hipROr+'.t' )
     cmds.setAttr( hipLOr+'.r', 0,0,-90 )
     cmds.setAttr( hipROr+'.r', -180,0, 90 )
     
     self.rigInstance.shoulderLOr = shoulderLOr
     self.rigInstance.shoulderROr = shoulderROr
     self.rigInstance.hipLOr = hipLOr
     self.rigInstance.hipROr = hipROr
Exemplo n.º 11
0
    def legPartJointSet(self):
        legLObjs = self.legPart.outputTransformL
        legLObjs += self.legPart.outputAddTrL
        self.legLInitJnts = []
        self.legLInits = []

        legRObjs = self.legPart.outputTransformR
        legRObjs += self.legPart.outputAddTrR
        self.legRInitJnts = []
        self.legRInits = []

        cmds.select(self.torsoInitJnts[0])
        for legLObj in legLObjs:
            index = legLObjs.index(legLObj)

            if index in [3, 11]:
                cmds.select(self.legLInitJnts[0])
            if index == 4:
                cmds.select(self.legLInitJnts[2])
            if index == 6:
                cmds.select(self.legLInitJnts[2])
            if index == 12:
                cmds.select(self.legLInitJnts[1])

            splitName = legLObj.split('_')[:-1]
            jntName = '_'.join(splitName) + '_InitJnt'

            legLJnt = cmds.joint(n=jntName)
            if index == 3:
                rigbase.transformDefault(legLJnt)
                rigbase.constraint(legLObj, legLJnt, r=0)
            elif index in [11, 12]:
                legLObjP = cmds.listRelatives(legLObj, p=1)[0]
                cmds.setAttr(legLObjP + '.dh', 0)
                rigbase.constraint(legLObjP, legLJnt)
                cmds.select(legLJnt)
                cmds.rename(legLJnt, legLJnt.replace('_InitJnt',
                                                     '_InitJnt_GRP'))
                legLJnt = cmds.joint(n=legLJnt.replace('_GRP', ''))
                rigbase.constraint(legLObj, legLJnt)
            else:
                rigbase.constraint(legLObj, legLJnt)

            self.legLInitJnts.append(legLJnt)
            self.legLInits.append(legLJnt.replace('InitJnt', 'Init'))

            cmds.select(legLJnt)

        cmds.select(self.torsoInitJnts[0])
        for legRObj in legRObjs:
            index = legRObjs.index(legRObj)

            if index in [3, 11]:
                cmds.select(self.legRInitJnts[0])
            if index == 4:
                cmds.select(self.legRInitJnts[2])
            if index == 6:
                cmds.select(self.legRInitJnts[2])
            if index == 12:
                cmds.select(self.legRInitJnts[1])

            splitName = legRObj.split('_')[:-1]
            jntName = '_'.join(splitName) + '_InitJnt'

            legRJnt = cmds.joint(n=jntName)
            if index == 3:
                rigbase.transformDefault(legRJnt)
                rigbase.constraint(legRObj, legRJnt, r=0)
            elif index in [11, 12]:
                legRObjP = cmds.listRelatives(legRObj, p=1)[0]
                cmds.setAttr(legRObjP + '.dh', 0)
                rigbase.constraint(legRObjP, legRJnt)
                cmds.select(legRJnt)
                cmds.rename(legRJnt, legRJnt.replace('_InitJnt',
                                                     '_InitJnt_GRP'))
                legRJnt = cmds.joint(n=legRJnt.replace('_GRP', ''))
                rigbase.constraint(legRObj, legRJnt)
            else:
                rigbase.constraint(legRObj, legRJnt)

            self.legRInitJnts.append(legRJnt)
            self.legRInits.append(legRJnt.replace('InitJnt', 'Init'))

            cmds.select(legRJnt)
Exemplo n.º 12
0
 def collarConstSet(self, side ):
     si = 0
     if side == 'R':
         si = 1
     
     shoulderInitList = [self.shoulderLInit, self.shoulderRInit ]
     shoulderCtlList = [self.shoulderLCtl,self.shoulderRCtl]
     collarCtlList = [self.collarLCtl, self.collarRCtl]
     
     const    = cmds.createNode( 'transform', n='Shoulder_%s_Const'          % side )
     inCollar = cmds.createNode( 'transform', n='Shoulder_%s_Const_inCollar' % side )
     inChest  = cmds.createNode( 'transform', n='Shoulder_%s_Const_inChest'  % side )
     inRoot   = cmds.createNode( 'transform', n='Shoulder_%s_Const_inRoot'   % side )
     inFly    = cmds.createNode( 'transform', n='Shoulder_%s_Const_inFly'    % side )
     inMove    = cmds.createNode( 'transform', n='Shoulder_%s_Const_inMove'   % side )
     
     cmds.parent( const   , shoulderCtlList[si] )
     cmds.parent( inCollar, collarCtlList[si]   )
     cmds.parent( inChest , self.chestCtl.replace( 'Chest', 'ChestMove' ) )
     cmds.parent( inRoot  , self.rootGrp  )
     cmds.parent( inFly   , self.rootCtlGrp )
     cmds.parent( inMove  , self.rigInstance.moveCtl )
     
     rigbase.transformDefault( const )#; cmds.setAttr( const+'.dla', 1 )
     rigbase.connectSameAttr( shoulderInitList[si], inCollar ).doIt( 't', 'r' )
     chestDcmp = rigbase.getChildMtxDcmp( shoulderInitList[si], self.chestInit )
     cmds.connectAttr( chestDcmp+'.ot', inChest+'.t' )
     cmds.connectAttr( chestDcmp+'.or', inChest+'.r' )
     rootDcmp = rigbase.getChildMtxDcmp( shoulderInitList[si], self.rootInit )
     cmds.connectAttr( rootDcmp+'.ot', inRoot+'.t' )
     cmds.connectAttr( rootDcmp+'.or', inRoot+'.r' )
     cmds.connectAttr( rootDcmp+'.ot', inFly+'.t' )
     cmds.connectAttr( rootDcmp+'.or', inFly+'.r' )
     cmds.connectAttr( rootDcmp+'.ot', inMove+'.t' )
     cmds.connectAttr( rootDcmp+'.or', inMove+'.r' )
     
     followMtx = cmds.createNode( 'followMatrix', n='Shoulder_%s_ConstFollow' % side )
     mtxDcmp   = cmds.createNode( 'multMatrixDecompose', n='Shoulder_%s_ConstMtxDcmp' % side )
     
     cmds.connectAttr( inCollar+'.wm', followMtx+'.originalMatrix' )
     cmds.connectAttr( inChest +'.wm', followMtx+'.inputMatrix[0]' )
     cmds.connectAttr( inRoot  +'.wm', followMtx+'.inputMatrix[1]' )
     cmds.connectAttr( inFly   +'.wm', followMtx+'.inputMatrix[2]' )
     cmds.connectAttr( inMove  +'.wm', followMtx+'.inputMatrix[3]' )
     
     cmds.connectAttr( followMtx+'.outputMatrix', mtxDcmp+'.i[0]' )
     cmds.connectAttr( const +'.pim', mtxDcmp+'.i[1]' )
     cmds.connectAttr( mtxDcmp+'.or', const+'.r' )
     
     rigbase.addHelpTx( collarCtlList[si], 'Follow' )
     attrEdit = rigbase.AttrEdit( collarCtlList[si] )
     attrEdit.addAttr( ln='chestFollow', min=0, max=10 )
     attrEdit.addAttr( ln='rootFollow' , min=0, max=10 )
     attrEdit.addAttr( ln='flyFollow'  , min=0, max=10, k=1 )
     attrEdit.addAttr( ln='moveFollow'  , min=0, max=10 )
     
     cmds.connectAttr( collarCtlList[si]+'.chestFollow', followMtx+'.inputWeight[0]' )
     cmds.connectAttr( collarCtlList[si]+'.rootFollow' , followMtx+'.inputWeight[1]' )
     cmds.connectAttr( collarCtlList[si]+'.flyFollow'  , followMtx+'.inputWeight[2]' )
     cmds.connectAttr( collarCtlList[si]+'.moveFollow' , followMtx+'.inputWeight[3]' )
     
     if side == 'L':
         self.shoulderLConst = const
         self.rigInstance.ikGroupLConst = inChest
     else:
         self.shoulderRConst = const
         self.rigInstance.ikGroupRConst = inChest
Exemplo n.º 13
0
 def curveSet(self):
     #self.crv = cmds.curve( n='Torso_Spline_CRV', d=3, p=[[0,0,0],[0,0,0],[0,0,0],[0,0,0]] )
     self.initCrv = cmds.curve( n='Torso_SplineInit_CRV', d=3, p=[[0,0,0],[0,0,0],[0,0,0],[0,0,0]] )
     
     #cmds.setAttr( self.crv+'.v', 0 )
     cmds.setAttr( self.initCrv+'.v', 0 )
     
     #self.crvShape = cmds.listRelatives( self.crv, s=1 )[0]
     self.initCrvShape = cmds.listRelatives( self.initCrv, s=1 )[0]
     
     self.crvPoint0Obj = self.hipCtl
     self.crvPoint1Obj = cmds.createNode( 'transform', n= 'Torso_Spline_point1' )
     self.crvPoint2Obj = cmds.createNode( 'transform', n= 'Torso_Spline_point2' )
     self.crvPoint3Obj = self.chestCtl
     
     self.crvOrigPoint0Obj = self.torsoCtl
     self.crvOrigWaistObj = cmds.createNode( 'transform', n= 'Waist_CTL_SqPos' )
     self.crvOrigPoint1Obj = cmds.createNode( 'transform', n= 'Torso_Spline_SquPoint1' )
     self.crvOrigPoint2Obj = cmds.createNode( 'transform', n= 'Torso_Spline_SquPoint2' )
     self.crvOrigPoint3Obj = cmds.createNode( 'transform', n= 'Chest_CTL_SquPos' )
     
     rigbase.AttrEdit( self.crvPoint1Obj, self.crvPoint2Obj ).lockAndHideAttrs( 'tx', 'tz', 'rx', 'ry','rz', 'sx', 'sy','sz', 'v' )
     cmds.parent( self.crvPoint1Obj, self.crvPoint2Obj, self.waistCtl )
     
     cmds.parent( self.crvOrigWaistObj, self.crvOrigPoint3Obj, self.rootGrp )
     cmds.parent( self.crvOrigPoint1Obj, self.crvOrigPoint2Obj, self.crvOrigWaistObj )
     self.crvOrigSqPointGrp = cmds.group( self.crvOrigPoint1Obj, self.crvOrigPoint2Obj, n='Waist_CTL_SqSqPointGrp' )
     cmds.xform( self.crvOrigSqPointGrp, piv=[0,0,0], os=1 )
     
     rigbase.pInvRotConst( self.crvOrigSqPointGrp )
     
     rigbase.connectSameAttr( self.waistInit, self.crvOrigWaistObj ).doIt( 't','r' )
     chMtxDcmp = rigbase.getChildMtxDcmp( self.chestInit, self.rootInit )
     cmds.connectAttr( chMtxDcmp+'.ot', self.crvOrigPoint3Obj+'.t' )
     cmds.connectAttr( chMtxDcmp+'.or', self.crvOrigPoint3Obj+'.r' )
     #rigbase.connectSameAttr( self.chestCtlGrp, self.crvOrigPoint3Obj ).doIt( 't', 'r' )
     #rigbase.connectSameAttr( self.crvPoint1Obj, self.crvOrigPoint1Obj ).doIt( 't','r' )
     #rigbase.connectSameAttr( self.crvPoint2Obj, self.crvOrigPoint2Obj ).doIt( 't','r' )
     
     multPoint1Node = cmds.createNode( 'multDoubleLinear', n='Torso_Spline_point1_mult' )
     multPoint2Node = cmds.createNode( 'multDoubleLinear', n='Torso_Spline_point2_mult' )
     distPoint1Node = cmds.createNode( 'distanceBetween', n='Torso_spline_point1_dist' )
     distPoint2Node = cmds.createNode( 'distanceBetween', n='Torso_spline_point2_dist' )
     
     cmds.connectAttr( self.waistInit+'.t', distPoint1Node+'.point1' )
     cmds.connectAttr( self.chestInit+'.t', distPoint2Node+'.point2' )
     cmds.connectAttr( distPoint1Node+'.distance', multPoint1Node+'.input1' )
     cmds.connectAttr( distPoint2Node+'.distance', multPoint2Node+'.input1' )
     #cmds.connectAttr( multPoint1Node+'.output', self.crvPoint1Obj+'.ty' )
     #cmds.connectAttr( multPoint2Node+'.output', self.crvPoint2Obj+'.ty' )
     cmds.connectAttr( multPoint1Node+'.output', self.crvOrigPoint1Obj+'.ty' )
     cmds.connectAttr( multPoint2Node+'.output', self.crvOrigPoint2Obj+'.ty' )
     
     cmds.setAttr( multPoint1Node+'.input2', -.4 )
     cmds.setAttr( multPoint2Node+'.input2', .4 )
     
     '''
     for i in range( 4 ):
         dcmp = cmds.createNode( 'decomposeMatrix', n= self.crv+'_point%d_dcmp' % i )
         exec( 'cmds.connectAttr( self.crvPoint%dObj+".wm", dcmp+".imat" )' % i )
         cmds.connectAttr( dcmp+".ot", self.crvShape+'.controlPoints[%d]' %i )'''
         
     for i in range( 4 ):
         dcmp = cmds.createNode( 'multMatrixDecompose', n= self.initCrv+'_origPoint%d_dcmp' % i )
         exec( 'cmds.connectAttr( self.crvOrigPoint%dObj+".wm", dcmp+".i[0]" )' % i )
         cmds.connectAttr( self.initCrv+".wim", dcmp+".i[1]" )
         cmds.connectAttr( dcmp+".ot", self.initCrvShape+'.controlPoints[%d]' %i )
     
     rigbase.transformDefault( self.initCrv )
     
     #rigbase.connectSameAttr( self.crv, self.initCrv ).doIt( 't', 'r', 's', 'sh' )
     
     cmds.parent( self.initCrv, self.rootGrp )
Exemplo n.º 14
0
 def splineJointSet( self, splineNumber ):
     self.splineJnts = []
     cmds.select( d=1 )
     
     self._splineJointUpObjectSet()
                                     
     spci = cmds.createNode( 'splineCurveInfo', n= self.initCrv+'_Spci'  )
     cmds.connectAttr( self.initCrvShape+'.local', spci+'.inputCurve' )
     #cmds.connectAttr( self.startUp+'.wm', spci+'.startTransform' )
     #cmds.connectAttr( self.endUp  +'.wm', spci+'.endTransform'   )
     
     cmds.setAttr( spci+'.startUpAxis', 2 )
     cmds.setAttr( spci+'.endUpAxis', 2 )
     cmds.setAttr( spci+'.targetAimAxis', 1 )
     cmds.setAttr( spci+'.targetUpAxis', 2 )
     
     for i in range( splineNumber ):
         self.splineJnts.append( cmds.joint( n='Spline%d_RJT' % i, radius=1.5 ) )
     
     pointObjs = []
     for i in range( 0, splineNumber ):
         pr = float(i)/(splineNumber-1)
         
         pointObj = cmds.createNode( 'transform', n='Spline%d_SplinePoint' % i )
         pointObjs.append( pointObj )
         
         cmds.addAttr( self.splineJnts[i], ln='parameter', min=0, max=1, dv=pr )
         cmds.setAttr( self.splineJnts[i]+'.parameter', e=1, k=1 )
         
         cmds.connectAttr( self.splineJnts[i]+'.parameter', spci+'.pr[%d]' % i )
         cmds.connectAttr( spci+'.o[%d].p' % i, pointObj+'.t' )
         cmds.connectAttr( spci+'.o[%d].r' % i, pointObj+'.r' )
         cmds.parent( pointObj, self.initCrv )
         
         rigbase.constraint( pointObj, self.splineJnts[i] )
         
     pointHObjs = []
     cmds.select( self.torsoCtl )
     for i in range( 0, splineNumber ):
         pointHObjs.append( cmds.joint( n=pointObjs[i].replace( 'SplinePoint', 'SplineHJnt' ) ) )
         mtxDcmp = rigbase.constraint( pointObjs[i], pointHObjs[i], r=0 )
         cmds.connectAttr( mtxDcmp+'.or', pointHObjs[i]+'.jo' )
         if i == 0:
             cmds.connectAttr( self.rootGrp+'.wim', mtxDcmp+'.i[1]', f=1 )
         else:
             cmds.connectAttr( pointObjs[i-1]+'.wim', mtxDcmp+'.i[1]', f=1 )
         cmds.select( pointHObjs[i] )
     cmds.setAttr( pointHObjs[0]+'.v', 0 )
     rigbase.constraint( pointHObjs[-1], self.chestCtlGrp, r=0 )
         
     epBindNode = cmds.createNode( 'epBindNode', n='Torso_epBindNode' )
     initEpBindNode = cmds.createNode( 'epBindNode', n='TorsoInit_epBindNode' )
     chestOrPointer = cmds.createNode( 'transform', n='Chest_OrPointer' )
     hipCuPointer = cmds.createNode( 'transform', n='Hip_CuPointer' )
     
     cmds.parent( chestOrPointer, self.chestCtlGrp )
     cmds.parent( hipCuPointer, self.hipCtlGrp )
     
     rigbase.transformDefault( chestOrPointer )
     
     cmds.connectAttr( self.chestCtl+'.r', chestOrPointer+'.r' )
     cmds.connectAttr( self.hipCtl+'.t', hipCuPointer+'.t' )
     
     cmds.connectAttr( self.hipCtlGrp+'.wm', epBindNode+'.om[0]' )
     cmds.connectAttr( chestOrPointer+'.wm', epBindNode+'.om[1]')
     cmds.connectAttr( hipCuPointer+'.wm', epBindNode+'.m[0]' )
     cmds.connectAttr( self.chestCtl+'.wm', epBindNode+'.m[1]' )
     
     for i in range( splineNumber ):
         dcmp = cmds.createNode( 'decomposeMatrix' , n=pointHObjs[i]+'_dcmp' )
         cmds.connectAttr( pointHObjs[i]+'.wm', dcmp+'.imat' )
         cmds.connectAttr( dcmp+'.ot', epBindNode+'.ip[%d]' % i )
         cmds.connectAttr( dcmp+'.ot', initEpBindNode+'.ip[%d]' % i )
     
     smOri = cmds.createNode( 'smartOrient', n='Torso_Spline_SmOri' )
     cmds.connectAttr( self.chestCtl+'.m', smOri+'.inputMatrix' )
     cmds.setAttr( smOri+'.aimAxis', 1 )
     for i in range( 1, splineNumber-1 ):
         cmds.addAttr( self.chestCtl, ln='rotRate%d' % i, min=0, max=1, dv=.333 )
         splineOrientMult = cmds.createNode( 'multiplyDivide', n='Torso_Spline_OrientMult%d' % i )
         cmds.connectAttr( smOri+'.outAngle', splineOrientMult+'.input1' )
         cmds.connectAttr( self.chestCtl+'.rotRate%d' % i, splineOrientMult+'.input2X' )
         cmds.connectAttr( self.chestCtl+'.rotRate%d' % i, splineOrientMult+'.input2Y' )
         cmds.connectAttr( self.chestCtl+'.rotRate%d' % i, splineOrientMult+'.input2Z' ) 
         cmds.connectAttr( splineOrientMult+'.output',  pointHObjs[i]+'.r' )
     
     '''
     firstCrv = cmds.circle( ch=0, n='Torso_FristCrv' )[0]
     firstCrvShape = cmds.listRelatives( firstCrv, s=1 )[0]
     cmds.connectAttr( epBindNode+'.outputCurve', firstCrvShape+'.create' )
     cmds.parent( firstCrv, self.rootGrp )
     firstCrv_dcmp = cmds.createNode( 'decomposeMatrix', n='Torso_firstCrv_invDcmp' )
     cmds.connectAttr( firstCrv+'.pim', firstCrv_dcmp+'.imat' )
     cmds.connectAttr( firstCrv_dcmp+'.ot', firstCrv+'.t' )
     cmds.connectAttr( firstCrv_dcmp+'.or', firstCrv+'.r' )
     cmds.connectAttr( firstCrv_dcmp+'.os', firstCrv+'.s' )
     cmds.connectAttr( firstCrv_dcmp+'.osh', firstCrv+'.sh' )'''
     
     def curveBasedCtlGrp( outputCurveAttr, ctlGrp, prRate=0.5 ):
         posInfo = cmds.createNode( 'pointOnCurveInfo', n='Waist_Ct;PoseInfo' )
         fbf = cmds.createNode( 'fourByFourMatrix', n='Waist_CtlFBF' )
         smOri = cmds.createNode( 'smartOrient', n='Waist_CtlSmOri' )
         compose = cmds.createNode( 'composeMatrix', n='Waist_CtlComp' )
         mtxDcmp = cmds.createNode( 'multMatrixDecompose', n='Waist_CtlMtxDcmp' )
         
         cmds.setAttr( posInfo+'.top', 1 )
         cmds.setAttr( posInfo+'.parameter', prRate )
         cmds.setAttr( smOri+'.aimAxis', 1 )
         
         cmds.connectAttr( outputCurveAttr, posInfo+'.inputCurve' )
         cmds.connectAttr( posInfo+'.tangentX', fbf+'.in10' )
         cmds.connectAttr( posInfo+'.tangentY', fbf+'.in11' )
         cmds.connectAttr( posInfo+'.tangentZ', fbf+'.in12' )
         cmds.connectAttr( fbf+'.output', smOri+'.inputMatrix' )
         cmds.connectAttr( posInfo+'.position', compose+'.it' )
         cmds.connectAttr( smOri+'.outAngle', compose+'.ir')
         cmds.connectAttr( compose+'.outputMatrix', mtxDcmp+'.i[0]' )
         cmds.connectAttr( ctlGrp+'.pim', mtxDcmp+'.i[1]' )
         cmds.connectAttr( mtxDcmp+'.ot', ctlGrp+'.t' )
         cmds.connectAttr( mtxDcmp+'.or', ctlGrp+'.r' )
     
     curveBasedCtlGrp( epBindNode+'.outputCurve', self.waistCtlGrp, prRate=0.5 )
     
     chestCuPointer = cmds.createNode( 'transform', n='ChestCuPointer' )
     cmds.parent( chestCuPointer, self.chestMoveCtlGrp )
     
     cmds.connectAttr( self.chestMoveCtl+'.t', chestCuPointer+'.t' )
     rigbase.transformDefault( chestCuPointer )
     
     epBindNode2 = cmds.createNode( 'epBindNode', n='Torso_epBindNode2' )
     
     for i in range( splineNumber ):
         cmds.connectAttr( epBindNode+'.op[%d]' % i, epBindNode2+'.ip[%d]' % i )
         
     waistOrientObj = cmds.createNode( 'transform', n='WaistOrient_OBJ' )
     cmds.parent( waistOrientObj, self.waistCtlGrp )
     rigbase.transformDefault( waistOrientObj )
     waistSmOrient = cmds.createNode( 'smartOrient', n='WaistOrient_ObjSmOrient' )
     cmds.connectAttr( self.waistCtl+'.m', waistSmOrient+'.inputMatrix' )
     cmds.setAttr( waistSmOrient+'.aimAxis', 1 )
     cmds.connectAttr( waistSmOrient+'.outAngle', waistOrientObj+'.r' )
     cmds.connectAttr( self.waistCtl+'.t', waistOrientObj+'.t' )
     
     cmds.connectAttr( hipCuPointer+'.wm', epBindNode2+'.m[0]' )
     cmds.connectAttr( hipCuPointer+'.wm', epBindNode2+'.om[0]' )
     cmds.connectAttr( waistOrientObj+'.wm', epBindNode2+'.m[1]' )
     cmds.connectAttr( self.waistCtlGrp+'.wm', epBindNode2+'.om[1]' )
     cmds.connectAttr( chestCuPointer+'.wm', epBindNode2+'.m[2]' )
     cmds.connectAttr( self.chestMoveCtlGrp+'.wm', epBindNode2+'.om[2]' )
     
     cuSpInfo = cmds.createNode( 'splineCurveInfo' , n='Torso_CurrentSplineInfo' )
     
     cmds.setAttr( cuSpInfo+'.paramFromLength', 0 )
     cmds.setAttr( cuSpInfo+'.startUpAxis', 2 )
     cmds.setAttr( cuSpInfo+'.endUpAxis', 2 )
     cmds.setAttr( cuSpInfo+'.targetAimAxis', 1 )
     cmds.setAttr( cuSpInfo+'.targetUpAxis', 2 )
     
     putCtls = []
     
     rigbase.addHelpTx( self.waistCtl, 'Itp CTL Vis' )
     rigbase.AttrEdit( self.waistCtl ).addAttr( ln='show', cb=1, min=0, max=1, at='long' )
     
     for i in range( 1, splineNumber-1 ):
         putCtl, putCtlGrp = rigbase.putControler( self.waistCtl, n='WaistItp%d_CTL' % i, normal=[0,1,0] )
         rigbase.AttrEdit( putCtl ).lockAndHideAttrs( 'sx', 'sy', 'sz' ,'v' )
         curveBasedCtlGrp( epBindNode2+'.outputCurve', putCtlGrp, i/( splineNumber-1.0 ) )
         cmds.connectAttr( self.waistCtl+'.show', putCtlGrp+'.v' )
         putCtls.append( [putCtl, putCtlGrp] )
         cmds.parent( putCtlGrp, self.rootGrp )
         
     epBindNode3 = cmds.createNode( 'epBindNode', n='Torso_epBindNode3' )
     
     for i in range( splineNumber ):
         cmds.connectAttr( epBindNode2+'.op[%d]' % i, epBindNode3+'.ip[%d]' % i )
         
     cmds.connectAttr( hipCuPointer+'.wm', epBindNode3+'.m[0]' )
     cmds.connectAttr( hipCuPointer+'.wm', epBindNode3+'.om[0]' )
     for i in range( 1, splineNumber-1 ):
         cmds.connectAttr( putCtls[i-1][0]+'.wm', epBindNode3+'.m[%d]' % i )
         cmds.connectAttr( putCtls[i-1][1]+'.wm', epBindNode3+'.om[%d]' % i )
     cmds.connectAttr( chestCuPointer+'.wm', epBindNode3+'.m[%d]' % (splineNumber-1) )
     cmds.connectAttr( self.chestMoveCtlGrp+'.wm', epBindNode3+'.om[%d]' % (splineNumber-1) )
     
     cuSpInfo = cmds.createNode( 'splineCurveInfo' , n='Torso_CurrentSplineInfo' )
     
     cmds.setAttr( cuSpInfo+'.paramFromLength', 0 )
     cmds.setAttr( cuSpInfo+'.startUpAxis', 2 )
     cmds.setAttr( cuSpInfo+'.endUpAxis', 2 )
     cmds.setAttr( cuSpInfo+'.targetAimAxis', 1 )
     cmds.setAttr( cuSpInfo+'.targetUpAxis', 2 )
     
     cmds.connectAttr( epBindNode3+'.outputCurve', cuSpInfo+'.inputCurve' )
     cmds.connectAttr( self.startUp+'.wm', cuSpInfo+'.startTransform' )
     cmds.connectAttr( self.endUp+'.wm', cuSpInfo+'.endTransform' )
     
     cuSpGrp = cmds.createNode( 'transform', n='Torso_Spline_GRP' )
     splinePtrs = []
     for i in range( splineNumber ):
         splineInfoPtr = cmds.createNode( 'transform', n='Torso%d_SplinePoint' % i )
         splinePtrs.append( splineInfoPtr )
         cmds.setAttr( cuSpInfo+'.parameter[%d]' % i, i/( splineNumber-1.0 )+0.001 )
         cmds.connectAttr( cuSpInfo+'.output[%d].position' % i, splineInfoPtr+'.t' )
         cmds.connectAttr( cuSpInfo+'.output[%d].rotate' % i, splineInfoPtr+'.r' )    
     
     cmds.parent( splinePtrs, cuSpGrp )
     
     cmds.parent( cuSpGrp, self.rootCtlGrp )
     splinePtrsInvDcmp = cmds.createNode( 'decomposeMatrix', n='Torso_SplinePtrsInvDcmp' )
     cmds.connectAttr( self.rootCtlGrp+'.wim', splinePtrsInvDcmp+'.imat' )
     cmds.connectAttr( splinePtrsInvDcmp+'.ot', cuSpGrp+'.t' )
     cmds.connectAttr( splinePtrsInvDcmp+'.or', cuSpGrp+'.r' )
     cmds.connectAttr( splinePtrsInvDcmp+'.os', cuSpGrp+'.s' )
     cmds.connectAttr( splinePtrsInvDcmp+'.osh', cuSpGrp+'.sh' )
     
     allWristAngle = cmds.createNode( 'wristAngle', n='Torso_TwistAllAngle' )
     cmds.setAttr( allWristAngle+'.axis', 1 )
     cmds.connectAttr( self.waistCtl+'.wm', allWristAngle+'.inputMatrix' )
     for i in range( 1, splineNumber-1 ):
         
         floatValue = i/(splineNumber-1.0)
         weightValue = 1-math.fabs( 0.5-floatValue )/.5
         
         cmds.addAttr( self.waistCtl, ln='multWeight%d' % i, min=0, max=1, dv=weightValue )
         
         cuSplinePtr = cmds.createNode( 'transform', n='Torso_cuSplinePtr%d' % i )
         cmds.parent( cuSplinePtr, splinePtrs[i] )
         rigbase.transformDefault( cuSplinePtr )
         rigbase.constraint( cuSplinePtr, self.splineJnts[i] )
         
         twistMultNode = cmds.createNode( 'multDoubleLinear', n='Torso_TwistMult%d' % i )
         addTwist = cmds.createNode( 'addDoubleLinear', n='Torso_TwistAdd%d' % i )
         wristAngle = cmds.createNode( 'wristAngle', n='Torso_TwistAngle%d' % i )
         cmds.setAttr( wristAngle+'.axis', 1 )
         
         cmds.connectAttr( putCtls[i-1][0]+'.m', wristAngle+'.inputMatrix' )
         cmds.connectAttr( wristAngle+'.outAngle', addTwist+'.input1' )
         
         cmds.connectAttr( allWristAngle+'.outAngle', twistMultNode+'.input1' )
         cmds.connectAttr( self.waistCtl+'.multWeight%d' % i, twistMultNode+'.input2' )
         
         cmds.connectAttr( twistMultNode+'.output', addTwist+'.input2' )
         
         cmds.connectAttr( addTwist+'.output', cuSplinePtr+'.ry' )
         
     rigbase.constraint( self.hipCtl, self.splineJnts[0] )
     rigbase.constraint( self.chestMoveCtl, self.splineJnts[-1] )
     
     cmds.parent( self.splineJnts[0], self.rootGrp )
     
     self.epBindNode_before = initEpBindNode
     self.epBindNode_after = epBindNode3
Exemplo n.º 15
0
    def armPartJointSet(self):
        armLObjs = self.armPart.outputTransformL
        armLObjs += self.armPart.outputAddTrL
        self.armLInitJnts = []
        self.armLInits = []

        armRObjs = self.armPart.outputTransformR
        armRObjs += self.armPart.outputAddTrR
        self.armRInitJnts = []
        self.armRInits = []

        cmds.select(self.torsoInitJnts[-2])
        for armLObj in armLObjs:
            index = armLObjs.index(armLObj)
            if index in [3, 4]:
                cmds.select(self.armLInitJnts[0])
            if index == 5:
                cmds.select(self.armLInitJnts[1])

            splitName = armLObj.split('_')[:-1]
            jntName = '_'.join(splitName) + '_InitJnt'

            armLJnt = cmds.joint(n=jntName)
            if index == 3:
                rigbase.transformDefault(armLJnt)
                rigbase.constraint(armLObj, armLJnt, r=0)
            elif index in [4, 5]:
                armLObjP = cmds.listRelatives(armLObj, p=1)[0]
                cmds.setAttr(armLObjP + '.dh', 0)
                rigbase.constraint(armLObjP, armLJnt)
                cmds.select(armLJnt)
                cmds.rename(armLJnt, armLJnt.replace('_InitJnt',
                                                     '_InitJnt_GRP'))
                armLJnt = cmds.joint(n=armLJnt.replace('_GRP', ''))
                rigbase.constraint(armLObj, armLJnt)
            else:
                rigbase.constraint(armLObj, armLJnt)

            self.armLInitJnts.append(armLJnt)
            self.armLInits.append(armLJnt.replace('InitJnt', 'Init'))

            cmds.select(armLJnt)

        cmds.select(self.torsoInitJnts[-1])
        for armRObj in armRObjs:
            index = armRObjs.index(armRObj)
            if index in [3, 4]:
                cmds.select(self.armRInitJnts[0])
            if index == 5:
                cmds.select(self.armRInitJnts[1])

            splitName = armRObj.split('_')[:-1]
            jntName = '_'.join(splitName) + '_InitJnt'

            armRJnt = cmds.joint(n=jntName)
            if index == 3:
                rigbase.transformDefault(armRJnt)
                rigbase.constraint(armRObj, armRJnt, r=0)
            elif index in [4, 5]:
                armRObjP = cmds.listRelatives(armRObj, p=1)[0]
                cmds.setAttr(armRObjP + '.dh', 0)
                rigbase.constraint(armRObjP, armRJnt)
                cmds.select(armRJnt)
                cmds.rename(armRJnt, armRJnt.replace('_InitJnt',
                                                     '_InitJnt_GRP'))
                armRJnt = cmds.joint(n=armRJnt.replace('_GRP', ''))
                rigbase.constraint(armRObj, armRJnt)
            else:
                rigbase.constraint(armRObj, armRJnt)

            self.armRInitJnts.append(armRJnt)
            self.armRInits.append(armRJnt.replace('InitJnt', 'Init'))

            cmds.select(armRJnt)
Exemplo n.º 16
0
 def legPartJointSet(self):
     legLObjs = self.legPart.outputTransformL
     legLObjs += self.legPart.outputAddTrL
     self.legLInitJnts = []
     self.legLInits = []
     
     legRObjs = self.legPart.outputTransformR
     legRObjs += self.legPart.outputAddTrR
     self.legRInitJnts = []
     self.legRInits = []
     
     cmds.select( self.torsoInitJnts[0] )
     for legLObj in legLObjs:
         index = legLObjs.index( legLObj )
         
         if index in [3,11]:
             cmds.select( self.legLInitJnts[0] )
         if index == 4:
             cmds.select( self.legLInitJnts[2] )
         if index == 6:
             cmds.select( self.legLInitJnts[2] )
         if index == 12:
             cmds.select( self.legLInitJnts[1] )
         
         splitName = legLObj.split( '_' )[:-1]
         jntName = '_'.join( splitName )+'_InitJnt'
         
         legLJnt = cmds.joint( n=jntName )
         if index == 3:
             rigbase.transformDefault( legLJnt )
             rigbase.constraint( legLObj, legLJnt, r=0 )
         elif index in [11,12]:
             legLObjP = cmds.listRelatives( legLObj, p=1 )[0]
             cmds.setAttr( legLObjP+'.dh', 0 )
             rigbase.constraint( legLObjP, legLJnt )
             cmds.select( legLJnt )
             cmds.rename( legLJnt, legLJnt.replace( '_InitJnt', '_InitJnt_GRP' ))
             legLJnt = cmds.joint( n=legLJnt.replace( '_GRP', '' ) )
             rigbase.constraint( legLObj, legLJnt )
         else:
             rigbase.constraint( legLObj, legLJnt )
             
         self.legLInitJnts.append( legLJnt )
         self.legLInits.append( legLJnt.replace( 'InitJnt', 'Init' ) )
         
         cmds.select( legLJnt )
     
     cmds.select( self.torsoInitJnts[0] )
     for legRObj in legRObjs:
         index = legRObjs.index( legRObj )
         
         if index in [3,11]:
             cmds.select( self.legRInitJnts[0] )
         if index == 4:
             cmds.select( self.legRInitJnts[2] )
         if index == 6:
             cmds.select( self.legRInitJnts[2] )
         if index == 12:
             cmds.select( self.legRInitJnts[1] )
             
         splitName = legRObj.split( '_' )[:-1]
         jntName = '_'.join( splitName )+'_InitJnt'
         
         legRJnt = cmds.joint( n=jntName )
         if index == 3:
             rigbase.transformDefault( legRJnt )
             rigbase.constraint( legRObj, legRJnt, r=0 )
         elif index in [11,12]:
             legRObjP = cmds.listRelatives( legRObj, p=1 )[0]
             cmds.setAttr( legRObjP+'.dh', 0 )
             rigbase.constraint( legRObjP, legRJnt )
             cmds.select( legRJnt )
             cmds.rename( legRJnt, legRJnt.replace( '_InitJnt', '_InitJnt_GRP' ))
             legRJnt = cmds.joint( n=legRJnt.replace( '_GRP', '' ) )
             rigbase.constraint( legRObj, legRJnt )
         else:
             rigbase.constraint( legRObj, legRJnt )
         
         self.legRInitJnts.append( legRJnt )
         self.legRInits.append( legRJnt.replace( 'InitJnt', 'Init' ) )
         
         cmds.select( legRJnt )
Exemplo n.º 17
0
 def armPartJointSet(self):
     armLObjs = self.armPart.outputTransformL
     armLObjs += self.armPart.outputAddTrL
     self.armLInitJnts = []
     self.armLInits = []
     
     armRObjs = self.armPart.outputTransformR
     armRObjs += self.armPart.outputAddTrR
     self.armRInitJnts = []
     self.armRInits = []
     
     cmds.select( self.torsoInitJnts[-2] )
     for armLObj in armLObjs:
         index = armLObjs.index( armLObj )
         if index in [3,4]:
             cmds.select( self.armLInitJnts[0] )
         if index == 5:
             cmds.select( self.armLInitJnts[1] )
             
         splitName = armLObj.split( '_' )[:-1]
         jntName = '_'.join( splitName )+'_InitJnt'
         
         armLJnt = cmds.joint( n=jntName )
         if index == 3:
             rigbase.transformDefault( armLJnt )
             rigbase.constraint( armLObj, armLJnt, r=0 )
         elif index in [4,5]:
             armLObjP = cmds.listRelatives( armLObj, p=1 )[0]
             cmds.setAttr( armLObjP+'.dh', 0 )
             rigbase.constraint( armLObjP, armLJnt )
             cmds.select( armLJnt )
             cmds.rename( armLJnt, armLJnt.replace( '_InitJnt', '_InitJnt_GRP' ))
             armLJnt = cmds.joint( n=armLJnt.replace( '_GRP', '' ) )
             rigbase.constraint( armLObj, armLJnt )
         else:
             rigbase.constraint( armLObj, armLJnt )
             
         self.armLInitJnts.append( armLJnt )
         self.armLInits.append( armLJnt.replace( 'InitJnt', 'Init' ) )
         
         cmds.select( armLJnt )
         
     cmds.select( self.torsoInitJnts[-1] )
     for armRObj in armRObjs:
         index = armRObjs.index( armRObj )
         if index in [3,4]:
             cmds.select( self.armRInitJnts[0] )
         if index == 5:
             cmds.select( self.armRInitJnts[1] )
             
         splitName = armRObj.split( '_' )[:-1]
         jntName = '_'.join( splitName )+'_InitJnt'
         
         armRJnt = cmds.joint( n=jntName )
         if index == 3:
             rigbase.transformDefault( armRJnt )
             rigbase.constraint( armRObj, armRJnt, r=0 )
         elif index in [4,5]:
             armRObjP = cmds.listRelatives( armRObj, p=1 )[0]
             cmds.setAttr( armRObjP+'.dh', 0 )
             rigbase.constraint( armRObjP, armRJnt )
             cmds.select( armRJnt )
             cmds.rename( armRJnt, armRJnt.replace( '_InitJnt', '_InitJnt_GRP' ))
             armRJnt = cmds.joint( n=armRJnt.replace( '_GRP', '' ) )
             rigbase.constraint( armRObj, armRJnt )
         else:
             rigbase.constraint( armRObj, armRJnt )
         
         self.armRInitJnts.append( armRJnt )
         self.armRInits.append( armRJnt.replace( 'InitJnt', 'Init' ) )
         
         cmds.select( armRJnt )