コード例 #1
0
ファイル: LegRig.py プロジェクト: jaredauty/Rigging
    def generate(self):
        # Generate Leg
        self.m_legRig = arm.ArmRig(
            self.m_sceneData,
            self.m_legJoints, 
            self.m_name,
            self.m_baseName,
            self.m_twistAxis,
            False
            )
        self.m_legRig.setUpperStretchChain(
            self.m_numUpperControls,
            self.m_upperStretchJoints,
            self.m_numUpperJoints
            )
        self.m_legRig.setLowerStretchChain(
            self.m_numLowerControls,
            self.m_lowerStretchJoints,
            self.m_numLowerJoints
            )
        self.m_legRig.generate()
        rc.addDictToControlDict(self.m_allControls, self.m_legRig.getAllControls())

        # Generate Foot
        self.m_footRig = fr.FootRig(
            self.m_sceneData,
            "%s_foot" %(self.m_name),
            self.m_baseName,
            self.m_footJoints[0],
            self.m_toePivot,
            self.m_heelPivot,
            self.m_insidePivot,
            self.m_outsidePivot,
            self.m_footMain,
            self.m_legRig.getIKControl(),
            self.m_legRig.getFKParent(),
            self.m_legRig.getBINDParent(),
            self.m_legRig.getAnkleTwist(),
            self.m_legRig.getBlendControl()
            )
        self.m_footRig.generate()
        rc.addDictToControlDict(self.m_allControls, self.m_footRig.getAllControls())
        cmds.parent(self.m_footRig.getGroup(), self.m_group)

        #Rig blend control
        self.m_legRig.rigBlendControl(self.m_footRig.getAnkleJoint())

        # Connect up visibility
        ikVis, fkVis = self.m_legRig.getVisibilityAttrs()
        cmds.connectAttr(
            ikVis,
            "%s.visibility" %(self.m_footRig.m_ikFoot.getGroup())
            )
        cmds.connectAttr(
            fkVis,
            "%s.visibility" %(self.m_footRig.m_fkFoot.getGroup())
            )
コード例 #2
0
ファイル: FootRig.py プロジェクト: jaredauty/Rigging
    def generate(self):
        # Create IK
        self.m_ikJoints = self.duplicateJoints(self.m_topJoint, "IK")
        rc.addToLayer(self.m_sceneData, "ref", self.m_ikJoints[0])
        self.m_ikFoot = IKFoot.IKFootRig(
            self.m_sceneData,
            "%s_IK" %(self.m_name),
            self.m_baseName,
            self.m_ikJoints,
            self.m_footToePivot,
            self.m_footHeelPivot,
            self.m_footInsidePivot,
            self.m_footOutsidePivot,
            self.m_footMain,
            self.m_ankleIK
            )
        self.m_ikFoot.generate()
        cmds.parent(self.m_ikFoot.getGroup(), self.m_group)

        # Create FK
        self.m_fkJoints = self.duplicateJoints(self.m_topJoint, "FK")
        rc.addToLayer(self.m_sceneData, "ref", self.m_fkJoints[0])
        self.m_fkFoot = FKFoot.FKFootRig(
            self.m_sceneData,
            "%s_FK" %(self.m_name),
            self.m_baseName,
            self.m_fkJoints,
            self.m_footMain,
            self.m_parentFK
            )
        self.m_fkFoot.generate()
        cmds.parent(self.m_fkFoot.getGroup(), self.m_group)

        # Create BIND
        self.m_bindJoints = self.duplicateJoints(
            self.m_topJoint,
            "BIND"
            )
        rc.addToLayer(self.m_sceneData, "ref", self.m_bindJoints[0])
        bindGroups = rg.add3Groups(
            self.m_bindJoints[0],
            ["_SDK", "_CONST", "_0"]
            )
        cmds.parent(bindGroups[-1], self.m_group)
        self.connectBind()
        # connect to parent
        cmds.parentConstraint(self.m_parentBIND, bindGroups[-1], mo=1)
        # connect to parent twist
        # Strip constraint
        targetList = cmds.parentConstraint(self.m_parentTwist, q=1, tl=1)
        try:
            cmds.parentConstraint(targetList, self.m_parentTwist, e=True, rm=True)
        except:
            print "Warning couldn't remove constraint when creating foot attachment"
        # Add new constraint
        cmds.parentConstraint(self.m_bindJoints[0], self.m_parentTwist, mo=1)
        # Add to sets
        rc.addToSet(self.m_sceneData, "bind", self.m_bindJoints)
        # Add to controls
        rc.addDictToControlDict(self.m_allControls, self.m_ikFoot.getAllControls())
        rc.addDictToControlDict(self.m_allControls, self.m_fkFoot.getAllControls())
コード例 #3
0
ファイル: ArmRig.py プロジェクト: jaredauty/Rigging
    def generate(self):
        cmds.cycleCheck(e=False)
        # -- Duplicate joints and rename for IK-FK switch --- #
        self.m_bindJoints = self.duplicateJoints(self.m_startJoints, "BIND")
        rc.addToLayer(self.m_sceneData, "ref", self.m_bindJoints[0])
        self.m_ikJoints = self.duplicateJoints(self.m_startJoints, "IK")
        rc.addToLayer(self.m_sceneData, "ref", self.m_ikJoints[0])
        self.m_fkJoints = self.duplicateJoints(self.m_startJoints, "FK")
        rc.addToLayer(self.m_sceneData, "ref", self.m_fkJoints[0])

        # -- Create shoulder locator -- #
        self.m_shoulderLocator = self.m_name+"_shoulder_CTRL"
        self.m_shoulderLocator = cmds.spaceLocator(n=self.m_shoulderLocator)[0]
        rc.addToLayer(self.m_sceneData, "detailCtrl", self.m_shoulderLocator)
        rc.orientControl(self.m_shoulderLocator, self.m_startJoints.m_shoulder)
        shoulderGRPs = rg.add3Groups(
            self.m_shoulderLocator, 
            ["_SDK", "_CONST", "_0"]
            )
        cmds.parent(shoulderGRPs[-1], self.m_group)
        # -- Setup FK rig -- #
        tmpList = self.m_fkJoints.getJointList()
        self.m_fkRig = fk.FKArmRig(self.m_sceneData, tmpList, self.m_name+"_FK", self.m_baseName)
        self.m_fkRig.generate()
        cmds.parent(self.m_fkRig.m_group, self.m_group)
        cmds.parentConstraint(
            self.m_shoulderLocator, 
            self.m_fkRig.getMainTransform(),
            mo=True
            )
        # -- Setup IK rig -- #
        tmpList = self.m_ikJoints.getJointList()
        self.m_ikRig = ik.IKArmRig(
            self.m_sceneData,
            tmpList, 
            self.m_name+"_IK",
            self.m_baseName,
            self.m_isMirrored,
            self.m_twistAxis
            )
        self.m_ikRig.generate()
        cmds.parent(self.m_ikRig.m_group, self.m_group)
        cmds.pointConstraint(
            self.m_shoulderLocator,
            self.m_ikRig.getMainTransform(),
            mo=True
            )
        # -- Setup BIND rig -- #
        tmpList = self.m_bindJoints.getJointList()
        self.m_bindRig = bind.BINDArmRig(
            self.m_sceneData,
            tmpList, 
            self.m_name+"_BIND",
            self.m_baseName,
            self.m_blendControl,
            self.m_numUpperControls,
            self.m_numLowerControls,
            self.m_numUpperJoints,
            self.m_numLowerJoints,
            self.m_upperStretchJoints,
            self.m_lowerStretchJoints,
            self.m_isMirrored,
            self.m_twistAxis,
            self.m_rigWrist
            )    
        self.m_bindRig.generate()
        cmds.parent(self.m_bindRig.m_group, self.m_group) 
        cmds.pointConstraint(
            self.m_shoulderLocator,
            self.m_bindRig.getMainTransform(),
            mo=True
            )
        # rig the blend control for aestethics
        if self.m_rigWrist:
            self.rigBlendControl(self.m_bindRig.getWristCtrl())


        # -- Connect up rigs -- #
        try:
            tmp = self.m_blendControl
        except:
            self.m_blendControl = self.createBlendControl()
        self.connectIKFK()
        # -- Setup visibility -- #
        self.setupVisibility()
         
        cmds.cycleCheck(e=True)
        
        # Add all controls
        rc.addToControlDict(
            self.m_allControls,
            "%s_shoulderLocator" %(self.m_baseName),
            self.m_shoulderLocator
            )
        rc.addDictToControlDict(self.m_allControls, self.m_fkRig.getAllControls())
        rc.addDictToControlDict(self.m_allControls, self.m_ikRig.getAllControls())
        rc.addDictToControlDict(self.m_allControls, self.m_bindRig.getAllControls())

        self.m_isGenerated = True
コード例 #4
0
ファイル: BINDArm.py プロジェクト: jaredauty/Rigging
    def setupStretch(self):
       #Create the bendy bits 
        self.m_upperStretch = chain.StretchChain(
            self.m_sceneData,
            self.m_joints.m_shoulder, 
            self.m_elbowTwistJoints[0], #self.m_joints.m_elbow1,#
            self.m_name+"_upperStretch", 
            "%s_upperStretch" %(self.m_baseName),
            self.m_numLowerControls, 
            self.m_numUpperJoints
            )
        self.m_upperStretch.setMirroring(self.m_isMirrored)
        self.m_upperStretch.setBendFromParent(False)
        self.m_upperStretch.setBlendControl(self.m_controlObject)
        self.m_upperStretch.setBlendAttrName("upperBend") 
        self.m_upperStretch.setSquetchAttrName("upperSquetchiness")
        self.m_upperStretch.setSquetchBoolAttrName("upperSquetchOnOff")
        self.m_upperStretch.setAttrHeading("UPPER")
        self.m_upperStretch.setTwistAxis(self.m_twistAxis)
        self.m_upperStretch.setBindJoints(self.m_upperStretchJoints)
        self.m_upperStretch.setIsParentTwist(False)
        self.m_upperArmGRP = self.m_upperStretch.generate()
        cmds.parent(self.m_upperArmGRP, self.m_group)
 
        self.m_lowerStretch = chain.StretchChain(
            self.m_sceneData,
            self.m_elbowTwistJoints[1], #self.m_joints.m_elbow1,#
            self.m_joints.m_wrist, 
            self.m_name+"_lowerStretch",
            "%s_lowerStretch" %(self.m_baseName),
            self.m_numLowerControls, 
            self.m_numLowerJoints
            )
        self.m_lowerStretch.setMirroring(self.m_isMirrored)
        self.m_lowerStretch.setBlendControl(self.m_controlObject)
        self.m_lowerStretch.setBlendAttrName("lowerBend")
        self.m_lowerStretch.setSquetchAttrName("lowerSquetchiness")
        self.m_lowerStretch.setSquetchBoolAttrName("lowerSquetchOnOff")
        self.m_lowerStretch.setAttrHeading("LOWER")
        self.m_lowerStretch.setTwistAxis(self.m_twistAxis)
        self.m_lowerStretch.setBindJoints(self.m_lowerStretchJoints)
        self.m_lowerStretch.setIsParentTwist(False)
        self.m_lowerArmGRP = self.m_lowerStretch.generate()
        cmds.parent(self.m_lowerArmGRP, self.m_group)
        # Sort out twist controls (parenting)
        lowerTwistControls = self.m_lowerStretch.getTwistControls()
        upperTwistControls = self.m_upperStretch.getTwistControls()
        # --- connect up elbow twists
        cmds.parentConstraint(upperTwistControls[1], "%s_CONST" %(lowerTwistControls[0]))
        # --- parent elbow twist to bind joint
        cmds.parentConstraint(self.m_joints.m_elbow1, "%s_CONST" %(upperTwistControls[1]), mo=1)
        # --- parent wrist twist to bind joint
        cmds.parentConstraint(self.m_joints.m_wrist, "%s_CONST" %(lowerTwistControls[1]), mo=1)
        
        # fix elbow twist
        cmds.aimConstraint(self.m_twistAimConstraint, e=1, wut="object", wuo=upperTwistControls[1])
        
        rc.addDictToControlDict(self.m_allControls, self.m_upperStretch.getAllControls())
        rc.addDictToControlDict(self.m_allControls, self.m_lowerStretch.getAllControls())
        # Hide unused twist controls
        rc.addToLayer(self.m_sceneData, "detailCtrl", [lowerTwistControls[1]] + upperTwistControls)
        rc.addToLayer(self.m_sceneData, "hidden", lowerTwistControls[0])