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)
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)
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)
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'])
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)
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])