def defaultTangents_set(arg, inTangent=True, outTangent=True):
    _str_func = 'defaultTangents_set'
    log.debug(cgmGEN.logString_start(_str_func))

    d_validArgs = {
        'linear': ['ln', 'linear'],
        'spline': ['sp', 'spline'],
        'clamped': ['cl', 'clamped'],
        'flat': ['fl', 'flat'],
        'plateau': ['pl', 'plateau'],
        'auto': ['au', 'auto']
    }
    _arg = VALID.kw_fromDict(arg, d_validArgs, calledFrom=_str_func)

    log.debug(
        cgmGEN.logString_msg(_str_func,
                             "| arg: {0} | validated: {1}".format(arg, _arg)))

    #Couldn't use True for setting the Tangent type had to use _arg

    _d = {'g': 1}
    if inTangent:
        _d['itt'] = _arg
    if outTangent:
        _d['ott'] = _arg

    mc.keyTangent(**_d)
Ejemplo n.º 2
0
def frameRate_set(arg):
    _str_func = 'frameRate_set'
    log.debug(cgmGEN.logString_start(_str_func))

    if VALID.valueArg(arg):
        _arg = '{0}fps'.format(arg)

    else:
        d_validArgs = {
            'ntsc': ['n', 'ntsc'],
            'pal': ['p', 'pal'],
            'film': ['f', 'film'],
            'game': ['g', 'game'],
            'ntscf': ['ntscf']
        }

        _arg = VALID.kw_fromDict(arg,
                                 d_validArgs,
                                 calledFrom=_str_func,
                                 noneValid=True)

    if not _arg:
        _arg = arg

    log.debug(
        cgmGEN.logString_msg(_str_func,
                             "| arg: {0} | validated: {1}".format(arg, _arg)))

    mc.currentUnit(time=_arg)
Ejemplo n.º 3
0
def rig_prechecks(self):
    #try:
    #_short = self.d_block['shortName']
    _str_func = 'rig_prechecks'
    log.debug(cgmGEN.logString_start(_str_func))
    """
    if not self.mBlock.buildProfile:
        self.l_precheckErrors.append('Must have build profile')
        return False"""

    return True
def sceneUp_set(arg):
    _str_func = 'sceneUp_set'
    log.debug(cgmGEN.logString_start(_str_func))

    d_validArgs = {'y': ['y'], 'z': ['z']}

    _arg = VALID.kw_fromDict(arg, d_validArgs, calledFrom=_str_func)

    log.debug(
        cgmGEN.logString_msg(_str_func,
                             "| arg: {0} | validated: {1}".format(arg, _arg)))

    mc.upAxis(ax=_arg, rv=1)
Ejemplo n.º 5
0
def pivotShapes(self, mPivotHelper=None):
    """
    Builder of shapes for pivot setup. Excpects to find pivotHelper on block
    
    :parameters:
        self(cgmRigBlock)
        mRigNull(cgmRigNull) | if none provided, tries to find it

    :returns
        dict
    """
    _str_func = 'pivotShapes'
    log.debug(cgmGEN.logString_start(_str_func))

    mBlock = self.mBlock
    mRigNull = self.mRigNull
    _offset = self.v_offset
    _jointOrientation = self.d_orientation['str']

    if mRigNull is None:
        mRigNull = self.moduleTarget.rigNull

    if mPivotHelper is None:
        if not self.getMessage('pivotHelper'):
            raise ValueError, "|{0}| >> No pivots helper found. mBlock: {1}".format(
                _str_func, mBlock)
        mPivotHelper = mBlock.pivotHelper

    for a in l_pivotOrder:
        str_a = 'pivot' + a.capitalize()
        if mPivotHelper.getMessage(str_a):
            log.debug("|{0}| >> Found: {1}".format(_str_func, str_a))
            mPivotOrig = mPivotHelper.getMessage(str_a, asMeta=True)[0]
            mPivot = mPivotOrig.doDuplicate(po=False, ic=False)
            l_const = mPivot.getConstraintsTo(fullPath=1)
            if l_const:
                mc.delete(l_const)
            mRigNull.connectChildNode(mPivot, str_a, 'rigNull')  #Connect
            _nameSet = NAMETOOLS.combineDict(
                mPivotOrig.getNameDict(
                    ignore=['cgmType', 'cgmTypeModifier', 'cgmDirection']))
            mPivot.parent = False
            mPivot.cgmName = "{0}_{1}".format(self.d_module['partName'],
                                              _nameSet)
            if mPivot.getMayaAttr('cgmDirection'):
                mPivot.deleteAttr('cgmDirection')
            #mPivot.rename("{0}_{1}".format(self.d_module['partName'], mPivot.p_nameBase))
            mPivot.doName()
    return True
def angularUnit_set(arg):
    _str_func = 'angularUnit_set'
    log.debug(cgmGEN.logString_start(_str_func))

    d_validArgs = {
        'deg': ['deg', 'degree', 'degrees'],
        'rad': ['rad', 'radian']
    }

    _arg = VALID.kw_fromDict(arg, d_validArgs, calledFrom=_str_func)

    log.debug(
        cgmGEN.logString_msg(_str_func,
                             "| arg: {0} | validated: {1}".format(arg, _arg)))

    mc.currentUnit(angle=_arg)
Ejemplo n.º 7
0
def scale_to_axisSize(arg=None, size=None):
    _str_func = 'scale_to_axisSize'
    log.debug(cgmGEN.logString_start(_str_func))
    _currentSize = get_axisSize(arg)
    _currentScale = ATTR.get(arg, 'scale')
    _targetScale = []
    for i, s in enumerate(size):
        if s is not None:
            v = (_currentScale[i] * s) / _currentSize[i]
            _targetScale.append(v)
        else:
            _targetScale.append(_currentScale[i])
    #log.info(_targetScale)

    for i, a in enumerate('xyz'):
        if size[i]:
            ATTR.set(arg, 's{0}'.format(a), _targetScale[i])
def frameRate_set(arg, fixFractionalSlider=True):
    _str_func = 'frameRate_set'
    log.debug(cgmGEN.logString_start(_str_func))

    if VALID.valueArg(arg):
        _arg = '{0}fps'.format(arg)

    else:
        d_validArgs = {
            'ntsc': ['n', 'ntsc'],
            'pal': ['p', 'pal'],
            'film': ['f', 'film'],
            'game': ['g', 'game'],
            'ntscf': ['ntscf']
        }

        _arg = VALID.kw_fromDict(arg,
                                 d_validArgs,
                                 calledFrom=_str_func,
                                 noneValid=True)

    if not _arg:
        _arg = arg

    log.debug(
        cgmGEN.logString_msg(_str_func,
                             "| arg: {0} | validated: {1}".format(arg, _arg)))

    mc.currentUnit(time=_arg)

    if fixFractionalSlider:
        log.debug(cgmGEN.logString_msg(_str_func, 'fixFractionalSlider...'))
        _current = mc.currentTime(q=True)
        mc.playbackOptions(
            animationStartTime=int(
                mc.playbackOptions(q=True, animationStartTime=True)),
            animationEndTime=int(
                mc.playbackOptions(q=True, animationEndTime=True)),
            max=int(mc.playbackOptions(q=True, max=True)),
            min=int(mc.playbackOptions(q=True, min=True)),
        )
        mc.currentTime(int(_current))
def distanceUnit_set(arg):
    _str_func = 'distanceUnit_set'
    log.debug(cgmGEN.logString_start(_str_func))

    d_validArgs = {
        'm': ['meter', 'metre'],
        'cm': ['centimeter', 'centi'],
        'mm': ['milimeter', 'mili'],
        'yd': ['yard'],
        'in': ['inch', 'inches'],
        'ft': ['feet', 'foot']
    }

    _arg = VALID.kw_fromDict(arg, d_validArgs, calledFrom=_str_func)

    log.debug(
        cgmGEN.logString_msg(_str_func,
                             "| arg: {0} | validated: {1}".format(arg, _arg)))

    mc.currentUnit(linear=_arg)
Ejemplo n.º 10
0
def patch_templateToForm():
    try:
        _str_func = 'patch_templateToForm'
        log.debug(cgmGEN.logString_start(_str_func))
        _l = mc.ls()
        _progressBar = CGMUI.doStartMayaProgressBar(stepMaxValue=len(_l))

        for i, o in enumerate(_l):
            _str = "{0} | {1} ".format(i, o)
            log.debug(cgmGEN.logString_sub(_str_func, _str))
            CGMUI.progressBar_set(_progressBar, step=1, status=_str)
            mObj = cgmMeta.asMeta(o)
            for a in mc.listAttr(o, ud=True) or []:
                log.debug(cgmGEN.logString_msg(_str_func, str(a)))
                if 'template' in a:
                    log.info(
                        cgmGEN.logString_msg(
                            _str_func,
                            "{0} | {1} | template in".format(_str, a)))
                    ATTR.rename(o, a, a.replace('template', 'form'))
                elif 'Template' in a:
                    log.info(
                        cgmGEN.logString_msg(
                            _str_func,
                            "{0} | {1} | Template in".format(_str, a)))
                    ATTR.rename(o, a, a.replace('Template', 'Form'))
                v = ATTR.get(o, a)
                if 'template' == str(v):
                    log.info(
                        cgmGEN.logString_msg(
                            _str_func,
                            "{0} | {1} | template value".format(_str, str(a))))
                    ATTR.set(o, a, 'form')

    except Exception, err:
        cgmGEN.cgmExceptCB(Exception, err)
def sceneUp_get():
    _str_func = 'sceneUp_get'
    log.debug(cgmGEN.logString_start(_str_func))
    return mc.upAxis(q=1, ax=True)
def angularUnit_get():
    _str_func = 'angularUnit_get'
    log.debug(cgmGEN.logString_start(_str_func))
    return mc.currentUnit(q=1, angle=True)
def distanceUnit_get():
    _str_func = 'distanceUnit_get'
    log.debug(cgmGEN.logString_start(_str_func))
    return mc.currentUnit(q=1, linear=True)
def weightedTangets_set(arg):
    _str_func = 'weightedTangets_set'
    log.debug(cgmGEN.logString_start(_str_func))

    mc.keyTangent(edit=1, g=1, wt=bool(arg))
def weightedTangents_get():
    _str_func = 'weightedTangents_get'
    log.debug(cgmGEN.logString_start(_str_func))
    return mc.keyTangent(q=1, wt=bool(True))
Ejemplo n.º 16
0
def SDK_wip(ml = [], matchType = False,
            d_attrs = d_default, skipLever = True, skipFKBase = []):
    _str_func = 'siblingSDK_wip'
    log.info(cgmGEN.logString_start(_str_func))
    
    if not ml:
        ml = cgmMeta.asMeta(sl=1)
    else:
        ml = cgmMeta.asMeta(ml)
    
    #mParent -----------------------------------------------------------------------------
    mParent = ml[0].moduleParent
    mParentSettings = mParent.rigNull.settings
    
    #pprint.pprint([mParent,mParentSettings])
    _settings = mParentSettings.mNode

    #Siblings get ------------------------------------------------------------------------
    #mSiblings = mTarget.atUtils('siblings_get',excludeSelf=False, matchType = matchType)
    mSiblings = ml
    
    md = {}
    d_int = {}
    
    #Need to figure a way to get the order...
    for i,mSib in enumerate(mSiblings):
        log.info(cgmGEN.logString_start(_str_func, mSib.__repr__()))
        
        _d = {}
        
        ml_fk = mSib.atUtils('controls_get','fk')
        if not ml_fk:
            log.warning('missing fk. Skippping...')
            continue
        
        if skipLever or skipFKBase:
            if i in skipFKBase:
                ml_fk = ml_fk[1:]
            elif skipLever and mSib.getMessage('rigBlock') and mSib.rigBlock.getMayaAttr('blockProfile') in ['finger']:
                ml_fk = ml_fk[1:]
            
        #if 'thumb' not in mSib.mNode:
        #    ml_fk = ml_fk[1:]
            
        
        
        _d['fk'] = ml_fk
        ml_sdk = []
        

        
        for ii,mFK in enumerate(ml_fk):
            mSDK = mFK.getMessageAsMeta('sdkGroup')
            if not mSDK:
                mSDK =  mFK.doGroup(True,True,asMeta=True,typeModifier = 'sdk')            
            ml_sdk.append(mSDK)
            
            if not d_int.get(ii):
                d_int[ii] = []
            
            d_int[ii].append(mSDK)
            
        _d['sdk'] = ml_sdk
        
        md[mSib] = _d
        
    #pprint.pprint(md)
    #pprint.pprint(d_int)
    #return
    
    for a,d in d_attrs.iteritems():
        log.info(cgmGEN.logString_sub(_str_func,a))
        for i,mSib in enumerate(mSiblings):
            log.info(cgmGEN.logString_sub(_str_func,mSib))  
            d_sib = copy.deepcopy(d)
            d_idx = d.get(i,{})
            if d_idx:
                _good = True
                for k in ['d','+d','-d','+','-']:
                    if not d_idx.get(k):
                        _good = False
                        break
                if _good:
                    log.info(cgmGEN.logString_msg(_str_func,"Found d_idx on mSib | {0}".format(d_idx))) 
                    d_use = copy.deepcopy(d_idx)
            else:d_use = copy.deepcopy(d_sib)
            
            d2 = md[mSib]
            str_part = mSib.getMayaAttr('cgmName') or mSib.get_partNameBase()
            
            #_aDriver = "{0}_{1}".format(a,i)
            _aDriver = "{0}_{1}".format(a,str_part)
            if not mParentSettings.hasAttr(_aDriver):
                ATTR.add(_settings, _aDriver, attrType='float', keyable = True)            
            
            log.info(cgmGEN.logString_msg(_str_func,"d_sib | {0}".format(d_sib))) 
            for ii,mSDK in enumerate(d2.get('sdk')):
                
                d_cnt = d_idx.get(ii,{}) 
                if d_cnt:
                    log.info(cgmGEN.logString_msg(_str_func,"Found d_cnt on mSib | {0}".format(d_cnt))) 
                    d_use = copy.deepcopy(d_cnt)
                else:d_use = copy.deepcopy(d_sib)
                
                log.info(cgmGEN.logString_msg(_str_func,"{0}| {1} | {2}".format(i,ii,d_use))) 
                
                if d_use.get('skip'):
                    continue                
                
                d_ease = d_use.get('ease',{})
                v_ease = d_ease.get(ii,None)
                
                l_rev = d_sib.get('reverse',[])
                
                if  issubclass( type(d_use['d']), dict):
                    d_do = d_use.get('d')
                else:
                    d_do = {d_use['d'] : d_use}
                    
                    
                for k,d3 in d_do.iteritems():
                    
                    if d3.get('skip'):
                        continue

                    mc.setDrivenKeyframe("{0}.{1}".format(mSDK.mNode, k),
                                         currentDriver = "{0}.{1}".format(_settings, _aDriver),
                                         itt='linear',ott='linear',                                         
                                         driverValue = 0, value = 0)
                    
                    #+ ------------------------------------------------------------------
                    pos_v = d3.get('+')
                    pos_d = d_use.get('+d', 1.0)
                    if v_ease is not None:
                        pos_v = pos_v * v_ease
                    
                    if i in l_rev:
                        print("...rev pos")
                        pos_v*=-1
                    
                    ATTR.set_max("{0}.{1}".format(_settings, _aDriver),pos_d)
                    
                    if pos_v:
                        mc.setDrivenKeyframe("{0}.{1}".format(mSDK.mNode, k),
                                         currentDriver = "{0}.{1}".format(_settings, _aDriver),
                                         itt='linear',ott='linear',                                         
                                         driverValue = pos_d, value = pos_v)
                    
                    
                    #- ----------------------------------------------------------
                    neg_v = d3.get('-')
                    neg_d = d_use.get('-d', -1.0)
                    if v_ease is not None:
                        neg_v = neg_v * v_ease                
                    
                    if i in l_rev:
                        print("...rev neg")                        
                        neg_v*=-1
                            
                    ATTR.set_min("{0}.{1}".format(_settings, _aDriver),neg_d)
                        
                    if neg_v:
                        mc.setDrivenKeyframe("{0}.{1}".format(mSDK.mNode, k),
                                         currentDriver = "{0}.{1}".format(_settings, _aDriver),
                                         itt='linear',ott='linear',                                         
                                         driverValue = neg_d, value = neg_v)        
def defaultTangents_get():
    _str_func = 'defaultTangents_get'
    log.debug(cgmGEN.logString_start(_str_func))
    return mc.keyTangent(q=1, g=1, itt=True, ott=True)
Ejemplo n.º 18
0
def siblingSDK_wip(mTarget = 'L_ring_limb_part',matchType = False,
                   d_attrs = d_default):
    _str_func = 'siblingSDK_wip'
    log.info(cgmGEN.logString_start(_str_func))
    
    if mTarget is None:
        mTarget = cgmMeta.asMeta(sl=1)
        if mTarget:mTarget = mTarget[0]
    else:
        mTarget = cgmMeta.asMeta(mTarget)
        
    #mParent -----------------------------------------------------------------------------
    mParent = mTarget.moduleParent
    mParentSettings = mParent.rigNull.settings
    
    #pprint.pprint([mParent,mParentSettings])
    _settings = mParentSettings.mNode

    #Siblings get ------------------------------------------------------------------------
    mSiblings = mTarget.atUtils('siblings_get',excludeSelf=False, matchType = matchType)
    md = {}
    #Need to figure a way to get the order...
    for i,mSib in enumerate(mSiblings):
        log.info(cgmGEN.logString_start(_str_func, mSib.__repr__()))
        
        _d = {}
        
        ml_fk = mSib.atUtils('controls_get','fk')
        if not ml_fk:
            log.warning('missing fk. Skippping...')
            continue
        
        
        if 'thumb' not in mSib.mNode:
            ml_fk = ml_fk[1:]
            
        
        
        _d['fk'] = ml_fk
        ml_sdk = []
        
        str_part = mSib.get_partNameBase()

        
        for mFK in ml_fk:
            mSDK = mFK.getMessageAsMeta('sdkGroup')
            if not mSDK:
                mSDK =  mFK.doGroup(True,True,asMeta=True,typeModifier = 'sdk')            
            ml_sdk.append(mSDK)
            
            

        for a,d in d_attrs.iteritems():
            log.info("{0} | ...".format(a))
            
            _aDriver = "{0}_{1}".format(a,i)
            #_aDriver = "{0}_{1}".format(str_part,a)
            if not mParentSettings.hasAttr(_aDriver):
                ATTR.add(_settings, _aDriver, attrType='float', keyable = True)
            
            
            for mSDK in ml_sdk:
                mc.setDrivenKeyframe("{0}.{1}".format(mSDK.mNode, d['d']),
                                     currentDriver = "{0}.{1}".format(_settings, _aDriver),
                                     itt='linear',ott='linear',                                         
                                     driverValue = 0, value = 0)
                
                #+ ------------------------------------------------------------------
                pos_v = d.get('+')
                pos_d = d.get('+d', 1.0)
                
                if pos_v:
                    mc.setDrivenKeyframe("{0}.{1}".format(mSDK.mNode, d['d']),
                                     currentDriver = "{0}.{1}".format(_settings, _aDriver),
                                     itt='linear',ott='linear',                                         
                                     driverValue = pos_d, value = pos_v)
                
                
                #- ----------------------------------------------------------
                neg_v = d.get('-')
                neg_d = d.get('-d', -1.0)
                    
                if neg_v:
                    mc.setDrivenKeyframe("{0}.{1}".format(mSDK.mNode, d['d']),
                                     currentDriver = "{0}.{1}".format(_settings, _aDriver),
                                     itt='linear',ott='linear',                                         
                                     driverValue = neg_d, value = neg_v)        
 
            
        _d['sdk'] = ml_sdk
        md[mSib] = _d
def frameRate_get():
    _str_func = 'frameRate_get'
    log.debug(cgmGEN.logString_start(_str_func))
    return mc.currentUnit(q=1, time=True)
Ejemplo n.º 20
0
def wing_temp(d_wiring=d_wiring_r, mode='slidingPosition'):
    """
    
    """
    try:
        _str_func = 'wing_temp'
        log.debug(cgmGEN.logString_start(_str_func))

        ml_roots = []
        ml_parts = []
        ml_rigNulls = []
        ml_blendDrivers = []

        #Dat get...
        for part in d_wiring['modules']:
            mPart = cgmMeta.asMeta(part)
            mRigNull = mPart.rigNull
            ml_parts.append(mPart)
            ml_rigNulls.append(mRigNull)
            ml_roots.append(mRigNull.rigRoot)
            ml_joints = mRigNull.msgList_get('blendJoints')
            if not ml_joints:
                for plug in 'fkAttachJoints', 'fkJoints':
                    ml_test = mRigNull.msgList_get(plug)
                    if ml_test:
                        ml_joints = ml_test
                        break
            ml_blendDrivers.append(ml_joints[0])

        pprint.pprint(vars())

        #Generate driver locs...
        for d, s in d_wiring['driven'].iteritems():
            mPart = ml_parts[d]
            mRoot = ml_roots[d]
            mRigNull = ml_rigNulls[d]
            mAttach = mRigNull.getMessageAsMeta('attachDriver')

            log.info(cgmGEN.logString_sub(_str_func, "{0} | {1}".format(d, s)))

            #...loc -----------------------------------------------------------------------
            log.info(cgmGEN.logString_msg(_str_func, 'loc...'))
            mLoc = mRoot.getMessageAsMeta('featherDriver')
            if mLoc:
                mLoc.delete()

            mLoc = ml_roots[d].doLoc()
            mLoc.rename("{0}_featherLoc".format(mPart.p_nameBase))
            mLoc.p_parent = mRoot.masterGroup.p_parent
            mLoc.v = False
            mLoc.doStore('cgmAlias', 'feather')

            mRoot.connectChildNode(mLoc.mNode, 'featherDriver', 'mPart')

            #...drivers ------------------------------------------------------------
            ml_drivers = [ml_blendDrivers[v] for v in s]
            l_drivers = [mObj.mNode for mObj in ml_drivers]
            _vList = DIST.get_normalizedWeightsByDistance(
                mLoc.mNode, l_drivers)

            _orient = mc.orientConstraint(l_drivers,
                                          mLoc.mNode,
                                          maintainOffset=0)
            l_constraints = [_orient]
            if mode == 'slidingPosition':
                _point = mc.pointConstraint(l_drivers,
                                            mLoc.mNode,
                                            maintainOffset=0)
                l_constraints.append(_point)
            else:
                _point = mc.pointConstraint(mAttach.mNode,
                                            mLoc.mNode,
                                            maintainOffset=1)

            for c in l_constraints:
                CONSTRAINT.set_weightsByDistance(c[0], _vList)

            ATTR.set(_orient[0], 'interpType', 2)
            mLoc.dagLock()

            mDynGroup = mRoot.dynParentGroup
            mDynGroup.addDynParent(mLoc)
            mDynGroup.rebuild()

            _len = len(ATTR.get_enumList(mRoot.mNode, 'space'))
            mRoot.space = _len - 1

        return True
    except Exception, err:
        cgmGEN.cgmException(Exception, err)