![]() |
|
|
|
#1
|
|||
|
|||
|
Hi,
I used for loops to read geometries that define the walkTo's coordinates. Vizard read them okay. Please see the terminal window. However, Vizard did not finish the movement properly. The ducks are 1 coordinate behind the final destinations. I did try to type in the last command to force the duck to go to the final destination, but it didn't do anything. The coordinates are all in order, I did not missed a single one. Could someone point out where did I (possibly) go wrong? Kind Regards, Iwan |
|
#2
|
|||
|
|||
|
Can you post a sample script that reproduces the problem? It's difficult to tell what the problem is by looking at the screenshot.
|
|
#3
|
|||
|
|||
|
Here is the module that load the objects file and set-up the movements...
Code:
import viz
import vizact
#Ant 7(normal), 8 (stilts)and 9(stumps) are for scene 2
ant7 = viz.add('duck.cfg')
ant7.setScale(0.02,0.02,0.02)
ant7.idlepose(2)
ant7.disable(viz.RENDERING)
ant7.setPosition([1.000, 0.00, 0.000])
ant7.setEuler([90,0,0])
ant8 = viz.add('duck.cfg')
ant8.setScale(0.02,0.02,0.02)
ant8.idlepose(2)
ant8.disable(viz.RENDERING)
ant8.setPosition([1, 0.0, -0.200])
ant8.setEuler([90,0,0])
ant9 = viz.add('duck.cfg')
ant9.setScale(0.02,0.02,0.02)
ant9.idlepose(2)
ant9.disable(viz.RENDERING)
ant9.setPosition([1.000, 0.0, -0.4])
ant9.setEuler([90,0,0])
#Loading .OSG files that contains movement points of the ants
movementPaths = viz.add('antMovementPoints.osg')
#Setting up foraging path of normal condition in scene 4
CP_ACTOR_CONTROL = []
CP_COUNT_ACTOR_CONTROL = 45
CONTROLPOINT_ACTOR_CONTROL_PREFEX = 'control.path.' #name of boxes = layera1 ... layera17
CONTROLPOINT_ACTOR_CONTROL_SUFFEX = '' #use '_Cube' for .obj and '' for.osg
for cpNumber in range( 0,CP_COUNT_ACTOR_CONTROL):
nodename = '%s%03d%s' % (CONTROLPOINT_ACTOR_CONTROL_PREFEX, cpNumber,CONTROLPOINT_ACTOR_CONTROL_SUFFEX)
pointNode = movementPaths.getChild(nodename)
nodebox = pointNode.getBoundingBox()
cntr = [nodebox.center[0],-nodebox.center[2],nodebox.center[1]] #this is the xyz setting ONLY for .OSG file
print 'control.path.',cpNumber, cntr
CP_ACTOR_CONTROL.append(cntr)
#Setting up foraging path of stilts condition in scene 4
CP_ACTOR_STILTS = []
CP_COUNT_ACTOR_STILTS = 45
CONTROLPOINT_ACTOR_STILTS_PREFEX = 'stilts.path.' #name of boxes = layera1 ... layera17
CONTROLPOINT_ACTOR_STILTS_SUFFEX = '' #use '_Cube' for .obj and '' for.osg
for cpNumber in range( 0,CP_COUNT_ACTOR_STILTS):
nodename = '%s%03d%s' % (CONTROLPOINT_ACTOR_STILTS_PREFEX, cpNumber,CONTROLPOINT_ACTOR_STILTS_SUFFEX)
pointNode = movementPaths.getChild(nodename)
nodebox = pointNode.getBoundingBox()
cntr = [nodebox.center[0],-nodebox.center[2],nodebox.center[1]] #this is the xyz setting ONLY for .OSG file
print 'stilts.path.',cpNumber, cntr
CP_ACTOR_STILTS.append(cntr)
#Setting up foraging path of stumps condition in scene 4
CP_ACTOR_STUMPS = []
CP_COUNT_ACTOR_STUMPS = 45
CONTROLPOINT_ACTOR_STUMPS_PREFEX = 'stumps.path.' #name of boxes = layera1 ... layera17
CONTROLPOINT_ACTOR_STUMPS_SUFFEX = '' #use '_Cube' for .obj and '' for.osg
for cpNumber in range( 0,CP_COUNT_ACTOR_STUMPS):
nodename = '%s%03d%s' % (CONTROLPOINT_ACTOR_STUMPS_PREFEX, cpNumber,CONTROLPOINT_ACTOR_STUMPS_SUFFEX)
pointNode = movementPaths.getChild(nodename)
nodebox = pointNode.getBoundingBox()
cntr = [nodebox.center[0],-nodebox.center[2],nodebox.center[1]] #this is the xyz setting ONLY for .OSG file
print 'stumps.path.',cpNumber, cntr
CP_ACTOR_STUMPS.append(cntr)
#Setting up homebound path of normal condition in scene 4
CP_ACTOR_CONTROL_RETURN = []
CP_COUNT_ACTOR_CONTROL_RETURN = 45
CONTROLPOINT_ACTOR_CONTROL_RETURN_PREFEX = 'control.Rpath.' #name of boxes = layera1 ... layera17
CONTROLPOINT_ACTOR_CONTROL_RETURN_SUFFEX = '' #use '_Cube' for .obj and '' for.osg
for cpNumber in range( 0,CP_COUNT_ACTOR_CONTROL_RETURN):
nodename = '%s%03d%s' % (CONTROLPOINT_ACTOR_CONTROL_RETURN_PREFEX, cpNumber,CONTROLPOINT_ACTOR_CONTROL_RETURN_SUFFEX)
pointNode = movementPaths.getChild(nodename)
nodebox = pointNode.getBoundingBox()
cntr = [nodebox.center[0],-nodebox.center[2],nodebox.center[1]] #this is the xyz setting ONLY for .OSG file
print 'control.Rpath.',cpNumber, cntr
CP_ACTOR_CONTROL_RETURN.append(cntr)
#Setting up homebound path of stilts condition in scene 4
CP_ACTOR_STILTS_RETURN = []
CP_COUNT_ACTOR_STILTS_RETURN = 58
CONTROLPOINT_ACTOR_STILTS_RETURN_PREFEX = 'stilts.Rpath.' #name of boxes = layera1 ... layera17
CONTROLPOINT_ACTOR_STILTS_RETURN_SUFFEX = '' #use '_Cube' for .obj and '' for.osg
for cpNumber in range( 0,CP_COUNT_ACTOR_STILTS_RETURN):
nodename = '%s%03d%s' % (CONTROLPOINT_ACTOR_STILTS_RETURN_PREFEX, cpNumber,CONTROLPOINT_ACTOR_STILTS_RETURN_SUFFEX)
pointNode = movementPaths.getChild(nodename)
nodebox = pointNode.getBoundingBox()
cntr = [nodebox.center[0],-nodebox.center[2],nodebox.center[1]] #this is the xyz setting ONLY for .OSG file
print 'stilts.Rpath.',cpNumber, cntr
CP_ACTOR_STILTS_RETURN.append(cntr)
#Setting up homebound path of stumps condition in scene 4
CP_ACTOR_STUMPS_RETURN = []
CP_COUNT_ACTOR_STUMPS_RETURN = 54
CONTROLPOINT_ACTOR_STUMPS_RETURN_PREFEX = 'stumps.Rpath.' #name of boxes = layera1 ... layera17
CONTROLPOINT_ACTOR_STUMPS_RETURN_SUFFEX = '' #use '_Cube' for .obj and '' for.osg
for cpNumber in range( 0,CP_COUNT_ACTOR_STUMPS_RETURN):
nodename = '%s%03d%s' % (CONTROLPOINT_ACTOR_STUMPS_RETURN_PREFEX, cpNumber,CONTROLPOINT_ACTOR_STUMPS_RETURN_SUFFEX)
pointNode = movementPaths.getChild(nodename)
nodebox = pointNode.getBoundingBox()
cntr = [nodebox.center[0],-nodebox.center[2],nodebox.center[1]] #this is the xyz setting ONLY for .OSG file
print 'stumps.Rpath.',cpNumber, cntr
CP_ACTOR_STUMPS_RETURN.append(cntr)
#Actors Activation####################################
def actorsScene4Enable():
ant7.enable(viz.RENDERING)
ant8.enable(viz.RENDERING)
ant9.enable(viz.RENDERING)
def controlAction():
for each in CP_ACTOR_CONTROL:
print "ant7.addAction(vizact.walkto(",each,"))"
ant7.addAction(vizact.walkto(each[0], each[1], each[2], 0.22, 720, 1))
def stiltsAction():
for each in CP_ACTOR_STILTS:
print "ant8.addAction(vizact.walkto(",each,"))"
ant8.addAction(vizact.walkto(each[0], each[1], each[2], 0.226, 720, 1))
def stumpsAction():
for each in CP_ACTOR_STUMPS:
print "ant9.addAction(vizact.walkto(",each,"))"
ant9.addAction(vizact.walkto(each[0], each[1], each[2], 0.225, 720, 1))
def controlReturn():
for each in CP_ACTOR_CONTROL_RETURN:
print "ant7.addAction(vizact.walkto(",each,"))"
ant7.addAction(vizact.walkto(each[0], each[1], each[2], 0.22, 720, 1))
def stiltsReturn():
count = 0
for each in CP_ACTOR_STILTS_RETURN:
count = count + 1
if count < 53:
print "ant8.addAction(vizact.walkto(",each,"))"
ant8.addAction(vizact.walkto(each[0], each[1], each[2], 0.226, 720, 1))
else:
print "ant8.addAction(vizact.walkto(",each,"))"
ant8.addAction(vizact.walkto(each[0], each[1], each[2], 0.10, 900, 1))
def stumpsReturn():
count = 0
for each in CP_ACTOR_STUMPS_RETURN:
count = count + 1
if count < 44:
print "ant9.addAction(vizact.walkto(",each,"))"
ant9.addAction(vizact.walkto(each[0], each[1], each[2], 0.224, 720, 1))
else:
print "ant9.addAction(vizact.walkto(",each,"))"
ant9.addAction(vizact.walkto(each[0], each[1], each[2], 0.10, 900, 1))
def pickupAnts():
ant7.addAction(vizact.move(0, 0.067,0,3))
ant8.addAction(vizact.move(0, 0.067,0,3))
ant9.addAction(vizact.move(0, 0.067,0,3))
def dropAnts():
ant7.addAction(vizact.move(0,-0.067,0,3))
ant8.addAction(vizact.move(0,-0.067,0,3))
ant9.addAction(vizact.move(0,-0.067,0,3))
def actorsScene4Disable():
ant7.enable(viz.RENDERING)
ant8.enable(viz.RENDERING)
ant9.enable(viz.RENDERING)
Any ideas, or insight would be appreciated. Thank you. Kind Regards, Iwan |
|
#4
|
|||
|
|||
|
I ran your script but nothing is happening. Your script loads the path points from a file called 'antMovementPoints.osg', which was not included. Can you post this file, or modify your script so that it does not depend on it?
|
|
#5
|
|||
|
|||
|
Additional file...
Please find additional file posted... I do apologise for not attaching this file earlier.
Kind Regards, Iwan |
|
#6
|
|||
|
|||
|
Your sample script still does not do anything. Can you post a fully working script that I can immediately run and witness the problem. For example, there is no viz.go() statement in your script. Even when I added the viz.go() the ducks never start any actions and I don't see any key commands to initiate them.
|
|
#7
|
|||
|
|||
|
Hi,
I do apologise for making you running around in a circle. I did not explain the script fully. I tried to post the full code, but this forum refused it, being too lengthy. What I posted previously was a module of a bigger simulation program. You need to add viz.go() as well at the end of the program. I do apologise.... T_T You may use these following these commands (in the terminal window) to make them run... controlAction() stiltsAction(), and stumpsAction() ..to make them run. I just found the solution. I increased the spacing between the movement points and it works just fine. Apparently, my spacing between points were too small. I Increased the spacing and it works really well. Thank you. Kind Regards, Iwan |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Animation Tracks.... | k_iwan | Vizard | 2 | 03-26-2007 06:52 PM |
| Jumpy animation | Elizabeth S | Vizard | 1 | 11-08-2006 03:11 PM |
| animation sequence | pkhoosh | Vizard | 2 | 01-23-2006 09:03 AM |
| avatar animation problems | jrodman | Vizard | 1 | 01-18-2006 10:12 AM |
| Making an avatar speak while performing an idling animation | vr_boyko | Vizard | 1 | 10-05-2004 05:23 PM |