PDA

View Full Version : Avatar animation


Joran
08-17-2007, 06:09 AM
Hello,

I am having some big problems with avatar animations. So here an example of something I can not get to work. I want an avatar, to fall dead, lay down for 2 seconds and then stand up again. Here my attempt:

import viz

viz.go()

man = viz.add('male.cfg')

def onKeyUp(key):
if key == ' ':
man.addAction(vizact.animation(7, freeze = True))
man.addAction(vizact.waittime(2))
man.addAction(vizact.animation(1))

viz.callback(viz.KEYUP_EVENT,onKeyUp)


And this doesn't work at all. How should I do it?

Greetings, Joran.

farshizzo
08-17-2007, 09:44 AM
Hi,

The following code should do what you want using the viztask module:import viz
viz.go()

male = viz.add('male.cfg',pos=(0,0,6),euler=(180,0,0))
male.state(1)

import viztask

def execute():
while True:

yield viztask.waitKeyDown(' ')

#Execute animation with no delay out
male.execute(7,delay_out=0.0)

#Wait for animation to complete
yield viztask.waitAnimationEnd(male,7)

#Set animation state with no delay
male.state(8,delay=0.0)

#Restore standing pose after 1 second
yield viztask.waitTime(2)
male.state(1)

viztask.schedule( execute() )If you prefer using actions, then the following code should work as well:import viz
viz.go()

man = viz.add('male.cfg')

def onKeyUp(key):
if key == ' ':
man.addAction(vizact.animation(7,0,0))
#Place avatar in laying state
man.addAction(vizact.state_node(8,0.0))
man.addAction(vizact.waittime(2))
#Place avatar in standing state
man.addAction(vizact.state_node(1))

viz.callback(viz.KEYUP_EVENT,onKeyUp)