Esempio n. 1
0
 def create_chain_ctrls(self, chain):
     if chain == FK:
         prev_ctrl = None
         i = 0
         for jnt in self.bnd_joints:
             ctrl_name = join_name(jnt.name(), FK, CTRL)
             fk_ctrl_obj = self.create_ctrl(ctrl_name, 1, 'circle', jnt, 1,
                                            1)
             fk_ctrl = fk_ctrl_obj.ctrl
             fk_ctrl_grp = fk_ctrl_obj.ctrl_grp
             fk_ctrl_obj.lock_hide_attr(
                 ['translate_XYZ', 'scale_XYZ', 'visibility'])
             self.fk_ctrls.append(fk_ctrl)
             if i == 0:
                 pm.parent(fk_ctrl_grp, self.fk_ctrl_grp)
             elif i > 0:
                 pm.parent(fk_ctrl_grp, prev_ctrl)
             prev_ctrl = fk_ctrl
             i += 1
     if chain == IK:
         for jnt in self.bnd_joints:
             ctrl_name = join_name(jnt.name(), IK, CTRL)
             ik_ctrl_obj = self.create_ctrl(ctrl_name, 1, 'box', jnt, 1, 1)
             ik_ctrl = ik_ctrl_obj.ctrl
             ik_ctrl_grp = ik_ctrl_obj.ctrl_grp
             ik_ctrl_obj.lock_hide_attr(['scale_XYZ', 'visibility'])
             self.ik_ctrls.append(ik_ctrl)
             pm.parent(ik_ctrl_grp, self.ik_ctrl_grp)
Esempio n. 2
0
 def create_groups(self):
     pm.select(cl=1)
     self.top_grp = pm.group(name = join_name(self.name, 'rig', GRP))
     pm.select(cl=1)
     self.controllers_grp = pm.group(name = join_name(self.name, CTRLGRP))
     pm.select(cl=1)
     self.joints_grp = pm.group(name = join_name(self.name, 'joints', GRP))
     pm.select(cl=1)
     self.geometry_grp = pm.group(name = join_name(self.name, 'geo', GRP))
     pm.select(cl=1)
     self.subrig_grp = pm.group(name = join_name(self.name, 'subrigs', GRP))
     pm.select(cl=1)
     pm.parent([self.controllers_grp, self.joints_grp, self.geometry_grp, self.subrig_grp], self.top_grp)
Esempio n. 3
0
    def create_groups(self):
        pm.select(cl=1)
        self.rig_grp = pm.group(name=join_name(self.side + self.name, MAINGRP))
        pm.select(cl=1)
        self.fk_ctrl_grp = pm.group(name=join_name(self.side +
                                                   self.name, FK, GRP))
        pm.select(cl=1)
        self.ik_ctrl_grp = pm.group(name=join_name(self.side +
                                                   self.name, IK, GRP))
        pm.select(cl=1)
        self.controllers_grp = pm.group(name=join_name(self.side +
                                                       self.name, CTRLGRP))

        pm.parent([self.ik_ctrl_grp, self.fk_ctrl_grp], self.controllers_grp)
Esempio n. 4
0
 def create_ikfk_ctrl(self, attach_to, offset):
     # Create IKFK switch ctrl
     ctrl_name = join_name(attach_to.name(), 'ikfk', CTRL)
     fkik_ctrl_obj = self.create_ctrl(ctrl_name, 1, 'box', attach_to, 1, 1)
     pm.parent(fkik_ctrl_obj.ctrl_grp, self.ik_ctrl_grp)
     self.ikfk_ctrl = fkik_ctrl_obj.ctrl
     pm.parent(fkik_ctrl_obj.ctrl_grp, self.controllers_grp)
     fkik_ctrl_obj.add_float_attr('ikfk', 0, 1)
     fkik_ctrl_obj.offset_ctrl_grp(offset)
     fkik_ctrl_obj.lock_hide_attr(
         ['translate_XYZ', 'rotate_XYZ', 'scale_XYZ', 'visibility'])
Esempio n. 5
0
 def create_world_ctrl(self):
     ctrl_name = join_name(self.name, WORLDCTRL)
     pm.select(cl=1)
     temp_jnt = pm.joint()
     pm.select(cl=1)
     world_ctrl_obj = base.Rig.create_ctrl(ctrl_name, 20, 'circley', temp_jnt, 1, 1)
     pm.delete(temp_jnt)
     self.world_ctrl = world_ctrl_obj.ctrl
     pm.parent(world_ctrl_obj.ctrl_grp, self.controllers_grp)
     world_ctrl_obj.add_float_attr('ikfk', 0, 1)
     world_ctrl_obj.lock_hide_attr(['scale_XYZ', 'visibility'])
     pm.parentConstraint(self.world_ctrl, self.root_jnt, mo=1)
Esempio n. 6
0
    def create_clusters(self):
        self.ik_drv_crv = pm.rebuildCurve(self.ik_crv,
                                          ch=1,
                                          rpo=0,
                                          rt=0,
                                          end=1,
                                          kr=2,
                                          kcp=0,
                                          kep=1,
                                          kt=0,
                                          s=2,
                                          d=3,
                                          tol=0.01,
                                          name=self.ik_crv.name().replace(
                                              'crv', 'drv_crv'))[0]
        self.ik_drv_crv.attr('v').set(0)
        pm.delete(self.ik_drv_crv, ch=1)
        wire_def = pm.wire(self.ik_crv,
                           w=self.ik_drv_crv,
                           en=1,
                           gw=False,
                           ce=0,
                           li=0,
                           dds=[(0, 20)],
                           n=self.ik_crv.name() + '_wire')
        wire_transform = pm.listConnections(
            (wire_def[0].name() + '.baseWire[0]'))[0]

        # pm.parent(self.ik_drv_crv, self.rigGrp)
        # pm.parent(wire_transform , self.rigGrp)

        for i, cv in enumerate(['.cv[0:1]', '.cv[2]', '.cv[3:4]']):
            cluster = pm.cluster(self.ik_drv_crv.name() + cv)
            name = join_name(self.ik_crv.name(), 'cls', str(i))
            cluster[1].rename(name)
            cluster[1].attr('v').set(0)
            self.clusters.append(cluster[1])
            pm.parent(cluster[1], self.ik_ctrl[i])