WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   animation path (https://forum.worldviz.com/showthread.php?t=1910)

nlfrnassimi 03-15-2009 06:47 PM

animation path
 
Hi every one,

I'm doing an application to teach children cross road. I'm trying to get the codes that I need. I have imported a character and placed a camera beside the character to act as first point of view, then I have assigned mouse movement to look around and arrow keys to move the character. I want to press a certain key and animate my character(moving from a point to another), can anyone please tell me how to do it. I have done it before but now combining it with this code it doesn't work.

Here is the code :

Code:

import viz

viz.go()

viz.clearcolor(0.5,0.5,1)
 
MOVE_SPEED = 5 # how fast the viewpoint move
TURN_SPEED = 60 # how fast the view point rotate

viz.add('tut_ground.wrl')
char = viz.add('vcc_male.cfg')
char.state(1)

view = viz.MainView
view.setPosition(0,1.7,0)
car = viz.add('mini.osgx')
car.translate(5,0,5)

def mytimer(num):
        if viz.iskeydown(viz.KEY_DOWN):
                view.move(0,0,-MOVE_SPEED*viz.elapsed(),viz.BODY_ORI)
        elif viz.iskeydown(viz.KEY_UP):
                view.move(0,0,MOVE_SPEED*viz.elapsed(),viz.BODY_ORI)
        elif viz.iskeydown(viz.KEY_RIGHT):
                view.rotate(0,1,0,TURN_SPEED*viz.elapsed(),viz.BODY_ORI,viz.REL_PARENT)
        elif viz.iskeydown(viz.KEY_LEFT):
                view.rotate(0,1,0,-TURN_SPEED*viz.elapsed(),viz.BODY_ORI,viz.REL_PARENT)
        updatechar()               
viz.callback(viz.TIMER_EVENT,mytimer)

viz.starttimer(0,0.01,viz.FOREVER)

def updatechar():

#translate the character to the position of the viewpoint
#  char.translate(view.get(viz.HEAD_POS))
#rotate the character to the same orientation as the BODY_ORI.
  char.rotate(view.get(viz.BODY_AXISANGLE))
#move the character beside the view.
  char.translate(1,0,0,viz.REL_LOCAL) #viz.REL_LOCAL. This tells vizard to translate the car relative to its local coordinate system (i.e. relative to the direction the car is facing).


def mousemove(e):
        #gets the Euler angle rotation of the HEAD_ORI
        euler = view.get(viz.HEAD_EULER)
        #adding the x movement of the mouse to the current yaw(we multiply the x movement by 0.1.  This is to decrease the sensitivity of the movement)
        euler[0] += e.dx*0.1
        #adds the y movement of the mouse to the current pitch. We need to negate the value since a positive pitch value means rotating down, but moving the mouse down means having a negative y movement.
        euler[1] += -e.dy*0.1
        #clamping the pitch value between -90 and 90, since we don't want to let the user look down or up so much that they end up upside down.
        euler[1] = viz.clamp(euler[1],-90.0,90.0)
        #rotating the HEAD_ORI of the viewpoint by the new euler angle rotation
        view.rotate(euler,viz.HEAD_ORI)
       
viz.callback(viz.MOUSE_MOVE_EVENT,mousemove)
#Turn off built in  mouse
viz.setMouseOverride()
#Hide cursor
viz.cursor(viz.OFF)

def mousedown(button):
        if button == viz.MOUSEBUTTON_LEFT:
                view.reset(viz.HEAD_ORI)

        elif button == viz.MOUSEBUTTON_RIGHT:
                view.reset(viz.BODY_ORI|viz.HEAD_POS)
        updatechar()

viz.callback(viz.MOUSEBUTTON_EVENT,mousedown)


Jeff 03-16-2009 11:13 AM

This will start an avatar walking when the spacebar is pressed.

Code:

import viz
viz.go()

male = viz.add('vcc_male.cfg')
walk = vizact.walkTo([0,0,5])
vizact.onkeydown(' ', male.addAction, walk)


nlfrnassimi 03-16-2009 10:51 PM

Thanks but this is not what I want. I want the same character (char) that I have attached a camera to it to be animated. The above code doesn't work.


All times are GMT -7. The time now is 04:10 PM.

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