def selectNextItem(self): ''' ''' if self.txt_jntCurrent.getLabel() == 'Select mouth lips loop': self.txt_jntCurrent.setLabel('Select left eyelid loop') fullRefPath = self.imageRefPath + "LT_eyeLidLoop.jpg" pm.image(self.img_jntReference, image=fullRefPath, e=True) # assign selection to placement_grp attr sel = pm.ls(sl=True, fl=True) self.placementGrp.addAttr('mouthLipsLoop', dt='stringArray') self.placementGrp.attr('mouthLipsLoop').set(len(sel), *sel, type='stringArray') pm.select(cl=True) placementGrp.addMouthLoopPlacements(self.placementGrp) elif self.txt_jntCurrent.getLabel() == 'Select left eyelid loop': # READY! self.txt_jntCurrent.setLabel('Ready to Build!') fullRefPath = self.imageRefPath + "default.jpg" pm.image(self.img_jntReference, image=fullRefPath, e=True) self.btn_jntScrollRt.setEnable(False) self.btn_updateLocs.setEnable(True) self.btn_buildRig.setEnable(True) pm.setToolTo('selectSuperContext') # assign selection to placement_grp attr sel = pm.ls(sl=True, fl=True) self.placementGrp.addAttr('leftEyelidLoop', dt='stringArray') self.placementGrp.attr('leftEyelidLoop').set(len(sel), *sel, type='stringArray') placementGrp.addEyeLoopPlacements(self.placementGrp) # override for mathilda # placementGrp.addEyeLoopPlacements(self.placementGrp, [23,15,9,3]) # mathilda_override # pm.PyNode('LT_innerUpper_eyelid_pLoc').cv_id.set(18) placementGrp.addIndependentPlacers(self.placementGrp, self.indMapping) # align jaw pLoc cons = mc.aimConstraint('CT__mouthMover_pLoc', 'CT__jaw_pLoc', aim=[0, 0, 1], u=[1, 0, 0], wu=[1, 0, 0]) mc.delete(cons) pm.selectMode(object=True) mel.setObjectPickMask("Surface", False) placementGrp.snapPlacementsToMesh(self.placementGrp) placementGrp.mirrorAllPlacements(self.placementGrp) placementGrp.orientAllPlacements(self.placementGrp)
def selectNextItem(self): ''' ''' if self.txt_jntCurrent.getLabel() == 'Select mouth lips loop': self.txt_jntCurrent.setLabel('Select left eyelid loop') fullRefPath = self.imageRefPath + "LT_eyeLidLoop.jpg" pm.image(self.img_jntReference, image=fullRefPath, e=True) # assign selection to placement_grp attr sel = pm.ls(sl=True, fl=True) self.placementGrp.addAttr('mouthLipsLoop', dt='stringArray') self.placementGrp.attr('mouthLipsLoop').set(len(sel), *sel, type='stringArray') pm.select(cl=True) placementGrp.addMouthLoopPlacements(self.placementGrp) elif self.txt_jntCurrent.getLabel() == 'Select left eyelid loop': # READY! self.txt_jntCurrent.setLabel('Ready to Build!') fullRefPath = self.imageRefPath + "default.jpg" pm.image(self.img_jntReference, image=fullRefPath, e=True) self.btn_jntScrollRt.setEnable(False) self.btn_updateLocs.setEnable(True) self.btn_buildRig.setEnable(True) pm.setToolTo('selectSuperContext') # assign selection to placement_grp attr sel = pm.ls(sl=True, fl=True) self.placementGrp.addAttr('leftEyelidLoop', dt='stringArray') self.placementGrp.attr('leftEyelidLoop').set(len(sel), *sel, type='stringArray') placementGrp.addEyeLoopPlacements(self.placementGrp) # override for mathilda # placementGrp.addEyeLoopPlacements(self.placementGrp, [23,15,9,3]) # mathilda_override # pm.PyNode('LT_innerUpper_eyelid_pLoc').cv_id.set(18) placementGrp.addIndependentPlacers(self.placementGrp, self.indMapping) # align jaw pLoc cons = mc.aimConstraint('CT__mouthMover_pLoc', 'CT__jaw_pLoc', aim=[0,0,1], u=[1,0,0], wu=[1,0,0]) mc.delete(cons) pm.selectMode(object=True) mel.setObjectPickMask("Surface", False) placementGrp.snapPlacementsToMesh(self.placementGrp) placementGrp.mirrorAllPlacements(self.placementGrp) placementGrp.orientAllPlacements(self.placementGrp)
nt.Transform(u'CT_lower_lip_pLoc')], (-1, 0, 0)) # Align for sliding slidingBnds = data.slidingBnds for eachBnd in slidingBnds: rt.alignTransformToMesh(eachBnd, mesh, method='sliding') # manual orienting and tweaking # notes: # cheek locs should have Y-up, so they can translate up and make a bulge, etc # align jaw locs along jawline # brow neg-Y should point outwards to maintain brow volume #------------------------------------------------------------------------------ # Mirror placementGrp.snapPlacementsToMesh(pGrp) placementGrp.mirrorAllPlacements(pGrp) pDict = data.placeLocXforms placementGrp.setPlacementGrpFromDict(pGrp, pDict) #=============================================================================== # BUILD BNDS # start - mathilda_facerigB_v003.ma # mathilda_facerigB_v005.ma (update geometry with lips closed) # mathilda_facerigB_v006.ma (update loc orientations) #=============================================================================== bndGrp = face.createBndsFromPlacement(pGrp) face.buildSecondaryControlSystem(pGrp, bndGrp, mesh) priCtls = face.buildPrimaryControlSystem() perimeterGrp = face.addPerimeterBndSystem(mesh) mll = face.createSkinLayers(mesh)
], (-1, 0, 0)) # Align for sliding slidingBnds = data.slidingBnds for eachBnd in slidingBnds: rt.alignTransformToMesh(eachBnd, mesh, method='sliding') # manual orienting and tweaking # notes: # cheek locs should have Y-up, so they can translate up and make a bulge, etc # align jaw locs along jawline # brow neg-Y should point outwards to maintain brow volume #------------------------------------------------------------------------------ # Mirror placementGrp.snapPlacementsToMesh(pGrp) placementGrp.mirrorAllPlacements(pGrp) pDict = data.placeLocXforms placementGrp.setPlacementGrpFromDict(pGrp, pDict) #=============================================================================== # BUILD BNDS # start - mathilda_facerigB_v003.ma # mathilda_facerigB_v005.ma (update geometry with lips closed) # mathilda_facerigB_v006.ma (update loc orientations) #=============================================================================== bndGrp = face.createBndsFromPlacement(pGrp) face.buildSecondaryControlSystem(pGrp, bndGrp, mesh) priCtls = face.buildPrimaryControlSystem() perimeterGrp = face.addPerimeterBndSystem(mesh) mll = face.createSkinLayers(mesh)