def runFrom(bodyName, startTime, endTime):        
    mc.select(bodyName)
    #first we start 
    mc.currentTime(startTime+24)
    mc.setKeyframe(attribute='translateZ', v=-60)
    mc.currentTime(endTime)
    mc.setKeyframe(attribute='translateZ', v=0)

    mc.currentTime(startTime)
    mc.setKeyframe(attribute='rotateX', v=0)
    mc.currentTime(startTime+24)
    mc.setKeyframe(attribute='rotateX', v=385)    
    mc.currentTime(endTime-24)
    mc.setKeyframe(attribute='rotateX', v=385)     
    mc.currentTime(endTime)
    mc.setKeyframe(attribute='rotateX', v=360)
     
    left_leg = findName('leg_R')
    right_leg = findName('left_L')
    rTime = startTime
    lTime = startTime + 6 
    startVal = 0
    while (lTime+12) < endTime:
        rTime = rTime + 12
        lTime = lTime + 12
        legRotate(right_leg, rTime, rTime+12, startVal, startVal + 360)
        legRotate(left_leg, lTime, lTime+12, startVal, startVal+360)
        startVal = startVal + 360
    mc.select(right_leg)
    mc.currentTime(endTime+1)
    mc.rotate(0,0,0)
    mc.currentTime(startTime)
Пример #2
0
    def _createGeometry(self, name, side):

        #create tibia
        self.tibia = mc.polyCube(sx=1,
                                 sy=1,
                                 sz=1,
                                 w=2,
                                 h=50,
                                 d=2,
                                 n=name + '_tibia')[0]
        mc.move(0, 28, -12)

        self.knee = mc.polyCylinder(h=5, r=2, n=name + '_knee')[0]
        mc.move(0, 54, -12, r=True)
        mc.rotate(0, 0, '90deg')
        self.tibia = mc.polyUnite(self.tibia, self.knee, n=name + '_tibia')[0]
        mc.move(0, 54, -12, self.tibia + ".scalePivot",
                self.tibia + ".rotatePivot")

        #create feamer
        self.femur = mc.polyCube(sx=1,
                                 sy=1,
                                 sz=1,
                                 w=3,
                                 h=50,
                                 d=3,
                                 n=name + '_feamer')[0]
        mc.move(0, 80, -12)
        self.hip = mc.polySphere(r=5, n=name + '_hip')
        mc.move(0, 107, -12)
        self.femur = mc.polyUnite(self.femur, self.hip, n=name + '_femur')[0]
        mc.move(0, 107, -12, self.femur + ".scalePivot",
                self.femur + ".rotatePivot")

        pass
def runFrom(bodyName, startTime, endTime):        
    mc.select(bodyName)
    #first we start 
    mc.currentTime(startTime+24)
    mc.setKeyframe(attribute='translateZ', v=-60)
    mc.currentTime(endTime)
    mc.setKeyframe(attribute='translateZ', v=0)

    mc.currentTime(startTime)
    mc.setKeyframe(attribute='rotateX', v=0)
    mc.currentTime(startTime+24)
    mc.setKeyframe(attribute='rotateX', v=385)    
    mc.currentTime(endTime-24)
    mc.setKeyframe(attribute='rotateX', v=385)     
    mc.currentTime(endTime)
    mc.setKeyframe(attribute='rotateX', v=360)
     
    left_leg = findName('leg_R')
    right_leg = findName('left_L')
    rTime = startTime
    lTime = startTime + 6 
    startVal = 0
    while (lTime+12) < endTime:
        rTime = rTime + 12
        lTime = lTime + 12
        legRotate(right_leg, rTime, rTime+12, startVal, startVal + 360)
        legRotate(left_leg, lTime, lTime+12, startVal, startVal+360)
        startVal = startVal + 360
    mc.select(right_leg)
    mc.currentTime(endTime+1)
    mc.rotate(0,0,0)
    mc.currentTime(startTime)
Пример #4
0
def moveFeetFifth(gundamIns):
    if (gundamIns.currentFeet == "first"):
        gundamIns.currentFeet = "fifth"
        mc.select(gundamIns.rightLeg.h_foot)
        print("here", gundamIns)
        mc.move(8, 0, 13, r=True)
        mc.select(gundamIns.leftLeg.h_foot)

        mc.move(-12, 0, 0, r=True)
        mc.select(gundamIns.torso.h_hips)
        currentY = mc.getAttr(".translateY")
        mc.move(0, -5.3, 0, r=True)
    if (gundamIns.currentFeet == "parallel"):
        gundamIns.currentFeet = "fifth"
        mc.select(gundamIns.rightLeg.h_foot)
        print("here", gundamIns)
        mc.rotate(0, -70, 0)
        mc.move(24.2, 0, 13, r=True)
        mc.select(gundamIns.leftLeg.h_foot)
        mc.rotate(0, 70, 0)
        mc.move(-24.2, 0, 0, r=True)
        mc.select(cl=True)
        mc.select(gundamIns.torso.h_hips)
        currentY = mc.getAttr(".translateY")
        mc.move(0, -5.3, 0, r=True)
Пример #5
0
    def _createGeometry(self, name):
        '''
        #create tibia
        self.tibia = mc.polyCube(sx=1, sy=1, sz=1, w=2,h=50, d=2, n=name+'_tibia')[0]
        mc.move(0,28,-12)

        self.knee = mc.polyCylinder(h=5,r=2,n=name+'_knee')[0]
        mc.move(0,54,-12,r=True)
        mc.rotate(0,0,'90deg')
        self.tibia = mc.polyUnite(self.tibia,self.knee, n=name+'_tibia')[0]
        mc.move(0,54,-12, self.tibia+".scalePivot", self.tibia+".rotatePivot")

        #create feamer
        self.femur = mc.polyCube(sx=1, sy=1, sz=1, w=3,h=50, d=3, n=name+'_feamer')[0]
        mc.move(0,80,-12)
        self.hip = mc.polySphere(r=5,n=name+'_hip')
        mc.move(0,107,-12)
        self.femur = mc.polyUnite(self.femur,self.hip, n=name+'_femur')[0]
        mc.move(0,107,-12, self.femur+".scalePivot", self.femur+".rotatePivot")
        pass
        '''

        self.spine = mc.polyCylinder(h=75, r=2, n=name + '_spine')[0]
        mc.move(0, 30, 0)
        self.pelvic = mc.polyCylinder(h=40, r=2, n=name + '_pelvic')[0]
        mc.rotate(0, 0, '90deg')
        self.clavical = mc.polyCylinder(h=56, r=2, n=name + '_clavical')[0]
        mc.rotate(0, 0, '90deg')
        mc.move(0, 67, 0)

        #self.hip = mc.polySphere(r=5,n=name+'_hip')

        self.torso = mc.polyUnite(self.spine, self.pelvic, n=name)[0]
Пример #6
0
    def _makeMolecule(self):
        #H2O
        O = cmds.polySphere(r=1, n='O', ax = [0,0,0]);
        H1 = cmds.polySphere(r=0.8, n='H1', ax=[0,0,0]);
        H2 = cmds.polySphere(r=0.8, n='H2', ax=[0,0,0]);
        cmds.move(0.0,0.0,1,H1, r=True)
        cmds.move(0.0,0.0,-1,H2, r=True)
        cmds.xform(H1, piv=[0,0,0], ws=True)
        cmds.xform(H2, piv=[0,0,0], ws=True)
        cmds.rotate(0,'60',0, H1);

        #group O, H1, H2 as a water molecule
        H2O = cmds.group( empty=True, name='H2O' )
        cmds.parent(H1,H2,O,H2O)

        #paint on colors for the water molecule
        #create red lambert
        cmds.sets( renderable=True, noSurfaceShader=True, empty=True, name='O_WhiteSG' )
        cmds.shadingNode( 'lambert', asShader=True, name='O_White' )
        cmds.setAttr( 'O_White.color', 1, 1, 1, type='double3')
        cmds.connectAttr('O_White.outColor', 'O_WhiteSG.surfaceShader')
        #create red lambert
        cmds.sets( renderable=True, noSurfaceShader=True, empty=True, name='H_RedSG' )
        cmds.shadingNode( 'lambert', asShader=True, name='H_Red' )
        cmds.setAttr( 'H_Red.color', 1, 0, 0, type='double3')
        cmds.connectAttr('H_Red.outColor', 'H_RedSG.surfaceShader')

        #assign the material
        cmds.sets('H1', edit=True, forceElement='H_RedSG')
        cmds.sets('H2', edit=True, forceElement='H_RedSG')
        cmds.sets('O', edit=True, forceElement='O_WhiteSG')
        return H2O
Пример #7
0
    def _createGeometry(self, name, side):

        #build toe
        self.side = side
        self.name = name
        self.toe = mc.polyCube(sx=2,
                               sy=2,
                               sz=2,
                               w=5,
                               h=2,
                               d=3,
                               n=name + '_toe')[0]
        self.ball = mc.polyCylinder(h=5, n=name + '_ball')[0]
        mc.move(0, 0, -2, r=True)
        mc.rotate(0, 0, '90deg')
        self.toe = mc.polyUnite(self.toe, self.ball, n=name + '_toe')[0]
        mc.move(0, 0, -2, self.toe + ".scalePivot", self.toe + ".rotatePivot")

        #build arch
        self.arch = mc.polyCube(w=5, d=10, n=name + '_arch')[0]
        mc.move(0, 0, -7, r=True)

        #mc.select(f[8]-f[11])
        mc.select(self.arch + '.f[2]')
        mc.move(0, 3, 0, r=True)

        self.ankle = mc.polySphere(r=2.5)[0]
        mc.move(0, 3, -12, r=True)

        self.arch = mc.polyUnite(self.arch, self.ankle, n=name + '_arch')[0]

        mc.move(0, 3, -12, self.arch + ".scalePivot",
                self.arch + ".rotatePivot")
        #self.heal = mc.polyCube(sx=2, sy=2, sz=2,w=5, h=3, n=name+'_heal')
        pass
Пример #8
0
 def moveFemur(self, xrotate, yrotate, zrotate):
     femur = self.getGundamFemur()
     mc.select(femur[0])
     mc.rotate(xrotate, yrotate, zrotate)
     mc.setKeyframe(femur[0], t=self.timel)
     mc.select(femur[1])
     mc.rotate(xrotate, yrotate, zrotate)
     mc.setKeyframe(femur[1], t=self.timel)
Пример #9
0
 def moveHip(self, xrotate, yrotate, zrotate):
     hips = self.getGundamHip()
     mc.select(hips[0])
     mc.rotate(-xrotate, yrotate, zrotate)
     mc.setKeyframe(hips[0], t=self.timel)
     mc.select(hips[1])
     mc.rotate(-xrotate, -yrotate, zrotate)
     mc.setKeyframe(hips[1], t=self.timel)
Пример #10
0
 def moveFeet(self, xrotate, yrotate, zrotate):
     feets = self.getGundamFeet()
     mc.select(feets[0])
     mc.rotate(xrotate, yrotate, zrotate)
     mc.setKeyframe(feets[0], t=self.timel)
     mc.select(feets[1])
     mc.rotate(xrotate, yrotate, zrotate)
     mc.setKeyframe(feets[1], t=self.timel)
Пример #11
0
 def _handleDefendButton(self):
     #driven: all arms and joint; driver: the translateX of the ball
     self._rightArmDrivenKeyframe()
     #set the new values
     cmds.move( -2.5, 0, 0, 'ball', relative=True)
     cmds.rotate('0', '-72', '0', 'SF|RShoulderJoint|RightArm')
     cmds.rotate('0', '0', '53', 'SF|RShoulderJoint|RightArm|RHandJoint|RHand')
     #reset driven: all arms and joint; driver: the translateX of the ball
     self._rightArmDrivenKeyframe()
Пример #12
0
    def _createGeometry(self, name, side):

        #create tibia
        self.tibia = mc.polyCube(sx=1,
                                 sy=1,
                                 sz=1,
                                 w=2,
                                 h=50,
                                 d=2,
                                 n=name + '_tibia')[0]
        mc.move(0, 28, -12)

        self.knee = mc.polyCylinder(h=5, r=2, n=name + '_knee')[0]
        mc.move(0, 54, -12, r=True)
        mc.rotate(0, 0, '90deg')
        self.tibia = mc.polyUnite(self.tibia, self.knee, n=name + '_tibia')[0]

        self.llegArmor = mc.polyCube(w=8, h=30, d=8)[0]
        mc.move(0, 22, -12)

        mc.select(self.llegArmor + '.f[3]')
        mc.scale(1.5, 1, 1.5)
        mc.select(self.llegArmor + '.e[0]')
        mc.polySubdivideEdge(dv=2)
        mc.select(self.llegArmor + '.e[12]')
        mc.move(0, 2, 0, r=True)
        self.tibia = mc.polyUnite(self.tibia,
                                  self.llegArmor,
                                  n=name + '_tibia')[0]

        mc.move(0, 54, -12, self.tibia + ".scalePivot",
                self.tibia + ".rotatePivot")

        #create feamer
        self.femur = mc.polyCube(sx=1,
                                 sy=1,
                                 sz=1,
                                 w=3,
                                 h=50,
                                 d=3,
                                 n=name + '_feamer')[0]
        mc.move(0, 80, -12)
        self.hip = mc.polySphere(r=5, n=name + '_hip')
        mc.move(0, 107, -12)
        self.femur = mc.polyUnite(self.femur, self.hip, n=name + '_femur')[0]
        mc.move(0, 107, -12, self.femur + ".scalePivot",
                self.femur + ".rotatePivot")

        self._createCalfArmor(name, side)

        pass
Пример #13
0
    def jump(self):
        PlieIk("half", self.start, (self.end - self.start) / 5.0,
               self.gundamIns)

        mc.select(self.gundamIns.torso.h_hips)
        mc.move(0, 120, 0, r=True)
        mc.select(self.gundamIns.rightArm.h_hand)
        mc.move(0, 120, 0, r=True)
        mc.select(self.gundamIns.leftArm.h_hand)
        mc.move(0, 120, 0, r=True)
        mc.select(self.gundamIns.torso.h_shoulders)
        mc.move(0, 120, 0, r=True)
        mc.select(cl=True)
        #exit(0)

        mc.select(self.gundamIns.leftLeg.h_foot)
        mc.move(0, 0, 0, r=True)
        mc.select(cl=True)
        mc.select(self.gundamIns.rightLeg.h_foot)
        mc.move(0, 0, -80, r=True)
        mc.move(0, 50, 0, r=True)
        mc.move(10, 0, 0, r=True)
        mc.move(0, 50, 0, r=True)
        mc.rotate(70, -160, 70)
        #mc.rotate(0,70,0,r=True)
        #mc.rotate(0,0,-60,r=True)
        mc.select(cl=True)
        mc.setKeyframe(self.gundamIns.torso.h_hips,
                       self.gundamIns.leftLeg.h_foot,
                       self.gundamIns.rightLeg.h_foot,
                       self.gundamIns.torso.h_shoulders,
                       self.gundamIns.rightArm.h_hand,
                       self.gundamIns.leftArm.h_hand,
                       t=(self.end - self.start) / 5.0 +
                       (self.end - self.start) / 2 + 2)
        mc.select(self.gundamIns.rightLeg.h_foot)
        mc.rotate(0, -70, 0)
        mc.move(-8, -100, 90, r=True)
        mc.select(cl=True)
        mc.select(self.gundamIns.torso.h_hips, self.gundamIns.leftArm.h_hand,
                  self.gundamIns.rightArm.h_hand,
                  self.gundamIns.torso.h_shoulders)
        mc.move(0, -124, 0, r=True)
        mc.setKeyframe(self.gundamIns.torso.h_hips,
                       self.gundamIns.leftLeg.h_foot,
                       self.gundamIns.rightLeg.h_foot,
                       self.gundamIns.torso.h_shoulders,
                       self.gundamIns.rightArm.h_hand,
                       self.gundamIns.leftArm.h_hand,
                       t=(self.end - self.start))
Пример #14
0
    def _createCalfArmor(self, name, side):
        p1 = mc.polySphere(r=10)[0]
        mc.scale(.35, 1.5, .75)
        mc.move(5, 0, 0)

        p2 = mc.polySphere(r=10)[0]
        mc.scale(.35, 1.5, .75)
        mc.move(-5, 0, 0)

        p3 = mc.polyCylinder(r=10, sx=40)[0]
        mc.rotate(0, 0, '90deg')
        mc.scale(1.5, 5, .75)

        #claf1 = mc.polyUnite(p1,p2,p3)
        #print calf1
        #calf1 = mc.polyBoolOp(p1, p3, op=1, n='calf')[0]
        #calf2 = mc.polyBoolOp(calf1, p2, op=1, n='calf')[0]

        p4 = mc.polyCube(w=10, h=10, d=10)[0]
        mc.move(0, 10, -5)
        p5 = mc.polyCube(w=10, h=10, d=10)[0]
        mc.move(0, 10, -5)
        p6 = mc.polyCube(w=10, h=10, d=10)[0]
        mc.move(0, 10, -5)

        c1 = mc.polyBoolOp(p1, p4, op=2)[0]
        c2 = mc.polyBoolOp(p2, p5, op=2)[0]
        c3 = mc.polyBoolOp(p3, p6, op=2)[0]
        claf1 = mc.polyUnite(c1, c2, c3)
        mc.sets(e=True, forceElement=self.color1)
        mc.move(0, 45, -10)

        self.tibia = mc.polyUnite(self.tibia, claf1)

        t1 = mc.polyCube(sx=3, sy=3, sz=3, w=10, h=10, d=10, n='thigh')[0]
        t1r = mc.polyBevel(ws=1, oaf=1, o=.5, sa=30)[0]
        mc.scale(1, 5, 1)
        mc.move(0, 75, -12, r=True)

        t3 = mc.polyCube(sx=3, sy=3, sz=3, w=10, h=15, d=10,
                         n='thight_armor')[0]
        mc.sets(e=True, forceElement=self.color1)
        t3r = mc.polyBevel(ws=1, oaf=1, o=.5, sa=30)[0]
        mc.scale(1.75, 3, 1.4)

        mc.move(0, 90, -9, r=True)

        self.femur = mc.polyUnite(self.femur, t1, t3)

        pass
Пример #15
0
    def handleBallBtn(self):
        cmds.select('ball')
        cmds.currentTime(74)
        cmds.setKeyframe('ball')

        cmds.currentTime(112)
        cmds.move(-0.757, 6.434, 15.831)
        cmds.rotate(9.208, 17.386, -368.887)
        cmds.setKeyframe('ball')

        cmds.currentTime(144)
        cmds.move(-0.772, 0.637, 22.462)
        cmds.rotate(9.208, 17.386, -368.887)
        cmds.setKeyframe('ball')
Пример #16
0
    def handleBallBtn(self):
        cmds.select('ball')
        cmds.currentTime(74)
        cmds.setKeyframe('ball')

        cmds.currentTime(112)
        cmds.move(-0.757, 6.434, 15.831)
        cmds.rotate(9.208, 17.386, -368.887)
        cmds.setKeyframe('ball')

        cmds.currentTime(144)
        cmds.move(-0.772, 0.637, 22.462)
        cmds.rotate(9.208, 17.386, -368.887)
        cmds.setKeyframe('ball')
Пример #17
0
    def moveFifth(self):
        if self.gundamIns.currentArms == 'straight':
            self.gundamIns.currentArms = "fifth"
            #left arm:
            mc.select(self.gundamIns.leftArm.h_hand)
            mc.move(-10.285, 0, 0, r=True)
            mc.move(0, 0, 83.464, r=True)
            mc.move(-70, 0, 0, r=True)
            mc.move(0, 0, -10, r=True)
            mc.move(0, -32, 0, r=True)
            mc.move(0, 0, -10, r=True)
            mc.rotate(0, -60, 0, r=True)
            mc.select(cl=True)
            mc.select(self.gundamIns.leftArm.hand.j_wrist)
            mc.rotate(0, 38.976, 0, r=True)
            mc.select(cl=True)
            mc.select(self.gundamIns.rightArm.h_hand)

            mc.move(10.285, 0, 0, r=True)
            mc.move(0, 0, 83.464, r=True)
            mc.move(75, 0, 0, r=True)
            mc.move(0, 0, -13, r=True)
            mc.move(0, -33, 0, r=True)
            mc.move(0, 0, -13, r=True)
            mc.rotate(0, 40, 0, r=True)
            mc.select(cl=True)
            mc.select(self.gundamIns.rightArm.hand.j_wrist)
            mc.rotate(0, -38.976, 0, r=True)

        else:
            pass
Пример #18
0
 def _handleRoadButton(self):
     exist = cmds.ls('road')
     if(len(exist) != 0):
         cmds.delete('road')
     road=cmds.group(empty=True, name='road')
     transformName = cmds.ls('brick', typ='transform')[0]
     num = int(self.bricksNum.text())
     for i in range(0, num):
         instanceResult = cmds.instance(transformName, name=transformName + '_instance#')
         #print 'instanceResult: ' + str(instanceResult)
         x = random.uniform(-3, 34)
         z = random.uniform(-3,3)
         cmds.move(x, 0, z, instanceResult)
         yRot = random.uniform(0,360)
         cmds.rotate(0, yRot, 0, instanceResult)
         cmds.parent(instanceResult, road)
Пример #19
0
    def _duplicate(self):
        #set the random seed
        random.seed(1024)

        for i in range (0, 100):
            cmds.duplicate('H2O')
            #let the instances rotate
            objName='H2O' + str(i+1)
            #random place
            x = random.uniform(-30,30)
            y = random.uniform(0, 40)
            z = random.uniform(-30, 30)
            cmds.move(x, y, z, objName)
            #random rotate
            xRot=random.uniform(0, 360)
            yRot=random.uniform(0, 360)
            zRot=random.uniform(0, 360)
            cmds.rotate(xRot, yRot, zRot, objName)
Пример #20
0
    def _createGeometry(self, name, side):

        #create radius
        self.radius = mc.polyCube(sx=1, sy=1, sz=1, w=2,h=40, d=2, n=name+'_radius')[0]
        mc.move(0,20,0)

        self.elbow = mc.polyCylinder(h=5,r=2,n=name+'_elbow')[0]
        mc.move(0,41,0,r=True)
        mc.rotate(0,0,'90deg')
        self.radius = mc.polyUnite(self.radius,self.elbow, n=name+'_radius')[0]
        mc.move(0,41,0, self.radius+".scalePivot", self.radius+".rotatePivot")

        #create humerus
        self.humerus = mc.polyCube(sx=1, sy=1, sz=1, w=3,h=40, d=3, n=name+'_humerus')[0]
        mc.move(0,62,0)
        self.shoulder = mc.polySphere(r=5,n=name+'_shoulder')
        mc.move(0,84,0)
        self.humerus = mc.polyUnite(self.humerus,self.shoulder, n=name+'_humerus')[0]
        mc.move(0,84,0, self.humerus+".scalePivot", self.humerus+".rotatePivot")
        pass
Пример #21
0
 def _handleDuplicatedButton(self):
     random.seed(1234)
     exist = cmds.ls('dust')
     if(len(exist) != 0):
         cmds.delete('dust')
     dust=cmds.group(empty=True, name='dust')
     transformName = cmds.ls('pie', typ='transform')[0]
     num = int(self.dustNum.text())
     for i in range(0, num):
         instanceResult = cmds.instance(transformName, name=transformName + '_instance#')
         #print 'instanceResult: ' + str(instanceResult)
         x = random.uniform(-3, 34)
         y = random.uniform(0,4)
         z = random.uniform(-3,3)
         cmds.move(x, y, z, instanceResult)
         xRot = random.uniform(0,360)
         yRot = random.uniform(0,360)
         zRot = random.uniform(0,360)
         cmds.rotate(xRot, yRot, zRot, instanceResult)
         cmds.parent(instanceResult, dust)
Пример #22
0
    def createRenderEnvironment(self):
        lightName = 'scenic_light1'
        if not cmds.objExists(lightName):
            lightName = cmds.directionalLight(name=lightName, intensity=0.5)
            cmds.move(0, 2500, 0, lightName)
            cmds.rotate('-45deg', '-45deg', 0, lightName)

        lightName = 'scenic_light2'
        if not cmds.objExists(lightName):
            lightName = cmds.directionalLight(name=lightName, intensity=0.5)
            cmds.move(0, 2500, 0, lightName)
            cmds.rotate('-45deg', '135deg', 0, lightName)

        floorName = 'floor'
        if not cmds.objExists(floorName):
            floorName = cmds.polyPlane(width=10000, height=10000, name=floorName)[0]
        shader, shaderEngine = self.createShader('Whiteout_Surface', 'surfaceShader')
        cmds.setAttr(shader + '.outColor', 1.0, 1.0, 1.0, type='double3')
        cmds.select([floorName])
        cmds.sets(forceElement=shaderEngine)
Пример #23
0
def doMulti(time):

    for i in range(0, time / 2):
        #makes time/2 bubbles and sets up a bunch of random stats for them
        initTime = randint(0, time - 30)
        initX = randint(-10, 10)
        initZ = randint(-10, 10)
        xRand = randint(-5, 5)
        zRand = randint(-5, 5)

        #keyframes all the bubbles based on time that user sets in Qt slider
        r = .1
        c = cmds.polySphere(r=r)
        cmds.setAttr(c[0] + ".visibility", 0)
        cmds.setKeyframe(time=initTime + 60)
        cmds.scale(11, 10, 11)
        cmds.move(initX, 20, initZ)
        cmds.setKeyframe(time=initTime + 50)
        cmds.setAttr(c[0] + ".visibility", 1)
        cmds.rotate(100, 0, 0)
        cmds.scale(10, 9, 9.5)
        cmds.setKeyframe(time=initTime + 40)
        cmds.move(initX + xRand, 10, initZ + zRand)
        cmds.rotate(60, 0, 0)
        cmds.setKeyframe(time=initTime + 30)
        cmds.move(initX, 6, initZ)
        cmds.rotate(0, 0, 0)
        cmds.setKeyframe(time=initTime + 20)
        cmds.move(initX, 3, initZ)
        cmds.scale(3, 3, 3)
        cmds.setKeyframe(time=initTime + 10)
        cmds.move(initX, 0, initZ)
        cmds.scale(1, .8, 1)
        cmds.setKeyframe(time=initTime)
Пример #24
0
def doSingle():

    #keyframes a bubble, does NOT use slider
    r = .1
    c = cmds.polySphere(r=r)
    cmds.setAttr(c[0] + ".visibility", 0)
    cmds.setKeyframe(time=60)
    cmds.scale(11, 10, 11)
    cmds.move(0, 20, 0)
    cmds.setKeyframe(time=50)
    cmds.setAttr(c[0] + ".visibility", 1)
    cmds.rotate(100, 0, 0)
    cmds.scale(10, 9, 9.5)
    cmds.setKeyframe(time=40)
    cmds.move(4, 10, 0)
    cmds.rotate(60, 0, 0)
    cmds.setKeyframe(time=30)
    cmds.move(0, 6, 0)
    cmds.rotate(0, 0, 0)
    cmds.setKeyframe(time=20)
    cmds.move(0, 3, 0)
    cmds.scale(3, 3, 3)
    cmds.setKeyframe(time=10)
    cmds.move(0, 0, 0)
    cmds.scale(1, .8, 1)
    cmds.setKeyframe(time=1)
Пример #25
0
    def initializeCadenceCam(self):
        """ This creates an orthographic camera that looks down the Y axis onto
            the XZ plane, and rotated so that the AI file track labels are
            legible.  This camera is positioned so that the given track nodeName
            is centered in its field by setCameraFocus. """

        if cmds.objExists(self.CADENCE_CAM):
            return

        priorSelection = MayaUtils.getSelectedTransforms()

        c = cmds.camera(
            orthographic=True,
            nearClipPlane=1,
            farClipPlane=100000,
            orthographicWidth=400)
        cmds.setAttr(c[0] + '.visibility', False)
        cmds.rename(c[0], self.CADENCE_CAM)
        cmds.rotate(-90, 180, 0)
        cmds.move(0, 100, 0, self.CADENCE_CAM, absolute=True)

        MayaUtils.setSelection(priorSelection)
Пример #26
0
def moveFeetFirst(gundamIns):
    if gundamIns.currentFeet == 'parallel':
        mc.select(gundamIns.rightLeg.h_foot)
        print("here", gundamIns)
        mc.rotate(0, -70, 0)
        mc.move(12.2, 0, 0, r=True)
        mc.select(gundamIns.leftLeg.h_foot)
        mc.rotate(0, 70, 0)
        mc.move(-12.2, 0, 0, r=True)
        mc.select(cl=True)
        mc.select(gundamIns.torso.h_hips, gundamIns.torso.h_shoulders,
                  gundamIns.rightArm.h_hand, gundamIns.leftArm.h_hand)
    if (gundamIns.currentFeet == "second"):
        mc.select(gundamIns.rightLeg.h_foot)
        print("here", gundamIns)
        mc.move(19.8, 0, 0, r=True)
        mc.select(gundamIns.leftLeg.h_foot)
        mc.move(-19.8, 0, 0, r=True)
        mc.select(cl=True)
        mc.select(gundamIns.torso.h_hips, gundamIns.torso.h_shoulders,
                  gundamIns.rightArm.h_hand, gundamIns.leftArm.h_hand)
    if (gundamIns.currentFeet == 'fifth'):
        gundamIns.currentFeet = "first"
        mc.select(gundamIns.rightLeg.h_foot)
        print("here", gundamIns)
        mc.move(-8, 0, -13, r=True)
        mc.select(gundamIns.leftLeg.h_foot)

        mc.move(12, 0, 0, r=True)
        mc.select(gundamIns.torso.h_hips)
        currentY = mc.getAttr(".translateY")
        mc.move(0, 5.3, 0, r=True)

    currentY = mc.getAttr(".translateY")
    mc.move(0, .5, 0, r=True)
    mc.select(cl=True)
Пример #27
0
    def handleLegsBtn(self):
        cmds.select('leg_R')
        cmds.currentTime(48)
        cmds.setKeyframe('leg_R', at='rotateX')

        cmds.currentTime(64)
        cmds.rotate(70.63, 0, 0)
        cmds.setKeyframe('leg_R', at='rotateX')

        cmds.currentTime(80)
        cmds.rotate(-64.254, 0, 0)
        cmds.setKeyframe('leg_R', at='rotateX')

        cmds.currentTime(96)
        cmds.rotate(0, 0, 0)
        cmds.setKeyframe('leg_R', at='rotateX')

        cmds.currentTime(104)
        cmds.rotate(12.526, 0, 0)
        cmds.setKeyframe('leg_R', at='rotateX')

        cmds.currentTime(107)
        cmds.rotate(0, 0, 0)
        cmds.setKeyframe('leg_R', at='rotateX')
Пример #28
0
    def handleLegsBtn(self):
        cmds.select('leg_R')
        cmds.currentTime(48)
        cmds.setKeyframe('leg_R', at='rotateX')

        cmds.currentTime(64)
        cmds.rotate(70.63, 0, 0)
        cmds.setKeyframe('leg_R', at='rotateX')

        cmds.currentTime(80)
        cmds.rotate(-64.254, 0, 0)
        cmds.setKeyframe('leg_R', at='rotateX')

        cmds.currentTime(96)
        cmds.rotate(0, 0, 0)
        cmds.setKeyframe('leg_R', at='rotateX')

        cmds.currentTime(104)
        cmds.rotate(12.526, 0, 0)
        cmds.setKeyframe('leg_R', at='rotateX')

        cmds.currentTime(107)
        cmds.rotate(0, 0, 0)
        cmds.setKeyframe('leg_R', at='rotateX')
Пример #29
0
    def handleScriptBtn(self):
        cmds.select('arm_R')
        cmds.currentTime(1)
        cmds.setKeyframe('arm_R', at='rotateX')

        cmds.currentTime(20)
        cmds.rotate(-142.85, 0, 0)
        cmds.setKeyframe('arm_R', at='rotateX')

        cmds.currentTime(32)
        cmds.rotate(-142.85, 0, 0)
        cmds.setKeyframe('arm_R', at='rotateX')

        cmds.currentTime(48)
        cmds.rotate(0, 0, 0)
        cmds.setKeyframe('arm_R', at='rotateX')
Пример #30
0
    def handleScriptBtn(self):
        cmds.select('arm_R')
        cmds.currentTime(1)
        cmds.setKeyframe('arm_R', at='rotateX')

        cmds.currentTime(20)
        cmds.rotate(-142.85, 0, 0)
        cmds.setKeyframe('arm_R', at='rotateX')

        cmds.currentTime(32)
        cmds.rotate(-142.85, 0, 0)
        cmds.setKeyframe('arm_R', at='rotateX')

        cmds.currentTime(48)
        cmds.rotate(0, 0, 0)
        cmds.setKeyframe('arm_R', at='rotateX')
Пример #31
0
    def turns(self,start,end):

        mc.select(self.gundamIns.rightLeg.h_foot)
        mc.move(0,44,0,r=True)
        mc.rotate(137,-70,0,)
        mc.select(cl=True)
        mc.select(self.gundamIns.torso.h_hips)
        mc.move(20,5,0,r=True)
        mc.select(self.gundamIns.rightArm.h_hand)
        mc.move(20,5,0,r=True)
        mc.select(self.gundamIns.leftArm.h_hand)
        mc.move(20,5,0,r=True)
        mc.select(self.gundamIns.torso.h_shoulders)
        mc.move(20,5,0,r=True)
        mc.select(cl=True)
        mc.select(self.gundamIns.rightLeg.h_foot)
        mc.move(0,5,0,r=True)
        mc.select(cl=True)

        mc.setKeyframe(self.gundamIns.torso.h_hips,self.gundamIns.leftLeg.h_foot,self.gundamIns.rightLeg.h_foot,self.gundamIns.torso.h_shoulders,self.gundamIns.rightArm.h_hand,self.gundamIns.leftArm.h_hand, t = (self.start))


        mc.select(self.gundamIns.j_root)
        mc.rotate(0,-45 ,0)
        mc.setKeyframe(self.gundamIns.j_root,self.gundamIns.torso.h_hips,self.gundamIns.leftLeg.h_foot,self.gundamIns.rightLeg.h_foot,self.gundamIns.torso.h_shoulders,self.gundamIns.rightArm.h_hand,self.gundamIns.leftArm.h_hand,t=(self.end - self.start)*1.0/9.0)
        mc.select(cl=True)
        mc.select(self.gundamIns.j_root)
        mc.rotate(0,-90 ,0)
        mc.setKeyframe(self.gundamIns.j_root,self.gundamIns.torso.h_hips,self.gundamIns.leftLeg.h_foot,self.gundamIns.rightLeg.h_foot,self.gundamIns.torso.h_shoulders,self.gundamIns.rightArm.h_hand,self.gundamIns.leftArm.h_hand,t=(self.end - self.start)*2.0/9.0)
        mc.select(cl=True)
        mc.select(self.gundamIns.j_root)
        mc.rotate(0,-135 ,0)
        mc.setKeyframe(self.gundamIns.j_root,self.gundamIns.torso.h_hips,self.gundamIns.leftLeg.h_foot,self.gundamIns.rightLeg.h_foot,self.gundamIns.torso.h_shoulders,self.gundamIns.rightArm.h_hand,self.gundamIns.leftArm.h_hand,t=(self.end - self.start)*3.0/9.0)
        mc.select(cl=True)
        mc.select(self.gundamIns.j_root)
        mc.rotate(0,-180 ,0)
        mc.setKeyframe(self.gundamIns.j_root,self.gundamIns.torso.h_hips,self.gundamIns.leftLeg.h_foot,self.gundamIns.rightLeg.h_foot,self.gundamIns.torso.h_shoulders,self.gundamIns.rightArm.h_hand,self.gundamIns.leftArm.h_hand,t=(self.end - self.start)*4.0/9.0)
        mc.select(cl=True)
        mc.select(self.gundamIns.j_root)
        mc.rotate(0,-225 ,0)
        mc.setKeyframe(self.gundamIns.j_root,self.gundamIns.torso.h_hips,self.gundamIns.leftLeg.h_foot,self.gundamIns.rightLeg.h_foot,self.gundamIns.torso.h_shoulders,self.gundamIns.rightArm.h_hand,self.gundamIns.leftArm.h_hand,t=(self.end - self.start)*5.0/9.0)
        mc.select(cl=True)
        mc.select(self.gundamIns.j_root)
        mc.rotate(0,-270 ,0)
        mc.setKeyframe(self.gundamIns.j_root,self.gundamIns.torso.h_hips,self.gundamIns.leftLeg.h_foot,self.gundamIns.rightLeg.h_foot,self.gundamIns.torso.h_shoulders,self.gundamIns.rightArm.h_hand,self.gundamIns.leftArm.h_hand,t=(self.end - self.start)*6.0/9.0)
        mc.select(cl=True)
        mc.select(self.gundamIns.j_root)
        mc.rotate(0,-315 ,0)
        mc.setKeyframe(self.gundamIns.j_root,self.gundamIns.torso.h_hips,self.gundamIns.leftLeg.h_foot,self.gundamIns.rightLeg.h_foot,self.gundamIns.torso.h_shoulders,self.gundamIns.rightArm.h_hand,self.gundamIns.leftArm.h_hand,t=(self.end - self.start)*7.0/9.0)
        mc.select(cl=True)
        mc.select(self.gundamIns.j_root)
        mc.rotate(0,-360 ,0)
        mc.setKeyframe(self.gundamIns.j_root,self.gundamIns.torso.h_hips,self.gundamIns.leftLeg.h_foot,self.gundamIns.rightLeg.h_foot,self.gundamIns.torso.h_shoulders,self.gundamIns.rightArm.h_hand,self.gundamIns.leftArm.h_hand,t=(self.end - self.start)*8.0/9.0)
        mc.select(cl=True)
        mc.select(self.gundamIns.rightLeg.h_foot)
        mc.move(-20,-44,0,r=True)
        mc.rotate(0,-70,0,)
        mc.select(cl=True)
        mc.select(self.gundamIns.torso.h_hips)
        mc.move(-20,-5,0,r=True)
        mc.select(self.gundamIns.rightArm.h_hand)
        mc.move(-20,-5,0,r=True)
        mc.select(self.gundamIns.leftArm.h_hand)
        mc.move(-20,-5,0,r=True)
        mc.select(self.gundamIns.torso.h_shoulders)
        mc.move(-20,-5,0,r=True)
        mc.select(cl=True)
        mc.select(self.gundamIns.rightLeg.h_foot)
        mc.move(16,-5,0,r=True)
        mc.setKeyframe(self.gundamIns.torso.h_hips,self.gundamIns.leftLeg.h_foot,self.gundamIns.rightLeg.h_foot,self.gundamIns.torso.h_shoulders,self.gundamIns.rightArm.h_hand,self.gundamIns.leftArm.h_hand, t = (self.end-self.start)*9.0/9.0)

        mc.select(cl=True)
Пример #32
0
    def setBallet(self):
        mc.select(self.index.j_n_1)
        mc.rotate(1, 0, 0, r=True)
        mc.select(self.index.j_n_2)
        mc.rotate(5, 0, 0, r=True)
        mc.select(self.index.j_n_3)
        mc.rotate(5, 0, 0, r=True)

        mc.select(self.middle.j_n_1)
        mc.rotate(10, 0, 0, r=True)
        mc.select(self.middle.j_n_2)
        mc.rotate(7, 0, 0, r=True)
        mc.select(self.middle.j_n_3)
        mc.rotate(7, 0, 0, r=True)

        mc.select(self.ring.j_n_1)
        mc.rotate(7, 0, 0, r=True)
        mc.select(self.ring.j_n_2)
        mc.rotate(7, 0, 0, r=True)
        mc.select(self.ring.j_n_3)
        mc.rotate(7, 0, 0, r=True)

        mc.select(self.pinky.j_n_1)
        mc.rotate(1, 0, 0, r=True)
        mc.select(self.pinky.j_n_2)
        mc.rotate(5, 0, 0, r=True)
        mc.select(self.pinky.j_n_3)
        mc.rotate(5, 0, 0, r=True)

        mc.select(self.thumb.j_thumb_1)
        mc.rotate(-50, -60, 70, r=True)

        pass
Пример #33
0
    def _handleExitSceneButton(self):
        #Rotate Y angles
        angleWheel = 0;
        angleSolarPanels = 0
        angleDoor = 0
        angleEVE = 180.0
        angleArmLeft = -15;
        angleArmRight = 15;
        angleHead = 90

        #Translate Z values
        moveEVEz = .197

        #Translate Y values
        moveHeady = 2.965
        moveEVEy = 2.34

        cmds.camera()
        cmds.select('camera1')
        cmds.move(-1.186, 2.441, 2.849, relative=True)
        cmds.rotate(1.8, -27.2, 0)

        cmds.camera()
        cmds.select('camera2')
        cmds.move(0.25, 4.5, 15, relative=True)
        cmds.rotate(-10, -2, 0)

        cmds.camera()
        cmds.select('camera3')
        cmds.move(0.083, 8.809, 4.579, relative=True)
        cmds.rotate(-49.2, -10, 0)

        cmds.camera()
        cmds.select('camera4')
        cmds.move(-18.709, 15.459, -20.347, relative=True)
        cmds.rotate(-24, -151.6, 0)


        #cmds.aimConstraint('EVE', 'camera1')

        cmds.move(.186,2.34,.197,'EVE')
        for i in range (360):
            cmds.setKeyframe('station1:Wheel', attribute='rotateY', value=angleWheel, t=i)
            angleWheel+=.5
            cmds.setKeyframe('station1:SolarPanels', attribute='rotateY', value=angleSolarPanels, t=i)
            angleSolarPanels+=.5
            if (i <= 72):
                cmds.setKeyframe('station1:spaceDoor', attribute='rotateY', value=angleDoor, t=i)
                angleDoor -= (120/70);
            if(i <= 72):
                cmds.setKeyframe('EVE', attribute='rotateY', value=angleEVE, t=i)
                angleEVE += (180.0/72.0)
            if(i > 72 and i < (72 + 48)):
                cmds.setKeyframe('head_base', attribute='translateY', value=moveHeady, t=i)
                cmds.setKeyframe('arm_left', attribute='rotateX', value=angleArmLeft, t=i)
                cmds.setKeyframe('arm_right', attribute='rotateX', value=angleArmRight, t=i)
                moveEVEz += (.757-.197)/(48.0)
                if(i <= (72 + 24)):
                    angleArmRight += (24/15)
                    angleArmLeft -= (24/15)
                    cmds.setKeyframe('EVE', attribute='translateZ', value=moveEVEz, t=i)
                    moveHeady += ((3.194-2.965)/24)

                if(i > (72 + 24)):
                    angleArmRight -= (24/15)
                    angleArmLeft += (24/15)
                    cmds.setKeyframe('EVE', attribute='translateZ', value=moveEVEz, t=i)
                    moveHeady -= ((3.194-2.965)/24)
            if(i > (120) and i < (120+48)):
                if(i <= (120 + 24)):
                    angleHead -= (90-15)/24
                    cmds.setKeyframe('head_base', attribute='rotateY', value=angleHead, t=i)
                if( i > 144):
                    angleHead += (90+30)/(24)
                    cmds.setKeyframe('head_base', attribute='rotateY', value=angleHead, t=i)
                    if(i > (168-12)):
                        moveEVEz += ((1.709-.745)/2)/48
                        cmds.setKeyframe('EVE', attribute='translateZ', value=moveEVEz, t=i)
            if(i > 168 and i < (168+48)):
                if(i < 168 + 24):
                    angleHead -= (30/24)
                    cmds.setKeyframe('head_base', attribute='rotateY', value=angleHead, t=i)
                    cmds.setKeyframe('EVE', attribute='rotateY', value=angleEVE, t=i)
                if(i <= 206):
                    cmds.setKeyframe('station1:spaceDoor', attribute='rotateY', value=angleDoor, t=i)
                    angleDoor += (120/48);
                moveEVEz += ((1.709-.745)/2)/48.0
                cmds.setKeyframe('EVE', attribute='translateZ', value=moveEVEz, t=i)
                angleEVE += (720.0/48.0)
                moveEVEy += (3.094-2.965)/48.0
                cmds.setKeyframe('EVE', attribute='translateY', value=moveEVEy, t=i)
            if(i > 216):
                if(i < 270):
                     cmds.setKeyframe('EVE', attribute='translateY', value=angleHead, t=i)
                     angleHead += (700/48)
                cmds.setKeyframe('EVE', attribute='translateY', value = moveEVEy, t=i )
                cmds.setKeyframe('EVE', attribute='rotateY', value = angleEVE, t=i )
                moveEVEy += (11.0-2.466)/(360-216) + .01
Пример #34
0
def doThird():
    filePath3 = "C:/Users/Kyle/Downloads/hangar2.mb"
    filePath4 = "C:/Users/Kyle/Downloads/tie fighter.mb"
    cmds.file(filePath3,
              type='mayaBinary',
              ra=True,
              mergeNamespacesOnClash=False,
              namespace='hangar2',
              i=True)

    cmds.select('hangar2:pCube2')
    cmds.move(0, 2.872, 0)
    cmds.setKeyframe(time=1)

    cmds.file(filePath4,
              type='mayaBinary',
              ra=True,
              mergeNamespacesOnClash=False,
              namespace='tie fighter',
              i=True)

    cmds.select('tie_fighter:Tie_Droid:polySurface9')
    cmds.scale(.25, .25, .25)
    cmds.move(.8, 5.6, 0)
    cmds.setKeyframe(time=1)
    cmds.move(.8, 5.6, 0)
    cmds.setKeyframe(time=15)
    cmds.move(.8, 5.6, 0)
    cmds.setKeyframe(time=30)
    cmds.move(.8, 3.759, 0)
    cmds.setKeyframe(time=45)
    cmds.rotate(0, 40, 0)
    cmds.setKeyframe(time=65)
    cmds.move(4.765, 3.759, 3.545)
    cmds.setKeyframe(time=90)
    cmds.move(13.514, 3.759, 12.571)
    cmds.setKeyframe(time=120)

    cmds.file(filePath4,
              type='mayaBinary',
              ra=True,
              mergeNamespacesOnClash=False,
              namespace='tie fighter1',
              i=True)

    cmds.select('tie_fighter1:Tie_Droid:polySurface9')
    cmds.scale(.25, .25, .25)
    cmds.move(-.2, 5.6, 0)
    cmds.setKeyframe(time=1)
    cmds.setKeyframe(time=15)
    cmds.move(-.2, 4.377, 0)
    cmds.setKeyframe(time=30)
    cmds.setKeyframe(time=45)
    time.sleep(1)
    cmds.rotate(0, 40, 0)
    time.sleep(1)
    cmds.setKeyframe(time=65)
    cmds.move(3.765, 4.377, 3.545)
    cmds.setKeyframe(time=90)
    cmds.move(12.514, 4.377, 12.571)
    cmds.setKeyframe(time=120)
    time.sleep(1)

    cmds.file(filePath4,
              type='mayaBinary',
              ra=True,
              mergeNamespacesOnClash=False,
              namespace='tie fighter2',
              i=True)

    cmds.select('tie_fighter2:Tie_Droid:polySurface9')
    cmds.scale(.25, .25, .25)
    cmds.move(-1.2, 5.6, 0)
    cmds.setKeyframe(time=1)
    cmds.move(-1.2, 3.729, 0)
    cmds.setKeyframe(time=15)
    cmds.setKeyframe(time=30)
    cmds.setKeyframe(time=45)
    time.sleep(1)
    cmds.rotate(0, 40, 0)
    time.sleep(1)
    cmds.setKeyframe(time=65)
    cmds.move(2.765, 3.729, 3.545)
    cmds.setKeyframe(time=90)
    cmds.move(11.514, 3.729, 12.571)
    cmds.setKeyframe(time=120)
    time.sleep(1)
Пример #35
0
    def createTrackNode(cls, uid, trackSetNode =None, props =None):
        """ A track node consists of a triangular pointer (left = red, right =
            green) which is selectable but only allows rotateY, translateX, and
            translateZ. The node has a child, a transform called inverter, which
            serves to counteract the scaling in x and z that is applied to the
            triangular node.  There are two orthogonal rulers (width and
            length).  Width and length uncertainty is represented by rectangular
            bars at the ends of the rulers.  In Maya one can directly adjust
            track position (translateX and translateZ) and orientation
            (rotationY); other attributes are adjusted only through the UI. """

        if not trackSetNode:
            trackSetNode = TrackSceneUtils.getTrackSetNode()

        if not trackSetNode:
            return None

        node = cls.getTrackNode(uid, trackSetNode=trackSetNode)
        if node:
            return node

        # Set up dimensional constants for the track node
        nodeThickness  = 1.0
        thetaBreadth   = 0.1
        thetaThickness = 0.5
        barBreadth     = 2.0
        barThickness   = 0.5
        rulerBreadth   = 1.0
        rulerThickness = 0.25
        epsilon        = 1.0

        # Create an isoceles triangle pointer, with base aligned with X, and
        # scaled by node.width.  The midpoint of the base is centered on the
        # 'track center' and the altitude extends from that center of the track
        # 'anteriorly' to the perimeter of the track's profile (if present, else
        # estimated).  The node is scaled longitudinally (in z) based on the
        # distance zN (the 'anterior' length of the track, in cm).  The triangle
        # is initially 1 cm on a side.
        sideLength = 1.0
        node = cmds.polyPrism(
            length=nodeThickness,
            sideLength=sideLength,
            numberOfSides=3,
            subdivisionsHeight=1,
            subdivisionsCaps=0,
            axis=(0, 1, 0),
            createUVs=0,
            constructionHistory=0,
            name='Track0')[0]

        # Point the triangle down the +Z axis
        cmds.rotate(0.0, -90.0, 0.0)

        # push it down below ground level so that the two rulers are just
        # submerged, and scale the triangle in Z to match its width (1 cm) so it
        # is ready to be scaled
        cmds.move(0, -(nodeThickness/2.0 + rulerThickness), math.sqrt(3.0)/6.0)

        # move the node's pivot to the 'base' of the triangle so it scales
        # outward from that point
        cmds.move(
            0, 0, 0, node + ".scalePivot", node + ".rotatePivot", absolute=True)
        cmds.scale(2.0/math.sqrt(3.0), 1.0, 100.0)
        cmds.makeIdentity(
            apply=True,
            translate=True,
            rotate=True,
            scale=True,
            normal=False)

        # Set up the cadence attributes
        cmds.addAttr(
             longName='cadence_width',
             shortName=TrackPropEnum.WIDTH.maya,
             niceName='Width')
        cmds.addAttr(
             longName='cadence_widthUncertainty',
             shortName=TrackPropEnum.WIDTH_UNCERTAINTY.maya,
             niceName='Width Uncertainty')
        cmds.addAttr(
             longName='cadence_length',
             shortName=TrackPropEnum.LENGTH.maya,
             niceName='Length')
        cmds.addAttr(
             longName='cadence_lengthUncertainty',
             shortName=TrackPropEnum.LENGTH_UNCERTAINTY.maya,
             niceName='Length Uncertainty')
        cmds.addAttr(
             longName='cadence_lengthRatio',
             shortName=TrackPropEnum.LENGTH_RATIO.maya,
             niceName='Length Ratio')
        cmds.addAttr(
             longName='cadence_rotationUncertainty',
             shortName=TrackPropEnum.ROTATION_UNCERTAINTY.maya,
             niceName='Rotation Uncertainty')
        cmds.addAttr(
             longName='cadence_uniqueId',
             shortName=TrackPropEnum.UID.maya,
             dataType='string',
             niceName='Unique ID')

        # Construct a ruler representing track width, then push it down just
        # below ground level, and ake it non-selectable.  Drive its scale by the
        # node's width attribute.
        widthRuler = cmds.polyCube(
            axis=(0, 1, 0),
            width=100.0,
            height=rulerThickness,
            depth=rulerBreadth,
            subdivisionsX=1,
            subdivisionsY=1,
            createUVs=0,
            constructionHistory=0,
            name='WidthRuler')[0]

        # Push it down to just rest on the triangular node (which is already
        # submerged by the thickness of the ruler and half the node thickness.
        cmds.move(0.0, -rulerThickness/2.0, 0.0)
        cmds.setAttr(widthRuler + '.overrideEnabled', 1)
        cmds.setAttr(widthRuler + '.overrideDisplayType', 2)

        # Construct a ruler representing track length and push it down the same
        # as the width ruler, and make it non-selectable.  Its length will be
        # driven by the node's length attribute.
        lengthRuler = cmds.polyCube(
            axis=(0, 1, 0),
            width=rulerBreadth,
            height=rulerThickness,
            depth=100.0,
            subdivisionsX=1,
            subdivisionsY=1,
            createUVs=0,
            constructionHistory=0,
            name='LengthRuler')[0]
        cmds.move(0.0, -rulerThickness/2.0, 0.0)
        cmds.setAttr(lengthRuler + '.overrideEnabled', 1)
        cmds.setAttr(lengthRuler + '.overrideDisplayType', 2)

        # Now construct 'error bars' to the North, South, West, and East of the
        # node, to visualize uncertainty in width (West and East bars) and
        # length (North and South bars), and push them just below ground level,
        # and make them non-selectable.
        barN = cmds.polyCube(
            axis=(0,1,0),
            width=barBreadth,
            height=barThickness,
            depth=100.0,
            subdivisionsX=1,
            subdivisionsY=1,
            createUVs=0,
            constructionHistory=0,
            name='BarN')[0]
        cmds.move(0, -(barThickness/2 + rulerThickness), 0)
        cmds.setAttr(barN + '.overrideEnabled', 1)
        cmds.setAttr(barN + '.overrideDisplayType', 2)

        barS = cmds.polyCube(
            axis=(0, 1, 0),
            width=barBreadth,
            height=barThickness,
            depth=100.0,
            subdivisionsX=1,
            subdivisionsY=1,
            createUVs=0,
            constructionHistory=0,
            name='BarS')[0]
        cmds.move(0, -(barThickness/2 + rulerThickness), 0)
        cmds.setAttr(barS + '.overrideEnabled', 1)
        cmds.setAttr(barS + '.overrideDisplayType', 2)

        barW = cmds.polyCube(
            axis=(0, 1, 0),
            width=100.0,
            height=barThickness,
            depth=barBreadth,
            subdivisionsX=1,
            subdivisionsY=1,
            createUVs=0,
            constructionHistory=0,
            name='BarW')[0]
        cmds.move(0, -(barThickness/2 + rulerThickness), 0)
        cmds.setAttr(barW + '.overrideEnabled', 1)
        cmds.setAttr(barW + '.overrideDisplayType', 2)

        barE = cmds.polyCube(
            axis=(0, 1, 0),
            width=100.0,
            height=barThickness,
            depth=barBreadth,
            subdivisionsX=1,
            subdivisionsY=1,
            createUVs=0,
            constructionHistory=0,
            name='BarE')[0]
        cmds.move(0, -(barThickness/2 + rulerThickness), 0)
        cmds.setAttr(barE + '.overrideEnabled', 1)
        cmds.setAttr(barE + '.overrideDisplayType', 2)

        # Create two diverging lines that indicate rotation uncertainty (plus
        # and minus), with their pivots placed so they extend from the node
        # center, and each is made non-selectable.  First make the indicator of
        # maximum (counterclockwise) estimated track rotation
        thetaPlus = cmds.polyCube(
            axis=(0, 1, 0),
            width=thetaBreadth,
            height=thetaThickness,
            depth=1.0,
            subdivisionsX=1,
            subdivisionsY=1,
            createUVs=0,
            constructionHistory=0,
            name='ThetaPlus')[0]
        cmds.setAttr(thetaPlus + '.overrideEnabled',     1)
        cmds.setAttr(thetaPlus + '.overrideDisplayType', 2)

        # Next, construct the indicator of the minimum (clockwise) estimate of
        # track rotation
        thetaMinus = cmds.polyCube(
            axis=(0, 1, 0),
            width=thetaBreadth,
            height=thetaThickness,
            depth=1.0,
            subdivisionsX=1,
            subdivisionsY=1,
            createUVs=0,
            constructionHistory=0,
            name='ThetaMinus')[0]
        cmds.setAttr(thetaMinus + '.overrideEnabled',     1)
        cmds.setAttr(thetaMinus + '.overrideDisplayType', 2)

        # The two width 'error bars' will be translated outward from the node
        # center.  First, the width attribute is converted from meters (as it
        # comes from the database) to centimeters; the computation is available
        # in the output of the node 'width'.
        width = cmds.createNode('multiplyDivide', name='width')
        cmds.setAttr(width + '.operation', 1)
        cmds.setAttr(width + '.input1X', 100.0)
        cmds.connectAttr(
            node + '.' + TrackPropEnum.WIDTH.maya, width + '.input2X')

        # Translate barW in x by width/2.0; output is in xW.outputX
        xW = cmds.createNode('multiplyDivide', name = 'xW')
        cmds.setAttr(xW + '.operation', 2)
        cmds.connectAttr(width + '.outputX', xW + '.input1X')
        cmds.setAttr(xW + '.input2X', 2.0)
        cmds.connectAttr(xW + '.outputX', barW + '.translateX')

        # Translate barE in x by -width/2.0; output is in xE.outputX
        xE = cmds.createNode('multiplyDivide', name = 'xE')
        cmds.setAttr(xE + '.operation', 2) # division operation
        cmds.connectAttr(width + '.outputX', xE + '.input1X')
        cmds.setAttr(xE + '.input2X', -2.0)
        cmds.connectAttr(xE + '.outputX', barE + '.translateX')

        # Now regarding length, first convert the node.length attribute from
        # meters to centimeters. This computation is available in the output of
        # the node 'length'
        length = cmds.createNode('multiplyDivide', name='length')
        cmds.setAttr(length + '.operation', 1)
        cmds.setAttr(length + '.input1X', 100.0)
        cmds.connectAttr(
            node + '.' + TrackPropEnum.LENGTH.maya, length + '.input2X')

        # scale thetaPlus and thetaMinus by length (since they are 1 cm,
        # multiply by length in cm)
        cmds.connectAttr(length + '.outputX', thetaPlus  + '.scaleZ')
        cmds.connectAttr(length + '.outputX', thetaMinus + '.scaleZ')

        # Then barN is translated forward in z by zN = lengthRatio*length
        # (centimeters)
        zN = cmds.createNode('multiplyDivide', name='zN')
        cmds.setAttr(zN + '.operation', 1)
        cmds.connectAttr(
            node + '.' + TrackPropEnum.LENGTH_RATIO.maya, zN + '.input1X')
        cmds.connectAttr(length + '.outputX',  zN + '.input2X')
        cmds.connectAttr(zN + '.outputX', barN + '.translateZ')

        # Next, translate barS backward in z by (zN - length); output is in
        # zS.output1D
        zS = cmds.createNode('plusMinusAverage', name='sZ')
        cmds.setAttr(zS + '.operation', 2)
        cmds.connectAttr(zN + '.outputX',     zS + '.input1D[0]')
        cmds.connectAttr(length + '.outputX', zS + '.input1D[1]')
        cmds.connectAttr(zS + '.output1D',    barS + '.translateZ')

        # Next, compute the half length, hl = length/2.0 (centimeters)
        hl = cmds.createNode('multiplyDivide', name='hl')
        cmds.setAttr(hl + '.operation', 2)
        cmds.connectAttr(length + '.outputX', hl + '.input1X')
        cmds.setAttr(hl + '.input2X', 2.0)

        # Translate lengthRuler along z by zL = (zN - hl) (centimeters)
        zL = cmds.createNode('plusMinusAverage', name='zL')
        cmds.setAttr(zL + '.operation', 2)
        cmds.connectAttr(zN + '.outputX',  zL + '.input1D[0]')
        cmds.connectAttr(hl + '.outputX',  zL + '.input1D[1]')
        cmds.connectAttr(zL + '.output1D', lengthRuler + '.translateZ')

        # Scale the four 'error bars' to represent the width and length
        # uncertainties (centimeters)
        cmds.connectAttr(
            node + "." + TrackPropEnum.WIDTH_UNCERTAINTY.maya,
            barW + '.scaleX')
        cmds.connectAttr(
            node + "." + TrackPropEnum.WIDTH_UNCERTAINTY.maya,
            barE + '.scaleX')
        cmds.connectAttr(
            node + "." + TrackPropEnum.LENGTH_UNCERTAINTY.maya,
            barN + '.scaleZ')
        cmds.connectAttr(
            node + "." + TrackPropEnum.LENGTH_UNCERTAINTY.maya,
            barS + '.scaleZ')

        # Create an 'inverter' transform under which all the other parts are
        # hung as children, which counteracts scaling applied to its parent
        # triangular node.
        inverter = cmds.createNode('transform', name='inverter')

        # drive the inverter's .scaleX and .scaleZ as the inverse of the parent
        # node's scale values
        sx = cmds.createNode('multiplyDivide', name='sx')
        cmds.setAttr(sx + '.operation', 2)
        cmds.setAttr(sx + '.input1X', 1.0)
        cmds.connectAttr(node + '.scaleX', sx + '.input2X')
        cmds.connectAttr(sx + '.outputX', inverter + '.scaleX')

        sz = cmds.createNode('multiplyDivide', name='sz')
        cmds.setAttr(sz + '.operation', 2)
        cmds.setAttr(sz + '.input1X', 1.0)
        cmds.connectAttr(node + '.scaleZ', sz + '.input2X')
        cmds.connectAttr(sz + '.outputX', inverter + '.scaleZ')

        # Assemble the parts as children under the scale inverter node
        cmds.parent(lengthRuler, inverter)
        cmds.parent(widthRuler,  inverter)
        cmds.parent(barN,        inverter)
        cmds.parent(barS,        inverter)
        cmds.parent(barW,        inverter)
        cmds.parent(barE,        inverter)
        cmds.parent(thetaPlus,   inverter)
        cmds.parent(thetaMinus,  inverter)
        cmds.parent(inverter,    node)

        # Rotate thetaPlus and thetaMinus about the Y axis to indicate
        # rotational uncertainty
        cmds.connectAttr(
            node + '.' + TrackPropEnum.ROTATION_UNCERTAINTY.maya,
            node + '|' + inverter + '|' + thetaPlus + '.rotateY')

        neg = cmds.createNode('multiplyDivide', name='negative')
        cmds.setAttr(neg + '.operation', 1)
        cmds.setAttr(neg + '.input1X',  -1.0)
        cmds.connectAttr(
            node + '.' + TrackPropEnum.ROTATION_UNCERTAINTY.maya,
            neg + '.input2X')
        cmds.connectAttr(
            neg + '.outputX',
            node + '|' + inverter + '|' + thetaMinus + '.rotateY')

        # Disable some transforms of the node
        cmds.setAttr(node + '.rotateX',    lock=True)
        cmds.setAttr(node + '.rotateZ',    lock=True)
        cmds.setAttr(node + '.scaleY',     lock=True)
        cmds.setAttr(node + '.translateY', lock=True)

        # Now, the width of the triangle will be driven by its width attribute
        # (driving .scaleX)
        cmds.connectAttr(node + '.width',  node + '.scaleX')

        # The quantity zN is used to scale length of the triangle
        cmds.connectAttr(zN + '.outputX',  node + '.scaleZ')

        # Scale the 'length' (in x) of the width ruler
        cmds.connectAttr(
            node + '.width',  node + '|' + inverter + '|WidthRuler.scaleX')

        # Scale the length of the length ruler
        cmds.connectAttr(
            node + '.length', node + '|' + inverter + '|LengthRuler.scaleZ')

        # Translate the track node epsilon below ground level (to reveal the
        # overlaid track siteMap)
        cmds.move(0, -epsilon, 0, node)

        # Initialize all the properties from the dictionary
        if props:
            cls.setTrackProps(node, props)
        else:
            print('in createTrackNode:  properties not provided')
            return node

        # Add the new nodeName to the Cadence track scene set, color it, and
        # we're done
        cmds.sets(node, add=trackSetNode)
        cls.colorTrackNode(node, props)
        return node
Пример #36
0
import nimble
from nimble import cmds

kwargs = nimble.getRemoteKwargs(globals())

result = cmds.polySphere()
name = result[0]

offset = kwargs.get('offset', 10)

cmds.move(offset, offset, offset, name)
cmds.rotate(50, 20, 10, name)
cmds.scale(2, 2, 2, name)

response = nimble.createRemoteResponse(globals())
response.put('name', name)
response.put('offset', offset)
Пример #37
0
    def _createGeometry(self, name, side):

        #create radius
        self.radius = mc.polyCube(sx=1,
                                  sy=1,
                                  sz=1,
                                  w=2,
                                  h=40,
                                  d=2,
                                  n=name + '_radius')[0]
        mc.move(0, 20, 0)

        self.elbow = mc.polyCylinder(h=5, r=2, n=name + '_elbow')[0]
        mc.move(0, 41, 0, r=True)
        mc.rotate(0, 0, '90deg')
        self.radius = mc.polyUnite(self.radius, self.elbow,
                                   n=name + '_radius')[0]
        mc.move(0, 41, 0, self.radius + ".scalePivot",
                self.radius + ".rotatePivot")

        #create humerus
        self.humerus = mc.polyCube(sx=1,
                                   sy=1,
                                   sz=1,
                                   w=3,
                                   h=40,
                                   d=3,
                                   n=name + '_humerus')[0]
        mc.move(0, 62, 0)
        self.shoulder = mc.polySphere(r=5, n=name + '_shoulder')
        mc.move(0, 84, 0)
        self.humerus = mc.polyUnite(self.humerus,
                                    self.shoulder,
                                    n=name + '_humerus')[0]
        mc.move(0, 84, 0, self.humerus + ".scalePivot",
                self.humerus + ".rotatePivot")
        pass

        ######### shoulders ############
        t1 = mc.polyCube(sx=3, sy=3, sz=3, w=15, h=15, d=15, n='l_shoulder')[0]
        mc.sets(e=True, forceElement=self.color4)
        t1r = mc.polyBevel(ws=1, oaf=1, o=.5, sa=30)[0]
        #mc.scale(1,5,1)
        mc.move(self.sideMult * 5, 90, 0, r=True)

        t2 = mc.polyCube(sx=3, sy=3, sz=3, w=10, h=15, d=10, n='r_shoulder')[0]
        mc.sets(e=True, forceElement=self.color4)
        t2r = mc.polyBevel(ws=1, oaf=1, o=.5, sa=30)[0]
        mc.scale(1, 2.5, 1)
        mc.move(0, 63, 0, r=True)

        t3 = mc.polyCube(sx=3, sy=3, sz=3, w=10, h=15, d=10, n='r_shoulder')[0]
        mc.sets(e=True, forceElement=self.color1)
        t3r = mc.polyBevel(ws=1, oaf=1, o=.5, sa=30)[0]
        mc.scale(1.2, 2.25, 1)

        mc.move(0, 63, -1, r=True)

        t4 = mc.polyCube(sx=3, sy=3, sz=3, w=10, h=15, d=10, n='r_shoulder')[0]
        mc.sets(e=True, forceElement=self.color4)
        t4r = mc.polyBevel(ws=1, oaf=1, o=.5, sa=30)[0]
        mc.scale(1, 2.5, 1)
        mc.move(0, 20, 0, r=True)

        t5 = mc.polyCube(sx=3, sy=3, sz=3, w=10, h=15, d=10, n='r_shoulder')[0]
        mc.sets(e=True, forceElement=self.color1)
        t5r = mc.polyBevel(ws=1, oaf=1, o=.5, sa=30)[0]
        mc.scale(1.2, 2.25, 1.0)
        mc.move(0, 20, -1, r=True)

        self.elbowArmor = mc.polyCube(sx=3,
                                      sy=3,
                                      sz=3,
                                      w=8,
                                      h=15,
                                      d=9,
                                      n='r_shoulder')[0]
        mc.sets(e=True, forceElement=self.color1)
        t5r = mc.polyBevel(ws=1, oaf=1, o=.5, sa=30)[0]
        mc.move(0, 41, -1, r=True)

        self.humerus = mc.polyUnite(self.humerus, t1, t2, t3)

        self.radius = mc.polyUnite(self.radius, t4, t5)
Пример #38
0
    def __init__(self, name, c1=None, c2=None, c3=None):
        self.name = name
        self.currentFeet = "parallel"
        self.currentArms = "straight"
        self.color1 = c1
        self.color2 = c2
        self.color3 = c3
        if self.color1 is None:
            self.color1 = 'initialShadingGroup'
        if self.color2 is None:
            self.color2 = 'initialShadingGroup'
        if self.color3 is None:
            self.color3 = 'initialShadingGroup'

        #self.sword = sword.Sword(name)
        '''
        mc.select(cl=True)
        self.rightHand = hand.Hand(name+'_right', Side.right)
        mc.select(cl=True)
        self.leftHand = hand.Hand(name+'_left', Side.left)
        '''
        self.leftLeg = leg.Leg(name + '_left', Side.left, self.color1,
                               self.color2, self.color3)
        mc.select(cl=True)
        self.rightLeg = leg.Leg(name + '_right', Side.right, self.color1,
                                self.color2, self.color3)
        mc.select(cl=True)

        self.leftArm = arms.Arm(name + '_left', Side.left, self.color1,
                                self.color2, self.color3)
        mc.select(cl=True)
        self.rightArm = arms.Arm(name + '_right', Side.right, self.color1,
                                 self.color2, self.color3)
        mc.select(cl=True)

        mc.select(self.rightArm.hand.j_wrist)
        #mc.move(-112, 173, 0, r=True)
        mc.rotate('180deg', '-90deg', 0, r=True)
        mc.select(self.leftArm.hand.j_wrist)
        #mc.move(112, 173, 0, r=True)
        mc.rotate('180deg', '90deg', 0, r=True)

        mc.select(self.rightLeg.j_hip)
        mc.move(-20, 0, 12, r=True)
        mc.select(self.leftLeg.j_hip)
        mc.move(20, 0, 12, r=True)

        mc.select(self.rightLeg.h_foot)
        mc.move(-20, 0, 12, r=True)
        mc.select(self.leftLeg.h_foot)
        mc.move(20, 0, 12, r=True)

        mc.select(self.rightArm.j_shoulder)
        mc.move(-35, 90, 0, r=True)
        mc.rotate(0, 0, -90)
        mc.select(self.leftArm.j_shoulder)
        mc.move(35, 90, 0, r=True)
        mc.rotate(0, 0, 90)

        self.torso = torso.Torso(name + '_torso', self.color1, self.color2,
                                 self.color3)
        mc.select(self.torso.j_root)
        mc.select(self.torso.j_bind_root, add=True)
        mc.move(0, 107, 0)
        mc.select(self.torso.j_bind_neck)
        mc.select(self.torso.h_hips, add=True)
        mc.select(self.torso.h_shoulders, add=True)
        mc.move(0, 107, 0, r=True)

        self.head = head.Head(name)
        #mc.select(self.head.head)
        mc.select(self.head.j_head)
        mc.move(0, 189, 0)

        mc.parent(self.rightLeg.j_hip, self.torso.j_root)
        mc.parent(self.leftLeg.j_hip, self.torso.j_root)
        mc.parent(self.rightArm.j_shoulder, self.torso.j_s5)
        mc.parent(self.leftArm.j_shoulder, self.torso.j_s5)

        mc.parent(self.head.j_head, self.torso.j_neck)
        #mc.parent(self.leftArm.hand.j_wrist, self.leftArm.j_elbow)
        #mc.parent(self.rightArm.hand.j_wrist, self.rightArm.j_elbow)

        mc.select(cl=True)
        self.j_root = mc.joint(p=(0, 107, 0), n=name + '_root')

        mc.parent(self.torso.j_root, self.j_root)

        mc.setAttr(
            self.j_root + " | " + self.torso.j_root +
            ".segmentScaleCompensate", 0)

        mc.select(cl=True)

        self.parentIKToRoot()

        #print self.leftArm.h_hand
        self.leftArm.hand.setBallet()
        self.rightArm.hand.setBallet()
Пример #39
0
    def _createGeometry(self, name, side):

        #build toe
        self.side = side
        self.name = name
        self.toe = mc.polyCube(sx=2,
                               sy=2,
                               sz=2,
                               w=5,
                               h=2,
                               d=3,
                               n=name + '_toe')[0]
        self.ball = mc.polyCylinder(h=5, n=name + '_ball')[0]
        mc.move(0, 0, -2, r=True)
        mc.rotate(0, 0, '90deg')
        self.toe = mc.polyUnite(self.toe, self.ball, n=name + '_toe')[0]

        self.toeBox = mc.polyCube(w=8, h=4, d=3, n=name + '_toeBox')[0]
        mc.sets(e=True, forceElement=self.color1)
        mc.move(0, .9, 0, r=True)
        #e1
        mc.select(self.toeBox + '.e[1]')
        mc.move(0, -1, 0, r=True)

        self.toeBoxBase = mc.polyCube(w=8, h=4, d=3, n=name + '_toeBoxBase')[0]
        mc.sets(e=True, forceElement=self.color2)
        mc.move(0, .9, 1, r=True)
        #e1
        mc.select(self.toeBoxBase + '.e[2]')
        mc.move(0, -2, 0, r=True)
        mc.select(self.toeBoxBase + '.e[1]')
        mc.move(0, -1, 0, r=True)
        mc.select(self.toeBoxBase + '.f[2]')
        mc.scale(1.25, 1, 1)
        mc.move(0, 0, -1, r=True)

        self.toeToeBox = mc.polyCube(w=8, h=3, d=3, n=name + '_toeToeBox')[0]
        mc.sets(e=True, forceElement=self.color2)
        mc.move(0, .4, 4, r=True)
        #f0
        mc.select(self.toeToeBox + '.f[0]')
        mc.scale(.75, .75, 1)

        mc.move(0, 0, -2, self.toe + ".scalePivot", self.toe + ".rotatePivot")

        self.toe = mc.polyUnite(self.toe, self.toeBox)
        self.toe = mc.polyUnite(self.toe, self.toeToeBox)
        self.toe = mc.polyUnite(self.toe, self.toeBoxBase, n=name + '_toe')

        #build arch
        self.arch = mc.polyCube(w=5, d=10, n=name + '_arch')[0]
        mc.move(0, 0, -7, r=True)

        #mc.select(f[8]-f[11])
        mc.select(self.arch + '.f[2]')
        mc.move(0, 3, 0, r=True)

        self.ankle = mc.polySphere(r=2.5)[0]
        mc.move(0, 3, -12, r=True)

        self.arch = mc.polyUnite(self.arch, self.ankle, n=name + '_arch')[0]

        self.archArmor = mc.polyCube(w=8, h=4, d=8)[0]
        mc.sets(e=True, forceElement=self.color1)
        mc.move(0, .9, -6, r=True)

        self.archArmor2 = mc.polyCube(w=8, h=4, d=8)[0]
        mc.sets(e=True, forceElement=self.color1)
        mc.move(0, 4.9, -6, r=True)
        mc.select(self.archArmor2 + '.e[1]')
        mc.move(0, -3.75, 0, r=True)
        mc.select(self.archArmor2 + '.e[2]')
        #mc.move(0,-.5,0,r=True)
        mc.scale(.5, 1, 1)

        self.archArmor3 = mc.polyCube(w=8, h=4, d=8)[0]
        mc.sets(e=True, forceElement=self.color1)
        mc.move(0, 4.9, -8.5, r=True)
        mc.select(self.archArmor3 + '.e[1]')
        mc.move(0, 0, -4, r=True)
        mc.scale(.5, 1, 1)
        mc.select(self.archArmor3 + '.e[2]')
        #mc.move(0,-.5,0,r=True)
        mc.scale(.5, 1, 1)

        self.archArmorBase = mc.polyCube(w=8, h=4, d=8)[0]
        mc.sets(e=True, forceElement=self.color2)
        mc.move(0, .9, -6, r=True)

        mc.select(self.archArmorBase + '.f[0]')
        mc.scale(1.25, 1, 1)
        mc.select(self.archArmorBase + '.f[2]')
        mc.scale(1.25, 1, 1)
        mc.select(self.archArmorBase + '.e[1]')
        mc.move(0, -2, 0, r=True)
        mc.select(self.archArmorBase + '.e[2]')
        mc.move(0, -.5, 0, r=True)

        self.archArmorBase2 = mc.polyCube(w=8, h=4, d=4)[0]
        mc.sets(e=True, forceElement=self.color2)
        mc.move(0, .9, -12, r=True)
        mc.select(self.archArmorBase2 + '.f[0]')
        mc.scale(1.25, 1, 1)
        mc.select(self.archArmorBase2 + '.f[2]')
        mc.scale(1.25, 1, 1)
        mc.select(self.archArmorBase2 + '.e[3]')
        mc.move(0, 1, 1.75, r=True)
        mc.select(self.archArmorBase2 + '.e[1]')
        mc.move(0, -.5, 0, r=True)

        self.archArmorBase3 = mc.polyCube(w=8, h=4, d=4)[0]
        mc.sets(e=True, forceElement=self.color2)
        mc.move(0, 4.9, -12, r=True)
        mc.select(self.archArmorBase3 + '.f[0]')
        mc.scale(1.25, 1, 1)
        mc.select(self.archArmorBase3 + '.f[2]')
        mc.scale(1.25, 1, 1)
        mc.select(self.archArmorBase3 + '.f[1]')
        mc.scale(.5, 1, 1)
        mc.move(0, -1, 0, r=True)
        mc.select(self.archArmorBase3 + '.e[0]')
        mc.move(0, -.5, 0, r=True)
        mc.select(self.archArmorBase3 + '.e[1]')
        mc.move(0, 0, -2.5, r=True)
        mc.select(self.archArmorBase3 + '.e[2]')
        mc.move(0, 0, -1.5, r=True)

        self.archArmorBase4 = mc.polyCube(w=8, h=4, d=4)[0]
        mc.sets(e=True, forceElement=self.color2)
        mc.move(0, 4.9, -15.5, r=True)
        mc.select(self.archArmorBase4 + '.f[0]')
        mc.scale(1.25, 1, 1)
        mc.select(self.archArmorBase4 + '.f[2]')
        mc.scale(1.25, 1, 1)
        mc.select(self.archArmorBase4 + '.f[1]')

        mc.scale(.5, 1, 1)
        mc.move(0, -2, 0, r=True)
        mc.select(self.archArmorBase4 + '.f[3]')
        mc.scale(1, 1, 1.25)
        mc.select(self.archArmorBase4 + '.e[0]')
        mc.move(0, -3, .5, r=True)
        mc.select(self.archArmorBase4 + '.e[1]')
        mc.move(0, 0, -2, r=True)
        mc.select(self.archArmorBase4 + '.e[2]')
        mc.move(0, 0, 1, r=True)
        mc.select(self.archArmorBase4 + '.e[3]')
        mc.move(0, -2, -.75, r=True)
        mc.scale(.75, 1, 1)

        self.archArmorBase5 = mc.polyCube(w=8, h=4, d=5)[0]
        mc.sets(e=True, forceElement=self.color2)
        mc.move(0, .9, -15.6, r=True)
        mc.select(self.archArmorBase5 + '.f[1]')
        mc.move(0, -3, 0, r=True)
        mc.scale(1.25, 1, 1.25)
        mc.select(self.archArmorBase5 + '.f[2]')
        mc.scale(.75, 1, 1)
        #mc.select(self.archArmorBase5+'.e[3]')
        #mc.move(0,1,0,r=True)
        mc.select(self.archArmorBase5 + '.e[2]')
        mc.move(0, 1, 0, r=True)

        self.arch = mc.polyUnite(self.arch, self.archArmor)
        self.arch = mc.polyUnite(self.arch, self.archArmor2)
        self.arch = mc.polyUnite(self.arch, self.archArmor3)
        self.arch = mc.polyUnite(self.arch, self.archArmorBase2)
        self.arch = mc.polyUnite(self.arch, self.archArmorBase3)
        self.arch = mc.polyUnite(self.arch, self.archArmorBase4)
        self.arch = mc.polyUnite(self.arch, self.archArmorBase5)
        self.arch = mc.polyUnite(self.arch,
                                 self.archArmorBase,
                                 n=name + '_arch')[0]

        mc.move(0, 3, -12, self.arch + ".scalePivot",
                self.arch + ".rotatePivot")
        #self.heal = mc.polyCube(sx=2, sy=2, sz=2,w=5, h=3, n=name+'_heal')

        pass
Пример #40
0
    def _createGeometry(self, side):
        mc.select(cl=True)
        self.n_t = mc.polySphere(r=1.2, n="n_t")
        mc.move(self.sideModifyer * 4.5, 2, 1.5)
        self.b_1 = mc.polyCylinder(r=.75, h=2)
        mc.move(self.sideModifyer * 6.5, 2, 1.5)
        mc.rotate(0, 0, 90)

        self.s_1 = mc.polyCube(sx=1, sy=3, sz=1, h=5, w=2, d=2)[0]
        mc.move(self.sideModifyer * 8.5, 3.5, 1.5)
        mc.select(self.s_1 + '.f[7]')
        mc.move(-1, 0, 0, r=True)
        mc.select(self.s_1 + '.e[26]')
        mc.move(-1, 0, 0, r=True)
        mc.select(self.s_1 + '.e[23]')
        mc.move(.123, 0, 0, r=True)
        mc.select(self.s_1 + '.f[3]')
        mc.move(0, -.5, 0, r=True)

        self.n_2_a = mc.polyCylinder(ax=[0, 0, 1],
                                     sx=2,
                                     sy=2,
                                     sz=2,
                                     h=.6,
                                     r=1.0,
                                     n='n_2_a')
        mc.move(self.sideModifyer * 8.5, 6.5, 1.5 + .7)  #1.875 + .35
        self.n_2_b = mc.polyCylinder(ax=[0, 0, 1],
                                     sx=2,
                                     sy=2,
                                     sz=2,
                                     h=.6,
                                     r=1.0,
                                     n='n_2_b')
        mc.move(self.sideModifyer * 8.5, 6.5, 1.5 - .7)  #1.875 -.35

        self.s_1 = mc.polyUnite(self.n_t,
                                self.s_1,
                                self.n_2_a,
                                self.n_2_b,
                                self.b_1,
                                n='segment_1')

        #section 2 construction
        self.n_2_c = mc.polyCylinder(ax=[0, 0, 1],
                                     sx=2,
                                     sy=2,
                                     sz=2,
                                     h=.6,
                                     r=1.0,
                                     n='n_2_c')[0]
        mc.move(self.sideModifyer * 8.5, 6.5, 1.5)
        self.p_2 = mc.polyCube(sx=2, sy=2, sz=2, h=4, w=2, d=2)[0]
        mc.move(self.sideModifyer * 8.5, 9.5, 1.5)
        mc.select(self.p_2 + '.f[4:7]')  #f[5] on a one segment
        mc.scale(.8, 1, .75)

        #section 2 unite

        self.s_2 = mc.polyUnite(self.n_2_c, self.p_2, n='p_s_2')[0]
        mc.move(self.sideModifyer * 8.5, 6.5, 1.5, self.s_2 + ".scalePivot",
                self.s_2 + ".rotatePivot")
Пример #41
0
    def _handleCreateH2o(self):
        """

        """
        #Sets the animation end time
        cmds.playbackOptions(max=240, aet=240)

        #this number sets the number of molecules to create
        molecules = 10

        #Creates each atom in the h2o molecule, aligns them properly, then groups them together .
        cmds.polySphere(name="oxygen", r=1.2)
        cmds.polySphere(name="hydrogenA", r=1.06)
        cmds.select("hydrogenA")
        cmds.move(0, -1.3, 0)
        cmds.group('oxygen', 'hydrogenA', n='oxygenHydrogenA')

        cmds.select('hydrogenA')
        cmds.rotate(0, 0, '-52.5', p=(0, 0, 0))

        cmds.polySphere(name="hydrogenB", r=1.06)
        cmds.select("hydrogenB")
        cmds.move(0, -1.3, 0)
        cmds.group('oxygen', 'hydrogenB', n='oxygenHydrogenB')

        cmds.select('hydrogenB')
        cmds.rotate(0, 0, '52.5', p=(0, 0, 0))

        cmds.select('hydrogenA', 'hydrogenB')
        cmds.polyColorPerVertex(rgb=(1, 1, 1), cdo=True)

        cmds.select('oxygen')
        cmds.polyColorPerVertex(rgb=(1, 0, 0), cdo=True)

        cmds.group('oxygenHydrogenB', 'oxygenHydrogenA', n='h2o')

        #duplicates the original molecule
        for i in range(1, molecules):
            cmds.duplicate('h2o')

        #list of planes for movement
        xyz = ['X', 'Y']

        #Sets movement for the original h2o molecule
        cmds.select("h2o")
        plane = random.choice(xyz)
        cmds.setKeyframe('h2o',
                         at='translate' + plane,
                         v=float(cmds.getAttr('h2o.translate' + plane)),
                         t=1)
        cmds.setKeyframe('h2o', at='translate' + plane, v=5, t=240)

        #Iterates through each h2o group and assigns a random position and orientation for each molecule.
        #It also randomly choose a direction for the molecule to move in.
        for i in range(1, molecules):
            #random plane
            plane = random.choice(xyz)
            cmds.select("h2o" + str(i))
            #random position
            cmds.move(random.randrange(-9, 9), random.randrange(-9, 9),
                      random.randrange(-9, 9))
            #random orientation
            cmds.rotate(random.randrange(0, 350), random.randrange(0, 350),
                        random.randrange(0, 350))
            #sets the start and end position for movement
            cmds.setKeyframe(
                'h2o' + str(i),
                at='translate' + plane,
                v=float(cmds.getAttr('h2o' + str(i) + '.translate' + plane)),
                t=1)
            cmds.setKeyframe('h2o' + str(i),
                             at='translate' + plane,
                             v=5,
                             t=240)
            plane = random.choice(xyz)

        #Selects all the h2o molecules
        cmds.select("h2o", add=True)
        for i in range(1, molecules):
            cmds.select("h2o" + str(i))

        #Creates a new animation layer called vibrate and adds all the h2o molecules to it.
        cmds.animLayer('vibrate', aso=True)

        #Sets oscillation for original molecule
        cmds.setKeyframe('h2o',
                         at='translateZ',
                         v=float(cmds.getAttr('h2o.translateZ')),
                         t=1)
        cmds.setKeyframe('h2o',
                         at='translateZ',
                         v=float(cmds.getAttr('h2o.translateZ')) + .2,
                         t=2)
        #cmds.selectKey('h2o', t=(1,2), at="translateZ")
        cmds.selectKey('h2o', at='translateZ')
        cmds.setInfinity(pri='oscillate', poi='oscillate')

        #Sets oscillation for all other molecules
        for i in range(1, molecules):
            cmds.setKeyframe('h2o' + str(i),
                             at='translateZ',
                             v=float(
                                 cmds.getAttr('h2o' + str(i) + '.translateZ')),
                             t=1)
            cmds.setKeyframe(
                'h2o' + str(i),
                at='translateZ',
                v=float(cmds.getAttr('h2o' + str(i) + '.translateZ')) + .2,
                t=2)
            #cmds.selectKey('h2o'+str(i), t=(1,2), at="translateZ")
            cmds.selectKey('h2o' + str(i), at="translateZ")
            cmds.setInfinity(pri='oscillate', poi='oscillate')
Пример #42
0
    def _handleExampleButton(self):
        """
        This callback creates a polygonal cylinder in the Maya scene.

        """

        random.seed(1234)

        #check
        sphereList = cmds.ls('hydrogen1','hydrogen2', 'oxygen','H2O')

        if len(sphereList)>0:
            cmds.delete(sphereList)

        #create 2 hydrogen and oxygen
        h1 = cmds.polySphere(r=12.0, name='hydrogen1')
        h2 = cmds.polySphere(r=12.0, name='hydrogen2')
        oxygen = cmds.polySphere(r=15.0, name='oxygen')


        #move
        cmds.move(-15,0,0,h1)
        cmds.move(15,0,0,h2)
        cmds.xform(h1, piv=[0,0,0],ws=True)
        cmds.xform(h2, piv=[0,0,0],ws=True)
        cmds.rotate(0,'75',0,h1)

        #group hydrogen and oxygen together
        H2O = cmds.group(empty=True, name='H2O#')
        cmds.parent('hydrogen1','hydrogen2','oxygen','H2O1')

        #add color
        def createMaterial( name, color, type ):
            cmds.sets( renderable=True, noSurfaceShader=True, empty=True, name=name + 'SG' )
            cmds.shadingNode( type, asShader=True, name=name )
            cmds.setAttr( name+'.color', color[0], color[1], color[2], type='double3')
            cmds.connectAttr(name+'.outColor', name+'SG.surfaceShader')

        def assignMaterial (name, object):
            cmds.sets(object, edit=True, forceElement=name+'SG')

        def assignNewMaterial( name, color, type, object):
            createMaterial (name, color, type)
            assignMaterial (name, object)

        #H is white and O is red
        assignNewMaterial('Red', (1,0,0), 'lambert', 'oxygen');
        assignNewMaterial('White',(1,1,1),'lambert', 'hydrogen1');
        assignMaterial('White', 'hydrogen2');

        #key frame
        def keyFullRotation( pObjectName, pStartTime, pEndTime, pTargetAttribute,pValueStart, pvalueEnd ):
            keyt = (pStartTime[0], pStartTime[0])
            cmds.cutKey( pObjectName, time=(keyt, keyt), attribute=pTargetAttribute )
            cmds.setKeyframe( pObjectName, time=pStartTime, attribute=pTargetAttribute, value=pValueStart )
            cmds.setKeyframe( pObjectName, time=pEndTime, attribute=pTargetAttribute, value=pvalueEnd )
            #cmds.selectKey( pObjectName, time=(pStartTime, [pEndTime]), attribute=pTargetAttribute, keyframe=True )

        #duplicate H2O
        for i in range(1,52):
            cmds.duplicate(H2O)
            #get random coord
            x = random.uniform(-200,200)
            y = random.uniform(0,300)
            z = random.uniform(-200,200)

            cmds.move(x,y,z, H2O)


            xRot = random.uniform(0,360)
            yRot = random.uniform(0,360)
            zRot = random.uniform(0,360)

            cmds.rotate(xRot,yRot,zRot,H2O)

            startTime = cmds.playbackOptions(minTime=1 )
            endTime = cmds.playbackOptions( maxTime=30 )

            h2o = "H2O"+str(i)

            for y in range(3):
                coordsX = cmds.getAttr( h2o+'.translateX' )
                coordsY = cmds.getAttr( h2o+'.translateY' )
                coordsZ = cmds.getAttr( h2o+'.translateZ' )

                ranStartX = int(random.uniform(0,15))
                ranStartY = int(random.uniform(0,15))
                ranStartZ = int(random.uniform(0,15))

                ranEndX = int(random.uniform(15,30))
                ranEndY = int(random.uniform(15,30))
                ranEndZ = int(random.uniform(15,30))

                x = random.uniform(coordsX-50,coordsX+50)
                y = random.uniform(coordsY,coordsY+50)
                z = random.uniform(coordsZ-50,coordsZ+50)
                #print x,y,z

                keyFullRotation( h2o, ranStartZ, 15, 'translateZ',coordsZ,z)
                keyFullRotation( h2o, ranStartX, 15, 'translateX', coordsX,x)
                keyFullRotation( h2o, ranStartY, 15, 'translateY', coordsY,y)

                keyFullRotation( h2o, 15, ranEndZ, 'translateZ',z,coordsZ)
                keyFullRotation( h2o, 15, ranEndX, 'translateX', x,coordsX)
                keyFullRotation( h2o, 15, ranEndY, 'translateY', y,coordsY)

                RcoordsX = cmds.getAttr( h2o+'.rotateX' )
                RcoordsY = cmds.getAttr( h2o+'.rotateY' )
                RcoordsZ = cmds.getAttr( h2o+'.rotateZ' )

                xRot = random.uniform(0,360)
                yRot = random.uniform(0,360)
                zRot = random.uniform(0,360)

                keyFullRotation( h2o, ranStartZ, 15, 'rotateZ',RcoordsZ,zRot)
                keyFullRotation( h2o, ranStartX, 15, 'rotateX', RcoordsX,xRot)
                keyFullRotation( h2o, ranStartY, 15, 'rotateY', RcoordsY,zRot)

                keyFullRotation( h2o, 15, ranEndZ, 'rotateZ',zRot,RcoordsZ)
                keyFullRotation( h2o, 15, ranEndX, 'rotateX', xRot,RcoordsX)
                keyFullRotation( h2o, 15, ranEndY, 'rotateY', zRot,RcoordsY)

        print 'done'
        cmds.delete('H2O52')
Пример #43
0
def doFourth():
    filePath4 = "C:/Users/Kyle/Downloads/tie fighter.mb"
    filePath = "C:/Users/Kyle/Downloads/x_wing/x_wing.mb"

    cmds.file(filePath, type='mayaBinary', ra=True, mergeNamespacesOnClash=False, namespace='x_wing', i=True )

    cmds.file(filePath4, type='mayaBinary', ra=True, mergeNamespacesOnClash=False, namespace='tie fighter', i=True )
    cmds.file(filePath4, type='mayaBinary', ra=True, mergeNamespacesOnClash=False, namespace='tie fighter', i=True )
    cmds.file(filePath4, type='mayaBinary', ra=True, mergeNamespacesOnClash=False, namespace='tie fighter', i=True )

    cmds.select('x_wing:polySurface3')
    cmds.scale(.15,.15,.15)
    cmds.move(0,4,15)
    cmds.setKeyframe(time=1)
    cmds.move(0,4,11.7)
    cmds.rotate(0,-18.6,0)
    cmds.setKeyframe(time=30)
    cmds.move(6.667, 4.803,7.37)
    cmds.rotate(0,36,0)
    cmds.setKeyframe(time=60)
    cmds.move(-2.127, 6.86,-5.277)
    cmds.rotate(26.244,36,0)
    cmds.setKeyframe(time=120)

    cmds.select('tie_fighter:Tie_Droid:polySurface9')
    cmds.move(2,6,5)
    cmds.rotate(0,180,0)
    cmds.setKeyframe(time=1)
    cmds.move(5,6,1.415)
    cmds.rotate(0,156.849,0)
    cmds.setKeyframe(time=30)
    cmds.move(2.309,8.410,-1.272)
    cmds.rotate(0,214,0)
    cmds.setKeyframe(time=60)
    cmds.move(-7.6,8.410,-15.8)
    cmds.rotate(15,211,-27)
    cmds.setKeyframe(time=120)

    cmds.select('tie_fighter1:Tie_Droid:polySurface9')
    cmds.move(0,4,5)
    cmds.rotate(0,180,0)
    cmds.setKeyframe(time=1)
    cmds.move(3.6,4,1.49)
    cmds.rotate(0,153.924,0)
    cmds.setKeyframe(time=30)
    cmds.move(.64,6.118,-.19)
    cmds.rotate(0,212.91,0)
    cmds.setKeyframe(time=60)
    cmds.move(-9.9,6.118,-14.19)
    cmds.rotate(14.932,209.673,-28.310)
    cmds.setKeyframe(time=120)

    cmds.select('tie_fighter2:Tie_Droid:polySurface9')
    cmds.move(4,4,5)
    cmds.rotate(0,180,0)
    cmds.setKeyframe(time=1)
    cmds.move(7.45,4,1)
    cmds.rotate(0,159.3,0)
    cmds.setKeyframe(time=30)
    cmds.move(4,5.92,-2.743)
    cmds.rotate(0,222.231,0)
    cmds.setKeyframe(time=60)
    cmds.move(-6.65,5.92,-17.742)
    cmds.rotate(8,219,-19.8)
    cmds.setKeyframe(time=120)
Пример #44
0
    def _handleExampleButton(self):
        """
        This callback creates a polygonal cylinder in the Maya scene.

        """

        random.seed(1234)

        #check
        sphereList = cmds.ls('hydrogen1', 'hydrogen2', 'oxygen', 'H2O')

        if len(sphereList) > 0:
            cmds.delete(sphereList)

        #create 2 hydrogen and oxygen
        h1 = cmds.polySphere(r=12.0, name='hydrogen1')
        h2 = cmds.polySphere(r=12.0, name='hydrogen2')
        oxygen = cmds.polySphere(r=15.0, name='oxygen')

        #move
        cmds.move(-15, 0, 0, h1)
        cmds.move(15, 0, 0, h2)
        cmds.xform(h1, piv=[0, 0, 0], ws=True)
        cmds.xform(h2, piv=[0, 0, 0], ws=True)
        cmds.rotate(0, '75', 0, h1)

        #group hydrogen and oxygen together
        H2O = cmds.group(empty=True, name='H2O#')
        cmds.parent('hydrogen1', 'hydrogen2', 'oxygen', 'H2O1')

        #add color
        def createMaterial(name, color, type):
            cmds.sets(renderable=True,
                      noSurfaceShader=True,
                      empty=True,
                      name=name + 'SG')
            cmds.shadingNode(type, asShader=True, name=name)
            cmds.setAttr(name + '.color',
                         color[0],
                         color[1],
                         color[2],
                         type='double3')
            cmds.connectAttr(name + '.outColor', name + 'SG.surfaceShader')

        def assignMaterial(name, object):
            cmds.sets(object, edit=True, forceElement=name + 'SG')

        def assignNewMaterial(name, color, type, object):
            createMaterial(name, color, type)
            assignMaterial(name, object)

        #H is white and O is red
        assignNewMaterial('Red', (1, 0, 0), 'lambert', 'oxygen')
        assignNewMaterial('White', (1, 1, 1), 'lambert', 'hydrogen1')
        assignMaterial('White', 'hydrogen2')

        #key frame
        def keyFullRotation(pObjectName, pStartTime, pEndTime,
                            pTargetAttribute, pValueStart, pvalueEnd):
            keyt = (pStartTime[0], pStartTime[0])
            cmds.cutKey(pObjectName,
                        time=(keyt, keyt),
                        attribute=pTargetAttribute)
            cmds.setKeyframe(pObjectName,
                             time=pStartTime,
                             attribute=pTargetAttribute,
                             value=pValueStart)
            cmds.setKeyframe(pObjectName,
                             time=pEndTime,
                             attribute=pTargetAttribute,
                             value=pvalueEnd)
            #cmds.selectKey( pObjectName, time=(pStartTime, [pEndTime]), attribute=pTargetAttribute, keyframe=True )

        #duplicate H2O
        for i in range(1, 52):
            cmds.duplicate(H2O)
            #get random coord
            x = random.uniform(-200, 200)
            y = random.uniform(0, 300)
            z = random.uniform(-200, 200)

            cmds.move(x, y, z, H2O)

            xRot = random.uniform(0, 360)
            yRot = random.uniform(0, 360)
            zRot = random.uniform(0, 360)

            cmds.rotate(xRot, yRot, zRot, H2O)

            startTime = cmds.playbackOptions(minTime=1)
            endTime = cmds.playbackOptions(maxTime=30)

            h2o = "H2O" + str(i)

            for y in range(3):
                coordsX = cmds.getAttr(h2o + '.translateX')
                coordsY = cmds.getAttr(h2o + '.translateY')
                coordsZ = cmds.getAttr(h2o + '.translateZ')

                ranStartX = int(random.uniform(0, 15))
                ranStartY = int(random.uniform(0, 15))
                ranStartZ = int(random.uniform(0, 15))

                ranEndX = int(random.uniform(15, 30))
                ranEndY = int(random.uniform(15, 30))
                ranEndZ = int(random.uniform(15, 30))

                x = random.uniform(coordsX - 50, coordsX + 50)
                y = random.uniform(coordsY, coordsY + 50)
                z = random.uniform(coordsZ - 50, coordsZ + 50)
                #print x,y,z

                keyFullRotation(h2o, ranStartZ, 15, 'translateZ', coordsZ, z)
                keyFullRotation(h2o, ranStartX, 15, 'translateX', coordsX, x)
                keyFullRotation(h2o, ranStartY, 15, 'translateY', coordsY, y)

                keyFullRotation(h2o, 15, ranEndZ, 'translateZ', z, coordsZ)
                keyFullRotation(h2o, 15, ranEndX, 'translateX', x, coordsX)
                keyFullRotation(h2o, 15, ranEndY, 'translateY', y, coordsY)

                RcoordsX = cmds.getAttr(h2o + '.rotateX')
                RcoordsY = cmds.getAttr(h2o + '.rotateY')
                RcoordsZ = cmds.getAttr(h2o + '.rotateZ')

                xRot = random.uniform(0, 360)
                yRot = random.uniform(0, 360)
                zRot = random.uniform(0, 360)

                keyFullRotation(h2o, ranStartZ, 15, 'rotateZ', RcoordsZ, zRot)
                keyFullRotation(h2o, ranStartX, 15, 'rotateX', RcoordsX, xRot)
                keyFullRotation(h2o, ranStartY, 15, 'rotateY', RcoordsY, zRot)

                keyFullRotation(h2o, 15, ranEndZ, 'rotateZ', zRot, RcoordsZ)
                keyFullRotation(h2o, 15, ranEndX, 'rotateX', xRot, RcoordsX)
                keyFullRotation(h2o, 15, ranEndY, 'rotateY', zRot, RcoordsY)

        print 'done'
        cmds.delete('H2O52')
Пример #45
0
 def createLight(self, name, translate, rotate):
     cmds.spotLight(n=name)
     cmds.xform(name, t=[translate[0], translate[1], translate[2]])
     cmds.rotate(rotate[0], rotate[1], rotate[2], name)
     cmds.setAttr(self.getShapeString(name) + '.intensity', 1.5)
     cmds.setAttr(self.getShapeString(name) + '.penumbraAngle', 5.)