예제 #1
0
def ctrl_orb():
	mel.eval('circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.01 -s 8 -ch 1')
	base_circle = cmds.ls(sl=True)
	
	cmds.duplicate(rr=True)
	dup1 = cmds.ls(sl=True)
	cmds.setAttr(dup1[0] + '.rotateX', 90)
	
	cmds.duplicate(rr=True)
	dup2 = cmds.ls(sl=True)
	cmds.setAttr(dup2[0] + '.rotateY', 90)

	cmds.duplicate(rr=True)
	dup3 = cmds.ls(sl=True)
	cmds.setAttr(dup3[0] + '.rotateY', 45)
	print 'Curves have been created and positioned.'
	
	cmds.select(base_circle, dup1, dup2, dup3)
	cmds.makeIdentity(apply=True, t=1, r=1, s=1, n=0)
	print 'Freezing transforms on curves.'

	cmds.select(dup1, dup2, dup3, r=True)
	curves = cmds.ls(sl=True)
	cmds.pickWalk(d='Down')
	cmds.select(base_circle, add=True)
	cmds.parent(r=True, s=True)
	print 'Curve list has been parented into single curve.'
	
	cmds.select(curves, r=True)
	mel.eval('doDelete')
	print 'Unused groups have been deleted.'
	
	cmds.select(base_circle)
	mel.eval('CenterPivot')
	print ('End result curve have been selected and its pivot has been centered.')
예제 #2
0
def ctrl_move_all():
	base_circle = mel.eval('circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1.5 -d 3 -ut 0 -tol 0.01 -s 8 -ch 0')
	arrow_list = []
	arrow1 = mel.eval('curve -d 1 -p 1.75625 0 0.115973 -p 1.75625 0 -0.170979 -p 2.114939 0 -0.170979 -p 2.114939 0 -0.314454 -p 2.473628 0 -0.0275029 -p 2.114939 0 0.259448 -p 2.114939 0 0.115973 -p 1.75625 0 0.115973 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7')
	arrow2 = mel.eval('curve -d 1 -p 0.143476 0 -1.783753 -p 0.143476 0 -2.142442 -p 0.286951 0 -2.142442 -p 0 0 -2.501131 -p -0.286951 0 -2.142442 -p -0.143476 0 -2.142442 -p -0.143476 0 -1.783753 -p 0.143476 0 -1.783753 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7')
	arrow3 = mel.eval('curve -d 1 -p -1.75625 0 -0.170979 -p -2.114939 0 -0.170979 -p -2.114939 0 -0.314454 -p -2.473628 0 -0.0275029 -p -2.114939 0 0.259448 -p -2.114939 0 0.115973 -p -1.75625 0 0.115973 -p -1.75625 0 -0.170979 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7')
	arrow4 = mel.eval('curve -d 1 -p -0.143476 0 1.728747 -p -0.143476 0 2.087436 -p -0.286951 0 2.087436 -p 0 0 2.446125 -p 0.286951 0 2.087436 -p 0.143476 0 2.087436 -p 0.143476 0 1.728747 -p -0.143476 0 1.728747 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7')
	arrow_list.append(arrow1)
	arrow_list.append(arrow2)
	arrow_list.append(arrow3)
	arrow_list.append(arrow4)
	print 'Curves have been created and positioned.'
	
	cmds.select(arrow_list)
	cmds.pickWalk(d='Down')
	cmds.select(base_circle, add=True)
	cmds.parent(r=True, s=True)
	print 'Curve list has been parented into single curve.'
	
	cmds.select(arrow_list, r=True)
	mel.eval('doDelete')
	print 'Unused groups have been deleted.'
	
	cmds.select(base_circle)
	mel.eval('CenterPivot')
	print ('End result curve have been selected and its pivot has been centered.')	
예제 #3
0
파일: renamer.py 프로젝트: edeglau/storage
    def badname(self, arg=None):        
        cmds.select(d=True)
        if cmds.objExists("badNames")==True:
            cmds.delete("badNames")
        cmds.sets(n="badNames", co=5)
        for each in badNameList:
            if cmds.objExists(each+'*'):
                cmds.select (each+'*', hierarchy=False, add=True)    
                cmds.sets( fe="badNames")
                              
#        if cmds.objExists('pSphere*'):
#            cmds.select ('pSphere*', hierarchy=False, add=True)    
#            cmds.sets( fe="badNames")
#            
#        if cmds.objExists('curve*'):
#            cmds.select ('curve*', hierarchy=False, add=True)
#            cmds.sets( fe="badNames")
#        
#            
#        if cmds.objExists('polySurface*'):
#            cmds.select ('polySurface*', hierarchy=False, add=True)
#            cmds.sets( fe="badNames")
        
        if cmds.objExists('badNames'):
            cmds.select('badNames', r=True, ne=True)
            shoo=cmds.ls(sl=True)
            cmds.pickWalk (d='up')
            pete=cmds.ls(sl=True)  
            if (len(pete))>0:
                print("The selected object(s) don't have very descriptive names.")
            else:
                cmds.select(cl=True)
                print(" no bad names exists.")
            cmds.delete(shoo)
예제 #4
0
 def singlePoly(self, arg=None):
     selObj=self.selection_grab()
     if selObj:
         pass
     else:
         print "select a polygon object"
         return    
     if "." in selObj[0]:
         print "You need to select a polygon object to interogate.(check that you are not in component mode)"
         return     
     else:
         pass 
     cmds.select(cl=True)
     if cmds.objExists("PolyIssues")==True:
         cmds.delete("PolyIssues")
     cmds.sets(n="PolyIssues", co=5)
     cmds.select(selObj)
     errorFound=cmds.polyInfo(selObj, lf=True, nme=True, nmv=True )
     cmds.select (errorFound)
     cmds.ConvertSelectionToVertices(errorFound)
     if errorFound>0:
         print "Polygon error found"
         cmds.sets( fe='PolyIssues')
     cmds.select('PolyIssues', r=True, ne=True)
     cmds.pickWalk(d='Up')
     errorFound=cmds.ls(sl=True)
     if (len(errorFound))==0:
         cmds.delete("PolyIssues")
def	splitJoint	():
	_newBoneNum			=	cmds.intSlider	(	'boneNum',	query	=	1,	value	=	1	)
	_bone				=	cmds.ls	(	selection	=	1,	long	=	1	)
	_childJoint			=	cmds.listRelatives	(	children	=	1	)

	if	len(_bone) > 0:
		if	type(_childJoint)	is	not	NoneType:
#			print; print; print '>>> SO FAR SO GOOD'; print # <<< DEBUG ONLY LINE, CAN BE DELETED <<< ##########
			_bone				=	_bone[0]
			_childJoint			=	_childJoint[0]

			_childTranslateX	=	cmds.getAttr	(	_childJoint	+	'.translateX'	)
			_childTranslateY	=	cmds.getAttr	(	_childJoint	+	'.translateY'	)
			_childTranslateZ	=	cmds.getAttr	(	_childJoint	+	'.translateZ'	)

			_newX				=	_childTranslateX	/	(	_newBoneNum	+	1.0	)
			_newY				=	_childTranslateY	/	(	_newBoneNum	+	1.0	)
			_newZ				=	_childTranslateZ	/	(	_newBoneNum	+	1.0	)

			for	_k	in	range	(	_newBoneNum	):
				_bone	=	cmds.insertJoint	(	_bone	)
				cmds.toggle	(	localAxis		=	1	)
				cmds.xform	(	_bone	+	'.scalePivot',	_bone	+	'.rotatePivot',
								relative	=	1,	objectSpace	=	1,	translation	=	(	_newX,	_newY,	_newZ	)	)

			for	_k	in	range	(	_newBoneNum	):	cmds.pickWalk	(	direction	=	'up'	)
		
		else:	raiseWarning	(	'select the bone, not a single joint'	)
	else:	raiseWarning	(	'select the bone'	)
예제 #6
0
파일: renamer.py 프로젝트: edeglau/storage
 def badname(self):        
     cmds.select(d=True)
     if cmds.objExists("badNames")==True:
         cmds.delete("badNames")
     cmds.sets(n="badNames", co=5)
     
     
     if cmds.objExists('pSphere*'):
         cmds.select ('pSphere*', hierarchy=False, add=True)    
         cmds.sets( fe="badNames")
         
     if cmds.objExists('curve*'):
         cmds.select ('curve*', hierarchy=False, add=True)
         cmds.sets( fe="badNames")
     
         
     if cmds.objExists('polySurface*'):
         cmds.select ('polySurface*', hierarchy=False, add=True)
         cmds.sets( fe="badNames")
     
 
     if cmds.objExists('badNames'):
         cmds.select('badNames', r=True, ne=True)
         shoo=cmds.ls(sl=True)
         cmds.pickWalk (d='up')
         pete=cmds.ls(sl=True)  
         if (len(pete))>0:
             print("you must give the selected object(s) descriptive names.")
         else:
             cmds.select(cl=True)
             print(" no bad names exists.")
         cmds.delete(shoo)
예제 #7
0
def create_Joints():
    src_joint = cmds.ls(sl=True)
    cmds.select(hi=True)
    findselAmt = cmds.ls(sl=True)
    if (len(findselAmt)<2):
        cmds.warning("select atleast 2 joints")
    else:
        noOfjoints = cmds.textField("Number",query=True,text=True)
        num_jnts = float(noOfjoints)
        cmds.pickWalk(d="down")
        childjnt = cmds.ls(sl=True)
        cmds.select(childjnt)
        pos_child = cmds.xform(childjnt[0],query=True,translation=True,ws=True)
        pos_start = cmds.xform(src_joint[0],query=True,translation=True,ws=True)
        splitPos_x = pos_child[0] - pos_start[0]
        splitPos_y = pos_child[1] - pos_start[1]
        splitPos_z = pos_child[2] - pos_start[2]
        splitPos = [(splitPos_x/num_jnts),(splitPos_y/num_jnts),(splitPos_z/num_jnts)]
        num_joints = int(num_jnts)
        cmds.pickWalk(d="up")
        if(noOfjoints<2):
            cmds.warning("Must create atleast 1 segment")
        else:
            for jnt in range(1,num_joints):
                newJoint = cmds.insertJoint(src_joint)
                newJoint = cmds.rename(newJoint, "tempName"+ str(jnt))
                cmds.move(splitPos[0],splitPos[1],splitPos[2],newJoint+".scalePivot",newJoint+".rotatePivot",ws=True,r=True)
                src_joint = newJoint
                cmds. select(newJoint)
예제 #8
0
def asignMaterial(*args):
    cmds.pickWalk( d = "down" )
    sel = cmds.ls( sl = True )
    for i in sel:
        mat = cmds.getAttr(i + '.mtoa_constant_mMat')
        matSG = mat + 'SG'
        asign = cmds.sets(i, e =1, forceElement = matSG)
예제 #9
0
def	postProcessControl	(	_control,	_function,	_controlled	):	# <<< string, string, list
	lockHideAttributes	(	_control	)

	if (cmds.objExists('anim_control_set') == False):	cmds.createNode('objectSet',name='anim_control_set',skipSelect=True)

	cmds.sets	(	_control,	addElement	=	'anim_control_set'	)
	cmds.toggle	(	localAxis				=	1	)

	if	len	(	_controlled	)	==	0:
		_control	=	cmds.rename	(	'_'	+	_function	+	'_control'	)
		_control	=	cmds.group	( 	world	=	1,	name	=	'_'	+	_function	+	'_control_offSet'	)
		cmds.move					(	0,	0,	0,	_control	+	'.rotatePivot',	_control	+	'.scalePivot'	)

		lockHideAttributes	(	_control	)

	else:
		_k				=	_controlled[0].rfind	(	'|'	)
		_control		=	_controlled[0][_k+1:]
		cmds.rename		(	_control	+	'_'	+	_function	+	'_control'	)
		_control		=	cmds.group	(	world	=	1,	name	=	_control	+	'_'	+ _function	+	'_control_offSet'	)
		cmds.move			(	0, 0, 0, _control + '.rotatePivot', _control + '.scalePivot' )

		lockHideAttributes	(	_control	)

		cmds.select		(	_controlled[0],	toggle	=	True	)
		cmds.parent		()
		cmds.xform		(	translation	=	(	0,	0,	0	),	rotation	=	(	0,	0,	0	)	)
		cmds.parent		(	world		= 	1	)
	
	cmds.pickWalk	(	direction	=	"down"	)
예제 #10
0
def	splitJoint	():
	_newBoneNum	= cmds.intSlider	('boneNum',	query	= 1,	value	= 1)
	_bone		= cmds.ls	(selection	= 1,	long	= 1)
	_childJoint	= cmds.listRelatives	(children	= 1)

	if (len (_bone)	> 0) and (type(_childJoint) is not NoneType) \
	and (cmds.nodeType(_bone[0]) == 'joint') and (cmds.nodeType(_childJoint) == 'joint'):
		
		_childTranslateX	=	cmds.getAttr	(	_childJoint[0]	+	'.translateX'	)
		_childTranslateY	=	cmds.getAttr	(	_childJoint[0]	+	'.translateY'	)
		_childTranslateZ	=	cmds.getAttr	(	_childJoint[0]	+	'.translateZ'	)

		_newX				=	_childTranslateX	/	(	_newBoneNum	+	1.0	)
		_newY				=	_childTranslateY	/	(	_newBoneNum	+	1.0	)
		_newZ				=	_childTranslateZ	/	(	_newBoneNum	+	1.0	)

		for	_k	in	range	(	_newBoneNum):
			_bone	=	cmds.insertJoint	(	_bone	)
			cmds.toggle	(localAxis		=1)
			cmds.xform	(_bone	+	'.scalePivot',	_bone	+	'.rotatePivot',
						relative	=	1,	objectSpace	=	1,	translation	=	(	_newX,	_newY,	_newZ	)	)

		for	_k	in	range	(	_newBoneNum	):	cmds.pickWalk	(	direction	=	'up'	)
	
	else:	raiseWarning	(	'select a bone! You can do it!'	)
예제 #11
0
def ctrl_text(var):
	"""
	Creates letters and text made from multipe curves.
	"""
	cmds.textCurves(ch=0, f='Times New Roman', t=var)
	cmds.ungroup()
	cmds.ungroup()
	print 'Curves have been ungrouped.'
	
	curves = cmds.ls(sl=True)
	cmds.makeIdentity(apply=True, t=1, r=1, s=1, n=0)
	print 'Freezing transforms on curves.'
	
	cmds.pickWalk(d='Down')
	shapes = cmds.ls(sl=True)
	print 'Creating a list of curve shape nodes.'
	
	
	parent_shapes = shapes[1:]
	delete_curves = curves[1:]
	print 'Slicing lists for parenting and deleting purposes.'
	
	cmds.select(parent_shapes, r=True)
	cmds.select(curves[0], add=True)
	cmds.parent(r=True, s=True)
	print 'Curve list has been parented into single curve.'
	
	cmds.select(delete_curves, r=True)
	mel.eval('doDelete')
	print 'Unused groups have been deleted.'
	
	cmds.select(curves[0])
	mel.eval('CenterPivot')
	print ('End result curve have been selected and its pivot has been centered.')
예제 #12
0
def ctrl_pointer():
	mel.eval('curve -d 1 -p -1 0 0 -p 1 0 0 -p 1 1 0 -p 1 2 0 -p 1 3 0 -p 2 3 0 -p 0 5 0 -p -2 3 0 -p -1 3 0 -p -1 2 0 -p -1 1 0 -p -1 0 0 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -k 9 -k 10 -k 11')
	ctrl = cmds.ls(sl=True)
	cmds.duplicate(rr=True)
	ctrl2 = cmds.ls(sl=True)
	cmds.setAttr(ctrl2[0] + '.rotateY', 90)
	print 'Curves have been positioned.'
	
	cmds.makeIdentity(apply=True, t=1, r=1, s=1, n=0)
	print 'Freezing transforms on curves.'
	
	cmds.select(ctrl, r=True)
	cmds.pickWalk(d='Down')
	cmds.select(ctrl2, add=True)
	cmds.parent(r=True, s=True)
	print 'Curves have been parented into single curve.'
	
	
	cmds.select(ctrl, r=True)
	mel.eval('doDelete')
	print 'Unsuded groups have been deleted.'
	
	cmds.select(ctrl2)
	mel.eval('CenterPivot')
	print 'Curve has been selected and its pivot has been centered.'
    def __init__(self):
        # define camera
        print "[define camera class]"
        _selection = cmds.ls(selection=True)
        _panel = cmds.getPanel(withFocus=True)
        _typeOfPanel = mm.eval("getPanel -typeOf " + _panel)
        _cameraSelected = False

        # check for selected camera
        print "[checking selection for camera]"
        if len(_selection) != 0:
            # selection not empty
            _camera = _selection[0]
            _cameraShape = cmds.pickWalk(direction="down")[0]

            if cmds.nodeType(_cameraShape) != "camera":
                # selection is not a camera
                print "[selecton or first leselcted object is not camera]"

            else:
                # selection is a camera
                if _camera == _cameraShape:
                    # if cameraShape is selected get camera transform
                    _camera = cmds.pickWalk(direction="up")[0]

                _cameraSelected = True

        else:
            # no selection
            print "[no selection. checking active panel for camera.]"
            if _typeOfPanel == "modelPanel":
                # panel is modeling panel with camera
                _camera = cmds.modelPanel(_panel, query=True, camera=True)
                cmds.select(_camera)
                _cameraShape = cmds.pickWalk(direction="down")[0]
                _cameraSelected = True

            else:
                # no modeling panel with camera is selected
                print "[active panel is not modeling panel with camera]"

        if _cameraSelected:
            # camera is extracted, get properties
            print "[camera OK]"
            print "-> camera: " + _camera
            print "-> cameraShape: " + _cameraShape

            self.camera = _camera
            self.cameraShape = _cameraShape
            self.aperture_h = cmds.camera(_camera, query=True, horizontalFilmAperture=True)
            self.aperture_v = cmds.camera(_camera, query=True, verticalFilmAperture=True)
            self.fieldOfView_h = cmds.camera(_camera, query=True, horizontalFieldOfView=True)
            self.fieldOfView_v = cmds.camera(_camera, query=True, verticalFieldOfView=True)
            self.filmOffset_h = cmds.camera(_camera, query=True, horizontalFilmOffset=True)
            self.filmOffset_v = cmds.camera(_camera, query=True, verticalFilmOffset=True)
            self.overscan = cmds.camera(_camera, query=True, overscan=True)
        else:
            # no camera
            print "[could not extract camera]"
예제 #14
0
 def connectShader(self, selectedObject, nameShader):
     """ This method connects the shader to an object. """
     
     mc.select( selectedObject );
     mc.pickWalk( d='down' );
     selectedObjectList = mc.ls( sl=True );
     mc.sets( selectedObjectList[0], edit=True, forceElement=nameShader + 'SG' );
     mc.select( clear=True )
예제 #15
0
def getMaterial(*args):
    cmds.pickWalk( d = "down" )
    sel = cmds.ls(sl=1,long=1)
        
    for i in sel:
        shadingGroup = cmds.listConnections(i ,type='shadingEngine')
        mat = (shadingGroup[0])[:-2]
        cmds.setAttr( i + '.mtoa_constant_mMat', mat, type = 'string')
예제 #16
0
def delColorAttr(*args):
    floatAttrName = cmds.textFieldGrp( 'colorText', q = True, text = True ).split(' ')
    cmds.pickWalk( d = "down" )
    selected = cmds.ls(sl=1,long=1)
    for member in selected:
        for i in floatAttrName:
            if cmds.attributeQuery( "mtoa_constant_" + i, node = member, exists = True ):
                cmds.deleteAttr(member + '.mtoa_constant_' + i)
            else:
                print 'attribute ' + i + ' not exist!'
예제 #17
0
def addStringAttr(*args):
    stringAttrName = cmds.textFieldGrp( 'stringText', q = True, text = True ).split(' ')
    cmds.pickWalk( d = "down" )
    selected = cmds.ls(sl=1,long=1)
    for member in selected:
        for i in stringAttrName:
            if cmds.attributeQuery( "mtoa_constant_" + i, node = member, exists = True ):
                print 'attribute ' + i + ' already exist!'
            else:
                cmds.addAttr(member, ln = "mtoa_constant_" + i, nn = i, dt = 'string')
예제 #18
0
def aiSmoothOff(*args):
    cmds.pickWalk( d = "down" )
    sel = cmds.ls(sl=1,long=1)
    
    for i in sel:
         cmds.setAttr(i + ".useSmoothPreviewForRender", lock = 0)
         cmds.setAttr(i + ".useSmoothPreviewForRender", 0)
         cmds.setAttr(i + ".smoothLevel", 2)
         cmds.setAttr(i + ".renderSmoothLevel", 0)   
         cmds.setAttr(i + ".renderSmoothLevel", lock = 1)          
예제 #19
0
파일: ik_DLS.py 프로젝트: songcheng/OMR
def parentJoints(endEffectorName):
 old=endEffectorName
 parents=[]
 curParent=cmds.pickWalk(endEffectorName,d='up')
 assert( len(curParent) == 1)
 while( old!=curParent[0] ):
   parents.append(curParent[0])
   old=curParent[0]
   curParent=cmds.pickWalk(curParent[0],d='up')
   assert( len(curParent) == 1)
 cmds.select(cl=True)
 return parents
예제 #20
0
파일: OMR.py 프로젝트: songjaewon/OMR
 def parentJnts(self, endEffector):
     old = endEffector
     parentJntList = []
     currentParent = mc.pickWalk(endEffector, d="up")
     assert len(currentParent) == 1
     while old != currentParent[0]:
         parentJntList.append(currentParent[0])
         old = currentParent[0]
         currentParent = mc.pickWalk(currentParent[0], d="up")
         assert len(currentParent) == 1
     mc.select(cl=True)
     return parentJntList
예제 #21
0
def addColorAttr(*args):
    colorAttrName = cmds.textFieldGrp( 'colorText', q = True, text = True ).split(' ')
    cmds.pickWalk( d = "down" )
    selected = cmds.ls(sl=1,long=1)
    for member in selected:
        for i in colorAttrName:
            if cmds.attributeQuery( "mtoa_constant_" + i, node = member, exists = True ):
                print 'attribute ' + i + ' already exist!'
            else:
                cmds.addAttr(member, ln = "mtoa_constant_" + i, nn = i , uac = 1, at ="float3" )
                cmds.addAttr(member, ln = "red_" + i, at = "float", p = "mtoa_constant_" + i )
                cmds.addAttr(member, ln = "grn_" + i, at = "float", p = "mtoa_constant_" + i )
                cmds.addAttr(member, ln = "blu_" + i, at = "float", p = "mtoa_constant_" + i )
예제 #22
0
def SundayControllerToolApply(locatorType):
    joints = cmds.ls(selection = True)
    if len(joints) != 0:
        ctrls = []
        locatorUp = '0 0 0'
        if cmds.radioButton('ControllerDirectionXUpRadioButton', query = True, select = True):
            locatorUp = '90 0 0'
        
        if cmds.radioButton('ControllerDirectionYUpRadioButton', query = True, select = True):
            locatorUp = '0 90 0'
        
        if cmds.radioButton('ControllerDirectionZUpRadioButton', query = True, select = True):
            locatorUp = '0 0 90'
        
        for curJoint in joints:
            joint_grp = curJoint + '_GRP'
            joint_ctrl = curJoint + '_CTRL'
            ctrls.append(joint_ctrl)
            cmds.group(empty = True, name = joint_grp)
            if cmds.checkBox('CreateSDKGroupCheckBox', query = True, value = True):
                joint_sdk = curJoint + '_SDK'
                cmds.group(empty = True, name = joint_sdk)
                cmds.parent(joint_sdk, joint_grp)
                mel.eval(SundayLocatorToolPy.SundayLocatorToolGetLocator(joint_ctrl, locatorType, locatorUp))
                cmds.parent(joint_ctrl, joint_sdk)
            else:
                mel.eval(SundayLocatorToolPy.SundayLocatorToolGetLocator(joint_ctrl, locatorType, locatorUp))
                cmds.parent(joint_ctrl, joint_grp)
            print cmds.iconTextRadioCollection('ltColorCollection', query = True, select = True)
            cmds.setAttr(joint_ctrl + '.overrideEnabled', 1)
            cmds.setAttr(joint_ctrl + '.overrideColor', int(cmds.iconTextRadioCollection('ltColorCollection', query = True, select = True).split('_')[1]))
            cmds.select(curJoint, joint_grp)
            cmds.pointConstraint(name = joint_grp + '_tempJOINTPointConstraint')
            cmds.orientConstraint(name = joint_grp + '_tempJOINTOrientConstraint')
            cmds.delete(joint_grp + '_tempJOINTPointConstraint*')
            cmds.delete(joint_grp + '_tempJOINTOrientConstraint*')
            if cmds.checkBox('CreateConstraintCheckBox', query = True, value = True):
                cmds.parentConstraint(joint_ctrl, curJoint)
            
            if cmds.checkBox('CreateParentConstraintCheckBox', query = True, value = True):
                cmds.select(curJoint)
                cmds.pickWalk(direction = 'up')
                if cmds.ls(selection = True)[0] != curJoint:
                    cmds.select(joint_grp, add = True)
                    cmds.ParentConstraint()
                
            cmds.ls(selection = True)[0] != curJoint
        
        cmds.select(ctrls)
    else:
        SundayDialogPy.SundayDialogConfirm('Error                                        ', 'No joints selected', 'OK')
예제 #23
0
def cleanScene(self):
    deleteList = "nurbsCurve","nurbsSurface","unknownTransform","animCurveTU","wire","brush","unknown","choice","unitToTimeConversion","displayLayer"
    skippList = [u'time1', u'sequenceManager1', u'renderPartition', u'renderGlobalsList1', u'defaultLightList1', u'defaultShaderList1', u'postProcessList1', u'defaultRenderUtilityList1', u'defaultRenderingList1', u'lightList1', u'defaultTextureList1', u'lambert1', u'particleCloud1', u'initialShadingGroup', u'initialParticleSE', u'initialMaterialInfo', u'shaderGlow1', u'dof1', u'defaultRenderGlobals', u'defaultRenderQuality', u'defaultResolution', u'defaultLightSet', u'defaultObjectSet', u'defaultViewColorManager', u'hardwareRenderGlobals', u'hardwareRenderingGlobals', u'characterPartition', u'defaultHardwareRenderGlobals', u'ikSystem', u'hyperGraphInfo', u'hyperGraphLayout', u'globalCacheControl', u'dynController1', u'persp', u'perspShape', u'top', u'topShape', u'front', u'frontShape', u'side', u'sideShape', u'lightLinker1', u'brush1', u'strokeGlobals', u'layersFilter', u'objectTypeFilter74', u'animLayersFilter', u'objectTypeFilter75', u'notAnimLayersFilter', u'objectTypeFilter76', u'defaultRenderLayerFilter', u'objectNameFilter4', u'renderLayerFilter', u'objectTypeFilter77', u'objectScriptFilter10', u'renderingSetsFilter', u'objectTypeFilter78', u'relationshipPanel1LeftAttrFilter', u'relationshipPanel1RightAttrFilter', u'layerManager', u'defaultLayer', u'renderLayerManager', u'defaultRenderLayer']
    skippList = skippList + cmds.ls("m*", type = "mesh")
    assetTypeList = cmds.ls(type=deleteList)
    ###Rename shaders with m to shaderm to remove errors...
    list = "layeredShader","blinn","phongE"
    mShaders = cmds.ls("m*",type=list)
    print mShaders
    for each in mShaders:
        try:
            print each
            cmds.rename(each, "shader"+each)
        except:
            pass
    ###delete stuff we dont want...
    for asset in assetTypeList:
        if not asset in skippList:
            try:
                cmds.delete(asset)
            except:
                pass
        else:
            print "asset"
            pass
        
    ###delete object with locked visibility to off
    all = cmds.ls(type=["transform","mesh"])
    print all
    for each in all:
        try:
            if not cmds.getAttr(each+".v"):
                deleteThis = cmds.pickWalk( each, direction='up' )
                moveHere = cmds.pickWalk( deleteThis, direction='up' )
                cmds.parent(each,moveHere,shape=True)
                cmds.setAttr( each+".v", lock=False)
                cmds.setAttr( each+".v", 1)
                cmds.delete(deleteThis)
        except:
            pass
    ###delete empty transforms...
    all = cmds.ls(type="transform")
    for each in all:
        try:
            if cmds.pickWalk(each, direction='down')[0] == each:
                cmds.delete(each)
        except:
            pass
    print "Done cleaning"
예제 #24
0
파일: arnold.py 프로젝트: mkolar/Tapp
def addToLightGroup(lightGroup):
    name = 'lightGroup'
    attrName = 'mtoa_constant_' + name
    cmds.pickWalk(d="down")
    selected = cmds.ls(sl=1, long=1)

    addAOVlightGroup(lightGroup)

    for member in selected:
        if cmds.attributeQuery(attrName, node=member, exists=True):
            print 'attribute ' + attrName + ' already exist!'
        else:
            cmds.addAttr(member, ln=attrName, nn=name, at='long')

        cmds.setAttr(member + '.' + attrName, int(lightGroup))
예제 #25
0
def Color_Rnm_rightCtrls():                                     #renames the group of the controls and color codes them
    right_controls = cmds.ls(sl=True)    						#select/lists all the objects selected
    for all in right_controls:                                  #for all the controls selected:
        cmds.select(all)
        cmds.pickWalk(d='Up')                                   #tranverses up in the hierarchy
        sel_grpSDK = cmds.ls(sl=True)
        cmds.rename(sel_grpSDK[0],'grpSDK_'+all)                #renames the group
        
        cmds.pickWalk(d='Up')
        sel_grpOri = cmds.ls(sl=True)
        cmds.rename(sel_grpOri[0],'grp_Ori'+all)
        
        all_shape = cmds.listRelatives(type= 'shape all')       #selects all the objects of type shape 
        cmds.setAttr(all_shape[0]+".overrideEnabled",1)         
        cmds.setAttr(all_shape[0]+".overrideColor",18)          # changes the color
예제 #26
0
	def createCube(self, *args):
		
		i = 0
		j = 0
		k = 1
		posX = 0
		
		cubeStock = []
		dupCubeStock = []
		
		self.cubeNumX = self.numX_input()
		self.cubeNumZ = self.numZ_input()
				
		while i < self.cubeNumX :	
		
			cmds.polyCube( w = 10, h = 10, d = 10, sx = self.divX_input(), sy = self.divY_input(), sz = self.divZ_input(), ax = (0, 1, 0), cuv = 4, ch = 1)

			cmds.move(15 * i, 0, 0)
			
			self.cubeName = str(cmds.pickWalk(d = "up"))
			self.splittedCubeName = self.cubeName.split("'")[1]
			self.cubeFinalName = unicode(self.splittedCubeName)
			print("cubeFinalName : " + self.cubeFinalName)
			cubeStock.append(self.cubeFinalName)
			
			i += 1
			
		while j < self.cubeNumZ :			
			posX = cmds.getAttr(str(cubeStock[j]) + ".translateX")
			cmds.select(cubeStock[j], r = True)
			dup = cmds.duplicate(cubeStock[j])
			cmds.move(posX, 0, 15 * k)	
			j += 1
			k += 1
예제 #27
0
    def createControl(self, *args):
        """ Create FK control for selected joint, or it's hierarchy
		"""

        #Store values
        prefix = mc.textFieldGrp(self.prefixField, query=True, text=True)

        rootJnt = mc.textFieldButtonGrp(self.jntField, query=True, text=True)
        control = mc.textFieldButtonGrp(self.controlField,
                                        query=True,
                                        text=True)
        selection = mc.radioButtonGrp(self.selectionField, query=True, sl=True)

        #Main Chain
        if (selection == 1):
            mc.select(rootJnt, r=True, hi=True)
        else:
            mc.select(rootJnt, r=True)

        sel = mc.ls(sl=True, fl=True)

        #Duplicate FK control, parent it to selected joints
        for each in sel:
            #Duplicate control
            tempCnt = mc.duplicate(control)
            #Select the shape
            tempShp = mc.pickWalk(tempCnt, direction='down')
            mc.parent(tempShp, each, r=True, s=True)
예제 #28
0
def create_text(text):
    cmds.textCurves(ch=0, t=text)
    print(text)
    cmds.ungroup()
    cmds.ungroup()
    curves = cmds.ls(sl=True)
    cmds.makeIdentity(apply=True, t=1, r=1, s=1, n=0)
    shapes = curves[1:]
    cmds.select(shapes, r=True)
    cmds.pickWalk(d='Down')
    cmds.select(curves[0], tgl=True)
    cmds.parent(r=True, s=True)
    cmds.pickWalk(d='up')
    cmds.delete(shapes)
    cmds.xform(cp=True)
    return cmds.ls(sl=True)[0]
예제 #29
0
파일: leg_rig.py 프로젝트: AlisaGf/AutoRig
    def make_fk_control(self, joints, color):
        # create fk chain
        for obj in joints:
            obj_control = cmds.circle(n=obj + '_Ctl', nr=[1, 0, 0], r=5)
            cmds.setAttr(obj_control[0] + '.lineWidth', 2)
            self.override_colors(obj_control[0], color)
            obj_control_group = cmds.group(obj_control, n=obj + '_Ctl_Null')
            cmds.matchTransform(obj_control_group, obj, pos=True, rot=True)
            cmds.orientConstraint(obj_control, obj)
            cmds.parent(obj_control_group, 'controls')
            parentOBJ = cmds.pickWalk(obj, direction='up')
            if parentOBJ[0] == obj:
                pass
            else:
                cmds.parentConstraint(parentOBJ, obj_control_group, mo=True)

            #hide controls if its ik mode
            condition = cmds.shadingNode('condition',
                                         asUtility=True,
                                         n='condition_node' + obj_control[0])
            cmds.connectAttr(self.ik_fk_control + '.ikfk',
                             condition + '.firstTerm')
            cmds.connectAttr(condition + '.outColorR',
                             obj_control[0] + '.visibility')
            self.controls.append(obj_control_group)
예제 #30
0
    def setup(self):

        #duplicate given joints
        cmds.duplicate(self.oldJoint1, n=self.dupJoint1, po=True)
        cmds.duplicate(self.oldJoint2, n=self.dupJoint2, po=True)
        cmds.parent(self.dupJoint2, self.dupJoint1)
        cmds.parent(self.dupJoint1, w=True)

        #create rp ik
        ik = cmds.ikHandle(sol='ikRPsolver',
                           sj=self.dupJoint1,
                           ee=self.dupJoint2,
                           n=self.ik)[0]

        #zero pole vectors
        cmds.setAttr("{0}.poleVectorX".format(self.ik), 0)
        cmds.setAttr("{0}.poleVectorY".format(self.ik), 0)
        cmds.setAttr("{0}.poleVectorZ".format(self.ik), 0)

        #parent to bindJoint
        cmds.select(self.oldJoint1)
        clav = cmds.pickWalk(d='Up')
        cmds.parent(self.ik, self.oldJoint1)
        cmds.parent(self.dupJoint1, clav)

        #hide ik
        cmds.setAttr('{0}.v'.format(ik), 0)

        # hide them they ugly
        cmds.setAttr("{0}.v".format(self.dupJoint1), 0)
        cmds.setAttr("{0}.v".format(self.dupJoint2), 0)
예제 #31
0
def clavSel(scaleClav):

    # Select clavicle Joint moving up and put it at the top of the chain
    clavJoint = cmds.pickWalk(ogChain[0], d="up")[0]
    #ogChain.insert(0, clavJoint)

    clavController = createClav2(clavJoint + "_anim") # Import coordinates from ctrlUI_lib
    cmds.delete(cmds.pointConstraint(clavJoint, clavController))

    # Create offset group, FDH and move up 
    clavControllerGrp = cmds.group(n=clavController + "_grp", em=1)
    cmds.delete(cmds.parentConstraint(clavJoint, clavControllerGrp))
    cmds.parent(clavController, clavControllerGrp)
    fixedScale = scaleClav/4
    cmds.scale(fixedScale, fixedScale, fixedScale, clavController)
    cmds.makeIdentity(clavController, a=1)
    cmds.move(0,10,0, clavControllerGrp, ws=1, r=1)
    cmds.color(clavController, rgb=controllerColor)
    
    # Move pivots on clavicle joint
    piv = cmds.xform(clavJoint, q=True, ws=True, t=True)
    cmds.xform(clavController, ws=True, piv=piv)
    cmds.xform(clavControllerGrp, ws=True, piv=piv)
    
    cmds.orientConstraint(clavController, clavJoint)

    # Parent ik and fk chain under clavicle controller    
    cmds.parent((ogChain[0]+"_fk_anim_grp"),(ogChain[0] + "_ik"), (ogChain[0] + "_fk"), clavController)

    cmds.parent(clavControllerGrp, ctrlGrp)
예제 #32
0
def check_transforms(objects):
    '''
    Check joints to insure they have no rotation values.
    '''

    invalid = []
    cmds.select(objects)
    new_objects = cmds.pickWalk(d='up')
    t_r_xform = ['t', 'r']
    scale_xform = 's'
    axis = ['x', 'y', 'z']

    for obj in new_objects:
        #check translates rotates and scales
        for trans in t_r_xform:
            #check each axis
            for ax in axis:
                trans_rot = cmds.getAttr('%s.%s%s' % (obj, trans, ax))

                if trans_rot != 0:
                    invalid.append(obj)
                    break

            for ax in axis:
                scale = cmds.getAttr('%s.%s%s' % (obj, scale_xform, ax))

                if scale != 1:
                    invalid.append(obj)
                    break

    return invalid
예제 #33
0
def createFollicle(node, name="follicle"):
    u = 0.5
    v = 0.5
    sel = node

    cmds.select(node)
    cv = cmds.filterExpand(sm=28, fp=True)

    if cv:
        node = node.split(".")[0]
    shape = cvshapeinverter.get_shape(node)
    folShape = cmds.createNode("follicle", n="{0}_FOLShape".format(name))
    buffer = cmds.pickWalk(d="Up")[0]
    fol = cmds.rename(buffer, "{0}_FOL".format(name))
    cmds.setAttr("{0}.parameterU".format(folShape), u)
    cmds.setAttr("{0}.parameterV".format(folShape), v)

    cmds.connectAttr("{0}.local".format(shape),
                     "{0}.inputSurface".format(folShape))

    cmds.connectAttr("{0}.worldMatrix[0]".format(shape),
                     "{0}.inputWorldMatrix".format(folShape))

    cmds.connectAttr("{0}.outRotate".format(folShape),
                     "{0}.rotate".format(fol))
    cmds.connectAttr("{0}.outTranslate".format(folShape),
                     "{0}.translate".format(fol))

    if cv:
        # snap the follicle to the selection
        snapFollicleToCv(sel, shape, folShape)

    return fol
    def testSubD(self):
        trans = MayaCmds.polyPlane(n='plane', sx=1, sy=1, ch=False)[0]
        shape = MayaCmds.pickWalk(d='down')[0]
        MayaCmds.addAttr(attributeType='bool', defaultValue=1, keyable=True,
            longName='SubDivisionMesh')
        MayaCmds.select(trans+'.vtx[0:3]', r=True)
        MayaCmds.move(0, 1, 0, r=True)
        MayaCmds.currentTime(1, update=True)
        MayaCmds.setKeyframe()
        MayaCmds.currentTime(2, update=True)
        MayaCmds.move(0, 5, 0, r=True)
        MayaCmds.setKeyframe()

        self.__files.append(util.expandFileName('testSubDInterpolation.abc'))
        MayaCmds.AbcExport(j='-fr 1 2 -root %s -file %s' % (trans, self.__files[-1]))
        MayaCmds.AbcImport(self.__files[-1], mode='open')

        MayaCmds.currentTime(1.004, update=True)
        ty = MayaCmds.getAttr(shape+'.vt[0]')[0][1]
        self.failUnlessAlmostEqual(1.02, ty)

        setTime = MayaCmds.currentTime(1.422, update=True)
        alpha = (setTime - 1) / (2 - 1)
        ty = MayaCmds.getAttr(shape+'.vt[0]')[0][1]
        self.failUnlessAlmostEqual(ty, (1-alpha)*1.0+alpha*6.0, 3)
예제 #35
0
def Color_Rnm_leftCtrls():                                      #works similar to Color_rnm_rightControls
    left_controls = cmds.ls(sl=True)
    for all in left_controls:
        cmds.select(all)
        cmds.pickWalk(d='Up')
        sel_grpSDK = cmds.ls(sl=True)
        cmds.rename(sel_grpSDK[0],'grpSDK_'+all)
        
        cmds.pickWalk(d='Up')
        sel_grpOri = cmds.ls(sl=True)
        cmds.rename(sel_grpOri[0],'grp_Ori'+all)
        
        all_shape = cmds.listRelatives(type='shape_all')
        cmds.setAttr(all_shape[0]+".overrideEnabled",1)
        cmds.setAttr(all_shape[0]+".overrideColor",17)
	print "Colored renamed on left circle"
    def testSubD(self):
        trans = MayaCmds.polyPlane(n='plane', sx=1, sy=1, ch=False)[0]
        shape = MayaCmds.pickWalk(d='down')[0]
        MayaCmds.addAttr(attributeType='bool',
                         defaultValue=1,
                         keyable=True,
                         longName='SubDivisionMesh')
        MayaCmds.select(trans + '.vtx[0:3]', r=True)
        MayaCmds.move(0, 1, 0, r=True)
        MayaCmds.currentTime(1, update=True)
        MayaCmds.setKeyframe()
        MayaCmds.currentTime(2, update=True)
        MayaCmds.move(0, 5, 0, r=True)
        MayaCmds.setKeyframe()

        self.__files.append(util.expandFileName('testSubDInterpolation.abc'))
        MayaCmds.AbcExport(j='-fr 1 2 -root %s -file %s' %
                           (trans, self.__files[-1]))
        MayaCmds.AbcImport(self.__files[-1], mode='open')

        MayaCmds.currentTime(1.004, update=True)
        ty = MayaCmds.getAttr(shape + '.vt[0]')[0][1]
        self.failUnlessAlmostEqual(1.02, ty)

        setTime = MayaCmds.currentTime(1.422, update=True)
        alpha = (setTime - 1) / (2 - 1)
        ty = MayaCmds.getAttr(shape + '.vt[0]')[0][1]
        self.failUnlessAlmostEqual(ty, (1 - alpha) * 1.0 + alpha * 6.0, 3)
예제 #37
0
    def CreateGroups(self):
        cmds.select(self.fkJoint)
        self.masterGrp = cmds.pickWalk(direction="up")
        self.fkJntGrp = cmds.group(empty=True,
                                   n=self.jointName.replace(
                                       "01_FK_Jnt", "FK_Grp"),
                                   parent=cmds.rename(self.masterGrp,
                                                      self.masterGrp))
        cmds.parent(self.fkJoint, self.fkJntGrp)
        self.ikJntGrp = cmds.group(empty=True,
                                   n=self.jointName.replace(
                                       "01_FK_Jnt", "IK_Grp"),
                                   parent=cmds.rename(self.masterGrp,
                                                      self.masterGrp))
        cmds.parent(self.ikJoint, self.ikJntGrp)
        self.rkJntGrp = cmds.group(empty=True,
                                   n=self.jointName.replace(
                                       "01_FK_Jnt", "RK_Grp"),
                                   parent=cmds.rename(self.masterGrp,
                                                      self.masterGrp))
        cmds.parent(self.jointNamePartion, self.rkJntGrp)

        self.fkCtrlGrp = cmds.group(empty=True,
                                    n=self.jointName.replace(
                                        "01_FK_Jnt", "FK_Ctrl_Grp"),
                                    parent=cmds.rename(self.masterGrp,
                                                       self.masterGrp))
        cmds.parent(self.fkCtrlGrp, w=True)
        self.ikCtrlGrp = cmds.group(empty=True,
                                    n=self.jointName.replace(
                                        "01_FK_Jnt", "IK_Ctrl_Grp"),
                                    parent=cmds.rename(self.masterGrp,
                                                       self.masterGrp))
        cmds.parent(self.ikCtrlGrp, w=True)
def check_transforms(objects):
    """
    Check joints to insure they have no rotation values.
    """

    invalid = []
    cmds.select(objects)
    new_objects = cmds.pickWalk(d="up")
    t_r_xform = ["t", "r"]
    scale_xform = "s"
    axis = ["x", "y", "z"]

    for obj in new_objects:
        # check translates rotates and scales
        for trans in t_r_xform:
            # check each axis
            for ax in axis:
                trans_rot = cmds.getAttr("%s.%s%s" % (obj, trans, ax))

                if trans_rot != 0:
                    invalid.append(obj)
                    break

            for ax in axis:
                scale = cmds.getAttr("%s.%s%s" % (obj, scale_xform, ax))

                if scale != 1:
                    invalid.append(obj)
                    break

    return invalid
def check_transforms(objects):
    '''
    Check joints to insure they have no rotation values.
    '''
    
    invalid = []
    cmds.select(objects)
    new_objects = cmds.pickWalk(d='up')
    t_r_xform = ['t', 'r']
    scale_xform = 's'
    axis = ['x', 'y', 'z']
    

    for obj in new_objects:
        #check translates rotates and scales
        for trans in t_r_xform:
            #check each axis
            for ax in axis:
                trans_rot = cmds.getAttr('%s.%s%s' % (obj, trans, ax))
                
                if trans_rot != 0:
                    invalid.append(obj)
                    break
                
            for ax in axis:
                scale = cmds.getAttr('%s.%s%s' % (obj, scale_xform, ax))
                
                if scale != 1:
                    invalid.append(obj)
                    break
          
    return invalid
예제 #40
0
def addStringAttr(*args):
    stringAttrName = cmds.textFieldGrp('stringText', q=True,
                                       text=True).split(' ')
    cmds.pickWalk(d="down")
    selected = cmds.ls(sl=1, long=1)
    for member in selected:
        for i in stringAttrName:
            if cmds.attributeQuery("mtoa_constant_" + i,
                                   node=member,
                                   exists=True):
                print 'attribute ' + i + ' already exist!'
            else:
                cmds.addAttr(member,
                             ln="mtoa_constant_" + i,
                             nn=i,
                             dt='string')
예제 #41
0
def renameFamily(name=''):
    sel = mc.ls(sl=True)

    for obj in sel:
        nameCtrl = name + '_CTL'
        # print(nameCtrl)
        mc.rename(obj, nameCtrl)
        mc.pickWalk(direction='up')
        auto = mc.ls(sl=True)[0]
        nameAuto = name + '_OFFSET'
        # print(nameAuto)
        mc.rename(auto, nameAuto)
        mc.pickWalk(direction='up')
        root = mc.ls(sl=True)[0]
        nameRoot = name + '_ROOT'
        # print(nameRoot)
        mc.rename(root, nameRoot)
예제 #42
0
    def getMeshList(self):
        cmds.select(self.charName)
        objectList = cmds.ls(sl=True, type='mesh', dag=True)
        for i in objectList:
            p = cmds.pickWalk(i, direction='up')
            self.meshList.append(p[0])

        self.meshList = list(set(self.meshList))
예제 #43
0
 def SpineTopCOntrol(name):
     mel.eval(
         "curve -n " + name +
         " -d 1 -p 0 -5 0 -p -2 -3 0 -p -1 -3 0 -p -1 -1 0 -p -3 -1 0 -p -3 -2 0-p -5 0 0 -p -3 2 0 -p -3 1 0 -p -1 1 0 -p -1 3 0 -p -2 3 0 -p 0 5 0 -p 2 3 0-p 1 3 0 -p 1 1 0 -p 3 1 0 -p 3 2 0 -p 5 0 0 -p 3 -2 0 -p 3 -1 0 -p 1 -1 0 -p 1 -3 0 -p 2 -3 0 -p 0 -5 0 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -k 9-k 10 -k 11 -k 12 -k 13 -k 14 -k 15 -k 16 -k 17 -k 18 -k 19 -k 20 -k 21 -k 22 -k 23 -k 24;"
     )
     cmds.pickWalk(d="down")
     cmds.rename(name + "Shape")
     cmds.delete(name + "Shape", ch=True)
     cmds.rotate(90, 0, 0, name)
     cmds.makeIdentity(name, apply=True, t=1, s=1, r=1)
     curveG = name + "_GRP"
     curveG2 = name + "_GRP2"
     cmds.group(name, n=curveG)
     cmds.xform(os=True, piv=(0, 0, 0))
     cmds.group(curveG, n=curveG2)
     cmds.xform(os=True, piv=(0, 0, 0))
     pass
def petal(core=None, xyz=[0, 0, 0], rot=[0, 0, 0]):

    myname = "petalObj"
    if core:
        myname = "flowerPetalObj"

    # build the petal, position it
    UNUSED = cmds.sphere(name=myname, axis=[0, 1, 0])
    if core:
        cmds.move(0, 0, -1.6)
    else:
        cmds.move(*xyz)  # unpack xyz

    cmds.scale(0.7, 0.3, 1.7)

    if core:
        cmds.FreezeTransformations()
        cmds.ResetTransformations()

    p = cmds.ls(sl=True)[0]

    if core:
        cmds.parent(p, core)

    cmds.select(p)
    cmds.pickWalk(direction="down")
    myPetalShape = cmds.ls(sl=True)

    # move the tip of the petal
    cmds.select(p + ".cv[3][7]")
    cmds.move(0, 2, 0, relative=True)

    # Select the inner part of the petal pull down
    # One loop for the U direction
    for uCV in xrange(5, 7):  # These numbers are
        for vCV in xrange(0, 8):  # not arbitrary.
            suffix = ".cv[%i][%i]" % (uCV, vCV)
            cmds.select(p + suffix)
            cmds.move(0, -0.4, 0, relative=True)

    if rot:
        cmds.select(p)
        cmds.rotate(*rot, relative=False)

    return p
예제 #45
0
def selcetPoly(*arg):
    polyList = []
    #查询所有在mesh的列表
    #geo = cmds.ls( type='geometryShape')
    mesh = cmds.ls(type='mesh')
    if len(mesh) > 0:
        #选择列表中的模型
        cmds.select(mesh)
        #向上一级选择
        cmds.pickWalk(d="up")
        #把选择的物体成为列表
        polygon = cmds.ls(sl=True)
        #print len(polygon)
        for i in polygon:
            polyList.append(i)
        return polyList
    else:
        Prompt('No mesh in scene. ')
예제 #46
0
 def getTopPos(self, objs):
     obj = objs[0]
     while True:
         curObj = cmds.pickWalk(obj, direction='up')
         if curObj[0] not in objs or obj == curObj[0]:
             break
         obj = curObj[0]
 
     return obj
예제 #47
0
def getTextureFromShader(*args):
    cmds.pickWalk(d="down")
    sel = cmds.ls(sl=1, long=1)

    for i in sel:
        getAiAttrName = cmds.textFieldGrp('getAiAttrField', q=True, text=True)
        shadingGroup = cmds.listConnections(i, type='shadingEngine')
        shader = cmds.ls(cmds.listConnections(shadingGroup), materials=1)
        imageFile = cmds.listConnections(shader[0], type='file')
        if not imageFile:
            print 'No shader assigned'

        else:
            texture = cmds.getAttr(imageFile[0] + '.fileTextureName')
            texture = texture.replace('/', '\\')
            texture = texture.split('sourceimages\\')[1]
            cmds.setAttr(i + '.mtoa_constant_' + getAiAttrName,
                         texture,
                         type='string')
예제 #48
0
def createLocator():
    shape = MayaCmds.createNode("locator")
    name = MayaCmds.pickWalk(shape, d="up")
    MayaCmds.setAttr(shape + '.localPositionX', 0.962)
    MayaCmds.setAttr(shape + '.localPositionY', 0.731)
    MayaCmds.setAttr(shape + '.localPositionZ', 5.114)
    MayaCmds.setAttr(shape + '.localScaleX', 5)
    MayaCmds.setAttr(shape + '.localScaleY', 1.44)
    MayaCmds.setAttr(shape + '.localScaleZ', 1.38)
    return name[0], shape
예제 #49
0
def edge_loop_to_curve(edge_name, delete_edges=False):
    cmds.select(edge_name)
    cmds.pickWalk(edge_name, type="edgeloop", d="right")
    curve_name, shape_name = cmds.polyToCurve(form=2, degree=3)
    cvs = cmds.getAttr("{}.spans".format(curve_name))
    curve_points = []
    for cv_id in range(cvs):
        cv_name = "{}.cv[{}]".format(curve_name, cv_id)
        pos = get_position(cv_name)
        curve_points.append(Component(cv_name, *pos))

    if delete_edges:
        cmds.select(edge_name)
        cmds.pickWalk(edge_name, type="edgeloop", d="right")
        cmds.polyDelEdge(cv=True)

    cmds.select(curve_name)
    cmds.Delete()
    return curve_points
예제 #50
0
def setGeo(sceneGeo):

    #Freeze transformations
    cmds.select(sceneGeo)
    cmds.makeIdentity(apply=True, t=1, r=1, s=1, n=0)

    #Merges objects if more than one object to catch shadows
    if len(sceneGeo) > 1:

        for obj in sceneGeo:
            noUnicode = unicode(obj)
            newObjName = noUnicode + "_mergedForShadowCatcher"
            print newObjName

        print "More than one object. Merging objects"
        cmds.select(sceneGeo)
        hideMe = cmds.polyUnite(sceneGeo, n=newObjName)
        cmds.hide(hideMe[0])
        sillyString = "connectAttr -f {}Shape.outMesh shadowCatcherShape.inMesh;".format(
            newObjName)
        #Hide the original geo in all layers

        renderlayers = cmds.ls(type="renderLayer")
        print renderlayers

        if u'default_light_rig:defaultRenderLayer' in renderlayers:
            renderlayers.remove(u'default_light_rig:defaultRenderLayer')
            print renderlayers
        """
		# for legacy render-layers setup
		for layer in renderlayers:
		    cmds.editRenderLayerGlobals( currentRenderLayer=layer )
		    cmds.hide( newObjName )  
		"""

    #otherwise do just the one
    else:
        print "Only one object selected"

        noUnicode = cmds.pickWalk(d='Down')
        noUnicode = str(noUnicode[0])

        sillyString = "connectAttr -f {}.outMesh shadowCatcherShape.inMesh;".format(
            noUnicode)
        #Hide the original geo in all layers

        renderlayers = cmds.ls(type="renderLayer")
        print renderlayers

        if u'default_light_rig:defaultRenderLayer' in renderlayers:
            renderlayers.remove(u'default_light_rig:defaultRenderLayer')
            print renderlayers

    print sillyString
    mel.eval(sillyString)
예제 #51
0
def selectVerts(walklist, *args):
    vertList = []

    sel = cmds.ls(sl=True, fl=True)[0]
    vertList.append(sel)

    for x in range(0, len(walklist)):
        thisv = cmds.pickWalk(d=walklist[x])[0]
        vertList.append(thisv)

    cmds.select(vertList, r=True)
예제 #52
0
    def testAddNewPrimWithDelete(self):
        cmds.file(new=True, force=True)

        # Create a proxy shape with empty stage to start with.
        import mayaUsd_createStageWithNewLayer
        mayaUsd_createStageWithNewLayer.createStageWithNewLayer()

        # Create a ContextOps interface for the proxy shape.
        proxyShapePath = ufe.Path(
            [mayaUtils.createUfePathSegment("|world|stage1|stageShape1")])
        proxyShapeItem = ufe.Hierarchy.createItem(proxyShapePath)
        contextOps = ufe.ContextOps.contextOps(proxyShapeItem)

        # Add a new Xform prim.
        cmd = contextOps.doOpCmd(['Add New Prim', 'Xform'])
        self.assertIsNotNone(cmd)
        ufeCmd.execute(cmd)

        # The proxy shape should now have a single UFE child item.
        proxyShapehier = ufe.Hierarchy.hierarchy(proxyShapeItem)
        self.assertTrue(proxyShapehier.hasChildren())
        self.assertEqual(len(proxyShapehier.children()), 1)

        # Using UFE, delete this new prim (which doesn't actually delete it but
        # instead makes it inactive).
        cmds.pickWalk(d='down')
        cmds.delete()

        # The proxy shape should now have no UFE child items (since we skip inactive).
        self.assertFalse(proxyShapehier.hasChildren())
        self.assertEqual(len(proxyShapehier.children()), 0)

        # Add another Xform prim (which should get a unique name taking into
        # account the prim we just made inactive).
        cmd = contextOps.doOpCmd(['Add New Prim', 'Xform'])
        self.assertIsNotNone(cmd)
        ufeCmd.execute(cmd)

        # The proxy shape should now have a single UFE child item.
        self.assertTrue(proxyShapehier.hasChildren())
        self.assertEqual(len(proxyShapehier.children()), 1)
예제 #53
0
def createNUL():
    sel = cmds.ls(sl=1)
    cmds.select(deselect=1)
    for d in sel:
        sel_nameList = d.split('_')
        del sel_nameList[-1]
        sel_reName = '_'.join(sel_nameList)
        createNUL = cmds.group(em=1, n='%s_NUL' % sel_reName)
        cmds.parentConstraint(d, createNUL, mo=0)
        sel_cn = cmds.pickWalk(d='down')
        cmds.delete(sel_cn)
        cmds.parent(d, createNUL)
예제 #54
0
def create_text(text, font):
    print(font)
    if font == '':
        cmds.textCurves(ch=0, t=text, font=default_font)
    else:
        cmds.textCurves(ch=0, t=text, font=font)
    cmds.ungroup()
    cmds.ungroup()
    curves = cmds.ls(sl=True)
    cmds.makeIdentity(apply=True, t=1, r=1, s=1, n=0)
    shapes = curves[1:]
    cmds.select(shapes, r=True)
    cmds.pickWalk(d='Down')
    cmds.select(curves[0], tgl=True)
    cmds.parent(r=True, s=True)
    cmds.pickWalk(d='up')
    cmds.delete(shapes)
    cmds.xform(cp=True)
    cmds.rename(text.lower() + "_crv")
    return cmds.ls(sl=True)[0]
    print(' ')  # Clear Warnings
예제 #55
0
 def getDeformers(self):
     cmds.pickWalk(d='down')
     geomNode = cmds.ls(selection=True)[0]
     self.defchain = mel.eval('getChain "{}"'.format(geomNode))
     ffds = cmds.ls(type='ffd')
     blends = cmds.ls(type='blendShape')
     tweaks = cmds.ls(type='tweak')
     skinclusters = cmds.ls(type='skinCluster')
     muscles = cmds.ls(type='cMuscleSplineDeformer')
     muscles += cmds.ls(type='cMuscleSystem')
     muscles += cmds.ls(type='cMuscleMultiCollide')
     muscles += cmds.ls(type='cMuscleStretch')
     maskeddefs = ffds + blends + tweaks + skinclusters + muscles
     for md in maskeddefs:
         if md in self.defchain:
             self.defchain.remove(md)
     self.lw.clear()
     for i in self.defchain:
         qlitem = QtGui.QListWidgetItem()
         qlitem.setText(i)
         self.lw.addItem(i)
예제 #56
0
파일: Create.py 프로젝트: miccall/MayaTool
 def ProxyAim(self, name):
     self.ProxyBase(name)
     cmds.curve(n="%s_Aim" % name, d=1,
                p=[(-0.25, 0, 0), (-0.25, 0, -1), (-0.5, 0, -1), (0, 0, -1.5), (0.5, 0, -1), (0.25, 0, -1),
                   (0.25, 0, 0)], k=[0, 1, 2, 3, 4, 5, 6])
     pw = cmds.pickWalk(d="down")
     cmds.rename(pw[0], "%s_AimShape" % name)
     PCons = cmds.pointConstraint(name, "%s_Aim" % name)
     cmds.delete(PCons)
     cmds.makeIdentity("%s_Aim" % name, apply=True, t=1, r=1, s=1)
     cmds.parent("%s_AimShape" % name, name)
     cmds.delete("%s_Aim" % name)
예제 #57
0
def assignPREVShader(*args):
    cmds.pickWalk(d="down")
    sel = cmds.ls(sl=1, long=1)
    for i in sel:
        shapeName = ''
        shapeName = i
        texture, nameFull = textureName(i)
        if cmds.objExists('PREV_' + texture):
            cmds.sets(i, e=1, forceElement='PREV_' + texture + 'SG')
        else:
            if texture == 'BLANK':
                previewShader = cmds.shadingNode('lambert',
                                                 asShader=True,
                                                 n='PREV_' + texture)
                previewSG = cmds.sets(renderable=True,
                                      noSurfaceShader=True,
                                      empty=True,
                                      n=previewShader + 'SG')
                cmds.connectAttr(previewShader + '.outColor',
                                 previewSG + '.surfaceShader')
                cmds.sets(i, e=1, forceElement=previewSG)
            else:
                previewShader = cmds.shadingNode('lambert',
                                                 asShader=True,
                                                 n='PREV_' + texture)
                previewIF = cmds.shadingNode('file',
                                             asTexture=True,
                                             n='PREV_IF_' + texture)
                previewSG = cmds.sets(renderable=True,
                                      noSurfaceShader=True,
                                      empty=True,
                                      n=previewShader + 'SG')
                cmds.connectAttr(previewIF + '.outColor',
                                 previewShader + '.color')
                cmds.connectAttr(previewShader + '.outColor',
                                 previewSG + '.surfaceShader')
                cmds.setAttr(previewIF + '.fileTextureName',
                             nameFull,
                             type="string")
                cmds.sets(i, e=1, forceElement=previewSG)
예제 #58
0
    def FootTilt(self, side):
        sign = 1
        sideindex = 0
        if side == "L":
            sign = 1
            sideindex = 0
        else:
            sign = -1
            sideindex = 1

        Ankle = self.Proxies_Ankles[sideindex]
        Ball = self.Proxies_Balls[sideindex]
        BallG = Ball + "_GRP"

        FootG = "Proxies_" + side + "_Foot_GRP"
        FootInTilt = "Proxies_" + side + "_FootInTilt"
        FootInTiltShape = "%sShape" % FootInTilt
        FootOutTilt = "Proxies_" + side + "_FootOutTilt"
        FootOutTiltShape = "%sShape" % FootInTilt
        FootHeelPivot = "Proxies_" + side + "_FootHeelPivot"
        FootHeelPivotShape = "%sShape" % FootHeelPivot

        mel.eval(
            "curve -n " + FootInTilt +
            " -d 1 -p 0 0 -1 -p 0 0 1 -p 0 0 0 -p 1 0 0 -p -1 0 0 -p 0 0 0 -p 0 1 0 -p 0 -1 0 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 ;"
        )
        cmds.pickWalk(d="down")
        cmds.rename(FootInTiltShape)
        cmds.move(0.5 * sign, 0, 2.26, FootInTilt)
        cmds.makeIdentity(FootInTilt, apply=True, t=1, r=1, s=1)

        mel.eval(
            "curve -n " + FootOutTilt +
            " -d 1 -p 0 0 -1 -p 0 0 1 -p 0 0 0 -p 1 0 0 -p -1 0 0 -p 0 0 0 -p 0 1 0 -p 0 -1 0 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 ;"
        )
        cmds.pickWalk(d="down")
        cmds.rename(FootOutTiltShape)
        cmds.move(3 * sign, 0, 2.26, FootOutTilt)
        cmds.makeIdentity(FootOutTilt, apply=True, t=1, r=1, s=1)
        cmds.parent(FootOutTilt, FootInTilt, BallG)

        mel.eval(
            "curve -n " + FootHeelPivot +
            " -d 1 -p 0 0 -1 -p 0 0 1 -p 0 0 0 -p 1 0 0 -p -1 0 0 -p 0 0 0 -p 0 1 0 -p 0 -1 0 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 ;"
        )
        cmds.pickWalk(d="down")
        cmds.rename(FootHeelPivotShape)
        cmds.move(1.72 * sign, 0, -1.079, FootHeelPivot)
        cmds.makeIdentity(FootHeelPivot, apply=True, t=1, r=1, s=1)

        cmds.group(Ball, FootHeelPivot, n=FootG)
        cmds.parent(FootG, self.Main)
        AnklePosition = cmds.xform(Ankle, q=True, ws=True, rp=True)
        cmds.move(AnklePosition[0], 0, AnklePosition[2],
                  "%s.scalePivot" % FootG, "%s.rotatePivot" % FootG)
        cmds.pointConstraint(Ankle, FootG, mo=True, skip="y")
        cmds.orientConstraint(Ankle, FootG, mo=True, skip=['x', 'z'])
        cmds.scaleConstraint(Ankle, FootG, offset=[1, 1, 1], skip='y')
        pass
예제 #59
0
def ctrl_orb():
    mel.eval(
        'circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.01 -s 8 -ch 1'
    )
    base_circle = cmds.ls(sl=True)

    cmds.duplicate(rr=True)
    dup1 = cmds.ls(sl=True)
    cmds.setAttr(dup1[0] + '.rotateX', 90)

    cmds.duplicate(rr=True)
    dup2 = cmds.ls(sl=True)
    cmds.setAttr(dup2[0] + '.rotateY', 90)

    cmds.duplicate(rr=True)
    dup3 = cmds.ls(sl=True)
    cmds.setAttr(dup3[0] + '.rotateY', 45)
    print 'Curves have been created and positioned.'

    cmds.select(base_circle, dup1, dup2, dup3)
    cmds.makeIdentity(apply=True, t=1, r=1, s=1, n=0)
    print 'Freezing transforms on curves.'

    cmds.select(dup1, dup2, dup3, r=True)
    curves = cmds.ls(sl=True)
    cmds.pickWalk(d='Down')
    cmds.select(base_circle, add=True)
    cmds.parent(r=True, s=True)
    print 'Curve list has been parented into single curve.'

    cmds.select(curves, r=True)
    mel.eval('doDelete')
    print 'Unused groups have been deleted.'

    cmds.select(base_circle)
    mel.eval('CenterPivot')
    print(
        'End result curve have been selected and its pivot has been centered.')
def check_curve_hist(objects):
    '''
    Check so see if controls have construction history on them.
    '''

    invalid = []

    shapes = cmds.filterExpand(objects, sm=9)
    cmds.select(shapes)
    new_list = cmds.pickWalk(d='up')

    hist = []

    return invalid