コード例 #1
0
// Warning: line 0: Unrecognized node type for node 'ProductionRapidHair'; preserv


#Finger unlock -----------------------------------------------------------------
import cgm.core.cgm_Meta as cgmMeta
import cgm.core.lib.attribute_utils as ATTR
import maya.cmds as mc
for m in 'l_thumb_part','l_index_part','l_middle_part','l_ring_part','l_pinky_part','r_thumb_part','r_index_part','r_middle_part','r_ring_part','r_pinky_part':
    m1 = cgmMeta.asMeta(m)
    ml_blend = m1.rigNull.msgList_get('blendJoints')
    ml_fk = m1.rigNull.msgList_get('fkJoints')
    ml_ik = m1.rigNull.msgList_get('ikJoints')
    
    for mJnt in ml_fk:
        ATTR.set_standardFlags(mJnt.mNode,visible=True,keyable=True,lock=False)
        try:ATTR.break_connection(mJnt.mNode,'translateZ')
        except:pass
        
    for i,mJnt in enumerate(ml_blend):
        mJnt.segmentScaleCompensate = False
        ATTR.set_standardFlags(mJnt.mNode,['scale'],visible=True,keyable=True,lock=False)
        mc.scaleConstraint([ml_fk[i].mNode], mJnt.mNode)
        
    
m1 = cgmMeta.asMeta('l_thumb_part')

#Tassel control simplification --------------------------------------------------
import cgm.core.lib.transform_utils as TRANS
sel = mc.ls(sl=True)
import cgm.core.lib.math_utils as MATH
for i,o in enumerate(sel):
コード例 #2
0
def plug_insertNewValues(driven = None, drivers = [], replace = False, mode = 'multiply'):
    """
    Given an attribute, add in new values to it. If it has a plug, use that 
    """
    try:
        _str_func = 'plug_insertNewValues'
        log.debug("|{0}| >>  ".format(_str_func)+ '-'*80)

        if mode not in ['multiply']:
            raise ValueError,"Mode not supported: {0}".format(mode)

        d_driven = cgmMeta.validateAttrArg(driven)
        mPlug = d_driven['mPlug']

        ml_drivers = []
        mPreDriver = mPlug.getDriver(asMeta=True)
        log.debug("|{0}| >>  Pre Driver: {1}".format(_str_func,mPreDriver))

        for d in drivers:
            d_driver = cgmMeta.validateAttrArg(d)
            if d_driver:
                ml_drivers.append(d_driver['mPlug'])
                log.debug("|{0}| >>  Driver: {1}".format(_str_func,d_driver['mPlug']))
            else:
                log.debug("|{0}| >>  Failed to validate: {1}".format(_str_func,d))


        if not ml_drivers:
            raise ValueError, "No drivers validated"

        if not replace:
            ml_drivers.insert(0,mPreDriver[0])

        if len(ml_drivers) < 2:
            raise ValueError,"Must have more than two drivers. Found: {0}".format(ml_drivers)
        ATTR.break_connection(mPlug.p_combinedName)

        lastNode = None
        for i,mDriver in enumerate(ml_drivers[:-1]):
            if not lastNode:
                lastNode = mc.createNode('multDoubleLinear')
                mDriver.doConnectOut(lastNode + '.input1')
                ml_drivers[i+1].doConnectOut(lastNode + '.input2')
            else:
                newNode = mc.createNode('multDoubleLinear')
                ATTR.connect(lastNode+'.output',newNode + '.input1')
                ml_drivers[i+1].doConnectOut(newNode + '.input2')

                lastNode=newNode

        ATTR.connect(lastNode+'.output',mPlug.p_combinedName)







    except Exception,err:
        #pprint.pprint(vars())
        cgmGEN.cgmExceptCB(Exception,err,msg=vars())
        raise Exception,err