コード例 #1
0
ファイル: panopticon.py プロジェクト: chirs/studio5
    def draw(self):

            circle1 = cmds.circle( nr=(1, 0, 0), c=(0, 0, 0), sw=self.sweep, r=self.start_radius )
            circle2 = cmds.circle( nr=(1, 0, 0), c=(0, 0, 0), sw=self.sweep, r=self.end_radius )

            l1 = cmds.loft(circle1, circle2)

            # curves
            crv = cmds.curve(p=[(0, self.start_radius, 0), (0, self.end_radius, 0)], degree=1)
            crv2 = cmds.duplicate(crv)
            cmds.rotate(str(self.sweep) + 'deg', 0, 0, r=True)

            extrusions = []

            for e in [circle1, circle2, crv, crv2]:
                extrusions.append(cmds.extrude(e, et=0, d=(1,0,0), l=self.height))
                cmds.delete(e)

            pieces = extrusions + [l1]
            group = cmds.group(*[e[0] for e in pieces])

            cmds.move(0,0,0, group+".scalePivot",group+".rotatePivot", absolute=True)
            cmds.setKeyframe(group, attribute='rotateX', t='0sec', value=self.rotation)

            return (pieces, group)
コード例 #2
0
ファイル: curve.py プロジェクト: skarone/PipeL
	def create(self, shape):
		"""create a curve with a specific shape"""
		finalName = ''
		if shape == "arrow":
			finalName = mc.curve( d =1, p = [( 0, 0.6724194, 0.4034517 ),( 0, 0, 0.4034517 ),( 0, 0, 0.6724194 ),( 0, -0.4034517, 0 ),( 0, 0, -0.6724194 ),( 0, 0, -0.4034517 ),( 0, 0.6724194, -0.4034517 ),( 0, 0.6724194, 0.4034517 )] ,k=[ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ],n = self.name )
		elif shape == "cross":
			finalName = mc.curve( d =1, p = [( 1, 0, -1 ),( 2, 0, -1 ),( 2, 0, 1 ),( 1, 0, 1 ),( 1, 0, 2 ),( -1, 0, 2 ),( -1, 0, 1 ),( -2, 0, 1 ),( -2, 0, -1 ),( -1, 0, -1 ),( -1, 0, -2 ),( 1, 0, -2 ),( 1, 0, -1 )] , k=[ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 ] ,n = self.name )
		elif shape == "square":
			finalName = mc.curve( d =1, p = [( -1, 0, 1 ),( 1, 0, 1 ),( 1, 0, -1 ),( -1, 0, -1 ),( -1, 0, 1 )] ,k = [ 0 , 1 , 2 , 3 , 4 ],n = self.name )
		
		elif shape == "cube":
			finalName = mc.curve( d =1, p = [( -0.5, 0.5, 0.5 ),( 0.5, 0.5, 0.5 ),( 0.5, 0.5, -0.5 ),( -0.5, 0.5, -0.5 ),( -0.5, 0.5, 0.5 ),( -0.5, -0.5, 0.5 ),( -0.5, -0.5, -0.5 ),( 0.5, -0.5, -0.5 ),( 0.5, -0.5, 0.5 ),( -0.5, -0.5, 0.5 ),( 0.5, -0.5, 0.5 ),( 0.5, 0.5, 0.5 ),( 0.5, 0.5, -0.5 ),( 0.5, -0.5, -0.5 ),( -0.5, -0.5, -0.5 ),( -0.5, 0.5, -0.5 )] , k = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ] ,n = self.name)
		elif shape == "orient":
			finalName = mc.curve( d =3, p = [( 0.0959835, 0.604001, -0.0987656 ),( 0.500783, 0.500458, -0.0987656 ),( 0.751175, 0.327886, -0.0987656 ),( 0.751175, 0.327886, -0.0987656 ),( 0.751175, 0.327886, -0.336638 ),( 0.751175, 0.327886, -0.336638 ),( 1.001567, 0, 0 ),( 1.001567, 0, 0 ),( 0.751175, 0.327886, 0.336638 ),( 0.751175, 0.327886, 0.336638 ),( 0.751175, 0.327886, 0.0987656 ),( 0.751175, 0.327886, 0.0987656 ),( 0.500783, 0.500458, 0.0987656 ),( 0.0959835, 0.604001, 0.0987656 ),( 0.0959835, 0.604001, 0.0987656 ),( 0.0959835, 0.500458, 0.500783 ),( 0.0959835, 0.327886, 0.751175 ),( 0.0959835, 0.327886, 0.751175 ),( 0.336638, 0.327886, 0.751175 ),( 0.336638, 0.327886, 0.751175 ),( 0, 0, 1.001567 ),( 0, 0, 1.001567 ),( -0.336638, 0.327886, 0.751175 ),( -0.336638, 0.327886, 0.751175 ),( -0.0959835, 0.327886, 0.751175 ),( -0.0959835, 0.327886, 0.751175 ),( -0.0959835, 0.500458, 0.500783 ),( -0.0959835, 0.604001, 0.0987656 ),( -0.0959835, 0.604001, 0.0987656 ),( -0.500783, 0.500458, 0.0987656 ),( -0.751175, 0.327886, 0.0987656 ),( -0.751175, 0.327886, 0.0987656 ),( -0.751175, 0.327886, 0.336638 ),( -0.751175, 0.327886, 0.336638 ),( -1.001567, 0, 0 ),( -1.001567, 0, 0 ),( -0.751175, 0.327886, -0.336638 ),( -0.751175, 0.327886, -0.336638 ),( -0.751175, 0.327886, -0.0987656 ),( -0.751175, 0.327886, -0.0987656 ),( -0.500783, 0.500458, -0.0987656 ),( -0.0959835, 0.604001, -0.0987656 ),( -0.0959835, 0.604001, -0.0987656 ),( -0.0959835, 0.500458, -0.500783 ),( -0.0959835, 0.327886, -0.751175 ),( -0.0959835, 0.327886, -0.751175 ),( -0.336638, 0.327886, -0.751175 ),( -0.336638, 0.327886, -0.751175 ),( 0, 0, -1.001567 ),( 0, 0, -1.001567 ),( 0.336638, 0.327886, -0.751175 ),( 0.336638, 0.327886, -0.751175 ),( 0.0959835, 0.327886, -0.751175 ),( 0.0959835, 0.327886, -0.751175 ),( 0.0959835, 0.500458, -0.500783 ),( 0.0959835, 0.604001, -0.0987656 )] , k = [ 0 , 0 , 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 , 50 , 51 , 52 , 53 , 53 , 53 ],n = self.name )
		elif shape == "circleY":
			finalName = mc.circle( c = ( 0, 0, 0 ) ,nr = ( 0, 1, 0 ), sw= 360, r= 1, d =3, ut= 0, tol= 0.01, s= 8, ch= 1, n =  self.name )
			finalName = finalName[0]
		elif shape == "circleZ":
			finalName = mc.circle( c = ( 0, 0, 0 ) ,nr = ( 0, 0, 1 ), sw= 360, r= 1, d =3, ut= 0, tol= 0.01, s= 8, ch= 1, n = self.name )
			finalName = finalName[0]
		elif shape == "circleX":
			finalName = mc.circle( c = ( 0, 0, 0 ) ,nr = ( 1, 0, 0 ), sw= 360, r= 1, d =3, ut= 0, tol= 0.01, s= 8, ch= 1, n = self.name )
			finalName = finalName[0]
		elif shape == "sphere":
			finalName = mc.curve( d = 1 , p =[ ( 0, 3, 0 ),( 0, 2, -2 ),( 0, 0, -3 ),( 0, -2, -2 ),( 0, -3, 0 ),( 0, -2, 2 ),( 0, 0, 3 ),( 0, 2, 2 ),( 0, 3, 0 ),( 2, 2, 0 ),( 3, 0, 0 ),( 2, -2, 0 ),( 0, -3, 0 ),( -2, -2, 0 ),( -3, 0, 0 ),( -2, 2, 0 ),( 0, 3, 0 )], k = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 ] ,n = self.name )
		elif shape == "plus":
			finalName = mc.curve( d = 1 , p = [( 0, 1, 0 ),( 0, -1, 0 ),( 0, 0, 0 ),( -1, 0, 0 ),( 1, 0, 0 ),( 0, 0, 0 ),( 0, 0, 1 ),( 0, 0, -1 )], k = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ,n = self.name )
		else:
			print "THERE IS NO CURVE FOR THE SHAPE THAT YOU WANT!"
		self._name = finalName
		return Curve( finalName )
def createCOG(*args):
    cmds.circle(nr=(0,1,0),s=16, r=2)
    cmds.scale(0.177161, 0.177161, 0.177161,'.cv[15]','.cv[13]','.cv[11]','.cv[9]','.cv[7]',
                '.cv[5]','.cv[3]','.cv[1]',r=True)
    cmds.scale(1.848257, 1.848257, 1.848257, r=True)
    cmds.select(cl=True)
    print 'Created a COG'
コード例 #4
0
ファイル: dpControls.py プロジェクト: nilouco/dpAutoRigSystem
def cvSmile(ctrlName, r=1):
    """Create and return a cvSmile curve to be usually used in the face_Ctrl.
    """
    # create circles to get the shapes:
    face = cmds.circle(n=ctrlName+"_Face", ch=False, o=True, nr=(0, 0, 1), d=3, s=8, radius=r)
    lEye = cmds.circle(n=ctrlName+"_L_Eye", ch=False, o=True, nr=(0, 0, 1), d=3, s=8, radius=r*0.3)
    rEye = cmds.circle(n=ctrlName+"_R_Eye", ch=False, o=True, nr=(0, 0, 1), d=3, s=8, radius=r*0.3)
    mouth = cmds.circle(n=ctrlName+"_Mouth", ch=False, o=True, nr=(0, 0, 1), d=3, s=8, radius=r*0.5)
    # change circle shapes:
    cmds.setAttr(lEye[0]+".translateX", 0.4)
    cmds.setAttr(lEye[0]+".translateY", 0.3)
    cmds.setAttr(rEye[0]+".translateX", -0.4)
    cmds.setAttr(rEye[0]+".translateY", 0.3)
    cmds.setAttr(mouth[0]+".translateY", -0.3)
    cmds.makeIdentity(lEye[0], apply=True)
    cmds.makeIdentity(rEye[0], apply=True)
    cmds.makeIdentity(mouth[0], apply=True)
    cmds.move(-0.6, -0.4, 0, mouth[0]+"Shape.cv[3]")
    cmds.move(0.6, -0.4, 0, mouth[0]+"Shape.cv[7]")
    cmds.move(0.325, -0.225, 0, mouth[0]+"Shape.cv[0]")
    cmds.move(-0.325, -0.225, 0, mouth[0]+"Shape.cv[2]")
    cmds.move(0, -0.55, 0, mouth[0]+"Shape.cv[1]")
    # parent shapes to transform:
    smileCtrl = cmds.group(name=ctrlName, empty=True)
    cmds.parent( cmds.listRelatives(face, shapes=True, children=True)[0], smileCtrl, relative=True, shape=True)
    cmds.parent( cmds.listRelatives(lEye, shapes=True, children=True)[0], smileCtrl, relative=True, shape=True)
    cmds.parent( cmds.listRelatives(rEye, shapes=True, children=True)[0], smileCtrl, relative=True, shape=True)
    cmds.parent( cmds.listRelatives(mouth, shapes=True, children=True)[0], smileCtrl, relative=True, shape=True)
    # delete old x, y and z transforms:
    cmds.delete(face, lEye, rEye, mouth)
    cmds.select(clear=True)
    return smileCtrl
コード例 #5
0
ファイル: dpControls.py プロジェクト: nilouco/dpAutoRigSystem
def cvBaseGuide(ctrlName, r=1):
    """Create a control to be used as a Base Guide control.
        Returns the main control (circle) and the radius control in a list.
    """
    # get radius by checking linear unit
    r = dpCheckLinearUnit(r)
    # create a simple circle curve:
    circle = cmds.circle(n=ctrlName, ch=True, o=True, nr=(0, 0, 1), d=3, s=8, radius=r)[0]
    radiusCtrl = cmds.circle(n=ctrlName+"_RadiusCtrl", ch=True, o=True, nr=(0, 1, 0), d=3, s=8, radius=(r/4.0))[0]
    # rename curveShape:
    renameShape([circle, radiusCtrl])
    # configure system of limits and radius:
    cmds.setAttr(radiusCtrl+".translateX", r)
    cmds.parent(radiusCtrl, circle, relative=True)
    cmds.transformLimits(radiusCtrl, tx=(0.01, 1), etx=(True, False))
    setLockHide([radiusCtrl], ['ty', 'tz', 'rx', 'ry', 'rz', 'sx', 'sy', 'sz'])
    # find makeNurbCircle history of the circles:
    historyList = findHistory([circle, radiusCtrl], 'makeNurbCircle')
    circleHistory     = historyList[0]
    radiusCtrlHistory = historyList[1]
    # rename and make a connection for circle:
    circleHistory = cmds.rename(circleHistory, circle+"_makeNurbCircle")
    cmds.connectAttr(radiusCtrl+".tx", circleHistory+".radius", force=True)
    radiusCtrlHistory = cmds.rename(radiusCtrlHistory, radiusCtrl+"_makeNurbCircle")
    # create a mutiplyDivide in order to automatisation the radius of the radiusCtrl:
    radiusCtrlMD = cmds.createNode('multiplyDivide', name=radiusCtrl+'_MD')
    cmds.connectAttr(radiusCtrl+'.translateX', radiusCtrlMD+'.input1X', force=True)
    cmds.setAttr(radiusCtrlMD+'.input2X', 0.15)
    cmds.connectAttr(radiusCtrlMD+".outputX", radiusCtrlHistory+".radius", force=True)
    # colorize curveShapes:
    colorShape([circle, radiusCtrl], 'yellow')
    cmds.select(clear=True)
    return [circle, radiusCtrl]
コード例 #6
0
ファイル: sgRigSpline.py プロジェクト: jonntd/mayadev-1
def createControlInJointLine( topJnt ):
    
    jnts = cmds.listRelatives( topJnt, c=1, ad=1, type='joint' )
    jnts.append( topJnt )
    
    jnts.reverse()
    
    
    topCtl = cmds.circle()[0]
    sgFunctionSet.goToObject( topCtl, jnts[0] )
    pTopCtl = sgFunctionDag.makeParent( topCtl )
    sgRigConnection.constraint( jnts[0], pTopCtl )
    
    for i in range( 0, len( jnts )-2, 2 ):
        first = jnts[i]
        second = jnts[i+2]
        middle = jnts[i+1]
        
        middleObj = cmds.createNode( 'transform' )
        sgFunctionSet.goToObject( middleObj, middle )
        
        ctl = cmds.circle()[0]
        sgFunctionSet.goToObject( ctl, second )
        pCtl = sgFunctionDag.makeParent( ctl )
        sgRigConnection.constraint( second, pCtl )
        
        cmds.select( first, second, middleObj )
        firstChildren, secondChildren = sgRigConnection.mc_connectBlendTwoMatrix_keepPositionAndSkipSecondTrans()
コード例 #7
0
	def RMCircularControl (self, Obj, radius = 1, axis = "X", name = ""):
		if name == '':
			defaultName = "circularControl"
		else :
			defaultName = name
		if axis in "yY":
			Ctrl, Shape = cmds.circle( normal = [0,1,0],radius=radius, name = defaultName)
		elif axis in "zZ":
			Ctrl, Shape = cmds.circle( normal = [0,0,1],radius=radius, name = defaultName)
		elif axis in "xX":
			Ctrl, Shape = cmds.circle( normal = [1,0,0],radius=radius, name = defaultName)
		
		if name == '' and self.NameConv.RMIsNameInFormat( Obj):

			Ctrl = self.NameConv.RMRenameBasedOnBaseName( Obj, Ctrl)
		else:
			Ctrl = self.NameConv.RMRenameBasedOnBaseName( Obj, Ctrl, NewName = Ctrl)
			

		Ctrl = self.NameConv.RMRenameSetFromName (Ctrl,"control","Type")

		RMRigTools.RMAlign(Obj,Ctrl,3)

		ResetGroup = RMRigTools.RMCreateGroupOnObj(Ctrl)

		return ResetGroup , Ctrl
コード例 #8
0
ファイル: utils.py プロジェクト: Bumpybox/Tapp
def sliderA(prefix):
    cmds.undoInfo(openChunk=True)
    
    #create nodes
    grp=cmds.group(empty=True,n=(prefix+'_grp'))
    cnt=cmds.circle(r=0.1,ch=False,n=(prefix+'_cnt'))
    shp=cmds.circle(o=True,r=1,ch=False,d=1,s=4,n=(prefix+'_shp'))
    
    #setup shp
    cmds.move(-1,0,0,'%s.cv[0]' % shp[0],r=True,os=True)
    cmds.move(-1,0,0,'%s.cv[4]' % shp[0],r=True,os=True)
    cmds.move(0,-1,0,'%s.cv[1]' % shp[0],r=True,os=True)
    cmds.move(1,0,0,'%s.cv[2]' % shp[0],r=True,os=True)
    cmds.move(0,1,0,'%s.cv[3]' % shp[0],r=True,os=True)
    
    cmds.parent(shp,grp)
    
    cmds.setAttr('%s.overrideEnabled' % shp[0],1)
    cmds.setAttr('%s.overrideDisplayType' % shp[0],2)
    
    #setup cnt
    cmds.parent(cnt,shp)
    
    cmds.setAttr('%s.overrideEnabled' % cnt[0],1)
    
    cmds.transformLimits(cnt,tx=(-1,1),etx=(1,1))
    cmds.transformLimits(cnt,ty=(-1,1),ety=(1,1))
    
    setupAttrs(prefix,cnt[0])
    
    return grp
    
    cmds.undoInfo(closeChunk=True)
def createPointer(*args):
    cmds.circle(nr=(0,1,0),s=8,r=2)
    cmds.move(0,0,3.740932,'.cv[5]', r=True)
    cmds.scale(0.523749,1,1,'.cv[4]','.cv[6]', p=(0,0,1.567223),r=True)
    cmds.scale(0.786803,1,1,'.cv[3]','.cv[7]',p=(0,0,0), r=True)
    cmds.scale(0.382332, 0.382332, 0.382332, r=True)
    cmds.select(cl=True)
    print 'Created a Nurbs Pointer'
コード例 #10
0
ファイル: LightRigTool.py プロジェクト: lbmk27/maya_python
    def createRig(self):
        # Create a Cube for test cases
        mc.polySphere(name='mySphere')
        objCenter = mc.objectCenter('mySphere', l=True)

        # Get the bounding box for the selected ojbject
        XYZ = mc.xform('mySphere', bb=True, q=True)
        rad = XYZ[3] / 2 * self.settings.radius
        strltPos = self.settings.lightPos
        lightP = 0.0

        if strltPos == "High":
            lightP = 5.0
        elif strltPos == "Low":
            lightP = -5.0
        else:
            lightP = 0.0

        # Create a circle to place three point lights
        mc.circle(n='curveLights', nr=(0, 1, 0), c=(0, 0, 0), sections=9, radius=rad)

        # Create lights in three positions on the curve
        loc = mc.pointOnCurve('curveLights', pr=0.0, p=True)
        #_item = mc.spotLight(name='FillLight', coneAngle=45)
        _item = self.createLight(self.fillLight, "FillLight")
        mc.move(loc[0], loc[1]+lightP, loc[2], _item, ls=True)

        loc = mc.pointOnCurve('curveLights', pr=3.0, p=True)
        #_item = mc.spotLight(name='KeyLight', coneAngle=45)
        _item = self.createLight(self.keyLight, "KeyLight")
        mc.move(loc[0], loc[1]+lightP, loc[2], _item, ls=True)

        loc = mc.pointOnCurve('curveLights', pr=6.0, p=True)
        #_item = mc.spotLight(name='RimLight', coneAngle=45)
        _item = self.createLight(self.rimLight, "RimLight")
        mc.move(loc[0], loc[1]+lightP, loc[2], _item, ls=True)

        # Create space locator and aimConstraints
        mc.spaceLocator(n='fillLocator', p=(objCenter[0], objCenter[1], objCenter[2]))
        mc.aimConstraint('fillLocator', 'FillLight', aimVector=(0.0, 0.0, -1.0))
        mc.parent('fillLocator', 'curveLights', relative=True)

        mc.spaceLocator(n='keyLocator', p=(objCenter[0], objCenter[1], objCenter[2]))
        mc.aimConstraint('keyLocator', 'KeyLight', aimVector=(0.0, 0.0, -1.0))
        mc.parent('keyLocator', 'curveLights', relative=True)

        mc.spaceLocator(n='rimLocator', p=(objCenter[0], objCenter[1], objCenter[2]))
        mc.aimConstraint('rimLocator', 'RimLight', aimVector=(0.0, 0.0, -1.0))
        mc.parent('rimLocator', 'curveLights', relative=True)

        # Create lights main locator
        mc.spaceLocator(n='lightsMainLocator', p=(objCenter[0], objCenter[1], objCenter[2]))
        mc.parent('FillLight', 'lightsMainLocator', relative=True)
        mc.parent('KeyLight', 'lightsMainLocator', relative=True)
        mc.parent('RimLight', 'lightsMainLocator', relative=True)

        # Create Main Group for the entire light rig
        mc.group('curveLights', 'lightsMainLocator', n='LightRigGroup')
コード例 #11
0
	def WW_Arm_Controls(self):



# create an IK / FK switch
		switchCtl = []
		switchName = "IkFk_switch"

		cmds.circle(n=switchName)
コード例 #12
0
ファイル: LightSkeleton.py プロジェクト: akkey/maya
def finger_controller(fingerControllerName, xyPosition, controllerSize):
    cmds.circle(c=(0, 0, 0), nr=(0, 1, 0), n=fingerControllerName)
    cmds.scale(controllerSize, 0, controllerSize, fingerControllerName)
    cmds.move(xyPosition[0], xyPosition[1] + 1, -1, fingerControllerName)

    cmds.addAttr(
        fingerControllerName, longName="finger_action", at="double", defaultValue=0.0, minValue=0.0, maxValue=10
    )
    cmds.setAttr(fingerControllerName + ".finger_action", keyable=True)
コード例 #13
0
    def make(self, _make, **kwargs):
        """Can make a node in maya using this command.
        Valid things to make are, group, circle, scriptNode, customCurve.
        
        If customcurve, format type is sObjName..make(what = 'customCurve', curveType = 'validCurveType', orientation = 'Y')
        The list of valid types:
            triangle                      worldMove
            angledCompass                 worldRotate
            straightCompass               twoDirRotate
            square                        fourDirRotate
            sphere                        moveRotate
            plus                          worldMove02
            halfDiamond                   toe
            cube                          spineType01
            cross                         jawEgg
            bulb                          hand
            star                          foot
            eyes
        """
        if cmds.objExists(self.name):
            raise Exception, 'Object with name already exists in scene, you can not have duplicate names in scenes.'
        else:
            if _make == 'group':
                #print 'Making group %s now.' % self.name
                objects = kwargs.get('objects')
                if objects:
                    cmds.group(objects, name = self.name, em = False)
                else:
                    cmds.group(name = self.name, em = True)
            
            elif _make == 'locator':
                #print 'Building spacelocator %s now' % self.name
                cmds.spaceLocator(n = self.name, **kwargs)
            
            elif _make == 'circle':
                cmds.circle(n = self.name, **kwargs)
                self.name = '%s_ctrl' % self.name
            
            elif _make == 'scriptNode':
                cmds.scriptNode(n = self.name, **kwargs)
            
            elif _make == 'customCurve':
                ## Curve options are
                ### curveType = 'circle', snapTo = False, cstTo = False, orientation = 'Y', grouped = False, scaleFactor = 1, color = 15, boundingBox = True, dest = '', suffix = True, addGeoShowHide = True
                myNewCurve = BD_CurveBuilder.buildControlCurve(curveName = self.name, **kwargs)
                if kwargs.get('suffix'):
                    self.name = '%s_ctrl' % myNewCurve
                else:
                    self.name = '%s' % myNewCurve

            elif _make == 'nurbsPlane':
                cmds.nurbsPlane(n = '%s' % self.name, **kwargs)

            elif _make == 'camera':
                cmds.camera()
                cmds.rename('camera1', '%s' % self.name)
コード例 #14
0
ファイル: bdRigUtils.py プロジェクト: Mortaciunea/bdScripts
def bdBuildSphereController(target,ctrlName,scale):
    circleA = cmds.circle(n = ctrlName + 'A',nr=(0, 1, 0), c=(0, 0, 0),radius=scale )
    circleB = cmds.circle(n = ctrlName + 'B',nr=(1, 0, 0), c=(0, 0, 0), radius=scale  )
    circleBShape = cmds.listRelatives(circleB[0],c=True)
    circleC = cmds.circle(n = ctrlName + 'C',nr=(0, 0, 1), c=(0, 0, 0),radius=scale  )
    circleCShape = cmds.listRelatives(circleC[0],c=True)
    cmds.parent(circleBShape[0],circleA[0],r=True,s=True)
    cmds.parent(circleCShape[0],circleA[0],r=True,s=True)
    cmds.delete(circleB,circleC)
    ctrl = cmds.rename(circleA[0],ctrlName)
    ctrlGrp = cmds.group(ctrl,n=ctrlName.replace("anim","anim_CON"))	
    targetPos = cmds.xform(target,q=True,ws=True,t=True)
    targetRot = cmds.xform(target,q=True,ws=True,ro=True)
    cmds.move(targetPos[0],targetPos[1],targetPos[2],ctrlGrp)
    cmds.rotate(targetRot[0],targetRot[1],targetRot[2],ctrlGrp)
コード例 #15
0
def makeObj(name, objType, place, rotX, rotY, rotZ):
    if objType == "transform":
        thisObj = cmds.createNode(objType, n=name)
    elif objType == "pvArrow":
        thisObj = ctrls.jpmCreatePVArrow(name)
    elif objType == "pivot":
        thisObj = ctrls.jpmCreatePivotCTRLShape(name)
    elif objType == "topTrans":
        thisObj = ctrls.jpmCreateTopTransCTRLShape(name)
    elif objType == "cubeTwo":
        thisObj = ctrls.jpmCreateCubeTwoCTRLShape(name)
    elif objType == "straightCompass":
        thisObj = ctrls.jpmCreateStraightCompass(name)
    elif objType == "angledCompass":
        thisObj = ctrls.jpmCreateAngledCompass(name)
    elif objType == "cirlce":
        thisObj = cmds.circle(c=(0, 0, 0),
                              nr=(0, 1, 0),
                              sw=360,
                              r=1,
                              d=1,
                              ut=0,
                              tol=0.01,
                              s=16,
                              ch=1,
                              n=(name + "_CTRL"))
    elif objType == "triangle":
        thisObj = ctrls.jpmCreateTriangle(name)
    elif objType == "locator":
        thisObj = cmds.spaceLocator(n=name)
    if place != "origin":
        cmds.xform(thisObj, t=(getPositions(place)), a=True, ws=True)
    cmds.rotate(rotX, rotY, rotZ, thisObj, r=True, os=True)
    cmds.makeIdentity(thisObj, apply=True, t=1, r=1, s=1, n=2)
    return thisObj
コード例 #16
0
ファイル: pkTools.py プロジェクト: myCodeTD/pkmel
def geoCrowd() :
	# Import referenced characters
	# select geometries then run script
	sels = mc.ls( sl=True )
	ctrls = []

	for sel in sels :
		
		ns = sel.split( ':' )[0]
		
		if not ns in ctrls :
			
			ctrl = mc.circle( nr=(0,1,0) , ch=False )[0]
			grp = mc.group( ctrl )
			root = '%s:Root_Ctrl' % ns
			
			mc.delete( mc.parentConstraint( root , grp ) )
			
			ctrl = mc.rename( ctrl , ns )
			mc.rename( grp , '%s_grp' % ns )
			ctrls.append( ns )
			
		attrs = ('tx','ty','tz','rx','ry','rz','sx','sy','sz')
		for attr in attrs :
			
			if mc.getAttr( '%s.%s' % ( sel , attr ) , l=True ) :
				mc.setAttr( '%s.%s' % ( sel , attr ) , l=False )
		
		mc.select( sel , r=True )
		mc.duplicate( sel , rr=True )
		geo = mc.ls( sl=True , l=True )[0]
		mc.parent( geo , ctrl )
コード例 #17
0
def createShape(prefix='', scale=1.0):
    """
    create a unit slider for blend operation
    :param prefix: str, prefix of the control
    :param scale: float, scale of the control
    :return: str, ctrlBox of the unitSliderControl
    """
    Ctrl = cmds.circle(radius=0.2, nr=(1, 0, 0), n=prefix + '_Ctrl')[0]
    cmds.transformLimits(Ctrl,
                         tx=(0, 0),
                         ty=(0, 1),
                         tz=(0, 0),
                         etx=(1, 1),
                         ety=(1, 1),
                         etz=(1, 1))

    CtrlBox = cmds.curve(d=1,
                         p=[(0, 0, 0), (0, 1, 0)],
                         k=[0, 1],
                         n=prefix + '_CtrlBox')
    parentCrvShape = cmds.listRelatives(CtrlBox, s=1)
    cmds.setAttr(parentCrvShape[0] + '.template', 1)

    cmds.parent(Ctrl, CtrlBox)
    cmds.setAttr(CtrlBox + '.s', scale, scale, scale)
    cmds.makeIdentity(CtrlBox, apply=1, t=1, r=1, s=1, n=0)
    cmds.select(cl=1)

    return CtrlBox
コード例 #18
0
 def ProxyBase(self, name):
     first = cmds.circle(c=(0, 0, 0),
                         nr=(0, 1, 0),
                         sw=360,
                         r=0.25,
                         d=3,
                         ut=0,
                         tol=0.01,
                         s=8,
                         ch=1)
     cmds.rename(first[0], name)
     scend = cmds.duplicate(rr=True)
     cmds.rename(scend[0], "%sB" % name)
     cmds.setAttr("%sB.rx" % name, 90)
     cmds.makeIdentity("%sB" % name, apply=True, t=1, r=1, s=1)
     third = cmds.duplicate(rr=True)
     cmds.rename(third[0], "%sC" % name)
     cmds.setAttr("%sC.ry" % name, 90)
     cmds.makeIdentity("%sC" % name, apply=True, t=1, r=1, s=1)
     Loc = cmds.spaceLocator()
     cmds.rename(Loc[0], "%sSnap" % name)
     cmds.setAttr("%sSnapShape.localScaleZ" % name, 0.25)
     cmds.setAttr("%sSnapShape.localScaleX" % name, 0.25)
     cmds.setAttr("%sSnapShape.localScaleY" % name, 0.25)
     cmds.parent("%sBShape" % name,
                 "%sCShape" % name,
                 "%sSnapShape" % name,
                 name,
                 r=True,
                 s=True)
     cmds.delete("%sB" % name, "%sC" % name, "%sSnap" % name)
     cmds.select(name)
     cmds.makeIdentity(name, apply=True, t=1, r=1, s=1)
     cmds.delete(name, ch=True)
コード例 #19
0
ファイル: RigToolKit.py プロジェクト: romadave91/MyScripts
def CreateObjects(objectlist,*args):
    selCVs = cmds.ls(sl=True)
    selCVs_pos = cmds.filterExpand(ex=True,sm=28)
    cmds.select(cl=True)
    ObjName = cmds.optionMenu(objectlist,query=True,value=True)
    for num in selCVs_pos:
        position = cmds.pointPosition(num,w=True)
        pos_x = position[0]
        pos_y = position[1]
        pos_z = position[2]
        if(ObjName == "Cube"):
            make_obj = cmds.nurbsCube();
            cmds.setAttr(make_obj[0] + ".tx",pos_x)
            cmds.setAttr(make_obj[0] + ".ty",pos_y)
            cmds.setAttr(make_obj[0] + ".tz",pos_z)
        if(ObjName == "Circle"):
            make_obj = cmds.circle();
            cmds.setAttr(make_obj[0] + ".tx",pos_x)
            cmds.setAttr(make_obj[0] + ".ty",pos_y)
            cmds.setAttr(make_obj[0] + ".tz",pos_z)
        if(ObjName == "Joint"):
            make_obj = cmds.joint()
            cmds.setAttr(make_obj + ".tx",pos_x)
            cmds.setAttr(make_obj + ".ty",pos_y)
            cmds.setAttr(make_obj + ".tz",pos_z)
コード例 #20
0
def createCircleControl(name=None, x=1, y=1, z=1, radius=1, color=None, type='strip', heightRatio=0.007):
    if not name:
        name = 'circle_CTRL'
    xform = cmds.group(name=name, em=1)
    circleShapes = []
    circleTransforms = []
    vectors = getAxisWorldVectors(xform)
    
    xyz = [x,y,z]
    for i in range(0, len(xyz)):
        if xyz[i]:
            circ = None
            if type == 'curve':
                circ = cmds.circle(radius=radius, name='jointMoverAxisCtrl', normal=vectors[i], sections=1, ch=0)
                if color:
                    cmds.color(circ, ud=color)
            if type == 'strip' or type == 'toroid':
                circ = None
                if type == 'strip':
                    circ = cmds.cylinder(radius=radius, name='jointMoverAxisCtrl', axis=vectors[i], sections=7, ch=0, heightRatio=heightRatio)
                elif type == 'toroid':
                    circ = cmds.torus(radius=radius, name='jointMoverAxisCtrl', axis=vectors[i], sections=7, ch=0, heightRatio=heightRatio)
                if color:
                    if color == 'xyz':
                        if i == 0: colorControl(circ, name='red_m', color=(1,0,0))
                        if i == 1: colorControl(circ, name='green_m', color=(0,1,0))
                        if i == 2: colorControl(circ, name='blue_m', color=(0,0,1))
                    else:
                        if len(color) == 3: colorControl(circ, color=color)
            circleShapes.append(cmds.listRelatives(circ[0], fullPath=1, shapes=1)[0])
            circleTransforms.append(circ[0])
    cmds.parent(circleShapes, xform, r=1, s=1)
    cmds.delete(circleTransforms)
    return xform
コード例 #21
0
ファイル: Q_RigWindow.py プロジェクト: PaulElmo/Quad_Rig_Tool
	def Tongue_Control(*args,**kwargs):
	    tongueJoints = ["First_Tongue_Jt","Second_Tongue_Jt","Third_Tongue_Jt","Fourth_Tongue_Jt","Fifth_Tongue_Jt"]
	    for tongueRing in range(len(tongueJoints)):
	        controls = [mc.circle(name = "Tongue_Ctrl_"+str(tongueRing)), mc.scale(0.5,0.3,0.5),
	             mc.setAttr("Tongue_Ctrl_"+str(tongueRing)+".overrideColor",18), 
	             mc.setAttr("Tongue_Ctrl_"+str(tongueRing)+".overrideEnabled",1)]
	        
	        #xform translation
	        valPos = mc.xform(tongueJoints[tongueRing],query=True,ws=True,translation=True)     
	        mc.xform(controls[tongueRing-1],ws=1,t=(valPos[0],valPos[1],valPos[2]))
	        #xform rotation
	        valRot = mc.xform(tongueJoints[tongueRing],query=True,ws=True,rotation=True)
	        mc.xform(controls[tongueRing-1],ws=1,ro=(valRot[0],valRot[1]-90,valRot[2]-15))
	        mc.makeIdentity("Tongue_Ctrl_"+str(tongueRing),a=True,r=True,t=True,s=True)
	        
	        #mc.group("Tail_Ctrl_"+str(tailRing), name="GRP_Tail_Ctrl_"+str(tailRing))
	        #mc.parent("Tail_Ctrl_"+str(tailRing),"GRP_Tail_Ctrl_"+str(tailRing))
	        orient = mc.orientConstraint("Tongue_Ctrl_"+str(tongueRing), tongueJoints[tongueRing], maintainOffset=True)
	    
	    mc.parent("Tongue_Ctrl_4","Tongue_Ctrl_3")
	    mc.parent("Tongue_Ctrl_3","Tongue_Ctrl_2")
	    mc.parent("Tongue_Ctrl_2","Tongue_Ctrl_1")
	    mc.parent("Tongue_Ctrl_1","Tongue_Ctrl_0")
	    mc.parent("Tongue_Ctrl_0","Jaw_Ctrl")
	   
	    #Lock attributes for Tongue rig
	    for lock in range(len(tongueJoints)):
	        mc.setAttr("Tongue_Ctrl_"+str(lock)+".scale",lock=True),
	        mc.setAttr("Tongue_Ctrl_"+str(lock)+".translate",lock=True)
コード例 #22
0
def createFKControl():
	joint1= mc.ls(sl = True)[0]
	joint2 = mc.listRelatives(joint1, children = True)[0]
	joint3 = mc.listRelatives(joint2, children = True)[0]
	FKControls = []
	FKControlGroups = []
	for joint in [joint1, joint2, joint3]:
		controlObject = mc.circle( nr=(1, 0, 0), c=(0, 0, 0), r = 1)[0]
		controlName = joint.rpartition("_")[0] + "_CTL"
		FKControlObject = mc.rename(controlObject, controlName)
		FKControls.append(FKControlObject)
		mc.setAttr(FKControlObject+'.translateX', mc.xform(joint, query = True, worldSpace = True, translation = True)[0])
		mc.setAttr(FKControlObject+'.translateY', mc.xform(joint, query = True, worldSpace = True, translation = True)[1])
		mc.setAttr(FKControlObject+'.translateZ', mc.xform(joint, query = True, worldSpace = True, translation = True)[2])
		FKControlObjectShape = mc.listRelatives(FKControlObject, children = True)
		mc.setAttr(FKControlObjectShape[0]+".overrideEnabled", 1)
		mc.setAttr(FKControlObjectShape[0]+".overrideColor", 13)
		groupName = mc.group(FKControlObject, n = joint.rpartition("_")[0] + "_GRP")   
		mc.parent(groupName, joint)
		mc.makeIdentity(groupName, apply=True, t=1, r=1, s=1, n=0)
		mc.parent(groupName, world = True)
		controlParent = mc.listRelatives(FKControlObject, parent = True)[0]
		mc.parentConstraint(FKControlObject, joint)
		FKControlGroups.append(groupName)
		#if controlParent != None:
			#mc.parent(groupTrueName, FKControlObject)
	mc.parent(FKControlGroups[2], FKControls[1])
	mc.parent(FKControlGroups[1], FKControls[0])
コード例 #23
0
 def creatJntCtr(self, jntName):
     print "im in  creatJntCtr"
     cmds.undoInfo(openChunk=True)
     cmds.select(cl=True)
     try:
         jnt = cmds.joint(name=jntName)
         shape = cmds.circle(c=(0, 0, 0),
                             nr=(1, 0, 0),
                             sw=360,
                             r=1,
                             d=3,
                             ut=0,
                             tol=0.00155,
                             s=8,
                             ch=0,
                             n=jnt + "_Con")
         print jnt, shape[0]
         self.Align(shape[0], jnt)
         cmds.parent(jnt, shape[0])
         grp = cmds.group(shape[0], r=True, n=shape[0] + "Grp")
         print grp
         return grp
     except Exception as e:
         print 'creatJntCtr something wrong...'
         cmds.undoInfo(closeChunk=True)
コード例 #24
0
def fk_chain():
    JointChain = cmds.ls(selection=True)
    JointRel = cmds.listRelatives(JointChain, ad=True)
    JointRel.reverse()
    JointHr = JointChain + JointRel

    ctrlGrpList = []
    ctrlList = []

    for i in JointHr:
        name = i.replace('_Joint', '')
        ctrl = cmds.circle(n=(name + '_Ctrl'), ch=0)
        cmds.delete(cmds.parentConstraint(i, ctrl))
        cmds.parentConstraint(ctrl, i)
        groupOffset = cmds.group(ctrl, n=(name + '_Offset'))
        groupExtra = cmds.group(groupOffset, n=(name + '_Extra'))
        ctrlList.append(ctrl[0])
        ctrlGrpList.append(groupExtra)

    #st=cmds.ls('*_Ctrl',)
    #ctrlList=cmds.ls('*_Ctrl', p=1)   josh sobel
    noofjnts = len(groupExtra)

    for i in range(0, noofjnts):
        cmds.parent(ctrlGrpList[i + 1], ctrlList[i])
コード例 #25
0
def control(sels=[]):  #'circle' is the default value.
    if not sels:
        sels = cmds.ls(sl=True)

    n_ctrls = []

    for sel in sels:
        pos = cmds.xform(sel, q=True, ws=True, translation=True)
        orient = cmds.xform(sel, q=True, ws=True, rotation=True)
        size = cmds.xform(sel, q=True, ws=True, scale=True)

        ctrl = cmds.circle(c=[0, 0, 0],
                           nr=[0, 1, 0],
                           sw=360,
                           r=2,
                           d=3,
                           ut=0,
                           tol=0.01,
                           s=8,
                           ch=1)[0]

        cmds.xform(ctrl, ws=True, translation=pos)
        cmds.xform(ctrl, ws=True, rotation=orient)
        cmds.xform(ctrl, ws=True, scale=size)

        name = sel.rpartition(
            '_'
        )  #rpartition moves right to left, instead of partition's left to right.
        name = name[0] + name[1] + 'Ctrl'
        ctrl = cmds.rename(ctrl, name)
        n_ctrls.append(ctrl)

    group(n_ctrls)
    cmds.select(n_ctrls, r=True)
コード例 #26
0
    def createNeck(self, *args):

        #### Creates neck control based off neck joint ####

        neckPos = cmds.xform(cmds.ls(self.prefix + "_Neck_Jnt"),
                             q=True,
                             t=True,
                             ws=True)
        neck = cmds.circle(nr=(0, 1, 0),
                           c=(0, 0, 0),
                           radius=self.conRadius,
                           degree=3,
                           name=self.prefix + "_Neck_Con")
        cmds.move(neckPos[0], neckPos[1] + 0.03, neckPos[2] + 0.02, neck)
        cmds.rotate(23, 0, 0, neck)
        cmds.scale(0.07, 0.1, 0.1, neck)

        #### Sets pivot of control to be on joint, freezes transforms and parents control to chest control ####

        cmds.move(neckPos[0],
                  neckPos[1],
                  neckPos[2],
                  self.prefix + "_Neck_Con" + '.scalePivot',
                  self.prefix + "_Neck_Con" + '.rotatePivot',
                  absolute=True)
        cmds.parent(neck, self.prefix + "_Chest_Con")
        cmds.makeIdentity(neck, apply=True, t=1, r=1, s=1)
コード例 #27
0
def create_orb(sca=[1.0, 1.0, 1.0], name='empty', *args):
    ctrl_shape = mc.circle(nr=[0, 1, 0])[0]

    circle_list = list()
    circle_list.append(mc.duplicate(rr=True)[0])
    mc.xform(ro=[90, 0, 0])

    circle_list.append(mc.duplicate(rr=True)[0])
    mc.xform(ro=[90, 90, 0])

    circle_list.append(mc.duplicate(rr=True)[0])
    mc.xform(ro=[90, 45, 0])

    circle_list.append(mc.duplicate(rr=True)[0])
    mc.xform(ro=[90, -45, 0])

    mc.select(circle_list)
    mc.makeIdentity(apply=True, t=True, r=True, s=True)
    mc.pickWalk(d='down')
    mc.select(ctrl_shape, tgl=True)
    mc.parent(r=True, s=True)
    mc.delete(circle_list)
    mc.xform(ctrl_shape, cp=True)

    if name != 'empty':
        ctrl_shape = mc.rename(ctrl_shape, name)
    mc.xform(ctrl_shape, s=sca)
    mc.makeIdentity(apply=True, s=True)

    return ctrl_shape
コード例 #28
0
def create_control(type, name, scale):
	'''Creates a control of specified type'''
	
	#generate generic name if none provided
	if name == '':
		name = 'Generic'

	name = '%s' % name

	#create an additional variable for the control
	ctrl = ''

	#create specified control type
	if type == 'circle':
		ctrl = cmds.circle(c=[0,0,0] nr=[0,1,0], sw=360, r=1, d=3, ut=0, tol=.01, s=8, ch=True)[0]
	elif type == 'square':
		pass
	elif type == 'cube':
		pass

	#scale the object
	cmds.scale(scale_val, scale_val, scale_val, ctrl, r=True)
	
	#rename control and delete history
	ctrl = cmds.rename(ctrl, name)
	cmds.delete(ctrl, ch=True)
	
	#return control name
	return ctrl
コード例 #29
0
ファイル: utils.py プロジェクト: bmbtnkr/mayaTools
 def createCircleControl(self, name='', radius=1, sections=8):
     circleControl = cmds.circle(name=name,
                                 radius=radius,
                                 sections=sections)
     cmds.delete(circleControl, constructionHistory=1)
     circleControl = circleControl[0]
     return circleControl
コード例 #30
0
def main():
    if mc.objExists("*horizonLine*"):
        mc.delete("*horizonLine*")  # Delete existing "horizonLine"
        return

    active3dViewCamShape, active3dViewCamTrans = getActive3dViewCam()

    horizonLineTrans = mc.circle(name='horizonLine',
                                 radius=2,
                                 normal=(0, 1, 0),
                                 sections=32)[0]
    horizonLineShape = mc.listRelatives(horizonLineTrans,
                                        shapes=True,
                                        fullPath=True)[0]

    mc.expression(s="""
                    {0}.sx = {1}.nearClipPlane;
                    {0}.sy = {1}.nearClipPlane;
                    {0}.sz = {1}.nearClipPlane;
                    """.format(horizonLineTrans, active3dViewCamShape),
                  object=horizonLineTrans)

    mc.setAttr(horizonLineShape + '.overrideEnabled', 1)
    mc.setAttr(horizonLineShape + '.overrideColor', 14)

    mc.pointConstraint(active3dViewCamTrans,
                       horizonLineTrans,
                       maintainOffset=False)

    mc.select(clear=True)
コード例 #31
0
def createCircleAtJnt(jnt, color, prefix):
	cmds.select([])
	position = cmds.xform(jnt, query = True, worldSpace = True, matrix = True)
	control = cmds.circle(name = prefix + "temp_shape_" + jnt, normal = [-1, 0, 0])[0]
	cmds.select([])
	cmds.xform(control, matrix = position, worldSpace = True)
	return control
コード例 #32
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)
コード例 #33
0
def CreateCircleCTRL(CTRL_name, CTRL_list, prntJnt, norm, rad, offset):

    #create CTRL and offset grp
    CTRL = cmds.circle(n=str(CTRL_name), nr=norm, c=(0, 0, 0), r=rad)
    offset_GRP = pm.group(em=True, name=str(CTRL_name) + '_offset_GRP')
    pm.parent(CTRL[0], offset_GRP)

    # clear history for both objects
    CleanHist(CTRL[0])
    CleanHist(offset_GRP)

    # temp parentconstr GRP to move to pos (with rot)
    tempConst = pm.parentConstraint(prntJnt, str(offset_GRP), mo=False)
    pm.delete(tempConst)

    # rotate curve CVs
    curveCVs = cmds.ls('{0}.cv[:]'.format(CTRL[0]), fl=True)
    pm.rotate(curveCVs, offset)

    # parent const to joint
    pm.parentConstraint(str(CTRL_name), str(prntJnt), mo=False, w=1)

    # recolor CTRL and add to list
    RecolourObj(CTRL_name, 'nurbsCurve')
    CTRL_list.append(offset_GRP)
コード例 #34
0
ファイル: sgBRig_controller.py プロジェクト: jonntd/mayadev-1
def createControllerOnTarget( target, pivotCtlOn=True ):

    import sgBFunction_connection
    import sgBFunction_dag
    import sgBModel_data
    targetPos = cmds.getAttr( target+'.wm' )
    targetP = cmds.listRelatives( target, p=1, f=1 )[0]
    
    targetName = target.split( '|' )[-1]
    ctl = cmds.circle( n='CTL_' + targetName )[0]
    ctlChild = cmds.createNode( 'transform', n='CTLChild_'+targetName );ctlChild = cmds.parent( ctlChild, ctl )[0]
    pivCtl = cmds.createNode( 'transform', n='PivCTL_'+targetName  ); cmds.setAttr( pivCtl+'.dh', 1 )
    cmds.setAttr( pivCtl+'.overrideEnabled', 1 )
    cmds.setAttr( pivCtl+'.overrideColor', 18 )
    ctlP = cmds.group( ctl, n='P'+ctl )
    ctlPPiv = cmds.group( ctlP, pivCtl, n='Piv' + ctlP )
    cmds.xform( ctlPPiv, ws=1, matrix=targetPos )

    cloneObject = sgBFunction_dag.getConstrainedObject( targetP )
    ctlPPiv = cmds.parent( ctlPPiv, cloneObject )[0]
    cmds.xform( pivCtl, os=1, matrix= sgBModel_data.getDefaultMatrix() )
    
    ctl = cmds.listRelatives( ctlP, c=1, f=1 )[0]
    sgBFunction_connection.getSourceConnection( target, ctlPPiv )

    for attr in [ 't', 'tx', 'ty', 'tz', 'r', 'rx', 'ry', 'rz', 's', 'sx', 'sy', 'sz', 'sh' ]:
        cons = cmds.listConnections( target+'.'+attr, s=1, d=0, p=1, c=1 )
        if not cons: continue
        for i in range( 0, len( cons ), 2 ):
            cmds.disconnectAttr( cons[i+1], cons[i] )
    
    sgBFunction_connection.constraintAll( ctlChild, target )
    
    cmds.connectAttr( pivCtl+'.t',  ctlP+'.t' )
    cmds.connectAttr( pivCtl+'.r',  ctlP+'.r' )
    cmds.connectAttr( pivCtl+'.s',  ctlP+'.s' )
    cmds.connectAttr( pivCtl+'.sh', ctlP+'.sh' )
    
    mmdcCtlChild = cmds.createNode( 'multMatrixDecompose' )
    cmds.connectAttr( ctlPPiv+'.wm', mmdcCtlChild+'.i[0]' )
    cmds.connectAttr( pivCtl+'.wim', mmdcCtlChild+'.i[1]' )
    cmds.connectAttr( mmdcCtlChild+'.ot',  ctlChild+'.t' )
    cmds.connectAttr( mmdcCtlChild+'.or',  ctlChild+'.r' )
    cmds.connectAttr( mmdcCtlChild+'.os',  ctlChild+'.s' )
    cmds.connectAttr( mmdcCtlChild+'.osh', ctlChild+'.sh' )
    
    ctlShape = sgBFunction_dag.getShape( ctl )
    circleNode = cmds.listConnections( ctlShape+'.create', s=1, d=0 )[0]
    
    mm = cmds.createNode( 'multMatrix' )
    trGeo = cmds.createNode( 'transformGeometry' )
    
    cmds.connectAttr( ctlPPiv+'.wm', mm+'.i[0]' )
    cmds.connectAttr( pivCtl+'.wim', mm+'.i[1]' )
    
    cmds.connectAttr( circleNode+'.outputCurve', trGeo+'.inputGeometry' )
    cmds.connectAttr( mm+'.matrixSum', trGeo+'.transform' )
    cmds.connectAttr( trGeo+'.outputGeometry', ctlShape+'.create', f=1 )
    
    return ctl
コード例 #35
0
ファイル: docOc02_JL.py プロジェクト: jacobjlilly/mayaTools
def createTentIk(tentGrpName, tentGrp, parJnt):
	ik = cmds.ikHandle( \
		n = tentGrpName.replace('Geo', '_ikHdl'), \
		sj = tentGrp[1] + '_jnt', ee = parJnt, \
		sol = 'ikSplineSolver', \
		shf=True, sticky='sticky', ccv=True, \
		roc=True, tws='easeInOut', \
		pcv=False, ns=3)
	ikGrp = cmds.group(n= ik[0] + '_grp')
	crv = cmds.rename(ik[2], str(ik[0]).replace('ikHdl', 'ikCrv'))
	
	#cluster time
	crvCVs = cmds.ls('{}.cv[:]'.format(crv), fl=True)
	clusterGrps = []
	i=0
	for cv in crvCVs:
		clstr = cmds.cluster(cv)
		#create controllers
		ctl = cmds.circle(n=tentGrpName.replace('Geo', '_ikCtl{}'.format(i)), nr = [1,0,0])
		grp = cmds.group(n=ctl[0] + '_grp')
		cnst = cmds.parentConstraint(clstr, grp)
		cmds.delete(cnst)
		cmds.parent(clstr, ctl)
		clusterGrps.append(grp)
		i+=1
	clusterGrp = cmds.group(clusterGrps, n=tentGrpName.replace('Geo', 'Cluster_grp'))
	cmds.group(clusterGrp, ikGrp, crv, n=tentGrpName.replace('Geo', '_ik_grp'))
コード例 #36
0
ファイル: dpControls.py プロジェクト: nilouco/dpAutoRigSystem
def cvBall(ctrlName, r=1):
    """Create and return a cvBall curve to be usually used in the ribbonSystem and the clusterHandle to shapeSize..
    """
    # create circles to get the shapes:
    ballX = cmds.circle(n=ctrlName+"_x", ch=False, o=True, nr=(1, 0, 0), d=3, s=8, radius=r)
    ballY = cmds.circle(n=ctrlName+"_y", ch=False, o=True, nr=(0, 1, 0), d=3, s=8, radius=r)
    ballZ = cmds.circle(n=ctrlName+"_z", ch=False, o=True, nr=(0, 0, 1), d=3, s=8, radius=r)
    # parent shapes to transform:
    ballCtrl = cmds.group(name=ctrlName, empty=True)
    cmds.parent( cmds.listRelatives(ballX, shapes=True, children=True)[0], ballCtrl, relative=True, shape=True)
    cmds.parent( cmds.listRelatives(ballY, shapes=True, children=True)[0], ballCtrl, relative=True, shape=True)
    cmds.parent( cmds.listRelatives(ballZ, shapes=True, children=True)[0], ballCtrl, relative=True, shape=True)
    # delete old x, y and z transforms:
    cmds.delete(ballX, ballY, ballZ)
    cmds.select(clear=True)
    return ballCtrl
コード例 #37
0
    def createBodyCtrl(self, grpFKConsts, ctrlFKJnts, fkJnts, spineIKs,
                       crvSpine, hdlSpine, jntArray, *args):
        # Create body control

        ctrlBody = mc.circle(nr=(1, 0, 0),
                             r=45,
                             n="CTRL_body",
                             degree=1,
                             sections=4)[0]
        cvsToMove = mc.select(ctrlBody + ".cv[:]")
        mc.rotate(45, cvsToMove, x=True)
        mc.select(cl=True)
        toDelete = mc.parentConstraint(jntArray[0], ctrlBody, mo=False)
        mc.delete(toDelete)

        mc.setAttr('{0}.overrideEnabled'.format(ctrlBody), 1)
        mc.setAttr("{0}.overrideColor".format(ctrlBody), 13)
        mc.makeIdentity(ctrlBody, apply=True, t=True, r=True, s=True)
        CRU.changeRotateOrder([ctrlBody], "ZXY")

        grpTorsoName = "GRP_torso"
        grpTorso = mc.group(n=grpTorsoName, em=True, w=True)
        mc.parent(fkJnts[0], jntArray[0], grpFKConsts, crvSpine, hdlSpine,
                  spineIKs, grpTorsoName)

        mc.parentConstraint(ctrlBody, grpTorso, mo=True)

        grpDNT = mc.group(n="GRP_DO_NOT_TOUCH_torso", em=True, w=True)
        mc.parent(grpDNT, grpTorso)
        mc.parent(spineIKs, crvSpine, hdlSpine, jntArray[0], grpDNT)

        mc.setAttr("{0}.inheritsTransform".format(crvSpine), False)

        return ctrlBody, grpTorso
コード例 #38
0
 def extrude(self,caps=True):
     """ extrudes a tube along the NURBS curve """
     self.curve2 = mc.duplicate(self.origCurve, name=self.origCurve+"_copy")[0]
     # select the first CV of the path (curve)
     mc.select("%s.cv[0]"%self.curve2,replace=True)
     # figure out where to put the circle and which way to point it
     circleCenter = mc.xform(q=True,ws=True,t=True)
     circleNormal = mc.pointOnCurve(self.curve2, parameter=0, tangent=True)
     # create a circle to use for extrusion
     circle = mc.circle(radius=self.radius, center=circleCenter, normal=circleNormal)[0]
     # extrude!
     extrusion = mc.extrude( circle, self.curve2, n="nurbsTubeTrace", extrudeType=2, range=True )[0]
     self.traceBits = [extrusion, self.curve2, self.origCurve, circle]
     if caps:
         # select the first isoparm
         mc.select(extrusion+".v[%f]"%cu.findParamAtArcPercent( self.origCurve, 0.0))
         # create planar surface
         begCap = mc.planarSrf(n="cap1")[0]
         # select the last isoparm
         mc.select(extrusion+".v[%f]"%cu.findParamAtArcPercent( self.origCurve, 1.0))
         # create planar surface
         endCap = mc.planarSrf(n="cap2")[0]
         mc.setKeyframe( endCap+".visibility", t=self.timeSpan[1]-1, v=0.0 )
         mc.setKeyframe( endCap+".visibility", t=self.timeSpan[1], v=1.0 )
         # add the caps to the traceBits list
         self.traceBits.extend([begCap,endCap])
     return extrusion
コード例 #39
0
    def CreateFootControl(self, prefix, mirrored=False, originalPrefix=""):

        targetBall = self.ballJnt
        if mirrored:
            targetBall = originalPrefix + self.LEG_JNT_NAMES[3] + "_JNT"

        #create circle on the ball joint, normal as x+ of the joint
        #scale the control as a base to cover ball to toe
        shapeScale = cmds.xform(self.toeJnt, q=1, ws=0, t=1)[0]
        shape = cmds.circle(constructionHistory=False,
                            object=True,
                            normal=[0, 0, 1],
                            radius=shapeScale)[0]

        control = cmds.rename(shape, prefix + "foot" + "_CTL")
        offGrp = cmds.group(control, n=(prefix + "footCTL" + "Offset_GRP"))
        parCon = cmds.parentConstraint(targetBall, offGrp, mo=0)
        cmds.delete(parCon)

        if mirrored:
            tempGrp = cmds.group(em=True, n="tempFlipFoot")
            cmds.parent(offGrp, tempGrp)
            cmds.xform(tempGrp, s=[-1, 1, 1])
            cmds.parent(offGrp, world=True)
            cmds.delete(tempGrp)

        #cleanup
        cmds.parent(prefix + "leg_IKH", self.revAnkleJnt)
        cmds.parent(self.revCBankJnt, control)

        self.footControl = control
        self.footControlOffsetGrp = offGrp

        cmds.select(clear=True)
コード例 #40
0
def circleH(name, position, size=1):
    j=cmds.circle(c=[0,0,0], nr=[0,1,0], sw=360, r=size, d=3, ut=0, tol=0.01, s=8, ch=1, n=name)
    i=cmds.pointConstraint(position, j)
    # deletes constraint nad freezes transforms
    cmds.delete(i)
    cmds.makeIdentity(apply=True, t=1, r=1, s=1, n=1)
    return j
コード例 #41
0
def createSphere():
    i = 0
    lastName = 'tes'
    while i < 3:
        ctrlName = 'sp0' + str(i) + 'cir'
        tempName = cmds.circle(c=(0, 0, 0),
                               nr=(0, 1, 0),
                               sw=360,
                               r=50,
                               d=3,
                               ut=False,
                               s=8,
                               ch=True)
        renameAndColor(tempName[0], ctrlName, 22)
        if i == 0:
            lastName = ctrlName
            cmds.rotate(0, 0, 0)
        elif i == 1:
            cmds.rotate(0, 0, 90)
        elif i == 2:
            cmds.rotate(90, 0, 90)
        else:
            pass

        freezeAndDeletehistory()

        if i > 0:
            cmds.select(ctrlName + 'Shape')
            cmds.select(lastName, add=True)
            cmds.parent(r=True, s=True)
            cmds.delete(ctrlName)
        i += 1

    return lastName
コード例 #42
0
def rig_addMovablePivot(transformNode, drivenNode):
    offGrp = mc.createNode('transform', n=(transformNode + 'Offset'))
    parConst = mc.parentConstraint(transformNode, offGrp)
    mc.delete(parConst)
    parentNode = mc.listRelatives(transformNode, p=True)
    pivotCtl = mc.circle(n=(transformNode + 'Pivot'))
    parentLocator = mc.spaceLocator(n=(transformNode + 'ParentLoc'))
    parConst = mc.parentConstraint(transformNode, pivotCtl[0])
    mc.delete(parConst)
    parConst = mc.parentConstraint(transformNode, parentLocator[0])
    mc.parent(transformNode, pivotCtl[0])
    mc.parent(pivotCtl[0], offGrp)
    mc.parent(parentLocator[0], offGrp)
    if parentNode:
        mc.parent(offGrp, parentNode)
    decMatrix = mc.shadingNode('decomposeMatrix',
                               asShader=True,
                               n=(transformNode + 'DecMatrix'))
    mc.connectAttr((pivotCtl[0] + '.inverseMatrix'),
                   (decMatrix + '.inputMatrix'))
    mc.connectAttr((decMatrix + '.outputRotate'),
                   (parConst[0] + '.target[0].targetOffsetRotate'))
    mc.connectAttr((decMatrix + '.outputTranslate'),
                   (parConst[0] + '.target[0].targetOffsetTranslate'))
    mc.parentConstraint(parentLocator[0], drivenNode)
コード例 #43
0
def jointStuff_standard():
    l_joints = mc.ls(sl=1)

    for jnt in l_joints:  #Validation loop before doing stuff...
        if not mc.objectType(jnt) == 'joint':
            raise ValueError, "Not a joint: {0}".format(jnt)

    for i, jnt in enumerate(l_joints):
        #First we're gonna create a curve at each joint. Name, parent and snap it ...
        jnt = mc.rename(jnt, "ourChain_{0}_jnt".format(
            i))  #...gotta catch stuff when you rename it
        str_crv = mc.circle(normal=[1, 0, 0], ch=0)[0]
        str_crv = mc.parent(str_crv,
                            jnt)[0]  #...gotta catch stuff when you parent it
        str_crv = mc.rename(str_crv,
                            '{0}_crv'.format(jnt))  #...everytime it changes
        mc.delete(mc.parentConstraint(jnt, str_crv, maintainOffset=False))

        #Now we wanna add a locator at each joint - matching, position,orientation,rotation order
        loc = mc.spaceLocator(n="{0}_loc".format(jnt))[0]
        ro = mc.getAttr('{0}.rotateOrder'.format(jnt))
        mc.setAttr('{0}.rotateOrder'.format(loc), ro)
        mc.delete(mc.parentConstraint(jnt, loc, maintainOffset=False))

        #Now if we wanna store data on each object one to another...
        mc.addAttr(jnt, ln='curveObject', at='message')
        mc.connectAttr((str_crv + ".message"), (jnt + '.curveObject'))
        mc.addAttr(str_crv, ln='targetJoint', at='message')
        mc.connectAttr((jnt + ".message"), (str_crv + '.targetJoint'))

        mc.addAttr(loc, ln='source', at='message')
        mc.connectAttr((jnt + ".message"), (loc + '.source'))
コード例 #44
0
 def test_init(self):
     con = control.Control(name="testControl")
     self.assertEquals(con.colour, (0, 0, 0))
     self.assertEquals(con.name, "testControl")
     curve = cmds.circle(ch=False)[0]
     con = control.Control(node=nodes.asMObject(curve))
     self.assertTrue(cmds.objExists(con.dagPath.fullPathName()))
コード例 #45
0
ファイル: controllerMaker.py プロジェクト: mappp7/tools
 def FKcontrolMaker(self):
     sel = cmds.ls(sl=True)
     fkController = []
     fkNullGroup = []
     print self.temp_CON
     for i in sel:
         jointName = i
         if len(self.temp_CON) == 1:
             Control = cmds.duplicate(self.temp_CON,
                                      n=jointName.replace(
                                          jointName.split('_')[-1], 'CON'))
             print Control
         else:
             Control = cmds.circle(nr=(1, 0, 0),
                                   c=(0, 0, 0),
                                   r=1,
                                   n=jointName.replace(
                                       jointName.split('_')[-1], 'CON'))
             cmds.DeleteHistory(Control[0])
             print Control
         cmds.setAttr("%sShape.overrideEnabled" % Control[0], 1)
         cmds.setAttr("%sShape.overrideColor" % Control[0], 17)
         cmds.DeleteHistory(Control[0])
         cmds.group(Control[0])
         nullGroup = (cmds.rename(
             jointName.replace(jointName.split('_')[-1], 'NUL')))
         fkController.append("%s" % Control[0])
         fkNullGroup.append("%s" % nullGroup)
         cmds.delete(cmds.parentConstraint(jointName, nullGroup, w=True))
     for x in range(len(sel) - 1):
         q = -1 - x
         k = -2 - x
         cmds.parent(fkNullGroup[q], fkController[k])
     for y in range(len(sel)):
         cmds.parentConstraint(fkController[y], sel[y], mo=1, w=1)
コード例 #46
0
def subCon(base, f):
    if f == "L_":
        sweep = -180
        centerX = 0.2
    else:
        sweep = 180
        centerX = -0.2
    cir = cmds.circle(r=1.5,nr=(0,0,1), sw=sweep, cx=centerX, n=f+"Hand_sub_ctrl")[0]
    
    grp = cmds.group(em=True, n=f+"Hand_sub_ctrl_grp")
    cmds.parent(cir, grp)
    z = cmds.getAttr("Hand_World.scaleX")
    cmds.scale(2.5*z,1*z,1*z, grp)
    cmds.DeleteHistory(cir)
    c = f+"Hand_sub_ctrl_grp"
    
    base = base+1
    for x in range(2, base):
        cmds.orientConstraint(f+"finger_"+str(x)+"_1", c, mo=False, n="sub"+str(x))
    cmds.parentConstraint(f+"Hand", c, n="sub")
    cmds.delete("sub*")
    coloring(c,17)
    
    for n in range(1, base):
        cmds.addAttr(f+"Hand_sub_ctrl", ln="finger_"+str(n), at="float", dv=0, max=10, min=-5, k=True)
コード例 #47
0
ファイル: utils.py プロジェクト: Bumpybox/Tapp
def Circle(name='circle_cnt',group=False,size=1.0):
    ''' Creates a circle shape.
        If group is True, will group control and
        return a list [group,control].
    '''
    
    #creating the curve
    curve=cmds.circle(radius=1,constructionHistory=False)
    
    #transform to standard
    cmds.rotate(0,90,0,curve)
    
    cmds.makeIdentity(curve,apply=True, t=1, r=1, s=1, n=0)
    
    #naming control
    node=cmds.rename(curve,name)
    
    #sizing
    cmds.scale(size,size,size,node)
    cmds.FreezeTransformations(node)
    
    #grouping control
    if group==True:
        grp=cmds.group(node,n=name+'_grp')
        
        return [grp,node]
    
    #return
    return node
コード例 #48
0
def createBakaukeShape():
    tempName = cmds.circle(c=(0, 0, 0),
                           nr=(0, 1, 0),
                           sw=360,
                           r=1,
                           d=3,
                           ut=False,
                           s=8,
                           ch=True)

    cmds.setAttr(tempName[0] + '.cv[0].xValue', -0.6)
    cmds.setAttr(tempName[0] + '.cv[0].yValue', 1.7)
    cmds.setAttr(tempName[0] + '.cv[0].zValue', 1.25)
    cmds.setAttr(tempName[0] + '.cv[1].yValue', 2)
    cmds.setAttr(tempName[0] + '.cv[1].zValue', 1.4)
    cmds.setAttr(tempName[0] + '.cv[2].xValue', 0.6)
    cmds.setAttr(tempName[0] + '.cv[2].yValue', 1.7)
    cmds.setAttr(tempName[0] + '.cv[2].zValue', 1.25)
    cmds.setAttr(tempName[0] + '.cv[3].xValue', 0.8)
    cmds.setAttr(tempName[0] + '.cv[3].yValue', 1)
    cmds.setAttr(tempName[0] + '.cv[3].zValue', 0.6)
    cmds.setAttr(tempName[0] + '.cv[4].xValue', 0.6)
    cmds.setAttr(tempName[0] + '.cv[4].yValue', 0.3)
    cmds.setAttr(tempName[0] + '.cv[4].zValue', -0.3)
    cmds.setAttr(tempName[0] + '.cv[5].zValue', -0.8)
    cmds.setAttr(tempName[0] + '.cv[6].xValue', -0.6)
    cmds.setAttr(tempName[0] + '.cv[6].yValue', 0.3)
    cmds.setAttr(tempName[0] + '.cv[6].zValue', -0.3)
    cmds.setAttr(tempName[0] + '.cv[7].xValue', -0.8)
    cmds.setAttr(tempName[0] + '.cv[7].yValue', 1)
    cmds.setAttr(tempName[0] + '.cv[7].zValue', 0.6)

    return tempName[0]
コード例 #49
0
ファイル: Func.py プロジェクト: darkuress/arFace
    def createBrowCtl(self, jntNum, orderJnts):
        """
        create extra controllor for the panel
        """
        ctlP = "browDetailCtrl0"
        kids = cmds.listRelatives (ctlP, ad=True, type ='transform')   
        if kids:
            cmds.delete (kids)
            
        attTemp = ['scaleX','scaleY','scaleZ', 'rotateX','rotateY', 'tz', 'visibility' ]  
        index = 0

        for jnt in orderJnts:                            
            detailCtl = cmds.circle ( n = 'browDetail' + str(index+1).zfill(2), ch=False, o =True, nr = ( 0, 0, 1), r = 0.2 )
            detailPlane = cmds.nurbsPlane ( ax = ( 0, 0, 1 ), w = 0.1,  lengthRatio = 10, degree = 3, ch=False, n = 'browDetail'+ str(index+1).zfill(2) + 'P' )
            increment = 2.0/(jntNum-1)
            cmds.parent (detailCtl[0], detailPlane[0], relative=True )
            cmds.parent (detailPlane[0], ctlP, relative=True )
            cmds.setAttr (detailPlane[0] + '.tx', -2 + increment*index*2 )
            cmds.xform ( detailCtl[0], r =True, s = (0.2, 0.2, 0.2))  
            cmds.setAttr (detailCtl[0] +".overrideEnabled", 1)
            cmds.setAttr (detailCtl[0] +"Shape.overrideEnabled", 1)
            cmds.setAttr( detailCtl[0]+"Shape.overrideColor", 20)        
            
            cmds.transformLimits ( detailCtl[0] , tx = ( -.4, .4), etx=( True, True) )
            cmds.transformLimits ( detailCtl[0], ty = ( -.8, .8), ety=( True, True) )
            
            for att in attTemp:
                cmds.setAttr (detailCtl[0] +"."+ att, lock = True, keyable = False, channelBox =False)
                    
            index = index + 1
コード例 #50
0
ファイル: ikfk.py プロジェクト: waixwong/ModularRigging
    def setupFK(self, fkChain):
        self.fkCtrls = []
        for i in range(0, len(fkChain)):
            ctrl = cmd.circle(n='ctrl_' + self.names[i], radius=1)
            self.fkCtrls.append(ctrl)

        print self.fkCtrls
コード例 #51
0
def makePipeJoints():
    #track selection order must be on for this to work
    joints = []
    sel = cmd.ls(os=True)
    obj = cmd.ls(sl=True, o=True)
    name = obj[0].rsplit('_', 1)[0]
    for one in sel:
        strip = re.search(r"\[([0-9]+)\]", one)
        num = strip.group(1)
        cmd.select(one)
        cmd.polySelect(el=int(num))   
        clust = cmd.cluster(n = 'poo#')
        posi = cmd.getAttr(clust[0]+'HandleShape.origin') 
        cmd.delete (clust[0])
        size = len(joints)
        joints.append(cmd.joint(n='%s_%s_JNT' %(name, size+1),p = posi[0]))
        if size > 0:
            cmd.parent(joints[size], joints[size-1])
            cmd.joint(joints[size-1], e=True, oj = 'xyz', sao = 'yup')
            circle = cmd.circle(nr = [1, 0, 0], n='%s_%s_CTL' %(name, size))
            group = cmd.group(n = '%s_GP' %(circle[0]))
            jntCTL(joints[size-1], circle[0], group)           
        if size > 1:
            cmd.parentConstraint(joints[size-2], group, mo =1)
    cmd.select(joints, obj[0])
    cmd.skinCluster(mi=4)
コード例 #52
0
def Circle(name='circle_cnt', group=False, size=1.0):
    ''' Creates a circle shape.
        If group is True, will group control and
        return a list [group,control].
    '''

    #creating the curve
    curve = cmds.circle(radius=1, constructionHistory=False)

    #transform to standard
    cmds.rotate(0, 90, 0, curve)

    cmds.makeIdentity(curve, apply=True, t=1, r=1, s=1, n=0)

    #naming control
    node = cmds.rename(curve, name)

    #sizing
    cmds.scale(size, size, size, node)
    cmds.FreezeTransformations(node)

    #grouping control
    if group == True:
        grp = cmds.group(node, n=name + '_grp')

        return [grp, node]

    #return
    return node
コード例 #53
0
def CntlCreate():

    sels = cm.ls(sl=True)

    for i in sels:
        cntl = cm.circle(nr=(0, 0, 1), c=(0, 0, 0))
        cm.matchTransform(cntl, i)
コード例 #54
0
ファイル: ikfk.py プロジェクト: waixwong/ModularRigging
    def setupFK(self, fkChain):
        self.fkCtrls = []
        for i in range(0, len(fkChain)):
            ctrl = cmd.circle(n='ctrl_' + self.names[i], radius=1)
            self.fkCtrls.append(ctrl)

        print self.fkCtrls
コード例 #55
0
    def sample(self, *args):
        # Build joint chain
        cmds.select(cl=True)
        chain1_jnt = cmds.joint(n='chain1_jnt', p=[0, 6, 0])
        cmds.joint(n='chain2_jnt', p=[0, 3, 1])
        chain3_jnt = cmds.joint(n='chain3_jnt', p=[0, 0, 0])

        # Build ikHandle
        chain_ikHandle = cmds.ikHandle(n='chain_ikHandle',
                                       startJoint=chain1_jnt,
                                       endEffector=chain3_jnt,
                                       sol='ikRPsolver')[0]

        # Build pole vector
        pole_vector_loc = cmds.spaceLocator(n='pole_vector_loc')[0]
        cmds.setAttr('{0}.translateY'.format(pole_vector_loc), 3)
        cmds.setAttr('{0}.translateZ'.format(pole_vector_loc), 2)
        cmds.poleVectorConstraint(pole_vector_loc, chain_ikHandle)

        # Build controller
        controller = cmds.circle(nr=[0, 1, 0], r=1)[0]
        cmds.pointConstraint(controller, chain_ikHandle)

        # Run Standalone code
        No_Flip_Pole_Vector().build(root_joint=chain1_jnt,
                                    controller=controller,
                                    pole_vector=pole_vector_loc,
                                    name='example')
コード例 #56
0
def creatSphere(*args):
    circleSel = mc.ls(sl=1)[0]
    radiusCircle = mc.circle(circleSel, q=1, r=1)
    radiusSpere = radiusCircle*.75
    particleSphere = mc.polySphere(n='%s_Sphere'%circleSel, r=radiusSpere, sx=float(radiusSpere), sy=float(radiusSpere), ax=[0, 1, 0])[0]
    mc.parentConstraint(circleSel, particleSphere, mo=0, w=1)
    #mc.parent(particleSphere, circleSel)
    mc.setAttr('%s.tx'%particleSphere, 0)
    mc.setAttr('%s.ty'%particleSphere, 0)
    mc.setAttr('%s.tz'%particleSphere, 0)
    mc.setAttr('%s.rx'%particleSphere, 0)
    mc.setAttr('%s.ry'%particleSphere, 0)
    mc.setAttr('%s.rz'%particleSphere, 0)
    mc.setAttr('%s.v'%particleSphere, 0)
    mc.select(particleSphere, r=1) 
    mc.emitter(type='surface', r=4, dx=1, dy=0, dz=0, n='%s_emitter'%circleSel )
    mc.particle( n='%s_Particles'%circleSel )
    mc.connectDynamic( '%s_Particles'%circleSel, em='%s_emitter'%circleSel )
    particlesShape = mc.listRelatives('%s_Particles'%circleSel, s=1)[0]
    mc.setAttr('%s.lifespanMode'%particlesShape, 1)
    mc.setAttr('%s.lifespan'%particlesShape, 0.4)
    mc.setAttr('%s.startFrame'%particlesShape, 1001)
    mc.connectControl( 'numText', '%s.rate'%('%s_emitter'%circleSel) )
    mc.shadingNode('blinn', n='%s_blinn'%circleSel, asShader=1)
    mc.sets( n='%s_blinnSG'%circleSel, renderable=True, noSurfaceShader=True, empty=1)
    mc.connectAttr('%s.outColor'%('%s_blinn'%circleSel), '%s.surfaceShader'%('%s_blinnSG'%circleSel))
    mc.connectControl( 'myColorIndex', '%s.color'%('%s_blinn'%circleSel) )
    mc.connectControl( 'lifeText', '%s.lifespan'%particlesShape )
    mc.sets('%s_Particles'%circleSel, e=1, forceElement='%s'%('%s_blinnSG'%circleSel))
コード例 #57
0
ファイル: tgpMechanix.py プロジェクト: eyalMDM/MDMthesis
 def setSpring(self,*args):
     
     self.springName="spring"
 
     #create a set to put all of the spring elements inside
     self.springSetName="spring_SET"
     if mc.objExists(self.springSetName):
         print (self.springSetName + " exists.")
     else:
         mc.sets(name=self.springSetName)
     
     #create guides
     self.set_connector(self.springName)
         
     #create radius circle
     self.radCntrl=mc.circle(name="radius_CTRL",c=(0,0,0), nr=(0,1,0), 
                             sw=360, r=3, d=3, ut=0, tol=0.01, s=8, ch=1)
     #create springRadius attribute
     mc.addAttr(self.radCntrl, sn="sr", ln="springRadius", k=1, defaultValue=3.0, min=0.1, max=15)
     
     #connect the springRadius attribute to the circle
     mc.connectAttr("radius_CTRL.springRadius", "{0}.radius".format(self.radCntrl[1]))
     
     #position radCntrl between locators and aim
     
     mc.pointConstraint(self.baseLoc, self.topLoc,self.radCntrl[0])
     mc.aimConstraint(self.topLoc,self.radCntrl[0],aimVector=(0,1,0))
     
     self.lockHide(self.radCntrl[0])
     
     #create tmp group for easy deletion
     mc.select(self.baseLoc,self.topLoc,self.conCurve,self.radCntrl)
     self.selSpringObjs=mc.ls(sl=True,type="transform")
     
     self.createTmp(self.selSpringObjs)
コード例 #58
0
ファイル: ita_cameraStack.py プロジェクト: Italic-/maya-prefs
def genCall(pCamNameExists, *args):
    """Generate a camera stack based on one or more selected cameras,
    using original properties for the rest of the stack."""
    selectedCam = cmds.ls(selection=True)

    if selectedCam is not None:
        camList = []
        for cams in selectedCam:
            if cmds.listRelatives(
                    cams, shapes=True,
                    type='camera'
            ) is not None:
                camList.append(cams)
            else:
                continue

        if camList != []:
            for item in camList:

                fL = '.focalLength'
                hFA = '.horizontalFilmAperture'
                vFA = '.verticalFilmAperture'
                camFocLen = cmds.getAttr(item + fL)
                camHoFiAp = cmds.getAttr(item + hFA)
                camVeFiAp = cmds.getAttr(item + vFA)

                print(
                    'Focal length: %s\n'
                    'Horizontal Film Aperture: %s\n'
                    'Vertical Film Aperture: %s'
                ) % (camFocLen, camHoFiAp,camVeFiAp)
                # Main mover
                camMover = cmds.circle(
                    name=item + '_cam_move_all',
                    normal=[0, 1, 0],
                    center=[0, 0, 0],
                    radius=1.5,
                    sweep=360,
                    sections=8
                )

                # Beauty cam - basic camera moves
                mainCam = item
                cmds.select(mainCam)
                mainCam = cmds.rename(item + '_main')
                cmds.parent(mainCam, camMover)

                # Generate child cameras and connections
                subCam(mainCam, item)

                cmds.select(mainCam, replace=True)

            destroyWindow()

        else:
            cmds.warning("Please select your camera(s) and generate again.")

    else:
        cmds.warning("Please select your camera(s) and generate again.")
コード例 #59
0
ファイル: snapToMesh.py プロジェクト: jbrodskytd/anomalia
def snapToMeshTest():
    inMeshT = cmds.polySphere()
    inMesh = cmds.listRelatives(inMeshT[0], fullPath = True, shapes = True)
    print inMesh
    outObj = cmds.polySphere(radius = 0.1)
    ctrl = cmds.circle(r=0.5, n="cn_arm_fk_ctrl");
    cmds.move(1,0,0,ctrl)
    snapToMesh(inMesh = inMesh[0], outObj = outObj[0], ctrlObj=ctrl[0])
コード例 #60
0
def bdCreateFingerIKAnim(finger):
	fingerEnd = cmds.ls(finger + 'jnt_end')
	animCtrl = cmds.circle(n = finger + 'ik_anim',nr=(0, 1, 0), c=(0, 0, 0) )
	cmds.delete(animCtrl[0], constructionHistory=True)
	animGroup = cmds.group(n = finger + 'ik_anim_grp')
	cmds.select(clear=True)
	pc = cmds.parentConstraint(fingerEnd,animGroup)
	cmds.delete(pc)