Skip to content

Instantly share code, notes, and snippets.

@boredstiff
Last active August 29, 2015 14:10
Show Gist options
  • Save boredstiff/043d2ffc799d2335bb77 to your computer and use it in GitHub Desktop.
Save boredstiff/043d2ffc799d2335bb77 to your computer and use it in GitHub Desktop.
AwAddAttributes
"""
"""
import maya.cmds as cmds
import pymel.core as pmc
w=150
class awAttributeAdder():
def __init__(self):
if cmds.window('awFaceAttrs', exists=True):
cmds.deleteUI('awFaceAttrs')
self.uiElements = {}
self.uiElements["window"] = cmds.window('awFaceAttrs', w=300, h=500, sizeable=True, resizeToFitChildren=True)
self.uiElements["mainColumnLO"] = cmds.columnLayout()
self.uiElements["Regulars"] = cmds.frameLayout('Regulars', borderStyle='etchedIn', w=300, collapsable=True, collapse=False, p=self.uiElements["mainColumnLO"])
cmds.rowColumnLayout(nc=2, cw=(w, w))
self.uiElements["hideTranslateButton"] = cmds.button('Hide Translate', w=w)
self.uiElements["hideRotateButton"] = cmds.button('Hide Rotate', w=w)
self.uiElements["hideScaleButton"] = cmds.button('Hide Scale', w=w)
self.uiElements["hideAllButton"] = cmds.button('Hide All', w=w)
cmds.separator(h=5, style='none')
cmds.separator(h=5, style='none')
self.uiElements["lockHideTranslateButton"] = cmds.button('Lock/Hide Translate', w=w)
self.uiElements["lockHideRotateButton"] = cmds.button('Lock/Hide Rotate', w=w)
self.uiElements["lockHideScaleButton"] = cmds.button('Lock/Hide Scale', w=w)
self.uiElements["lockHideAllButton"] = cmds.button('Lock/Hide All', w=w)
cmds.separator(h=5, style='none')
cmds.separator(h=5, style='none')
self.uiElements["FaceLO"] = cmds.frameLayout('Face', borderStyle='etchedIn', w=300, collapsable=True, collapse=False, p=self.uiElements["mainColumnLO"])
cmds.rowColumnLayout(nc=2, cw=(w, w))
cmds.separator(h=5, style='none')
cmds.separator(h=5, style='none')
self.uiElements["eyebrowsButton"] = cmds.button('Eyebrows', w=w, c=self.faceEyeBrows)
self.uiElements["eyeLidsButton"] = cmds.button('Eyelids', w=w, c=self.eyeAttrs)
self.uiElements["cheeksButton"] = cmds.button('Cheeks', w=w, c=self.cheekAttrs)
self.uiElements["noseButton"] = cmds.button('Nose', w=w, c=self.noseAttrs)
self.uiElements["lipsButton"] = cmds.button('Lips', w=w, c=self.mouthAttrs)
self.uiElements["tongueButton"] = cmds.button('Tongue', w=w)
cmds.separator(h=5, style='none')
cmds.separator(h=5, style='none')
self.uiElements["ArmsLO"] = cmds.frameLayout('Arms', borderStyle='etchedIn', w=300, collapsable=True, collapse=False, p=self.uiElements["mainColumnLO"])
cmds.rowColumnLayout(nc=2, cw=(w, w))
self.uiElements["FKIKBlend"] = cmds.button("IKFKBlend", w=w)
self.uiElements["HandsLO"] = cmds.frameLayout('Hands', borderStyle='etchedIn', w=300, collapsable=True, collapse=False, p=self.uiElements["mainColumnLO"])
cmds.rowColumnLayout(nc=2, cw=(w, w))
self.uiElements["LegsLO"] = cmds.frameLayout('Legs', borderStyle='etchedIn', w=300, collapsable=True, collapse=False, p=self.uiElements["mainColumnLO"])
cmds.showWindow('awFaceAttrs')
self.uiElements["FeetLO"] = cmds.frameLayout('Feet', borderStyle='etchedIn', w=300, collapsable=True, collapse=False, p=self.uiElements["mainColumnLO"])
cmds.rowColumnLayout(nc=2, cw=(w, w))
self.uiElements["SpaceSwitchingLO"] = cmds.frameLayout('Space Switching', borderStyle='etchedIn', w=300, collapsable=True, collapse=False, p=self.uiElements["mainColumnLO"])
cmds.rowColumnLayout(nc=2, cw=(w, w))
self.uiElements["worldSpace1"] = cmds.checkBoxGrp(numberOfCheckBoxes=3)
cmds.separator(h=15, style='none')
self.uiElements["worldSpace2"] = cmds.checkBoxGrp(numberOfCheckBoxes=3)
self.mouthAttributes = ["jawOpenClose", "mouthUpDown", "mouthSideToSide", "lMouthCornerNarrowWide", "rMouthCornerNarrowWide", "lipPurse", "upperLipPuff",
"lowerLipPuff", "upperLip", "upperLipRollInOut", "upperLipUpDown", "upperLipInOut", "lowerLip", "lowerLipRollInOut", "lowerLipUpDown", "lowerLipInOut"]
self.midBrowAttrs = ["midBrowUpDown", "midBrowLeftRight", "midFurrow"]
self.eyebrowAttrs = ["eyebrowInnerUpDown", "eyebrowMidUpDown", "eyebrowOuterUpDown", "furrowed", "browSqueezeInOut"]
self.eyeAttributes = ["topInnerUpDown", "topMidUpDown", "topOuterUpDown", "bottomInnerUpDown", "bottomMidUpDown", "cornerInnerUpDown", "cornerOuterUpDown"]
self.noseAttributes = ["upperNoseScrunch", "leftNostrilFlare", "rightNostrilFlare", "leftNostrilWiden", "rightNostrilWiden", "leftSneer", "rightSneer",
"leftSmileCheekPuff", "rightSmileCheekPuff", "leftCheekSuckPuff", "rightCheekSuckPuff"]
self.cheekAttributes = ["leftCheekPuff", "rightCheekPuff"]
self.handAttributes = ["fingerCurl"]
self.armAttributes = ["ikFkBlend"]
self.footAttributes = ["legTwist", "kneeTwist", "footRoll", "heelOffset", "ballOffset", "toePivotOffset", "heelTwist", "toeTwist", "sideToSide", "toeUpDown"]
def addFloatAttr(self, controlName, ctrlAttrs, *args):
for attr in [(o, a) for o in controlName for a in ctrlAttrs]:
try: pmc.addAttr(attr[0], ln=attr[1], at="float", k=1, min=-10, max=10, w=True)
except: pass
def faceEyeBrows(self, *args):
selectedControl = cmds.ls(sl=1)
self.addFloatAttr(selectedControl, self.eyebrowAttrs)
def faceMidBrow(self, *args):
selectedControl = cmds.ls(sl=1)
self.addFloatAttr(selectedControl, self.midBrowAttrs)
def eyeAttrs(self, *args):
selectedControls = cmds.ls(sl=1)
self.addFloatAttr(selectedControls, self.eyeAttributes)
def noseAttrs(self, *args):
selectedControls = cmds.ls(sl=1)
self.addFloatAttr(selectedControls, self.noseAttributes)
def mouthAttrs(self, *args):
selectedControls = cmds.ls(sl=1)
self.addFloatAttr(selectedControls, self.mouthAttributes)
def cheekAttrs(self, *args):
selectedControls = cmds.ls(sl=1)
self.addFloatAttr(selectedControls, self.cheekAttributes)
def handAttrs(self, *args):
selectedControls = cmds.ls(sl=1)
self.addFloatAttr(selectedControls, self.handAttributes)
def armAttrs(self, *args):
selectedControls = cmds.ls(sl=1)
self.addFloatAttr(selectedControls, self.armAttributes)
def footAttrs(self, *args):
selectedControls = cmds.ls(sl=1)
self.addFloatAttr(selectedControls, self.footAttributes)
awAttributeAdder()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment