WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   How to make character animation sequence (https://forum.worldviz.com/showthread.php?t=2466)

wchoi 01-18-2010 09:37 PM

How to make character animation sequence
 
Dear admin

--------------------
code:
import viz

viz.go()

female = viz.add('vcc_female.cfg', pos = [0,0,5], euler = [90,0,0])
female.state(7) # jump forward
female.state(6) #fight
female.state(7) #jump forward
------------------------

We would like to make a sequence of character animation such as
jump forward, fight and jump forward.

But female.state(7) is returned at first frame after last frame of jump forward.
It is problem to make character animation.
So,

#female.execute(7, freeze = True)
can pause last frame. But, we can not connect smoothly next motion(female.state(6)).

We want to connect next motion at the position of last frame of first motion.

Please know me how to resolve this problem.

Best regards,
choi

Jeff 01-19-2010 10:02 AM

The state method has an optional delay argument to specify how long it will take to fully blend in the new state and blend out the old one to give a smooth transition. In the following, press the spacebar and after 2 seconds animation 5 will be blended in.
Code:

import viz
viz.go()

male = viz.add('vcc_male.cfg', pos = [0,0,5], euler = [180,0,0])
male.state(1)

vizact.onkeydown(' ', male.state,5,2)


wchoi 01-19-2010 05:37 PM

Dear Jeff

We made the code to connect the next motion at the position of last frame of first motion.

Please check the code and give me the comment.
---------------------
code:
---------------------
import viz

viz.go()

viz.clearcolor(viz.SKYBLUE)

#Position avatar in view
avatar = viz.add( 'vcc_male.cfg' )
avatar.setPosition( 0, 0, 20 )
avatar.setEuler( 90, 0, 0 )
#Create an action to fade out in 5 seconds
#fadeOut = vizact.fadeTo(0,time=5)

#Add the ground plane
viz.add('tut_ground.wrl')

#Create an action to move to location (0,1,0) at 5 m/s

#Add the fade out action to the node
#avatar.addAction(fadeOut)

#Add the moveTo action to the node
#It won't start until the fade out action completes
avatar.addAction( vizact.animation(7,2.685,0.1,0) )
moveTo = vizact.moveTo([1.8,0,20],speed=900000000000000000000000000000)
avatar.addAction(moveTo)
avatar.addAction( vizact.animation(6,2.685,0.1,0) )
#moveTo1 = vizact.moveTo([3.6,0,20],speed=90000000000000000000000000000)
#avatar.addAction(moveTo1)
avatar.addAction( vizact.animation(7,2.685,0.1,0) )
moveTo2 = vizact.moveTo([3.6,0,20],speed=90000000000000000000000000000)
avatar.addAction(moveTo2)
avatar.addAction( vizact.animation(10,2.685,0.1,0) )
#moveTo3 = vizact.moveTo([7.2,0,20],speed=90000000000000000000000000000)
#avatar.addAction(moveTo3)
-------------------------------------------------

Best regards,
choi

Jeff 01-22-2010 08:35 AM

If you want the avatar to move to a position immediately after an animation has completed you can leave out the speed argument in the vizact.moveTo command and it will work the same.


All times are GMT -7. The time now is 12:54 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC