View Single Post
  #4  
Old 05-12-2009, 12:04 PM
Gladsomebeast Gladsomebeast is offline
Member
 
Join Date: Mar 2005
Location: Isla Vizta, CA
Posts: 397
Dance party test

Here is an avatar stress test script. Sliders control the number of avatars and the update rate.

Code:
import viz
import vizact
viz.go()

MAX_AVATARS = 100
START_COUNT = 10

viz.MainView.setPosition([0, 1.5, -5])
viz.window.framerate(viz.NICE)

#dance beat
music = viz.add('carousel.wav',volume=0.15,loop=1)
music.play()

avatars = []
updateRate = 0
def addAvatar():
	a = viz.add('vcc_female.cfg')
	a.state(5)
	a.setPosition([.5*len(avatars), 0, 0])
	a.updaterate(updateRate)
	avatars.append(a)

for i in range(START_COUNT):
	addAvatar()
	
def removeAvatar():
	avatars.pop().remove()
	
	
import vizinfo
info = vizinfo.add('')
avatarSlider = info.add(viz.SLIDER, 'avatar count  '+str(START_COUNT))
updateRateSlider = info.add(viz.SLIDER, 'update rate 0   ')

def onAvatarSlider(pos):
	targetCount = int(pos * MAX_AVATARS)
	avatarSlider.label.message('avatar count: ' + str(targetCount))
	countDiff = targetCount - len(avatars)
	if countDiff > 0:
		#add avatars
		for i in range(countDiff):
			addAvatar()
	else:
		#subtract avatars
		for i in range(-countDiff):
			removeAvatar()
	
vizact.onslider(avatarSlider, onAvatarSlider)


def setUpdateRate(rate):
	global updateRate
	updateRate = rate * .2
	updateRateSlider.label.message('update rate' + str(round(updateRate, 3)))
	for a in avatars:
		a.updaterate(updateRate)
vizact.onslider(updateRateSlider, setUpdateRate)
__________________
Paul Elliott
WorldViz LLC
Reply With Quote