systemName = 'lipsOffset'
cmds.select(clear=True)
DD_stretchShape = cmds.distanceDimension( sp=(0.5, 0 ,0), ep=(1.5,0,0))
DD_stretchShape = cmds.rename( DD_stretchShape, sideSystem + '_' + system + str( systemLabel ) + 'DDim_utiShape' )
cmds.select( DD_stretchShape )
DD_stretchTransform = cmds.pickWalk( direction='up')
DD_stretchTransform = cmds.rename( sideSystem + '_' + system + str( systemLabel ) + 'DDim_uti' )
conList1 = cmds.listConnections( DD_stretchTransform + '.startPoint', sh=True )[0]
conList2 = cmds.listConnections( DD_stretchTransform + '.endPoint', sh=True )[0]
conList = []
conList.append( conList1 )
conList.append( conList2 )
locList = []
for obj in conList:
locName = obj
locName = locName.replace( 'Shape', '' )
locList.append( locName )
locStartDD = cmds.rename( locList[0], sideSystem + '_' + system + str( systemLabel ) + 'StartDD_loc' )
cmds.addAttr( locStartDD, ln='autorigNodeType', dt='string' )
cmds.setAttr( locStartDD + '.autorigNodeType', 'Rig', type='string', keyable=False, cb=True )
cmds.addAttr( locStartDD, ln='system', dt='string' )
cmds.setAttr( locStartDD + '.system', system, type='string', keyable=False, cb=True )
cmds.addAttr( locStartDD, ln='systemLabel', dt='string' )
cmds.setAttr( locStartDD + '.systemLabel', str(systemLabel), type='string', keyable=False, cb=True )
cmds.addAttr( locStartDD, ln='mode', dt='string' )
cmds.setAttr( locStartDD + '.mode', mode[1], type='string', keyable=False, cb=True )
cmds.addAttr( locStartDD, ln='sideSystem', dt='string' )
cmds.setAttr( locStartDD + '.sideSystem', str(sideSystem), type='string', keyable=False, cb=True )
nodeT = cmds.nodeType( locStartDD )
cmds.addAttr( locStartDD, ln='objectType', dt='string' )
cmds.setAttr( locStartDD + '.objectType', str(nodeT) , type='string', keyable=False, cb=True )
cmds.addAttr( locStartDD, ln='objectFonction', dt='string' )
cmds.setAttr( locStartDD + '.objectFonction', 'DDLoc' , type='string', keyable=False, cb=True )
cmds.addAttr( locStartDD, ln='label', dt='string' )
cmds.setAttr( locStartDD + '.label', '0', type='string', keyable=False, cb=True )
cmds.addAttr( locStartDD, ln='suffix', dt='string' )
cmds.setAttr( locStartDD + '.suffix', 'uti', type='string', keyable=False, cb=True )
cmds.setAttr( locStartDD + '.localScaleX', ( .5 * ikSize ) )
cmds.setAttr( locStartDD + '.localScaleY', ( .5 * ikSize ) )
cmds.setAttr( locStartDD + '.localScaleZ', ( .5 * ikSize ) )
locEndDD = cmds.rename( locList[1], sideSystem + '_' + system + str( systemLabel ) + 'EndDD_loc' )
cmds.addAttr( locEndDD, ln='autorigNodeType', dt='string' )
cmds.setAttr( locEndDD + '.autorigNodeType', 'Rig', type='string', keyable=False, cb=True )
cmds.addAttr( locEndDD, ln='system', dt='string' )
cmds.setAttr( locEndDD + '.system', system, type='string', keyable=False, cb=True )
cmds.addAttr( locEndDD, ln='systemLabel', dt='string' )
cmds.setAttr( locEndDD + '.systemLabel', str(systemLabel), type='string', keyable=False, cb=True )
cmds.addAttr( locEndDD, ln='mode', dt='string' )
cmds.setAttr( locEndDD + '.mode', mode[1], type='string', keyable=False, cb=True )
cmds.addAttr( locEndDD, ln='sideSystem', dt='string' )
cmds.setAttr( locEndDD + '.sideSystem', str(sideSystem), type='string', keyable=False, cb=True )
nodeT = cmds.nodeType( locEndDD )
cmds.addAttr( locEndDD, ln='objectType', dt='string' )
cmds.setAttr( locEndDD + '.objectType', str(nodeT) , type='string', keyable=False, cb=True )
cmds.addAttr( locEndDD, ln='objectFonction', dt='string' )
cmds.setAttr( locEndDD + '.objectFonction', 'DDLoc' , type='string', keyable=False, cb=True )
cmds.addAttr( locEndDD, ln='label', dt='string' )
cmds.setAttr( locEndDD + '.label', '1', type='string', keyable=False, cb=True )
cmds.addAttr( locEndDD, ln='suffix', dt='string' )
cmds.setAttr( locEndDD + '.suffix', 'uti', type='string', keyable=False, cb=True )
cmds.setAttr( locEndDD + '.localScaleX', ( .5 * ikSize ) )
cmds.setAttr( locEndDD + '.localScaleY', ( .5 * ikSize ) )
cmds.setAttr( locEndDD + '.localScaleZ', ( .5 * ikSize ) )
cmds.matchTransform( locStartDD, switchGuide[1], pos = True, rot = True )
cmds.matchTransform( locEndDD, switchGuide[5], pos = True, rot = True )
cnsStartLoc = cmds.parentConstraint( ctlList[1],ctlList[5], locStartDD )[0]
cmds.connectAttr( RV_IkReverse + '.output.outputX', locStartDD + '_parentConstraint1.' + ctlList[1] + 'W0' )
cmds.connectAttr( ctlFKIK[0] + '.' + FkIk_attrName, cnsStartLoc + '.' + str(ctlList[5]) + 'W1' )
cnsEndLoc = cmds.parentConstraint( ctlList[4], ctlList[6], locEndDD)[0]
cmds.connectAttr( RV_IkReverse + '.output.outputX', cnsEndLoc + '.' + ctlList[4] + 'W0' )
cmds.connectAttr( ctlFKIK[0] + '.' + FkIk_attrName, locEndDD + '_parentConstraint1.' + ctlList[6] + 'W1' )
cmds.select(clear=True)
grpstretch = cmds.group( em=True, name= sideSystem + '_' + system + str( systemLabel ) + 'stretch_grp' )
i=0
cmds.addAttr( grpstretch, ln='autorigNodeType', dt='string' )
cmds.setAttr( grpstretch + '.autorigNodeType', 'Rig', type='string', keyable=False, cb=True )
cmds.addAttr( grpstretch, ln='system', dt='string' )
cmds.setAttr( grpstretch + '.system', system, type='string', keyable=False, cb=True )
cmds.addAttr( grpstretch, ln='systemLabel', dt='string' )
cmds.setAttr( grpstretch + '.systemLabel', str(systemLabel), type='string', keyable=False, cb=True )
cmds.addAttr( grpstretch, ln='mode', dt='string' )
cmds.setAttr( grpstretch + '.mode', mode[1], type='string', keyable=False, cb=True )
cmds.addAttr( grpstretch, ln='sideSystem', dt='string' )
cmds.setAttr( grpstretch + '.sideSystem', str(sideSystem), type='string', keyable=False, cb=True )
nodeT = cmds.nodeType( grpstretch )
cmds.addAttr( grpstretch, ln='objectType', dt='string' )
cmds.setAttr( grpstretch + '.objectType', str(nodeT) , type='string', keyable=False, cb=True )
cmds.addAttr( grpstretch, ln='objectFonction', dt='string' )
cmds.setAttr( grpstretch + '.objectFonction', fonction[37] , type='string', keyable=False, cb=True )
cmds.addAttr( grpstretch, ln='label', dt='string' )
cmds.setAttr( grpstretch + '.label', str( i ), type='string', keyable=False, cb=True )
cmds.addAttr( grpstretch, ln='suffix', dt='string' )
cmds.setAttr( grpstretch + '.suffix', suffix[0], type='string', keyable=False, cb=True )
cmds.parent( locStartDD, grpstretch )
cmds.parent( locEndDD, grpstretch )
cmds.parent( DD_stretchTransform, grpstretch )
cmds.parent( grpstretch, grpStuff )
DD_Longueur = cmds.getAttr( DD_stretchShape + '.distance')
MD_LongOrig = cmds.shadingNode('multiplyDivide', asUtility=True, name = sideSystem + system + str( systemLabel ) + 'MD_LongOrig_uti')
cmds.setAttr(MD_LongOrig + '.input1.input1X', DD_Longueur)
BC_TempsReelOrig = cmds.shadingNode('blendColors', asUtility=True, name = sideSystem + system + str( systemLabel ) + 'BC_TempReelorig_uti')
MD_TempsReelOrig = cmds.shadingNode('multiplyDivide', asUtility=True, name= sideSystem + system + str( systemLabel ) + 'MD_LongOrig_LongTempReel')
cmds.setAttr( MD_TempsReelOrig + '.operation', 2)
CL_minMaxstretchValue = cmds.shadingNode('clamp', asUtility=True, name = sideSystem + system + str( systemLabel ) + 'CL_minMaxstretchValue')
cmds.setAttr( CL_minMaxstretchValue + '.minR', 1)
cmds.setAttr( CL_minMaxstretchValue + '.maxR', 10)
MD_powerstretchValue = cmds.shadingNode('multiplyDivide', asUtility=True, name = sideSystem + system + str( systemLabel ) + 'MD_powerstretchValue ')
cmds.setAttr( MD_powerstretchValue + '.operation', 3)
cmds.setAttr( MD_powerstretchValue + '.input2X', 0.5)
MD_powerInverseValue = cmds.shadingNode('multiplyDivide', asUtility=True, name = sideSystem + system + str( systemLabel ) + 'MD_powerInverseValue ')
cmds.setAttr( MD_powerInverseValue + '.operation', 2)
cmds.setAttr( MD_powerInverseValue + '.input1X', 1)
CL_minMaxstretchYZValue = cmds.shadingNode('clamp', asUtility=True, name = sideSystem + system + str( systemLabel ) + 'CL_minMaxstretchYZValue')
cmds.setAttr( CL_minMaxstretchYZValue + '.minR', 0.1)
cmds.setAttr( CL_minMaxstretchYZValue + '.maxR', 1)
MD_joint1Mult = cmds.shadingNode('multiplyDivide', asUtility=True, name = sideSystem + system + str( systemLabel ) + 'MD_scaleJoint1 ')
cmds.setAttr( MD_joint1Mult + '.operation', 1)
MD_joint2Mult = cmds.shadingNode('multiplyDivide', asUtility=True, name = sideSystem + system + str( systemLabel ) + 'MD_scaleJoint2 ')
cmds.setAttr( MD_joint2Mult + '.operation', 1)
MD_joint3Mult = cmds.shadingNode('multiplyDivide', asUtility=True, name = sideSystem + system + str( systemLabel ) + 'MD_scaleJoint3 ')
cmds.setAttr( MD_joint3Mult + '.operation', 1)
utilsNode = []
utilsNode.append( DD_stretchTransform )
utilsNode.append( MD_LongOrig )
utilsNode.append( BC_TempsReelOrig )
utilsNode.append( MD_TempsReelOrig )
utilsNode.append( CL_minMaxstretchValue )
utilsNode.append( MD_powerstretchValue )
utilsNode.append( MD_powerInverseValue )
utilsNode.append( CL_minMaxstretchYZValue )
utilsNode.append( MD_joint1Mult )
utilsNode.append( MD_joint2Mult )
utilsNode.append( MD_joint3Mult )
i=0
for obj in utilsNode:
cmds.addAttr( obj, ln='autorigNodeType', dt='string' )
cmds.setAttr( obj + '.autorigNodeType', 'Rig', type='string', keyable=False, cb=True )
cmds.addAttr( obj, ln='system', dt='string' )
cmds.setAttr( obj + '.system', system, type='string', keyable=False, cb=True )
cmds.addAttr( obj, ln='systemLabel', dt='string' )
cmds.setAttr( obj + '.systemLabel', str(systemLabel), type='string', keyable=False, cb=True )
cmds.addAttr( obj, ln='mode', dt='string' )
cmds.setAttr( obj + '.mode', mode[1], type='string', keyable=False, cb=True )
cmds.addAttr( obj, ln='sideSystem', dt='string' )
cmds.setAttr( obj + '.sideSystem', str(sideSystem), type='string', keyable=False, cb=True )
nodeT = cmds.nodeType( obj )
cmds.addAttr( obj, ln='objectType', dt='string' )
cmds.setAttr( obj + '.objectType', str(nodeT) , type='string', keyable=False, cb=True )
cmds.addAttr( obj, ln='objectFonction', dt='string' )
cmds.setAttr( obj + '.objectFonction', fonction[18] , type='string', keyable=False, cb=True )
cmds.addAttr( obj, ln='label', dt='string' )
cmds.setAttr( obj + '.label', str(i), type='string', keyable=False, cb=True )
cmds.addAttr( obj, ln='suffix', dt='string' )
cmds.setAttr( obj + '.suffix', suffix[10], type='string', keyable=False, cb=True )
i = i + 1
cmds.connectAttr( DD_stretchShape + '.distance', BC_TempsReelOrig + '.color1.color1R' )
cmds.connectAttr( MD_LongOrig + '.output.outputX', BC_TempsReelOrig + '.color2.color2R' )
cmds.connectAttr( MD_LongOrig + '.output.outputX', MD_TempsReelOrig + '.input2.input2X' )
cmds.connectAttr( BC_TempsReelOrig + '.output.outputR', MD_TempsReelOrig + '.input1.input1X' )
cmds.connectAttr( MD_TempsReelOrig + '.output.outputX', CL_minMaxstretchValue + '.input.inputR')
cmds.connectAttr( MD_TempsReelOrig + '.output.outputX', MD_powerstretchValue + '.input1.input1X')
cmds.connectAttr( MD_powerstretchValue + '.output.outputX', MD_powerInverseValue + '.input2.input2X')
cmds.connectAttr( CL_minMaxstretchValue + '.output.outputR', MD_joint1Mult + '.input1.input1X')
cmds.connectAttr( ctlIk + '.joint1_mult', MD_joint1Mult + '.input2.input2X')
cmds.connectAttr( CL_minMaxstretchValue + '.output.outputR', MD_joint2Mult + '.input1.input1X')
cmds.connectAttr( ctlIk + '.joint2_mult', MD_joint2Mult + '.input2.input2X')
cmds.connectAttr( CL_minMaxstretchValue + '.output.outputR', MD_joint3Mult + '.input1.input1X')
cmds.connectAttr( ctlIk + '.joint3_mult', MD_joint3Mult + '.input2.input2X')
cmds.connectAttr( MD_joint1Mult + '.output.outputX', structjnt2 + '.scaleX' )
cmds.connectAttr( MD_joint2Mult + '.output.outputX', structjnt3 + '.scaleX' )
cmds.connectAttr( MD_joint3Mult + '.output.outputX', structjnt4 + '.scaleX' )
cmds.connectAttr( MD_powerInverseValue + '.output.outputX', CL_minMaxstretchYZValue + '.input.inputR' )
cmds.connectAttr( CL_minMaxstretchYZValue + '.output.outputR', structjnt2 + '.scaleY' )
cmds.connectAttr( CL_minMaxstretchYZValue + '.output.outputR', structjnt3 + '.scaleY' )
cmds.connectAttr( CL_minMaxstretchYZValue + '.output.outputR', structjnt4 + '.scaleY' )
cmds.connectAttr( CL_minMaxstretchYZValue + '.output.outputR', structjnt2 + '.scaleZ' )
cmds.connectAttr( CL_minMaxstretchYZValue + '.output.outputR', structjnt3 + '.scaleZ' )
cmds.connectAttr( CL_minMaxstretchYZValue + '.output.outputR', structjnt4 + '.scaleZ' )
cmds.connectAttr( ctlIk + '.stretch', BC_TempsReelOrig + '.blender' )
cmds.connectAttr( ctlIk + '.stretchRatio', MD_powerstretchValue + '.input2X' )
cmds.setAttr( ctlFKIK[0] + '.' + FkIk_attrName, 1)
cmds.setAttr( ctlIkGlobal + '.autoHip', 1)
cmds.setAttr( ctlIk + '.stretch', 0)
cmds.setAttr( ctlIk + '.showPv', 1)
cmds.select ( cl=1 )
cmds.select( crvUpStretch )
lidCrvUpStretchShape = cmds.pickWalk( direction='down')[0]
CurveInfoUp = cmds.createNode ('curveInfo', n = sideSystem + '_' + system + str( systemLabel ) + 'Up' + 'CurveSpineInfo')
cmds.connectAttr (lidCrvUpStretchShape + '.worldSpace[0]' , CurveInfoUp + '.inputCurve')
CI_LongueurUp = cmds.getAttr( CurveInfoUp + '.arcLength')
MD_LongOrigUp = cmds.shadingNode('multiplyDivide', asUtility=True, name = sideSystem + '_' + system + str( systemLabel ) + 'Up' + 'MD_LongOrig_uti')
cmds.setAttr(MD_LongOrigUp + '.input1.input1X', CI_LongueurUp)
MD_InverseValueUp = cmds.shadingNode('multiplyDivide', asUtility=True, name = sideSystem + '_' + system + str( systemLabel ) + 'Up' + 'MD_invValue_uti')
cmds.setAttr(MD_InverseValueUp + '.input1.input1X', 1)
cmds.setAttr(MD_InverseValueUp + '.operation', 2)
BC_TempsReelOrigUp = cmds.shadingNode('blendColors', asUtility=True, name = sideSystem + '_' + system + str( systemLabel ) + 'Up' + 'BC_TempReelorig_uti')
MD_TempsReelOrigUp = cmds.shadingNode('multiplyDivide', asUtility=True, name= sideSystem + '_' + system + str( systemLabel ) + 'Up' + 'MD_LongOrig_LongTempReel')
cmds.setAttr( MD_TempsReelOrigUp + '.operation', 2)
CL_minMaxstretchValueUp = cmds.shadingNode('clamp', asUtility=True, name = sideSystem + '_' + system + str( systemLabel ) + 'Up' + 'CL_minMaxstretchValue')
cmds.setAttr( CL_minMaxstretchValueUp + '.minR', 0.1)
cmds.setAttr( CL_minMaxstretchValueUp + '.maxR', 10)
CL_minMaxstretchYZValueUp = cmds.shadingNode('clamp', asUtility=True, name = sideSystem + '_' + system + str( systemLabel ) + 'Up' + 'CL_minMaxstretchYZValue')
cmds.setAttr( CL_minMaxstretchYZValueUp + '.minR', 0.1)
cmds.setAttr( CL_minMaxstretchYZValueUp + '.maxR', 3)
cmds.connectAttr( CurveInfoUp + '.arcLength', BC_TempsReelOrigUp + '.color1.color1R' )
cmds.connectAttr( MD_LongOrigUp + '.output.outputX', BC_TempsReelOrigUp + '.color2.color2R' )
cmds.connectAttr( MD_LongOrigUp + '.output.outputX', MD_TempsReelOrigUp + '.input2.input2X' )
cmds.connectAttr( BC_TempsReelOrigUp + '.output.outputR', MD_TempsReelOrigUp + '.input1.input1X' )
cmds.connectAttr( MD_TempsReelOrigUp + '.output.outputX', CL_minMaxstretchValueUp + '.input.inputR' )
cmds.connectAttr( MD_TempsReelOrigUp + '.output.outputX', MD_InverseValueUp + '.input2.input2X' )
cmds.connectAttr( MD_InverseValueUp + '.output.outputX', CL_minMaxstretchYZValueUp + '.input.inputR' )
Copyright © 2017 - 2025
VFX Artist / Artiste Peintre / Teacher
All rights reserved