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 moveBackwards( node, seat ): global seatQueue spin = vizact.turn(145) moveHead = vizact.headto(25,0,0, bone='Bip01 Head') move = vizact.moveTo(pos=seat,speed=0.75,interpolate=vizact.easeInOut) slide = vizact.animation(66) shuffle = vizact.parallel(spin,moveHead,move,slide) shuffleBack = vizact.sequence(shuffle) node.add(shuffleBack) yield viztask.waitActionEnd(node,shuffleBack) node.setPosition(seat)
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 moveBackToFirstSeat( node, seatQueue ): yield viztask.waitTime(1) spin = vizact.turn(145) moveHead = vizact.headto(25,0,0, bone='Bip01 Head') moveFirst = vizact.moveTo(pos=seatQueue[2],speed=0.75,interpolate=vizact.easeInOut) moveSecond = vizact.moveTo(pos=seatQueue[1],speed=0.75,interpolate=vizact.easeInOut) moveThird = vizact.moveTo(pos=seatQueue[0],speed=0.75,interpolate=vizact.easeInOut) slide = vizact.animation(66) slideBackOnce = vizact.parallel(spin,moveHead,moveFirst,slide) slideBackTwice = vizact.parallel(spin,moveHead,moveSecond,slide) slideBackThrice = vizact.parallel(spin,moveHead,moveThird,slide) shuffleToFirst = vizact.sequence(slideBackOnce,slideBackTwice,slideBackThrice) node.add(shuffleToFirst) yield viztask.waitActionEnd(node,shuffleToFirst) node.setPosition(seatQueue[0])
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()
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],[-5.7,2.6,70],[-5.7,0,130]] actions = [] RandomWait = vizact.waittime(vizact.randfloat(0,0))
[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], [-5.7, 2.6, 70], [-5.7, 0, 130]] actions = [] RandomWait = vizact.waittime(vizact.randfloat(0, 0))
#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(): global startedWalking if (startedWalking):
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 luigiActions():