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)
# 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)
sofa.setScale([.030,.030,.030]) sofa.setPosition([-9.2,0.15,-0]) sofa.setEuler([-90,0,0]) #stand=viz.addChild('F:\Objects\max\obj1.ive') #stand.setScale([.00030,.00030,.00030]) #stand.setPosition([-0,0.15,-0]) #stand.setEuler([0,0,0]) shadow_texture = viz.addTexture('shadow.png') 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))
#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
# yc=(0,1,1,0,1,1) # zc=(1,1,0,1,0,0) for izx in range(group_num): tmp_radius = radius_sphere tmp_sphere_around = size_sphere_around if iii == center_num - 1: tmp_radius = larger_ball_sphere2 tmp_sphere_around = larger_ball_around rand_x = random.randint(-1, 1) rand_y = random.randint(-1, 1) rand_z = random.randint(-1, 1) x = vizact.randfloat(-10, 10) y = vizact.randfloat(-10, 10) z = vizact.randfloat(-10, 10) tmp_b_cen = (rand_x / tmp_sphere_around + 0.0001, rand_y / tmp_sphere_around + 0.0001, rand_z / tmp_sphere_around + 0.0001) speed_r = random.randint(80, 200) alpha_r = random.randint(30, 80) # for itrail in range(12): sphere = vizshape.addSphere(radius=tmp_radius, pos=tmp_b_cen, color=(120, 0, 0), slices=6, stacks=6)
sofa.setPosition([-9.2, 0.15, -0]) sofa.setEuler([-90, 0, 0]) #stand=viz.addChild('F:\Objects\max\obj1.ive') #stand.setScale([.00030,.00030,.00030]) #stand.setPosition([-0,0.15,-0]) #stand.setEuler([0,0,0]) shadow_texture = viz.addTexture('shadow.png') 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))
pigeon = viz.addAvatar('pigeon.cfg',parent=pigeon_root) pigeon.setScale(5,5,5) # Create a cat cat = viz.addAvatar('cat_tabby_high.cfg') cat.setPosition(2,0,5) cat.state(1) # 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) randomTime = vizact.randfloat(0.5,3.0) randomWait = vizact.waittime(randomTime) runAwayAction = vizact.sequence(randomWait, runAway(viz.MainView), viz.FOREVER) # 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.drawOrder(-10) flash_quad.blendFunc(viz.GL_ONE,viz.GL_ONE) flash_quad.visible(False) flash_quad.setBoxTransform(viz.BOX_ENABLED)
def pigeonRun(e): runAction = vizact.walkTo([vizact.randfloat(2,4), 0, vizact.randfloat(3, 6)], 4) pigeon.runAction(runAction) pigeon.addAction(pigeon_idle)
day = viz.add('sky_day.osgb') day.renderToBackground() male = viz.addAvatar('resources/CC2_m001_hipoly_A1_v2.cfg',pos=(-6.5,0,8),euler=(180,0,0)) male.state(3) startedWalking = False female = viz.addAvatar('resources/CC2_f020_hipoly_A1_v2.cfg',pos=FEMALE_POSITION,euler=(-90,0,0)) female.state(3) pigeon = viz.addAvatar('pigeon.cfg', pos=PIGEON_POSITION) pigeon.setScale(2,2,2) pigeon.setEuler(random.randint(120, 180)) randomAnimation = vizact.method.state(vizact.choice([1,3], vizact.RANDOM)) randomWait = vizact.waittime(vizact.randfloat(2,3)) pigeon_idle = vizact.sequence(randomAnimation, randomWait, viz.FOREVER) 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)
# Create pigeon pigeon = viz.addAvatar('pigeon.cfg') pigeon.visible(False) #Create white ball ball_root = viz.addGroup() ball_root.visible(True) ball = viz.add('white_ball.wrl', parent=ball_root) ball.setPosition([2.5,2,7]) ball.collideSphere(bounce = 1) # Add idle animation 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_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) flash_quad.visible(False) viz.link(viz.MainWindow.WindowSize,flash_quad,mask=viz.LINK_SCALE)