# importing libraries: import maya.cmds as cmds import maya.mel as mel from ..Modules.dpBaseClass import RigType # global variables to this module: CLASS_NAME = "Quadruped" TITLE = "m037_quadruped" DESCRIPTION = "m038_quadrupedDesc" ICON = "/Icons/dp_quadruped.png" def getUserDetail(opt1, opt2, cancel, userMessage): """ Ask user the detail level we'll create the guides by a confirm dialog box window. Options: Simple Complete Returns the user choose option or None if canceled. """ result = cmds.confirmDialog(title=CLASS_NAME, message=userMessage, button=[opt1, opt2, cancel], defaultButton=opt2, cancelButton=cancel, dismissString=cancel) return result def Quadruped(dpUIinst): """ This function will create all guides needed to compose a quadruped. """ # check modules integrity: guideDir = 'Modules' checkModuleList = ['dpLimb', 'dpFoot', 'dpSpine', 'dpHead', 'dpFkLine', 'dpEye'] checkResultList = dpUIinst.startGuideModules(guideDir, "check", None, checkModuleList=checkModuleList) if len(checkResultList) == 0: # defining naming: doingName = dpUIinst.langDic[dpUIinst.langName]['m094_doing'] bipedStyleName = dpUIinst.langDic[dpUIinst.langName]['m026_biped'] quadrupedStyleName = dpUIinst.langDic[dpUIinst.langName]['m155_quadrupedExtra'] # part names: spineName = dpUIinst.langDic[dpUIinst.langName]['m011_spine'] neckName = dpUIinst.langDic[dpUIinst.langName]['c023_neck'] headName = dpUIinst.langDic[dpUIinst.langName]['c024_head'] eyeName = dpUIinst.langDic[dpUIinst.langName]['c036_eye'] legName = dpUIinst.langDic[dpUIinst.langName]['m030_leg'].capitalize() footName = dpUIinst.langDic[dpUIinst.langName]['c038_foot'] earName = dpUIinst.langDic[dpUIinst.langName]['m040_ear'] upperTeethName = dpUIinst.langDic[dpUIinst.langName]['m075_upperTeeth'] upperTeethMiddleName = dpUIinst.langDic[dpUIinst.langName]['m075_upperTeeth']+dpUIinst.langDic[dpUIinst.langName]['c029_middle'].capitalize() upperTeethSideName = dpUIinst.langDic[dpUIinst.langName]['m075_upperTeeth']+dpUIinst.langDic[dpUIinst.langName]['c016_RevFoot_G'].capitalize() lowerTeethName = dpUIinst.langDic[dpUIinst.langName]['m076_lowerTeeth'] lowerTeethMiddleName = dpUIinst.langDic[dpUIinst.langName]['m076_lowerTeeth']+dpUIinst.langDic[dpUIinst.langName]['c029_middle'].capitalize() lowerTeethSideName = dpUIinst.langDic[dpUIinst.langName]['m076_lowerTeeth']+dpUIinst.langDic[dpUIinst.langName]['c016_RevFoot_G'].capitalize() noseName = dpUIinst.langDic[dpUIinst.langName]['m078_nose'] nostrilName = dpUIinst.langDic[dpUIinst.langName]['m079_nostril'] tongueName = dpUIinst.langDic[dpUIinst.langName]['m077_tongue'] tailName = dpUIinst.langDic[dpUIinst.langName]['m039_tail'] toeName = dpUIinst.langDic[dpUIinst.langName]['c013_RevFoot_D'].capitalize() frontName = dpUIinst.langDic[dpUIinst.langName]['c056_front'] backName = dpUIinst.langDic[dpUIinst.langName]['c057_back'] simple = dpUIinst.langDic[dpUIinst.langName]['i175_simple'] complete = dpUIinst.langDic[dpUIinst.langName]['i176_complete'] cancel = dpUIinst.langDic[dpUIinst.langName]['i132_cancel'] userMessage = dpUIinst.langDic[dpUIinst.langName]['i177_chooseMessage'] # getting Simple or Complete module guides to create: userDetail = getUserDetail(simple, complete, cancel, userMessage) if not userDetail == cancel: # number of modules to create: if userDetail == simple: maxProcess = 8 else: maxProcess = 21 # Starting progress window progressAmount = 0 cmds.progressWindow(title='Quadruped Guides', progress=progressAmount, status=doingName+': 0%', isInterruptable=False) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+spineName)) # woking with SPINE system: # create spine module instance: spineInstance = dpUIinst.initGuide('dpSpine', guideDir, RigType.quadruped) # editing spine base guide informations: spineInstance.editUserName(spineName) cmds.setAttr(spineInstance.moduleGrp+".translateY", 10) cmds.setAttr(spineInstance.moduleGrp+".translateZ", -5) cmds.setAttr(spineInstance.moduleGrp+".rotateX", 0) cmds.setAttr(spineInstance.moduleGrp+".rotateY", 0) cmds.setAttr(spineInstance.moduleGrp+".rotateZ", 90) cmds.setAttr(spineInstance.cvLocator+".translateZ", 6) cmds.setAttr(spineInstance.annotation+".translateX", 6) cmds.setAttr(spineInstance.annotation+".translateY", 0) spineInstance.changeStyle(bipedStyleName) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+headName)) # woking with HEAD system: # create head module instance: headInstance = dpUIinst.initGuide('dpHead', guideDir, RigType.quadruped) # editing head base guide informations: headInstance.editUserName(headName) cmds.setAttr(headInstance.moduleGrp+".translateY", 11) cmds.setAttr(headInstance.moduleGrp+".translateZ", 7) cmds.setAttr(headInstance.moduleGrp+".rotateX", 0) cmds.setAttr(headInstance.moduleGrp+".rotateY", 45) cmds.setAttr(headInstance.moduleGrp+".rotateZ", 90) cmds.setAttr(headInstance.cvNeckLoc+".rotateX", 0) cmds.setAttr(headInstance.cvNeckLoc+".rotateZ", -90) cmds.setAttr(headInstance.cvHeadLoc+".translateY", 0) cmds.setAttr(headInstance.cvHeadLoc+".translateZ", 2.5) cmds.setAttr(headInstance.cvHeadLoc+".rotateX", 45) cmds.setAttr(headInstance.cvJawLoc+".translateY", -1.0) cmds.setAttr(headInstance.cvJawLoc+".translateZ", 2.0) cmds.setAttr(headInstance.cvJawLoc+".rotateY", 0) cmds.setAttr(headInstance.cvLLipLoc+".translateX", 0.6) cmds.setAttr(headInstance.cvLLipLoc+".translateY", -0.15) cmds.setAttr(headInstance.cvLLipLoc+".translateZ", 1.6) cmds.setAttr(headInstance.annotation+".translateX", 4) cmds.setAttr(headInstance.annotation+".translateY", 0) # parent head guide to chest guide: cmds.parent(headInstance.moduleGrp, spineInstance.cvLocator, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+eyeName)) # woking with Eye system: # create eyeLookAt module instance: eyeInstance = dpUIinst.initGuide('dpEye', guideDir, RigType.quadruped) # setting X mirror: eyeInstance.changeMirror("X") # editing eyeLookAt base guide informations: eyeInstance.editUserName(eyeName) cmds.setAttr(eyeInstance.moduleGrp+".translateX", 0.5) cmds.setAttr(eyeInstance.moduleGrp+".translateY", 13.5) cmds.setAttr(eyeInstance.moduleGrp+".translateZ", 11) cmds.setAttr(eyeInstance.annotation+".translateY", 3.5) cmds.setAttr(eyeInstance.radiusCtrl+".translateX", 0.5) cmds.setAttr(eyeInstance.cvEndJoint+".translateZ", 7) cmds.setAttr(eyeInstance.moduleGrp+".flip", 1) # parent head guide to spine guide: cmds.parent(eyeInstance.moduleGrp, headInstance.cvHeadLoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+legName)) # working with BACK LEG (B) system: # create back leg module instance: backLegLimbInstance = dpUIinst.initGuide('dpLimb', guideDir, RigType.quadruped) # change limb guide to back leg type: backLegLimbInstance.changeType(legName) # change limb guide to back leg style (quadruped): backLegLimbInstance.changeStyle(quadrupedStyleName) # set for not use bend ribbons as default: backLegLimbInstance.setBendFalse(backLegLimbInstance) # change name to back leg: backLegLimbInstance.editUserName(legName+backName) cmds.setAttr(backLegLimbInstance.annotation+".translateY", -4) # editing back leg base guide informations: backLegBaseGuide = backLegLimbInstance.moduleGrp cmds.setAttr(backLegBaseGuide+".type", 1) cmds.setAttr(backLegBaseGuide+".translateX", 3) cmds.setAttr(backLegBaseGuide+".translateY", 9.5) cmds.setAttr(backLegBaseGuide+".translateZ", -6.5) cmds.setAttr(backLegBaseGuide+".rotateX", 0) # edit before, main and corners: cmds.setAttr(backLegLimbInstance.cvBeforeLoc+".translateX", 1) cmds.setAttr(backLegLimbInstance.cvBeforeLoc+".translateY", 0,5) cmds.setAttr(backLegLimbInstance.cvBeforeLoc+".translateZ", -2.5) cmds.setAttr(backLegLimbInstance.cvBeforeLoc+".rotateX", 20) cmds.setAttr(backLegLimbInstance.cvBeforeLoc+".rotateY", 10) cmds.setAttr(backLegLimbInstance.cvBeforeLoc+".rotateZ", -105) cmds.setAttr(backLegLimbInstance.cvMainLoc+".rotateY", 25) cmds.setAttr(backLegLimbInstance.cvCornerLoc+".translateX", 0.7) cmds.setAttr(backLegLimbInstance.cvCornerLoc+".translateZ", -0.7) # edit location of back leg ankle guide: cmds.setAttr(backLegLimbInstance.cvExtremLoc+".translateZ", 8) # edit location of double back leg joint: cmds.setAttr(backLegLimbInstance.cvCornerBLoc+".translateX", -2) # parent back leg guide to spine base guide: cmds.parent(backLegBaseGuide, spineInstance.moduleGrp, absolute=True) # setting X mirror: backLegLimbInstance.changeMirror("X") # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+footName)) # create BACK FOOT (B) module instance: backFootInstance = dpUIinst.initGuide('dpFoot', guideDir, RigType.quadruped) backFootInstance.editUserName(footName+backName) cmds.setAttr(backFootInstance.annotation+".translateY", -3) cmds.setAttr(backFootInstance.moduleGrp+".translateX", 3) cmds.setAttr(backFootInstance.moduleGrp+".translateZ", -6.5) cmds.setAttr(backFootInstance.cvFootLoc+".translateZ", 1.5) cmds.setAttr(backFootInstance.cvRFALoc+".translateX", 0) cmds.setAttr(backFootInstance.cvRFBLoc+".translateX", 0) cmds.setAttr(backFootInstance.cvRFDLoc+".translateX", -1.5) cmds.setAttr(backFootInstance.cvRFELoc+".translateZ", 1) # parent back foot guide to back leg ankle guide: cmds.parent(backFootInstance.moduleGrp, backLegLimbInstance.cvExtremLoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+legName)) # working with FRONT LEG (A) system: # create front leg module instance: frontLegLimbInstance = dpUIinst.initGuide('dpLimb', guideDir, RigType.quadruped) # change limb guide to front leg type: frontLegLimbInstance.changeType(legName) # change limb guide to front leg style (biped): frontLegLimbInstance.changeStyle(quadrupedStyleName) # set for not use bend ribbons as default: frontLegLimbInstance.setBendFalse(frontLegLimbInstance) # change name to front leg: frontLegLimbInstance.editUserName(legName+frontName) cmds.setAttr(frontLegLimbInstance.annotation+".translateY", -4) # editing front leg base guide informations: frontLegBaseGuide = frontLegLimbInstance.moduleGrp cmds.setAttr(frontLegBaseGuide+".type", 1) cmds.setAttr(frontLegBaseGuide+".translateX", 2.5) cmds.setAttr(frontLegBaseGuide+".translateY", 8) cmds.setAttr(frontLegBaseGuide+".translateZ", 5.5) cmds.setAttr(frontLegBaseGuide+".rotateX", 0) # edit before, main and corners: cmds.setAttr(frontLegLimbInstance.cvBeforeLoc+".translateX", -0.75) cmds.setAttr(frontLegLimbInstance.cvBeforeLoc+".translateY", 0.5) cmds.setAttr(frontLegLimbInstance.cvBeforeLoc+".translateZ", -2.5) cmds.setAttr(frontLegLimbInstance.cvBeforeLoc+".rotateX", -15) cmds.setAttr(frontLegLimbInstance.cvBeforeLoc+".rotateY", 15) cmds.setAttr(frontLegLimbInstance.cvBeforeLoc+".rotateZ", -90) cmds.setAttr(frontLegLimbInstance.cvMainLoc+".rotateY", -27) cmds.setAttr(frontLegLimbInstance.cvCornerLoc+".translateX", -2.0) cmds.setAttr(frontLegLimbInstance.cvCornerLoc+".translateZ", -0.6) # edit location of front leg ankle guide: cmds.setAttr(frontLegLimbInstance.cvExtremLoc+".translateZ", 6.5) # edit location of double front leg joint: cmds.setAttr(frontLegLimbInstance.cvCornerBLoc+".translateX", 1.75) cmds.setAttr(frontLegLimbInstance.cvCornerBLoc+".translateZ", 2.75) cmds.setAttr(frontLegLimbInstance.cvCornerBLoc+".rotateY", 10) # parent front leg guide to spine chest guide: cmds.parent(frontLegBaseGuide, spineInstance.cvLocator, absolute=True) # setting X mirror: frontLegLimbInstance.changeMirror("X") # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+footName)) # create FRONT FOOT (A) module instance: frontFootInstance = dpUIinst.initGuide('dpFoot', guideDir, RigType.quadruped) frontFootInstance.editUserName(footName+frontName) cmds.setAttr(frontFootInstance.annotation+".translateY", -3) cmds.setAttr(frontFootInstance.moduleGrp+".translateX", 2.5) cmds.setAttr(frontFootInstance.moduleGrp+".translateZ", 5.5) cmds.setAttr(frontFootInstance.cvFootLoc+".translateZ", 1.5) cmds.setAttr(frontFootInstance.cvRFALoc+".translateX", 0) cmds.setAttr(frontFootInstance.cvRFBLoc+".translateX", 0) cmds.setAttr(frontFootInstance.cvRFDLoc+".translateX", -1.5) cmds.setAttr(frontFootInstance.cvRFELoc+".translateZ", 1) # parent fron foot guide to front leg ankle guide: cmds.parent(frontFootInstance.moduleGrp, frontLegLimbInstance.cvExtremLoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+tailName)) # woking with TAIL system: # create FkLine module instance: tailInstance = dpUIinst.initGuide('dpFkLine', guideDir, RigType.quadruped) # editing tail base guide informations: tailInstance.editUserName(tailName) cmds.setAttr(tailInstance.moduleGrp+".translateY", 9.8) cmds.setAttr(tailInstance.moduleGrp+".translateZ", -7.6) cmds.setAttr(tailInstance.moduleGrp+".rotateX", 180) cmds.setAttr(tailInstance.moduleGrp+".rotateY", 20) cmds.setAttr(tailInstance.moduleGrp+".rotateZ", 90) cmds.setAttr(tailInstance.annotation+".translateX", 4) cmds.setAttr(tailInstance.annotation+".translateY", 0) cmds.setAttr(tailInstance.radiusCtrl+".translateX", 1) # change the number of joints to the tail module: tailInstance.changeJointNumber(3) # parent tail guide to spine guide: cmds.parent(tailInstance.moduleGrp, spineInstance.moduleGrp, absolute=True) # complete part: if userDetail == complete: # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+earName)) # woking with EAR system: # create FkLine module instance: earInstance = dpUIinst.initGuide('dpFkLine', guideDir, RigType.quadruped) # editing ear base guide informations: earInstance.editUserName(earName) cmds.setAttr(earInstance.moduleGrp+".translateX", 0.8) cmds.setAttr(earInstance.moduleGrp+".translateY", 14.5) cmds.setAttr(earInstance.moduleGrp+".translateZ", 10) cmds.setAttr(earInstance.moduleGrp+".rotateX", 90) cmds.setAttr(earInstance.moduleGrp+".rotateY", 20) cmds.setAttr(earInstance.moduleGrp+".rotateZ", 127) cmds.setAttr(earInstance.annotation+".translateX", 4) cmds.setAttr(earInstance.annotation+".translateY", 0) cmds.setAttr(earInstance.annotation+".translateZ", 1.4) cmds.setAttr(earInstance.radiusCtrl+".translateX", 1) # change the number of joints to the ear module: earInstance.changeJointNumber(2) # parent ear guide to spine guide: cmds.parent(earInstance.moduleGrp, headInstance.cvHeadLoc, absolute=True) cmds.setAttr(earInstance.moduleGrp+".scaleX", 0.5) cmds.setAttr(earInstance.moduleGrp+".scaleY", 0.5) cmds.setAttr(earInstance.moduleGrp+".scaleZ", 0.5) # setting X mirror: earInstance.changeMirror("X") cmds.setAttr(earInstance.moduleGrp+".flip", 1) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+upperTeethName)) # woking with Teeth system: # create FkLine module instance: upperTeethInstance = dpUIinst.initGuide('dpFkLine', guideDir) # editing upperTeeth base guide informations: upperTeethInstance.editUserName(upperTeethName) cmds.setAttr(upperTeethInstance.moduleGrp+".translateY", 12.5) cmds.setAttr(upperTeethInstance.moduleGrp+".translateZ", 12.7) cmds.setAttr(upperTeethInstance.radiusCtrl+".translateX", 0.5) cmds.setAttr(upperTeethInstance.cvEndJoint+".translateZ", 0.1) cmds.setAttr(upperTeethInstance.moduleGrp+".shapeSize", 0.5) # create FkLine module instance: upperTeethMiddleInstance = dpUIinst.initGuide('dpFkLine', guideDir) # editing upperTeethMiddle base guide informations: upperTeethMiddleInstance.editUserName(upperTeethMiddleName) cmds.setAttr(upperTeethMiddleInstance.moduleGrp+".translateY", 12.3) cmds.setAttr(upperTeethMiddleInstance.moduleGrp+".translateZ", 12.7) cmds.setAttr(upperTeethMiddleInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(upperTeethMiddleInstance.cvEndJoint+".translateZ", 0.1) cmds.setAttr(upperTeethMiddleInstance.moduleGrp+".shapeSize", 0.3) upperTeethMiddleInstance.displayAnnotation(0) # parent upperTeethMiddle guide to upperTeeth guide: cmds.parent(upperTeethMiddleInstance.moduleGrp, upperTeethInstance.cvJointLoc, absolute=True) # create FkLine module instance: upperTeethSideInstance = dpUIinst.initGuide('dpFkLine', guideDir) # editing upperTeethSide base guide informations: upperTeethSideInstance.editUserName(upperTeethSideName) cmds.setAttr(upperTeethSideInstance.moduleGrp+".translateX", 0.2) cmds.setAttr(upperTeethSideInstance.moduleGrp+".translateY", 12.3) cmds.setAttr(upperTeethSideInstance.moduleGrp+".translateZ", 12.3) cmds.setAttr(upperTeethSideInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(upperTeethSideInstance.cvEndJoint+".translateZ", 0.1) cmds.setAttr(upperTeethSideInstance.moduleGrp+".shapeSize", 0.3) upperTeethSideInstance.changeMirror("X") cmds.setAttr(upperTeethSideInstance.moduleGrp+".flip", 1) upperTeethSideInstance.displayAnnotation(0) # parent upperTeethSide guide to upperTeeth guide: cmds.parent(upperTeethSideInstance.moduleGrp, upperTeethInstance.cvJointLoc, absolute=True) # create FkLine module instance: lowerTeethInstance = dpUIinst.initGuide('dpFkLine', guideDir) # editing lowerTeeth base guide informations: lowerTeethInstance.editUserName(lowerTeethName) cmds.setAttr(lowerTeethInstance.moduleGrp+".translateY", 11.7) cmds.setAttr(lowerTeethInstance.moduleGrp+".translateZ", 12.7) cmds.setAttr(lowerTeethInstance.radiusCtrl+".translateX", 0.5) cmds.setAttr(lowerTeethInstance.cvEndJoint+".translateZ", 0.1) cmds.setAttr(lowerTeethInstance.moduleGrp+".shapeSize", 0.5) # parent lowerTeeth guide to head guide: cmds.parent(lowerTeethInstance.moduleGrp, headInstance.cvChinLoc, absolute=True) # create FkLine module instance: lowerTeethMiddleInstance = dpUIinst.initGuide('dpFkLine', guideDir) # editing lowerTeethMiddle base guide informations: lowerTeethMiddleInstance.editUserName(lowerTeethMiddleName) cmds.setAttr(lowerTeethMiddleInstance.moduleGrp+".translateY", 11.9) cmds.setAttr(lowerTeethMiddleInstance.moduleGrp+".translateZ", 12.7) cmds.setAttr(lowerTeethMiddleInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(lowerTeethMiddleInstance.cvEndJoint+".translateZ", 0.1) cmds.setAttr(lowerTeethMiddleInstance.moduleGrp+".shapeSize", 0.3) lowerTeethMiddleInstance.displayAnnotation(0) # parent lowerTeeth guide to lowerTeeth guide: cmds.parent(lowerTeethMiddleInstance.moduleGrp, lowerTeethInstance.cvJointLoc, absolute=True) # create FkLine module instance: lowerTeethSideInstance = dpUIinst.initGuide('dpFkLine', guideDir) # editing lowerTeethSide base guide informations: lowerTeethSideInstance.editUserName(lowerTeethSideName) cmds.setAttr(lowerTeethSideInstance.moduleGrp+".translateX", 0.2) cmds.setAttr(lowerTeethSideInstance.moduleGrp+".translateY", 11.9) cmds.setAttr(lowerTeethSideInstance.moduleGrp+".translateZ", 12.3) cmds.setAttr(lowerTeethSideInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(lowerTeethSideInstance.cvEndJoint+".translateZ", 0.1) cmds.setAttr(lowerTeethSideInstance.moduleGrp+".shapeSize", 0.3) lowerTeethSideInstance.changeMirror("X") cmds.setAttr(lowerTeethSideInstance.moduleGrp+".flip", 1) lowerTeethSideInstance.displayAnnotation(0) # parent lowerTeethSide guide to lowerTeeth guide: cmds.parent(lowerTeethSideInstance.moduleGrp, lowerTeethInstance.cvJointLoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+tongueName)) # woking with Tongue system: # create FkLine module instance: tongueInstance = dpUIinst.initGuide('dpFkLine', guideDir) # editing tongue base guide informations: tongueInstance.editUserName(tongueName) cmds.setAttr(tongueInstance.moduleGrp+".translateY", 12) cmds.setAttr(tongueInstance.moduleGrp+".translateZ", 12) cmds.setAttr(tongueInstance.radiusCtrl+".translateX", 0.35) tongueInstance.changeJointNumber(2) cmds.setAttr(tongueInstance.moduleGrp+".nJoints", 2) cmds.setAttr(tongueInstance.cvJointLoc+".translateZ", 0.3) tongueInstance.changeJointNumber(3) cmds.setAttr(tongueInstance.moduleGrp+".nJoints", 3) cmds.setAttr(tongueInstance.cvJointLoc+".translateZ", 0.3) cmds.setAttr(tongueInstance.cvEndJoint+".translateZ", 0.2) cmds.setAttr(tongueInstance.moduleGrp+".shapeSize", 0.4) # parent tongue guide to head guide: cmds.parent(tongueInstance.moduleGrp, headInstance.cvChinLoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+noseName)) # woking with Nose and Nostril systems: # create FkLine module instance: noseInstance = dpUIinst.initGuide('dpFkLine', guideDir) # editing upperTeeth base guide informations: noseInstance.editUserName(noseName) cmds.setAttr(noseInstance.moduleGrp+".translateY", 13) cmds.setAttr(noseInstance.moduleGrp+".translateZ", 11.5) cmds.setAttr(noseInstance.radiusCtrl+".translateX", 0.3) noseInstance.changeJointNumber(2) cmds.setAttr(noseInstance.moduleGrp+".nJoints", 2) cmds.setAttr(noseInstance.cvJointLoc+".translateY", -0.2) cmds.setAttr(noseInstance.cvJointLoc+".translateZ", 0.7) cmds.setAttr(noseInstance.cvEndJoint+".translateZ", 0.1) cmds.setAttr(noseInstance.moduleGrp+".shapeSize", 0.5) storedNose2Guide = noseInstance.cvJointLoc # adding a new nose point segment to quadrupeds: noseInstance.changeJointNumber(3) cmds.setAttr(noseInstance.moduleGrp+".nJoints", 3) cmds.setAttr(noseInstance.cvJointLoc+".translateZ", 0.7) cmds.setAttr(noseInstance.cvEndJoint+".translateZ", 0.1) # parent nose guide to head guide: cmds.parent(noseInstance.moduleGrp, headInstance.cvHeadLoc, absolute=True) # parent upperTeeth guide to Nose1 guide: cmds.parent(upperTeethInstance.moduleGrp, noseInstance.moduleGrp, absolute=True) # create FkLine module instance: nostrilInstance = dpUIinst.initGuide('dpFkLine', guideDir) # editing nostril base guide informations: nostrilInstance.editUserName(nostrilName) cmds.setAttr(nostrilInstance.moduleGrp+".translateX", 0.33) cmds.setAttr(nostrilInstance.moduleGrp+".translateY", 12.7) cmds.setAttr(nostrilInstance.moduleGrp+".translateZ", 12.8) cmds.setAttr(nostrilInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(nostrilInstance.cvEndJoint+".translateZ", 0.1) cmds.setAttr(nostrilInstance.moduleGrp+".shapeSize", 0.3) # setting X mirror: nostrilInstance.changeMirror("X") cmds.setAttr(nostrilInstance.moduleGrp+".flip", 1) # parent nostril guide to nose guide: cmds.parent(nostrilInstance.moduleGrp, storedNose2Guide, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+toeName+frontName+'_1')) # create toe1 module instance: toe1FrontInstance = dpUIinst.initGuide('dpFkLine', guideDir) # change name to toe: toe1FrontInstance.editUserName(toeName+frontName+"_1") # editing toe base guide informations: cmds.setAttr(toe1FrontInstance.moduleGrp+".shapeSize", 0.3) cmds.setAttr(toe1FrontInstance.moduleGrp+".translateX", 2) cmds.setAttr(toe1FrontInstance.moduleGrp+".translateY", 0.5) cmds.setAttr(toe1FrontInstance.moduleGrp+".translateZ", 6.7) toe1FrontInstance.changeJointNumber(2) cmds.setAttr(toe1FrontInstance.cvJointLoc+".translateZ", 0.25) toe1FrontInstance.changeJointNumber(3) cmds.setAttr(toe1FrontInstance.cvJointLoc+".translateZ", 0.25) cmds.setAttr(toe1FrontInstance.cvEndJoint+".translateZ", 0.2) cmds.setAttr(toe1FrontInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(toe1FrontInstance.moduleGrp+".flip", 1) toe1FrontInstance.displayAnnotation(0) # parent toe1 guide to foot middle guide: cmds.parent(toe1FrontInstance.moduleGrp, frontFootInstance.cvRFELoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+toeName+frontName+'_2')) # create toe2 module instance: toe2FrontInstance = dpUIinst.initGuide('dpFkLine', guideDir) # change name to toe: toe2FrontInstance.editUserName(toeName+frontName+"_2") # editing toe base guide informations: cmds.setAttr(toe2FrontInstance.moduleGrp+".shapeSize", 0.3) cmds.setAttr(toe2FrontInstance.moduleGrp+".translateX", 2.35) cmds.setAttr(toe2FrontInstance.moduleGrp+".translateY", 0.5) cmds.setAttr(toe2FrontInstance.moduleGrp+".translateZ", 6.7) toe2FrontInstance.changeJointNumber(2) cmds.setAttr(toe2FrontInstance.cvJointLoc+".translateZ", 0.25) toe2FrontInstance.changeJointNumber(3) cmds.setAttr(toe2FrontInstance.cvJointLoc+".translateZ", 0.25) cmds.setAttr(toe2FrontInstance.cvEndJoint+".translateZ", 0.2) cmds.setAttr(toe2FrontInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(toe2FrontInstance.moduleGrp+".flip", 1) toe2FrontInstance.displayAnnotation(0) # parent toe1 guide to foot middle guide: cmds.parent(toe2FrontInstance.moduleGrp, frontFootInstance.cvRFELoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+toeName+frontName+'_3')) # create toe3 module instance: toe3FrontInstance = dpUIinst.initGuide('dpFkLine', guideDir) # change name to toe: toe3FrontInstance.editUserName(toeName+frontName+"_3") # editing toe base guide informations: cmds.setAttr(toe3FrontInstance.moduleGrp+".shapeSize", 0.3) cmds.setAttr(toe3FrontInstance.moduleGrp+".translateX", 2.65) cmds.setAttr(toe3FrontInstance.moduleGrp+".translateY", 0.5) cmds.setAttr(toe3FrontInstance.moduleGrp+".translateZ", 6.7) toe3FrontInstance.changeJointNumber(2) cmds.setAttr(toe3FrontInstance.cvJointLoc+".translateZ", 0.25) toe3FrontInstance.changeJointNumber(3) cmds.setAttr(toe3FrontInstance.cvJointLoc+".translateZ", 0.25) cmds.setAttr(toe3FrontInstance.cvEndJoint+".translateZ", 0.2) cmds.setAttr(toe3FrontInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(toe3FrontInstance.moduleGrp+".flip", 1) toe3FrontInstance.displayAnnotation(0) # parent toe1 guide to foot middle guide: cmds.parent(toe3FrontInstance.moduleGrp, frontFootInstance.cvRFELoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+toeName+frontName+'_4')) # create toe4 module instance: toe4FrontInstance = dpUIinst.initGuide('dpFkLine', guideDir) # change name to toe: toe4FrontInstance.editUserName(toeName+frontName+"_4") # editing toe base guide informations: cmds.setAttr(toe4FrontInstance.moduleGrp+".shapeSize", 0.3) cmds.setAttr(toe4FrontInstance.moduleGrp+".translateX", 2.95) cmds.setAttr(toe4FrontInstance.moduleGrp+".translateY", 0.5) cmds.setAttr(toe4FrontInstance.moduleGrp+".translateZ", 6.7) toe4FrontInstance.changeJointNumber(2) cmds.setAttr(toe4FrontInstance.cvJointLoc+".translateZ", 0.25) toe4FrontInstance.changeJointNumber(3) cmds.setAttr(toe4FrontInstance.cvJointLoc+".translateZ", 0.25) cmds.setAttr(toe4FrontInstance.cvEndJoint+".translateZ", 0.2) cmds.setAttr(toe4FrontInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(toe4FrontInstance.moduleGrp+".flip", 1) toe4FrontInstance.displayAnnotation(0) # parent toe4 guide to foot middle guide: cmds.parent(toe4FrontInstance.moduleGrp, frontFootInstance.cvRFELoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+toeName+backName+'_1')) # create toe1 module instance: toe1BackInstance = dpUIinst.initGuide('dpFkLine', guideDir) # change name to toe: toe1BackInstance.editUserName(toeName+backName+"_1") # editing toe base guide informations: cmds.setAttr(toe1BackInstance.moduleGrp+".shapeSize", 0.3) cmds.setAttr(toe1BackInstance.moduleGrp+".translateX", 2.5) cmds.setAttr(toe1BackInstance.moduleGrp+".translateY", 0.5) cmds.setAttr(toe1BackInstance.moduleGrp+".translateZ", -5.33) toe1BackInstance.changeJointNumber(2) cmds.setAttr(toe1BackInstance.cvJointLoc+".translateZ", 0.25) toe1BackInstance.changeJointNumber(3) cmds.setAttr(toe1BackInstance.cvJointLoc+".translateZ", 0.25) cmds.setAttr(toe1BackInstance.cvEndJoint+".translateZ", 0.2) cmds.setAttr(toe1BackInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(toe1BackInstance.moduleGrp+".flip", 1) toe1BackInstance.displayAnnotation(0) # parent toe1 guide to foot middle guide: cmds.parent(toe1BackInstance.moduleGrp, backFootInstance.cvRFELoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+toeName+backName+'_2')) # create toe2 module instance: toe2BackInstance = dpUIinst.initGuide('dpFkLine', guideDir) # change name to toe: toe2BackInstance.editUserName(toeName+backName+"_2") # editing toe base guide informations: cmds.setAttr(toe2BackInstance.moduleGrp+".shapeSize", 0.3) cmds.setAttr(toe2BackInstance.moduleGrp+".translateX", 2.85) cmds.setAttr(toe2BackInstance.moduleGrp+".translateY", 0.5) cmds.setAttr(toe2BackInstance.moduleGrp+".translateZ", -5.33) toe2BackInstance.changeJointNumber(2) cmds.setAttr(toe2BackInstance.cvJointLoc+".translateZ", 0.25) toe2BackInstance.changeJointNumber(3) cmds.setAttr(toe2BackInstance.cvJointLoc+".translateZ", 0.25) cmds.setAttr(toe2BackInstance.cvEndJoint+".translateZ", 0.2) cmds.setAttr(toe2BackInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(toe2BackInstance.moduleGrp+".flip", 1) toe2BackInstance.displayAnnotation(0) # parent toe1 guide to foot middle guide: cmds.parent(toe2BackInstance.moduleGrp, backFootInstance.cvRFELoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+toeName+backName+'_3')) # create toe3 module instance: toe3BackInstance = dpUIinst.initGuide('dpFkLine', guideDir) # change name to toe: toe3BackInstance.editUserName(toeName+backName+"_3") # editing toe base guide informations: cmds.setAttr(toe3BackInstance.moduleGrp+".shapeSize", 0.3) cmds.setAttr(toe3BackInstance.moduleGrp+".translateX", 3.15) cmds.setAttr(toe3BackInstance.moduleGrp+".translateY", 0.5) cmds.setAttr(toe3BackInstance.moduleGrp+".translateZ", -5.33) toe3BackInstance.changeJointNumber(2) cmds.setAttr(toe3BackInstance.cvJointLoc+".translateZ", 0.25) toe3BackInstance.changeJointNumber(3) cmds.setAttr(toe3BackInstance.cvJointLoc+".translateZ", 0.25) cmds.setAttr(toe3BackInstance.cvEndJoint+".translateZ", 0.2) cmds.setAttr(toe3BackInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(toe3BackInstance.moduleGrp+".flip", 1) toe3BackInstance.displayAnnotation(0) # parent toe1 guide to foot middle guide: cmds.parent(toe3BackInstance.moduleGrp, backFootInstance.cvRFELoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+toeName+backName+'_4')) # create toe4 module instance: toe4BackInstance = dpUIinst.initGuide('dpFkLine', guideDir) # change name to toe: toe4BackInstance.editUserName(toeName+backName+"_4") # editing toe base guide informations: cmds.setAttr(toe4BackInstance.moduleGrp+".shapeSize", 0.3) cmds.setAttr(toe4BackInstance.moduleGrp+".translateX", 3.45) cmds.setAttr(toe4BackInstance.moduleGrp+".translateY", 0.5) cmds.setAttr(toe4BackInstance.moduleGrp+".translateZ", -5.33) toe4BackInstance.changeJointNumber(2) cmds.setAttr(toe4BackInstance.cvJointLoc+".translateZ", 0.25) toe4BackInstance.changeJointNumber(3) cmds.setAttr(toe4BackInstance.cvJointLoc+".translateZ", 0.25) cmds.setAttr(toe4BackInstance.cvEndJoint+".translateZ", 0.2) cmds.setAttr(toe4BackInstance.radiusCtrl+".translateX", 0.2) cmds.setAttr(toe4BackInstance.moduleGrp+".flip", 1) toe4BackInstance.displayAnnotation(0) # parent toe4 guide to foot middle guide: cmds.parent(toe4BackInstance.moduleGrp, backFootInstance.cvRFELoc, absolute=True) # Update progress window progressAmount += 1 cmds.progressWindow(edit=True, maxValue=maxProcess, progress=progressAmount, status=(doingName+': ' + `progressAmount` + ' '+neckName)) # woking with NeckBase system: # create fkLine module instance: neckBaseInstance = dpUIinst.initGuide('dpFkLine', guideDir, RigType.quadruped) # editing fkLine base guide informations: neckBaseInstance.editUserName(neckName+"Base") cmds.setAttr(neckBaseInstance.moduleGrp+".translateY", 9.5) cmds.setAttr(neckBaseInstance.moduleGrp+".translateZ", 5.5) cmds.setAttr(neckBaseInstance.moduleGrp+".rotateX", -45) cmds.setAttr(neckBaseInstance.radiusCtrl+".translateX", 2.8) # parent neckBase guide to spine guide: cmds.parent(neckBaseInstance.moduleGrp, spineInstance.cvLocator, absolute=True) # parent head guide to neckBase guide: cmds.parent(headInstance.moduleGrp, neckBaseInstance.cvJointLoc, absolute=True) # Close progress window cmds.progressWindow(endProgress=True) # select spineGuide_Base: cmds.select(spineInstance.moduleGrp) print dpUIinst.langDic[dpUIinst.langName]['m090_createdQuadruped']+"\n", else: # error checking modules in the folder: mel.eval('error \"'+ dpUIinst.langDic[dpUIinst.langName]['e001_GuideNotChecked'] +' - '+ (", ").join(checkResultList) +'\";')