예제 #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
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
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
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
    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
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
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
	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)
    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
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
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
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
    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
 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
 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
    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
    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')
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
 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
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
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)