as_EasyExp#

as_EasyExp.__confirmAction(self, action)#
as_EasyExp.__init__(self)#

This is “Lips & Eye Lids Auto Rigger”

as_EasyExpMain_v1.0

About :#

Author: (Subbaiah) Subbu Addanki Character Supervisor (Rigging) & Programmer

Contact :#

Mail Id: subbu.add@gmail.com

as_EasyExp._compileEasyExp(self, userFolder='$_Free_EasyExp_v3.5')#
as_EasyExp._isInTime(self, startDate=[2017, 1, 1], endDate=[2018, 1, 1], onlineTime=1, showDaysLeft=1, bufferTime=1)#
as_EasyExp._isNum(self, obj)#
as_EasyExp._isPosList(self, posList)#

if posList == [1, 3, 10.5] | [0.1, 10, 9.5] | [0, 0, 0] | (0, 10, 5): return True else: return False

as_EasyExp._mayaVer(self)#
as_EasyExp.add_Prefix(self, txtFldName)#

Adds prefix of selected object as Input in any Window for <== button Usage: —— Left_Hand # Adds ‘Left_’ While pressing Enter.. <== button Hand # Adds ‘’ While pressing Enter.. <== button

as_EasyExp.add_Selection(self, textFld, multiSelect=False)#

Adds selected object’s name as Input in any Window for <== button Usage: —— obj10 # Adds ‘obj10’ While pressing Enter.. <== button box25 # Adds ‘box25’ While pressing Enter.. <== button

as_EasyExp.applyCtrlColor(self, ctrlName, colorNum=None)#

#_ Changes control colors based on prefix

as_EasyExp.as_AboutEasyExp(self)#
as_EasyExp.as_BuildLipsRig(self)#
as_EasyExp.as_CreateLipRoll(self, jntList_Side, centerJnt, lipCtrl, locGrp, rotAxis='x')#

#lipJnts =nselected() #ctJnt =nselected()[0]

as_EasyExp.as_CreateStickyLips(self)#
as_EasyExp.as_EasyExp(self)#
as_EasyExp.as_GetCurvFromEdgeLoop(self, deg=3)#
as_EasyExp.as_ImportTemplate(self)#
as_EasyExp.as_SplitCurvAtEnds(self)#
as_EasyExp.as_disconnectAttr(self, objs, attrs)#
as_EasyExp.as_getMDagPath(self, obj)#
as_EasyExp.as_getPos(self, objName)#
as_EasyExp.as_lockAttrs(self, nodeList, attrList)#

attrList = ‘t’ | ‘tx’ | [‘t’, ‘r’] | [‘tx’, ‘ry’] etc

as_EasyExp.as_lockNhide(self, objs, attrs, lock, channelBox)#
as_EasyExp.as_openAttrs(self, nodeList, attrList)#

attrList = ‘t’ | ‘tx’ | [‘t’, ‘r’] | [‘tx’, ‘ry’] etc

as_EasyExp.as_snapObjs(self, objs, type)#
as_EasyExp.as_snapRot(self, src, destObj)#
as_EasyExp.as_snapToObj(self, srcObj, destObj=[0, 0, 0])#
as_EasyExp.as_snapToVtxs(self, srcObj, vtxList)#
as_EasyExp.as_transferConnections(self, obj, targetObj)#
as_EasyExp.circleCtrl(self, ctrlName, grpLevel=2, initRot=[0, 0, 0])#

Usage:#

ctrl =EasyExp.circleCtrl(ctrlName)[0] ctrlGrp =EasyExp.circleCtrl(ctrlName)[-1] ctrl, ctrlGrp =EasyExp.circleCtrl(ctrlName)

Returns:#

if grpLevel:

return [ctrl, ctrlGrp(topGrp)] #_ asNodes

else:

return [ctrl, ctrl] #_ asNodes

as_EasyExp.confirmAction(self, action, raiseErr=False, trueVal='Yes', falseVal='No')#

Requests User to confirm an action shown in confirmDialog window

as_EasyExp.createNode_MD(self, valOrAttr01, valOrAttr02, mdnSign='*', mdnName='asNode_MDN', destAttr=None)#

Flags:#

Available mdnSigns are: [‘*’, ‘/’, ‘**’]

Usage:#

valOrAttr01 =selected()[0] + ‘.tx’ | selected()[0] + ‘.t’ | 25 | [0, 2, 10] valOrAttr02 =selected()[1] + ‘.ty’ | selected()[1] + ‘.r’ | 10 | [0, 2, 10] destAttr =selected()[1] + ‘.ty’ | selected()[1] + ‘.r’ eSpec.createMDN(valOrAttr01, valOrAttr02, ‘*’, ‘node_MDN’, destAttr)

Returns:#

return [mdNode, outAttr] #_ outAttr = node + ‘.’ + attr

as_EasyExp.ctrlMaker(self, curvList, ctrlName)#

Usage:#

ctrl =EasyExp.ctrlMaker(ctrlName)[0] ctrlGrp =EasyExp.ctrlMaker(ctrlName)[-1] ctrl, ctrlGrp =EasyExp.ctrlMaker(ctrlName)

Returns:#

return ctrlCurv #_ asNode

Fonts:#

#_ fontList =[‘Palatino Linotype’, ‘Bolide’, ‘Vectroid’, ‘Snap ITC’, ‘Quaint’, ‘Ravie’] #_ [‘Outer Sider BRK’, ‘ChangChangWoodcut’] #_ textCurves(ch=0, t=’ikfk’, f= ‘Quaint|h-16|w700|c0’) #_ font =fontList[rand.randint(0, 5)]

as_EasyExp.dimondCtrl(self, ctrlName=None, grpLevel=3, initRot=[0, 0, 0], ctrlType=1, grpSufxList=None, **shortArgs)#

Args: [Short Names : ctrlName =n, grpLevel =gl, initRot =ir, ctrlType =ct, grpSufxList =gsl]#

ctrlName : name(str) #_ name for the control which is going to be created grpLevl : num(int) #_ Number of top groups on control to be created initRot : [float, float, float] #_ Rotates the shape initially ctrlType : 1|2|3 etc #_ One of 3 Shapes can be returned

Usage:#

ctrl =eCtrl.circleCtrl(ctrlName)[0] ctrlGrp =eCtrl.circleCtrl(ctrlName)[-1] ctrl, ctrlGrp =eCtrl.circleCtrl(ctrlName)

Returns:#

if grpLevel:

return [ctrl, ctrlGrp(topGrp)] #_ asNodes

else:

return [ctrl, ctrl] #_ asNodes

as_EasyExp.doBindSkin(self, jntList, skinMesh, clustName='skinCluster1', ignoreHI=False, skinMethod=2, normalizeMethod=1, maxInflu=3, retainMaxInflu=True, dropRate=8.5)#

bindMethod : ignoreHI - Disregard the place of joints hierarchy when computing the closest joints that influence a point of the geometry. skinMethod : 0 - Classical linear skinning (default). 1 - Dual quaternion (volume preserving), 2 - A weighted blend between the two. normalizeMethod : 0 - None, 1 - Interactive, 2 - Post (default) for normalizing weights

as_EasyExp.edgeLoopCtrl(self, ctrlName='as_EdgeLoop_Ctrl', closeLoop=1, grpLevel=0, edgeList=None, oneShape=True, curvDegree=3, stepVal=1, offset=0)#
as_EasyExp.generateCurv(self, curvName, deg=3, step=1, objOrPosList=None)#
as_EasyExp.generateLipsCurve(self)#
as_EasyExp.generate_HyperSkin(self, jntList=None, vtxList=None, bodyMesh=None)#
as_EasyExp.getClosestParam_Crv(self, from_ObjOrPos, curvName, getLoc=True)#
as_EasyExp.getClosestPos_Crv(self, from_ObjOrPos, curvName, getLoc=True)#
as_EasyExp.getModelFile(self)#
as_EasyExp.isAttr(self, objNAttr)#
as_EasyExp.isNum(self, obj)#
as_EasyExp.locCtrl(self, ctrlName, grpLevel=1)#

Usage: (Note: Its made by nurbs Curves, but looks like locator)#

ctrl =EasyExp.locCtrl(ctrlName)[0] ctrlGrp =EasyExp.locCtrl(ctrlName)[-1] ctrl, ctrlGrp =EasyExp.locCtrl(ctrlName)

Returns:#

if grpLevel:

return [ctrl, ctrlGrp(topGrp)] #_ asNodes

else:

return [ctrl, ctrl] #_ asNodes

as_EasyExp.message(self, messageTxt)#

Sends a given message through confirmDialog window

as_EasyExp.old_generate_HyperSkin(self, jntList=None)#
as_EasyExp.old_setScale(self, ctrlGrpList, refObj=None, refAttr=None, ratio=1.0, refVal=None)#
as_EasyExp.rebuildCurv(self, curvName=None)#
as_EasyExp.refreshView(self, num)#
as_EasyExp.setScale(self, ctrlList=None, refObj=None, refAttr=None, ratio=1.0, refVal=None, **shortArgs)#

Args: [**shortArgs : ctrlList =cl, refObj =ro, refAttr =ra, ratio =r, refVal =rv]#

ctrlList : strList #_ if ctrlList is None, ctrlList will be taken from selection. refObj : str #_ Reference object for reference Attribute. if refVal is given, it’s neglected. refAttr : str(Attr) #_ Reference Attr from refObj, if refVal is given, it’s neglected. ratio : int | float #_ Ratio will be taken from refVal or attrValue (from attribute) refVal : int | float #_ If refObj and refAttr is not available, then refVal can be provided.

Usage:#

eCtrl.setScale(ctrlName)[0]

as_EasyExp.sortByDict({'j1':10, 'j2':2, 'j3':-1.0, 'j4':50.0, 'j5':0, 'j6':10}, 'up')#

sliceDict : None | [‘>’, val] | [‘<’, val] | [‘>=’, val] | [‘<=’, val] | [‘==’, val]

as_EasyExp.splitCurv(self, curvName, splitCount=1, getBothEnds=True, getLocators=False, locType=1, locPrefix='as_', **kw)#

Args:#

Short Names : curvName =n, splitCount =sc, getBothEnds =gbe, getLocators =gl, locType =lt, locPrefix =lp Usage: —— To split the curve based on param value and given splitCount, there by it gives posList or locList. Its useful for the areas like while splitting the spine curve in equal parts

Returns:#

if getLocators:

return [posList, locList]

else:

return posList

as_EasyExp.triangleCtrl(self, ctrlName='as_Triangle_Ctrl', grpLevel=3, initRot=[0, 0, 0], ctrlType=1, **kw)#

Args:#

Short Names : ctrlName =n, grpLevel =gl, initRot =ir, ctrlType =ct Usage: —— ctrl =EasyExp.circleCtrl(ctrlName)[0] ctrlGrp =EasyExp.circleCtrl(ctrlName)[-1] ctrl, ctrlGrp =EasyExp.circleCtrl(ctrlName)

Returns:#

if grpLevel:

return [ctrl, ctrlGrp(topGrp)] #_ asNodes

else:

return [ctrl, ctrl] #_ asNodes