Example #1
0
    def createChestMainCTRL(self):
        chest_Ctrl_Object = Control.Control(
            name='{Side}__Chest__CTRL'.format(**self.nameStructure),
            shape=sl.sl[self.config['CONTROLS']['Spine_Chest']['shape']],
            scale=self.config['CONTROLS']['Spine_Chest']['scale'],
            matchTransforms=(self.SPINEIK_MOD.getJoints[2], 1, 1),
            parent=self.RIBBON_MOD.INPUT_GRP,
            color=('index', self.col_main))
        self.chest_Ctrl = chest_Ctrl_Object.control
        adb.makeroot_func(self.chest_Ctrl,
                          suff='OFFSET',
                          forceNameConvention=True)
        pm.parentConstraint(self.chest_Ctrl,
                            self.SPINEIK_MOD.getJoints[-1].getParent(),
                            mo=True)
        moduleBase.ModuleBase.setupVisRule(
            [self.chest_Ctrl], self.RIBBON_MOD.VISRULE_GRP,
            '{Side}__{Basename}_Chest_CTRL__{Suffix}'.format(
                **self.nameStructure), True)

        if self.REVERSE_MOD:
            pm.parentConstraint(self.REVERSE_MOD.getJoints[-1],
                                self.chest_Ctrl.getParent(),
                                mo=True)

        return self.chest_Ctrl
Example #2
0
    def addControls(self, shape=sl.ball_shape, scale=1, color=('index', 13)):
        """ add Controls to the follicules """

        create_ctrls = [
            Control.Control(
                str(joint),
                shape=shape,
                scale=scale,
                parent=self.INPUT_GRP,
                matchTransforms=(joint, 0, 0),
                color=color,
            ) for joint in self._MODEL.getJoints
        ]

        for foll, ctrls in zip(self._MODEL.getFollicules, create_ctrls):
            offset = adb.makeroot_func(ctrls.control, 'OFFSET')
            self._MODEL.getInputs.append(offset)
            self._MODEL.getResetControls.append(offset)
            pm.rename(offset, '{}'.format(offset).replace('__CTRL', ''))
            Transform(foll.getTransform()).matrixConstraint(offset,
                                                            channels='trh',
                                                            mo=True)

        for grp, ctrls in zip(self._MODEL.getResetJoints, create_ctrls):
            pm.parent(grp, ctrls.control)

        self._MODEL.getControls = create_ctrls
        return self._MODEL.getControls
Example #3
0
        def createFkReverseCTRLS():
            self.REVERSE_MOD.getJoints = []
            for joint in self.reverse_spine_chain_joints:
                rev_ctrl = Control.Control(
                    name=joint.replace(NC.JOINT, NC.CTRL),
                    shape=sl.sl[self.config['CONTROLS']['Spine_FK_Rev']
                                ['shape']],
                    scale=self.config['CONTROLS']['Spine_FK_Rev']['scale'],
                    matchTransforms=(False, 1, 0),
                    color=('index', 20),
                )
                self.REVERSE_MOD.getJoints.append(joint)
                pm.parent(rev_ctrl.control.getShape(),
                          joint,
                          relative=True,
                          shape=True)
                pm.delete(rev_ctrl.control)
                pm.rename(joint, NC.getNameNoSuffix(joint))
                adb.AutoSuffix([joint])

                adb.lockAttr_func(
                    joint, ['tx', 'ty', 'tz', 'sx', 'sy', 'sz', 'radius'])

            self.nameStructure['Suffix'] = NC.VISRULE
            shapes = [x.getShape() for x in self.reverse_spine_chain_joints]
            moduleBase.ModuleBase.setupVisRule(
                shapes, self.REVERSE_MOD.VISRULE_GRP,
                '{Side}__{Basename}_FK_Reverse_CTRL__{Suffix}'.format(
                    **self.nameStructure), False)
            self.setupVisRule(
                self.reverse_spine_chain_joints, self.REVERSE_MOD.VISRULE_GRP,
                '{Side}__{Basename}_FK_Reverse_JNT__{Suffix}'.format(
                    **self.nameStructure), False)

            return self.REVERSE_MOD.getJoints
Example #4
0
    def createHipsMainCTRL(self):
        hips_Ctrl_Object = Control.Control(
            name='{Side}__Hips__CTRL'.format(**self.nameStructure),
            shape=sl.sl[self.config['CONTROLS']['Spine_Hips']['shape']],
            scale=self.config['CONTROLS']['Spine_Hips']['scale'],
            matchTransforms=(self.SPINEIK_MOD.getJoints[0], 1, 0),
            parent=self.RIBBON_MOD.INPUT_GRP,
            color=('index', self.col_main))
        self.hips_Ctrl = hips_Ctrl_Object.control
        pm.parentConstraint(
            self.hips_Ctrl,
            self.RESULT_MOD.getJoints[0].getParent().getParent())
        moduleBase.ModuleBase.setupVisRule(
            [self.hips_Ctrl], self.RIBBON_MOD.VISRULE_GRP,
            '{Side}__{Basename}_Hips_CTRL__{Suffix}'.format(
                **self.nameStructure), True)

        if self.REVERSE_MOD:
            ik_reverse_spine_guide = [
                self.reverse_spine_chain_joints[0],
                self.reverse_spine_chain_joints[(len(
                    self.reverse_spine_chain_joints)) / 2]
            ]
            for revJnt, ctl in zip(ik_reverse_spine_guide,
                                   self.SPINEIK_MOD.getJoints[:-1]):
                pm.parentConstraint(revJnt,
                                    pm.PyNode(ctl).getParent(),
                                    mo=True)

        return self.hips_Ctrl
Example #5
0
    def createMainRigCtrl(cls, mainRigName):
        cls.RIG_NAME = mainRigName
        cls.MAIN_BASERIG_GRP = pm.group(n='{}_MainRig__GRP'.format(mainRigName), em=1)
        cls.GEO_BASERIG_GRP = pm.group(n='{}_Geometry__GRP'.format(mainRigName), em=1, parent=cls.MAIN_BASERIG_GRP)
        cls.MODULES_BASERIG_GRP = pm.group(n='{}_Modules__GRP'.format(mainRigName), em=1, parent=cls.MAIN_BASERIG_GRP)
        cls.CONTROL_BASERIG_GRP = pm.group(n='{}_Control__GRP'.format(mainRigName), em=1, parent=cls.MAIN_BASERIG_GRP)

        cls.main_CTRL = Control.Control(name='{}_Main__{}'.format(mainRigName, NC.CTRL),
                                    shape=sl.main_shape,
                                    scale=3,
                                    color = ('index', indexColor["lightYellow"]),
                                    parent=cls.CONTROL_BASERIG_GRP,
                                        )

        cls.mainOffset_CTRL = Control.Control(name='{}_MainOffset__{}'.format(mainRigName, NC.CTRL),
                                    shape=sl.circleY_shape,
                                    scale=4,
                                    color = ('index', indexColor["lightBlue"]),
                                    parent=cls.main_CTRL.control
                                        )

        [adb.makeroot_func(grp, 'Offset', forceNameConvention=True) for grp in [cls.main_CTRL.control, cls.mainOffset_CTRL.control]]
        return cls
        def create_ik_ctrl():
            self.nameStructure['Suffix'] = NC.CTRL
            self.shoulder_ik_ctrl_class = Control.Control(
                name='{Side}__{Basename}_{Parts[1]}__{Suffix}'.format(
                    **self.nameStructure),
                shape=sl.sl[self.config['CONTROLS']['Shoulder']['shape']],
                scale=self.config['CONTROLS']['Shoulder']['scale'],
                matchTransforms=(self.shoulder_joint, 1, 0),
                parent=self.shoulder_MOD.INPUT_GRP)

            self.shoulder_ik_ctrl = self.shoulder_ik_ctrl_class.control
            adb.makeroot_func(self.shoulder_ik_ctrl,
                              suff='Offset',
                              forceNameConvention=True)
            return self.shoulder_ik_ctrl
 def create_ctrl():
     self.nameStructure['Suffix'] = NC.CTRL
     self.clavicule_ctrl_class = Control.Control(
         name='{Side}__{Basename}_{Parts[0]}__{Suffix}'.format(
             **self.nameStructure),
         shape=sl.sl[self.config['CONTROLS']['Clavicule']['shape']],
         scale=self.config['CONTROLS']['Clavicule']['scale'],
         matchTransforms=(self.clavicule_joint, 1, 1),
         parent=self.shoulder_MOD.INPUT_GRP)
     self.clavicule_ctrl = self.clavicule_ctrl_class.control
     if self.side == NC.RIGTH_SIDE_PREFIX:
         self.clavicule_ctrl.sy.set(-1)
     adb.makeroot_func(self.clavicule_ctrl,
                       suff='Offset',
                       forceNameConvention=True)
     self.clavicule_ctrl.rz.set(
         self.config['CONTROLS']['Clavicule']['rotation_degree'])
     pm.makeIdentity(self.clavicule_ctrl, n=0, r=1, apply=True, pn=1)
     self.clavicule_ctrl_class.addRotationOrderAttr()
     return self.clavicule_ctrl
Example #8
0
        def create_ctrl():
            self.nameStructure['Suffix'] = NC.CTRL
            self.foot_ctrl = Control.Control(
                name='{Side}__{Basename}_Main__{Suffix}'.format(
                    **self.nameStructure),
                shape=sl.sl[self.config['CONTROLS']['Foot']['shape']],
                scale=self.config['CONTROLS']['Foot']['scale'],
                matchTransforms=(self.starter_Foot[1], 1, 0)).control
            pm.matchTransform(self.foot_ctrl,
                              self.footAnkle_joint,
                              pos=0,
                              rot=1)
            if self.side == NC.LEFT_SIDE_PREFIX:
                pm.PyNode(self.foot_ctrl).sx.set(-1)
                pm.makeIdentity(self.foot_ctrl, n=0, s=1, apply=True, pn=1)

            Transform(self.foot_ctrl).pivotPoint = Transform(
                self.footAnkle_joint).worldTrans
            adb.makeroot_func(self.foot_ctrl,
                              suff='Offset',
                              forceNameConvention=True)
            return self.foot_ctrl
Example #9
0
    def createFkRegularCTRLS(self):
        self.RESULT_MOD.getJoints = []
        for joint in self.spine_chain_joints:
            ctrl = Control.Control(
                name=joint.replace(NC.JOINT, NC.CTRL),
                shape=sl.sl[self.config['CONTROLS']['Spine_FK_Reg']['shape']],
                scale=self.config['CONTROLS']['Spine_FK_Reg']['scale'],
                matchTransforms=(False, 1, 0),
                color=('index', 21))

            for att in ['tx', 'ty', 'tz', 'sx', 'sy', 'sz', 'radius']:
                pm.PyNode(joint).setAttr(att,
                                         lock=True,
                                         channelBox=False,
                                         keyable=False)

            self.RESULT_MOD.getJoints.append(joint)
            pm.parent(ctrl.control.getShape(),
                      joint,
                      relative=True,
                      shape=True)
            pm.delete(ctrl.control)
            pm.rename(joint, NC.getNameNoSuffix(joint))
            adb.AutoSuffix([joint])

        self.nameStructure['Suffix'] = NC.VISRULE
        shapes = [x.getShape() for x in self.spine_chain_joints]
        moduleBase.ModuleBase.setupVisRule(
            shapes, self.RESULT_MOD.VISRULE_GRP,
            '{Side}__{Basename}_FK_CTRL__{Suffix}'.format(
                **self.nameStructure), False)
        self.setupVisRule(
            self.spine_chain_joints, self.RESULT_MOD.VISRULE_GRP,
            '{Side}__{Basename}_FK_JNT__{Suffix}'.format(**self.nameStructure),
            False)

        return self.RESULT_MOD.getJoints
Example #10
0
    def addControls(self):
        self.nameStructure['Suffix'] = NC.CTRL
        ball_CTRL = Control.Control(
            name='{Side}__{Basename}_Ball__{Suffix}'.format(
                **self.nameStructure),
            shape=sl.sl[self.config['CONTROLS']['Foot_Ball']['shape']],
            scale=self.config['CONTROLS']['Foot_Ball']['scale'],
            matchTransforms=(self.footBall_joint, 1, 0),
            parent=self.Foot_MOD.INPUT_GRP,
            color=('index', self.col_layer2)).control
        if self.side == NC.RIGTH_SIDE_PREFIX:
            ball_CTRL.sx.set(-1)
            pm.makeIdentity(ball_CTRL, n=0, s=1, apply=True, pn=1)

        adb.makeroot_func(ball_CTRL, suff='Offset', forceNameConvention=1)
        adb.matrixConstraint(self.footBall_joint, ball_CTRL.getParent(), mo=1)
        ball_CTRL.rx >> pm.PyNode(self.foot_ctrl.ballRoll)

        heel_CTRL = Control.Control(
            name='{Side}__{Basename}_Heel__{Suffix}'.format(
                **self.nameStructure),
            shape=sl.sl[self.config['CONTROLS']['Foot_Heel']['shape']],
            scale=self.config['CONTROLS']['Foot_Heel']['scale'],
            matchTransforms=(self.footHeel_joint, 1, 0),
            parent=self.Foot_MOD.INPUT_GRP,
            color=('index', self.col_layer2)).control
        adb.makeroot_func(heel_CTRL, suff='Offset', forceNameConvention=1)
        adb.matrixConstraint(self.footHeel_joint, heel_CTRL.getParent(), mo=1)
        heel_CTRL.rx >> pm.PyNode(self.foot_ctrl.heelRoll)
        heel_CTRL.ry >> pm.PyNode(self.foot_ctrl.heelSide)
        heel_CTRL.rz >> pm.PyNode(self.foot_ctrl.heelTwist)

        toe_CTRL = Control.Control(
            name='{Side}__{Basename}_Toe__{Suffix}'.format(
                **self.nameStructure),
            shape=sl.sl[self.config['CONTROLS']['Foot_Toe']['shape']],
            scale=self.config['CONTROLS']['Foot_Toe']['scale'],
            matchTransforms=(self.footToes_joint, 1, 0),
            parent=self.Foot_MOD.INPUT_GRP,
            color=('index', self.col_layer2)).control
        adb.makeroot_func(toe_CTRL, suff='Offset', forceNameConvention=1)
        adb.matrixConstraint(self.footToes_joint, toe_CTRL.getParent(), mo=1)
        toe_CTRL.rx >> pm.PyNode(self.foot_ctrl.toeRoll)
        toe_CTRL.ry >> pm.PyNode(self.foot_ctrl.toeSide)

        toeBend_CTRL = Control.Control(
            name='{Side}__{Basename}_ToeBend__{Suffix}'.format(
                **self.nameStructure),
            shape=sl.sl[self.config['CONTROLS']['Foot_ToeBend']['shape']],
            scale=self.config['CONTROLS']['Foot_ToeBend']['scale'],
            matchTransforms=(self.footBall_joint, 1, 0),
            parent=self.Foot_MOD.INPUT_GRP,
            color=('index', self.col_layer2)).control
        adb.makeroot_func(toeBend_CTRL, suff='Offset', forceNameConvention=1)
        adb.matrixConstraint(self.footBall_joint,
                             toeBend_CTRL.getParent(),
                             mo=1)
        toeBend_CTRL.rx >> pm.PyNode(self.foot_ctrl.toeBend)
        toeBend_CTRL.ry >> pm.PyNode(self.footBall_joint).ry

        self.nameStructure['Suffix'] = NC.VISRULE
        moduleBase.ModuleBase.setupVisRule(
            [ball_CTRL, heel_CTRL, toe_CTRL, toeBend_CTRL],
            self.Foot_MOD.VISRULE_GRP,
            '{Side}__{Basename}_Extras_CTRL__{Suffix}'.format(
                **self.nameStructure), True)
        return ball_CTRL, heel_CTRL, toe_CTRL, toeBend_CTRL