def luigiActions(): yield viztask.waitTime(53) yield viztask.addAction(luigi, vizact.walkTo([-0, 0, 4])) yield viztask.addAction(luigi, vizact.walkTo([-1, 0, 3], turnInPlace=True)) yield viztask.addAction(luigi, vizact.walkTo([0, 0, 2])) yield viztask.addAction(luigi, vizact.turn(0, 220)) yield viztask.addAction(luigi, vizact.animation(4))
def walk(): while (True) : yield viztask.addAction(cat,vizact.walkTo([2.8, 0, -3], walkSpeed = 1.5, turnSpeed = 1, walkAnim = 4)) yield viztask.waitTime(1.5) yield look1() yield viztask.addAction(cat,vizact.walkTo([-2.8, 0, -3], walkSpeed = 1.5, turnSpeed = 1, walkAnim = 4)) yield viztask.waitTime(1.5) yield look2()
def TrialCountDownTask(): """Task that count downs to time limit for trial""" global revealSelf global manChase # Action for text fading out text_fade = vizact.parallel( vizact.fadeTo(0,time=0.8,interpolate=vizact.easeOut) ,vizact.sizeTo([1.5,1.5,1.0],time=0.8,interpolate=vizact.easeOut) ) # Reset time text time_text.clearActions() time_text.alpha(1.0) time_text.color(viz.WHITE) time_text.setScale([1,1,1]) time_text.message(str(int(TRIAL_DURATION))) # Countdown from time limit start_time = viz.getFrameTime() last_remain = int(TRIAL_DURATION) male2.clearActions() male2.setPosition(2.5,0,7.5) while (viz.getFrameTime() - start_time) < TRIAL_DURATION: if revealSelf: pigeon.clearActions() pos = viz.MainView.getPosition() pigeon.addAction( vizact.walkTo([pos[0], 0, pos[2]]) ) if manChase: male.clearActions() male2.state(2) pos = pigeon.getPosition() male2.addAction( vizact.walkTo([pos[0] - .5, 0, pos[2] - .5])) if male2.getPosition()[2] == (pigeon.getPosition()[2] - .5): #allow for other actions to take place (chase takes precedence) manChase = False male2.state(9) # Compute remaining whole seconds remain = int(math.ceil(TRIAL_DURATION - (viz.getFrameTime() - start_time))) # Update text if time remaining changed if remain != last_remain: if remain <= 5: time_text.alpha(1.0) time_text.color(viz.RED) time_text.setScale([1]*3) time_text.runAction(text_fade) viz.playSound('sounds/beep.wav') time_text.message(str(remain)) last_remain = remain # Wait tenth of second yield viztask.waitTime(0.1)
def walking(): yield viztask.waitKeyDown(' ') male.addAction(vizact.walkTo([1, 0, 0])) yield vizproximity.waitEnter(femaleSensor) female.state(3) yield viztask.waitTime(2) male.state(33) yield viztask.waitTime(3) male.addAction(vizact.walkTo([-4, 0, 0], walkAnim = 70, walkSpeed = 2)) yield vizproximity.waitExit(femaleSensor) female.state(8)
def myTask(): while True: question_text.message('Hit the spacebar to begin.') yield viztask.waitKeyDown(' ') female.state(5) yield viztask.waitTime(1) yield viztask.addAction(male, vizact.walkTo([-1,-0,0])) male.state(5) yield mySubTask() male.state(9) yield viztask.addAction(female,vizact.animation(6)) male.addAction( vizact.walkTo( [2,0,-1],2.5,90,11 ) )
def makeMove(): walk_over = vizact.walkTo([-.5,0,-2.2]) yield viztask.addAction( female, walk_over ) female.state(1) wait = vizact.waittime(3) yield male.addAction(wait) react()
def addPigeonToWorld(info): pigeon = vizfx.addAvatar(info.PIGEON_FILE, pos=info.startPosition) pigeon.setScale(3,3,3) # So that the pigeons are easier to see pigeon.state(info.state) if info.coordinates != None: action = vizact.sequence([vizact.walkTo(c, walkSpeed=info.speed, turnSpeed=info.turnSpeed, walkAnim=info.state, turnInPlace=True) for c in info.coordinates], viz.FOREVER) pigeon.runAction(action)
def start(): print('start!') print(time.time()) text3D.message(' Start!') drop = vizact.walkTo([10,1.2,15]) start = experimenter.addAction(drop) neck.lock() head.lock()
def step(): global prevStep prevStep = "UP" print prevStep walk = vizact.walkTo([male.getPosition()[0] + 1, 0,male.getPosition()[2]], walkSpeed = 1) male.runAction(walk) # viz.MainView.velocity(0,0,1) vizact.ontimer2(.9,0,setDown)
def pigeonsFeed(): random_speed = vizact.method.setAnimationSpeed(0,vizact.randfloat(0.7,1.5)) random_walk = vizact.walkTo(pos=[vizact.randfloat(-4,4),0,vizact.randfloat(3,7)]) random_animation = vizact.method.state(vizact.choice([1,3],vizact.RANDOM)) random_wait = vizact.waittime(vizact.randfloat(5.0,10.0)) pigeon_idle = vizact.sequence( random_speed, random_walk, random_animation, random_wait, viz.FOREVER) for pigeon in pigeons: pigeon.addAction(pigeon_idle)
def update(self,elapsed,object): predatorPosition = self.predator.getPosition() position = object.getPosition() dx = position[0] - predatorPosition[0] dz = position[2] - predatorPosition[2] distance = math.sqrt(dx * dx + dz * dz) if (distance < 6 and distance > 0): destination = [position[0] + dx / distance * random.randint(0,10), position[1], position[2] + dz /distance * random.randint(0,10)] moveAction = vizact.walkTo(destination, 8) #pigeon.addAction(moveAction) pigeon_root.setPosition(destination)
def step(): global prevStep, lastX, lastZ prevStep = "UP" x, z = calcUnitVector() viz.MainView.velocity(lastX, 0, lastZ) lastX = x lastZ = z walk = vizact.walkTo([x + male.getPosition()[0], 0, z + male.getPosition()[2]], walkSpeed=1) viz.MainView.lookAt([male.getPosition()[0], 2, male.getPosition()[2]]) male.runAction(walk) vizact.ontimer2(0.9, 0, setDown)
def moveAvatar() : global curAvatar a = random.choice(avatars) #so a different avatar is choosen each time while(a == curAvatar): a = random.choice(avatars) curAvatar = a walk = vizact.walkTo(random.choice(positions)) a.runAction(walk)
def moveAvatar(): global curAvatar a = random.choice(avatars) #so a different avatar is choosen each time while (a == curAvatar): a = random.choice(avatars) curAvatar = a walk = vizact.walkTo(random.choice(positions)) a.runAction(walk)
def myTask(): #As long as the task is running . . . while True: question_text.message( 'Hit the spacebar to begin.' ) #Wait for a keypress. yield viztask.waitKeyDown( ' ' ) #Animate the female. female.state( 5 ) #Wait for a second. yield viztask.waitTime( 1 ) #Make the male walk and wait for him to finish the action. yield viztask.addAction( male, vizact.walkTo( [-1,0,0] ) ) #Make the male dance. male.state( 5 ) #Wait for a sub task to finish. yield mySubTask() #Give the male a new animation. male.state(9) #Give the female a new animation and wait for it to finish. yield viztask.addAction( female, vizact.animation(6) ) #Make the male run. male.addAction( vizact.walkTo( [2,0,-1],2.5,90,11 ) )
def go(): man.state(162) woman.state(35) # doesn't work yield viztask.addAction(woman, vizact.walkTo([1.35,0,-1.35])) yield viztask.addAction(man, vizact.animation(11)) yield viztask.addAction(woman, vizact.turn(-145)) # woman.state(86) # woman.state(142) man.state(7) while True: # goes to a weird animatin in-between yield viztask.addAction(woman, vizact.animation(143)) yield viztask.addAction(woman, vizact.animation(144))
def start_custom_walk(self): #self.avatar.lookat(self.next_point) walk = vizact.walkTo(self.next_point, self.next_speed*self.speedMultiplier, 270*self.speedMultiplier) yield viztask.addAction(self.avatar, walk) theq,index = self.check_quadrants() if(self.place_points < len(self.points)): self.next_point = self.points[self.place_points][0] self.next_speed = self.points[self.place_points][1] self.save_path.addPoint(self.next_point, self.next_speed) self.place_points += 1 elif theq != -1: self.myquadrants[index] = True self.next_point = theq.get_random_walk() self.next_speed = get_next_speed() #change tophat speed here self.save_path.addPoint(self.next_point, self.next_speed) if self.coll == 0: viztask.schedule(self.start_custom_walk())
def walk_around( self ): global quadrants #self.avatar.lookat(self.next_point) ##if random.random() > 1: ##walk = vizact.walkTo(self.next_point) ##else: walk = vizact.walkTo(self.next_point, self.next_speed*self.speedMultiplier, 270*self.speedMultiplier) #change everyone else speed here # this makes the person walk to the next point yield viztask.addAction(self.avatar, walk) [theq,index] = self.check_quadrants() if theq != -1: self.next_point = theq.get_random_walk() self.next_speed = get_next_speed() self.save_path.addPoint(self.next_point, self.next_speed) # self.coll == 0 always for now if self.coll == 0: viztask.schedule(self.walk_around())
def walkAndAnimate(): while True: # yield waits until a task is finished before progressing to the next one # walks to the left side of the user, by the bench yield viztask.addAction(manuel, vizact.walkTo([2.4, 0, 2.57996], walkSpeed=2)) yield viztask.addAction(manuel, vizact.turn(-45, 220)) # change the position and rotation of the linked guitar link.setOffset([-0.5, 0.05, -0]) link.setEuler([-45, 0, 70]) # pauses animations for 13 seconds so the guitar playing animation is in sync with audio yield viztask.waitTime(13) # locking of bones and setting their positions/rotations so left arm of 'manuel' will 'play' the guitar upperarm = manuel.getbone('Bip01 L UpperArm') upperarm.lock() upperarm.setEuler(0, 0, 0) forearm = manuel.getBone('Bip01 L Forearm') forearm.lock() forearm.setEuler(0, 0, -120) hand = manuel.getBone('Bip01 L Hand') hand.lock() hand.setEuler(0, 180, 45) #luigi.addAction(vizact.animation(4,speed =1)) for num in range(0, 11): yield viztask.addAction(manuel, vizact.animation(4)) #unlocks bones upperarm.unlock() forearm.unlock() hand.unlock() # kill task when done animationTask.kill()
def addPeople(mapManager): ### Add people with random route for i in range(0, 50): avatar = 'vcc_male.cfg' if ((int)(random.random() * 10)) % 2 == 0: avatar = 'vcc_female.cfg' person = vizfx.addAvatar(avatar) pos = [random.randint(20, 200), 2.5, random.randint(80, 120)] while mapManager.mapper.matrix[( int)(pos[0] * mapManager.mapper.squaresPerMeter - mapManager.offsetX)][( int)(pos[2] * mapManager.mapper.squaresPerMeter - mapManager.offsetY)] == 1: pos = [random.randint(20, 200), 2.5, random.randint(80, 120)] person.setPosition(pos) actions = [] actions.append(pos) for j in range(0, 2): nextPos = findNextGoal(pos, random.randint(10, 30), mapManager) if pos != nextPos: actions.append(vizact.walkTo(nextPos)) pos = nextPos if len(actions) > 1: person_seq = vizact.sequence(actions, viz.FOREVER) person.runAction(person_seq) else: print("removed avatar") person.remove() return ### Information info1 = vizfx.addAvatar('vcc_male.cfg') info1.setPosition([3.62353, 2.55017, -64.36298]) info1.setEuler([180, 0, 0]) info1.state(1) info2 = vizfx.addAvatar('vcc_female.cfg') info2.setPosition([0.07517, 2.55017, -64.61992]) info2.setEuler([180, 0, 0]) info2.state(1) info3 = vizfx.addAvatar('vcc_male2.cfg') info3.setPosition([-2.45477, 2.55017, -64.54278]) info3.setEuler([180, 0, 0]) info3.state(1) ### Information ### Shops female1 = vizfx.addAvatar('vcc_female.cfg') female1.setPosition([-107.63577, 2.60017, -63.46337]) female1.setEuler(-90, 0, 0) female1.state(1) male9 = vizfx.addAvatar('vcc_male2.cfg') male9.setPosition([-100.42088, 2.60017, -64.16325]) male9.setEuler(90, 0, 0) male9.state(1) female2 = vizfx.addAvatar('vcc_female.cfg') female2.setPosition([-80.69553, 2.60017, -46.70128]) female2.setEuler(-90, 0, 0) female2.state(1) male17 = vizfx.addAvatar('vcc_male.cfg') male17.setPosition([-73.44943, 2.60017, -45.32741]) male17.setEuler(90, 0, 0) male17.state(1) female3 = vizfx.addAvatar('vcc_female.cfg') female3.setPosition([-53.71975, 2.60017, -45.82802]) female3.setEuler(-90, 0, 0) female3.state(1) male18 = vizfx.addAvatar('vcc_male2.cfg') male18.setPosition([-46.34661, 2.60017, -46.12560]) male18.setEuler(90, 0, 0) male18.state(1) female4 = vizfx.addAvatar('vcc_female.cfg') female4.setPosition([-15.02875, 2.60017, -45.91469]) female4.setEuler(-90, 0, 0) female4.state(1) male19 = vizfx.addAvatar('vcc_male.cfg') male19.setPosition([-8.12945, 2.60017, -45.98362]) male19.setEuler(90, 0, 0) male19.state(1) female5 = vizfx.addAvatar('vcc_female.cfg') female5.setPosition([15.97678, 2.60017, -46.24681]) female5.setEuler(-90, 0, 0) female5.state(1) male20 = vizfx.addAvatar('vcc_male.cfg') male20.setPosition([22.90181, 2.60017, -46.19674]) male20.setEuler(90, 0, 0) male20.state(1) male21 = vizfx.addAvatar('vcc_male2.cfg') male21.setPosition([52.47180, 2.60017, -46.11211]) male21.setEuler(-90, 0, 0) male21.state(1) female6 = vizfx.addAvatar('vcc_female.cfg') female6.setPosition([59.88219, 2.60017, -46.48273]) female6.setEuler(90, 0, 0) female6.state(1) female7 = vizfx.addAvatar('vcc_female.cfg') female7.setPosition([94.47379, 2.60017, -45.87137]) female7.setEuler(-90, 0, 0) female7.state(1) female8 = vizfx.addAvatar('vcc_female.cfg') female8.setPosition([101.72762, 2.60017, -46.35223]) female8.setEuler(90, 0, 0) female8.state(1) male21 = vizfx.addAvatar('vcc_male.cfg') male21.setPosition([-58.85641, 2.60000, -11.10135]) male21.setEuler([-180, 0, 0]) male21.state(1) male21 = vizfx.addAvatar('vcc_male2.cfg') male21.setPosition([-21.21277, 2.60000, -10.96846]) male21.setEuler(-180, 0, 0) male21.state(1) female8 = vizfx.addAvatar('vcc_female.cfg') female8.setPosition([-2.55035, 2.60000, -10.95346]) female8.setEuler(-180, 0, 0) female8.state(1) ### Shops ### Scene dynamic
def moveAvatars(): for a in avatars: walk = vizact.walkTo(random.choice(positions)) a.runAction(walk)
# Swap out sky with animated sky dome piazza.getChild('pz_skydome').remove() day = viz.add('sky_day.osgb') # Add avatar sitting on a bench male = viz.addAvatar('vcc_male2.cfg',pos=(-6.5,0,13.5),euler=(90,0,0)) male.state(6) # Create pigeon pigeon_root = viz.addGroup() pigeon_root.visible(False) pigeon = viz.addAvatar('pigeon.cfg',parent=pigeon_root) # Add idle animation random_walk = vizact.walkTo(pos=[vizact.randfloat(-0.5,0.5),0,vizact.randfloat(-0.5,0.5)]) random_animation = vizact.method.state(vizact.choice([1,3],vizact.RANDOM)) random_wait = vizact.waittime(vizact.randfloat(4.0,8.0)) pigeon_idle = vizact.sequence( random_walk, random_animation, random_wait, viz.FOREVER) pigeon.runAction(pigeon_idle) # Adding sound to pigeon hooting = pigeon.playsound('birds.wav',viz.LOOP) hooting.pause() # Create flash screen quad flash_quad = viz.addTexQuad(parent=viz.ORTHO) flash_quad.color(viz.WHITE) flash_quad.alignment(viz.ALIGN_LEFT_BOTTOM) flash_quad.drawOrder(-10) flash_quad.blendFunc(viz.GL_ONE,viz.GL_ONE)
def pigeonRun(e): runAction = vizact.walkTo([vizact.randfloat(2,4), 0, vizact.randfloat(3, 6)], 4) pigeon.runAction(runAction) pigeon.addAction(pigeon_idle)
shadow = vizshape.addQuad(parent=avatar,axis=vizshape.AXIS_Y) shadow.texture(shadow_texture) shadow.zoffset() avatarMove = [[-5.7,-5.2,300],[-5.7,6.5,270],[0,8,0],[5.7,6.5,70],[5.7,2.6,70],[5.7,1,130]] actions = [] RandomWait = vizact.waittime(vizact.randfloat(0,0)) for loc in avatarMove: if loc == avatarMove[2]: RandomWait = vizact.waittime(vizact.randfloat(5,10)) else: RandomWait = vizact.waittime(vizact.randfloat(0,0)) actions.append(vizact.method.playsound('footsteps.wav',viz.LOOP)) actions.append(vizact.walkTo([loc[0],0,loc[1]],turnSpeed=250.0)) actions.append(vizact.method.playsound('footsteps.wav',viz.STOP)) actions.append(vizact.turn(loc[2],250.0)) actions.append(RandomWait) avatar.addAction(vizact.sequence(actions,viz.FOREVER)) avatar = viz.addAvatar('vcc_male.cfg',pos=[-5.7,-5.2,0.1]) avatar.state(1) #Create static drop shadow to avatar shadow_texture = viz.addTexture('shadow.png') shadow = vizshape.addQuad(parent=avatar,axis=vizshape.AXIS_Y) shadow.texture(shadow_texture) shadow.zoffset()
#Add crates marker for participant to walk to crate1 = viz.addChild('crate.osgb',pos=[-9.9,0.3,5.7],scale=[0.6,0.6,0.6]) crate2 = crate1.clone(pos=[-9.8,0.3,5.05],euler=[5,0,0],scale=[0.6,0.6,0.6]) crate3 = crate1.clone(pos=[-9.8,0.9,5.35],euler=[-5,0,0],scale=[0.6,0.6,0.6]) #Boolean variables to store trial results avoidSitting = True avoidStanding = True avoidDancing = True pigeonPositions=[[-6.9,0,7.2],[3.3,0,14.5],[0.8,0,16],[-2.3,0,14.7],[2.9,0,-1.6],[-0.7,0,-1.7]] for pos in pigeonPositions: pigeon = pigeon.copy(pos=pos) random_speed = vizact.method.setAnimationSpeed(0,vizact.randfloat(0.7,1.5)) random_walk = vizact.walkTo(pos=[vizact.randfloat(pos[0]-0.3,pos[0]+0.3),0,vizact.randfloat(pos[2]-0.5,pos[2]+0.5)]) random_animation = vizact.method.state(vizact.choice([1,3],vizact.RANDOM)) random_wait = vizact.waittime(vizact.randfloat(5.0,10.0)) pigeon_idle = vizact.sequence( random_speed, random_walk, random_animation, random_wait, viz.FOREVER) pigeon.runAction(pigeon_idle) #Add three avatars in different locations with different animations avatar1 = viz.addAvatar('vcc_male2.cfg',pos=[2.1,0, 21.4],euler=[180,0,0],scale=[0.95,0.95,0.95]) avatar2 = avatar1.copy(pos=[-10.2,0,12],euler=[90,0,0]) avatar3 = avatar1.copy(pos=[1.5,0,5.6],euler=[180,0,0]) avatar1.state(6) avatar2.state(1) avatar3.state(5) #Create sensors for destinations plantSensor = vizproximity.Sensor(vizproximity.Box([4,5,5],center=[0,2.5,0]),source=plantMarker)
def addAvatarToWorld(info): person = vizfx.addAvatar(info.avatarFile, pos=info.startPosition, euler=info.euler) person.state(info.state) if info.coordinates != None: action = vizact.sequence([vizact.walkTo(c, walkSpeed=info.speed, turnSpeed=info.turnSpeed, walkAnim=info.state, turnInPlace=True) for c in info.coordinates], viz.FOREVER) person.runAction(action)
def moveAvatars() : for a in avatars: walk = vizact.walkTo(random.choice(positions)) a.runAction(walk)
def walkAvatars(): walk1 = vizact.walkTo([4.5, 0,-40]) vizact.ontimer2(0.5,0,female.addAction,walk1) walk2 = vizact.walkTo([3.5,0,-40]) male.addAction(walk2)
def femaleWalk(pos): female.state(3) walk = vizact.walkTo(pos) female.runAction(walk)
shadow.texture(shadow_texture) shadow.zoffset() avatarMove = [[-5.7, -5.2, 300], [-5.7, 6.5, 270], [0, 8, 0], [5.7, 6.5, 70], [5.7, 2.6, 70], [5.7, 1, 130]] actions = [] RandomWait = vizact.waittime(vizact.randfloat(0, 0)) for loc in avatarMove: if loc == avatarMove[2]: RandomWait = vizact.waittime(vizact.randfloat(5, 10)) else: RandomWait = vizact.waittime(vizact.randfloat(0, 0)) actions.append(vizact.method.playsound('footsteps.wav', viz.LOOP)) actions.append(vizact.walkTo([loc[0], 0, loc[1]], turnSpeed=250.0)) actions.append(vizact.method.playsound('footsteps.wav', viz.STOP)) actions.append(vizact.turn(loc[2], 250.0)) actions.append(RandomWait) avatar.addAction(vizact.sequence(actions, viz.FOREVER)) avatar = viz.addAvatar('vcc_male.cfg', pos=[-5.7, -5.2, 0.1]) avatar.state(1) #Create static drop shadow to avatar shadow_texture = viz.addTexture('shadow.png') shadow = vizshape.addQuad(parent=avatar, axis=vizshape.AXIS_Y) shadow.texture(shadow_texture) shadow.zoffset() avatarMove = [[5.7, -6.2, 300], [5.7, 6.5, 270], [0, 7, 0], [-5.7, 6.5, 70],
pigeon.runAction(pigeon_idle) #pigeonSensor = vizproximity.Sensor(vizproximity.Sphere(5, center=PIGEON_POSITION), source=pigeon) pigeonSensor = vizproximity.Sensor(vizproximity.Box([1.5,3,1.5]),source=pigeon) target = vizproximity.Target(male) manager = vizproximity.Manager() manager.addSensor(pigeonSensor) manager.addTarget(target) def pigeonRun(e): runAction = vizact.walkTo([vizact.randfloat(2,4), 0, vizact.randfloat(3, 6)], 4) pigeon.runAction(runAction) pigeon.addAction(pigeon_idle) walkToFaceFemale = vizact.walkTo([5,0,9], walkSpeed=4) walk = vizact.walkTo([6.5,0,8.5], walkSpeed=3) turn = vizact.turn(-90, 400) walkNextToFemale = vizact.sequence(walk, turn) def walkToFemale(): yield viztask.addAction(male, walkToFaceFemale) female.state(29) male.lookAt(FEMALE_POSITION) male.runAction(vizact.animation(35)) yield viztask.waitTime(4) yield viztask.runAction(male, walkNextToFemale) female.state(3) male.runAction(vizact.animation(3)) def startWalking():
manager1 = vizproximity.Manager() manager2 = vizproximity.Manager() manager1.addSensor(pigeonSensor) manager2.addSensor(maleSensor) manager2.addTarget(femaleTarget) manager1.addTarget(maleTarget) #Toggle debug shapes with keypress vizact.onkeydown('d',manager1.setDebug,viz.TOGGLE) def interaction(e): if e.sensor == maleSensor: female.addAction(vizact.animation(2)) male.addAction(vizact.animation(3)) else: male.addAction(vizact.animation(4)) pigeon.state(3) #pigeon.addAction(vizact.animation(3)) manager2.onEnter(None, interaction) manager1.onEnter(None, interaction) walk_over_to_male = vizact.walkTo([-.5,0,-2.2]) vizact.onkeydown('f', female.runAction, walk_over_to_male) walk_over_to_pigeon = vizact.walkTo([-3.2,0,3.4]) vizact.onkeydown('m', male.runAction, walk_over_to_pigeon)
def femaleWalk(): act = vizact.walkTo([-3,0,0]) female.runAction(act)
#######################sound############################ #Adding sound sound = viz.addAudio('radio2.mp3') #sound.loop(viz.ON) sound.volume(2) sound.setTime(3) sound.setRate(1) sound.play() ######################################################## speech = vizact.speak('jfk.wav') run11 = vizact.walkTo([-45, 2.40, 30.5], verb='run') run21 = vizact.walkTo([-45, 2.40, 30.5], verb='run') run31 = vizact.walkTo([-45, 2.40, 30.5], verb='run') run41 = vizact.walkTo([-42, 2.40, 30.5], verb='run') run12 = vizact.walkTo([-48, 0, 29], verb='run') run22 = vizact.walkTo([-49, 0, 28], verb='run') run32 = vizact.walkTo([-49, 0, 27], verb='run') run42 = vizact.walkTo([-42, 0, 30], verb='run') run13 = vizact.walkTo([-45, 0, -59], verb='run') run23 = vizact.walkTo([-46, 0, -59], verb='run') run33 = vizact.walkTo([-47, 0, -59], verb='run') run43 = vizact.walkTo([-42, 0, -59], verb='run') run5 = vizact.walkTo([-155, 0, -20], verb='run')
# load guitar model guitar = viz.addChild('resources/guitar.osgb') # load the avatars and set starting position manuel = viz.addAvatar('vcc_male.cfg') manuel.setPosition(-0.3, 0, -2.82) luigi = viz.addChild('vcc_male2.cfg') luigi.setPosition([-2, 0, 6]) # link the guitar to the back model back = manuel.getBone('Bip01 Neck') link = viz.link(back, guitar) # manuel walking in, closing the door, and 'talking' to the user manuel.addAction(vizact.walkTo([-0.48, 0, -1.15234], walkSpeed=2.0)) manuel.addAction(vizact.turn(160, 220)) manuel.addAction(vizact.animation(15, speed=2.2)) manuel.addAction(vizact.turn(0, 220)) manuel.addAction(vizact.walkTo([-0.5, 0.0, 2], walkSpeed=1.2)) manuel.addAction(vizact.turn(30, 220)) manuel.addAction(vizact.animation(14, speed=2)) manuel.addAction(vizact.animation(14, speed=2)) manuel.addAction(vizact.turn(0, 220)) manuel.addAction(vizact.walkTo([-2, -0.00000, 6.02116], walkSpeed=2)) manuel.addAction(vizact.animation(3, speed=0.7)) manuel.addAction(vizact.turn(160, 220)) manuel.addAction(vizact.walkTo([-0.5, 0.0, 2], walkSpeed=2)) # handling actions of luigi
def spawnMan(): loc = randExclude(-7, 7, -5, 5, 3) yield viztask.addAction(spawnedMan, vizact.walkTo(woman.getPosition(), walkSpeed=10)) print loc spawnedMan.setPosition(loc) spawnedMan.lookAt(woman.getPosition())