WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #8  
Old 04-26-2016, 10:45 AM
jelly jelly is offline
Member
 
Join Date: Feb 2016
Posts: 38
Unhappy problem resetting an animation path

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)
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
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


All times are GMT -7. The time now is 01:52 PM.


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