![]() |
#8
|
|||
|
|||
![]()
I have a little problem that I have been stuck on for quite some time now. It is related to using several animation paths.
My trial function does the following: An animation is triggered right at the beginning, which takes the viewpoint through a short maze, according to the control points of the patheMaze1 animation. The viewpoint then stops at a position in front of two doors. Here one of two arrow keys must be pressed. This then triggers one of two possible animation paths (either going through the left or through the right door). Then all of this should repeat 4 times. The problem is that I tried working with resetting the animation paths, linkin and unlinking the paths and the viewpoint and resetting the viewpoints at various locations in the code. Nothing seems to work. I now have a new function that gives the coordinates of the animation path and the viewpoint (which should be linked) every 2 sec in order to be better able to understand the location coordinates. The code I have now (at the bottom) gives these following coordinates. NEW TRIAL View : [0.0, 1.399999976158142, -8.0] Maze1 : [-6.390899658203125, 1.399999976158142, -8.0] View : [0.0, 1.399999976158142, -7.971726894378662] Maze1 : [0.0, 1.399999976158142, -7.971726894378662] View : [0.0, 1.399999976158142, 5.0] Maze1 : [0.0, 1.399999976158142, 5.0] LEFT DOOR View : [-0.5865119695663452, 1.399999976158142, 7.255815505981445] Maze1 : [0.0, 1.399999976158142, 5.0] NEW TRIAL View : [0.0, 1.399999976158142, -8.0] Maze1 : [-6.400000095367432, 1.399999976158142, -8.0] View : [-1.8042783737182617, 1.399999976158142, -8.0] Maze1 : [-1.8042783737182617, 1.399999976158142, -8.0] View : [0.0, 1.399999976158142, 1.3455696105957031] Maze1 : [0.0, 1.399999976158142, 1.3455696105957031] View : [0.0, 1.399999976158142, 4.923357009887695] Maze1 : [0.0, 1.399999976158142, 5.0] LEFT DOOR View : [-1.2999999523162842, 1.399999976158142, 10.0] Maze1 : [0.0, 1.399999976158142, 5.0] NEW TRIAL View : [0.0, 1.399999976158142, -8.0] Maze1 : [-6.400000095367432, 1.399999976158142, -8.0] View : [-1.6976442337036133, 1.399999976158142, -8.0] Maze1 : [-1.6976442337036133, 1.399999976158142, -8.0] View : [0.0, 1.399999976158142, 1.5620803833007812] Maze1 : [0.0, 1.399999976158142, 1.5620803833007812] LEFT DOOR View : [-1.2999999523162842, 1.399999976158142, 10.0] Maze1 : [0.0, 1.399999976158142, 5.0] NEW TRIAL View : [0.0, 1.399999976158142, -8.0] Maze1 : [-6.400000095367432, 1.399999976158142, -8.0] View : [-4.900414943695068, 1.399999976158142, -8.0] Maze1 : [-4.900414943695068, 1.399999976158142, -8.0] View : [0.0, 1.399999976158142, -4.9427947998046875] Maze1 : [0.0, 1.399999976158142, -4.9427947998046875] View : [0.0, 1.399999976158142, 4.9235992431640625] Maze1 : [0.0, 1.399999976158142, 5.0] View : [0.0, 1.399999976158142, 4.9235992431640625] Maze1 : [0.0, 1.399999976158142, 5.0] QUESTION: I have highlighted in red, whenever the maze animation path and the viewpoint are not coinciding. WHY COULD THIS BE? I would really appreciate your help, because apart from the animation path basics, I have found no other online resources to understand how several animation paths may interact/ disturb each other and all my efforts so far of trying to come up with combinations and move pieces of code around, have not been successful ![]() ![]() Thank you very much for any kind help or pointers! Code:
import viz #Needed to generate a world. import viztask #Needed to control the experiment structure. import vizact viz.mouse.setVisible(viz.OFF) #Stops the mouse appearing on the screen. viz.mouse.setOverride(viz.ON) #Stops Vizard navigation using the mouse. viz.clearcolor(viz.BLACK) viz.go() #Add a sky with an environment map. env = viz.add(viz.ENVIRONMENT_MAP,'sky.jpg') dome = viz.add('skydome.dlc') dome.texture(env) #Load a maze and make it invisible maze1 = viz.add('Objects/Maze_1.dae') maze1.visible(viz.OFF) #Set the start position: startPos = [-6.4, 1.4, -8] #Parameters for the viewpoint view = viz.MainView view.setPosition(startPos) view.eyeheight(1.4) view.collision(viz.ON) viz.collisionbuffer(0.8) #Link link = None ##Animation paths pathMaze1 = viz.addAnimationPath() pathMaze1.addControlPoint(2, pos=startPos,euler=(0,0,0)) pathMaze1.addControlPoint(4, pos=startPos,euler=(90,0,0)) pathMaze1.addControlPoint(6, pos=(0,1.4,-8),euler=(0,0,0)) pathMaze1.addControlPoint(8, pos=(0,1.4,5),euler=(0,0,0)) pathMaze1Duration = pathMaze1.getDuration() pathDoorLeft = viz.addAnimationPath() pathDoorLeft.addControlPoint(0, pos=(0,1.4,5),euler=(0,0,0)) pathDoorLeft.addControlPoint(1, pos=(0,1.4,5),euler=(-10,0,0)) pathDoorLeft.addControlPoint(2, pos=(-1.3,1.4,10),euler=(-10,0,0)) pathDoorLeftDuration = pathDoorLeft.getDuration() pathDoorRight = viz.addAnimationPath() pathDoorRight.addControlPoint(0, pos=(0,1.4,5),euler=(0,0,0)) pathDoorRight.addControlPoint(1, pos=(0,1.4,5),euler=(10,0,0)) pathDoorRight.addControlPoint(2, pos=(1.3,1.4,10),euler=(10,0,0)) pathDoorRightDuration = pathDoorRight.getDuration() def mazeTrial(): global link, view, pathMaze1, pathDoorLeft, pathDoorRight, startPos print 'NEW TRIAL' maze1.visible(viz.ON) pathMaze1.reset() link = viz.link(pathMaze1, view) view.reset(viz.HEAD_POS| viz.HEAD_ORI) view.setPosition(startPos) pathMaze1.play() yield viztask.waitTime(pathMaze1Duration) link.remove() yield viztask.waitKeyDown([viz.KEY_LEFT,viz.KEY_RIGHT]) if viz.key.isDown(viz.KEY_LEFT): print "LEFT DOOR" link = viz.link(pathDoorLeft,view) pathDoorLeft.play() yield viztask.waitTime(pathDoorLeftDuration) pathDoorLeft.reset() link.remove() elif viz.key.isDown(viz.KEY_RIGHT): print "RIGHT DOOR" link = viz.link(pathDoorRight,view) pathDoorRight.play() yield viztask.waitTime(pathDoorRightDuration) pathDoorRight.reset() link.remove() # Loop trial 4 times def masterFunction(): for x in range(4): yield mazeTrial() #Schedule & trigger Loop viztask.schedule(masterFunction()) # For control purposes, prints position of View and Maze every 2 sec def Print_view_pos(): global view, pathMaze1 print "View :", view.getPosition() print "Maze1 :", pathMaze1.getPosition() vizact.ontimer(2,Print_view_pos) |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
problem with path animation | jelly | Vizard | 5 | 04-20-2016 06:15 AM |
Road Animation Path | vserchi | Vizard | 4 | 11-12-2015 09:29 AM |
Problems with interaction of vizact.turn and animation path | Enlil | Vizard | 3 | 11-24-2008 04:23 PM |
speed on animation path | whj | Vizard | 8 | 11-17-2008 07:41 PM |
another bezier animation problem | masaki | Vizard | 1 | 01-24-2008 02:29 PM |