View Single Post
  #2  
Old 09-23-2005, 09:23 AM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
Hi,

You are mixing the term action and animation together, when they are two separate concepts. Vizard comes with the ability to create high-level actions that can be added to any node object. Take a look in the documentation under the Actions section for more info. In addition to this, avatars have the low-level ability to play/blend built-in animations.

When you call <avatar>.act() it actually creates an action which will execute the animation and adds it to the avatar. For backwards compatiblity with older scripts, whenever an action is finished it stops the avatars current built-in animations. To get around this you could do the following:
Code:
#Create an action that will execute animation 5
anim5 = vizact.animation(5)

#Add the action to the avatar on action pool 1
avatar.add(anim5,1)

def onactionend(obj,action,pool):
    if action == anim5:
        print 'Avatar has finished executing action 5'
avatar.callback(viz.ACTION_END_EVENT,onactionend)
The object anim5 is an instance of viz.ActionData which will be returned to all callback functions.

Hope this explains everything for you. I know that the documentation on this stuff is very sparse, so let me know if something is not clear.
Reply With Quote