|
#1
|
|||
|
|||
walkto plays no animation...
Hi,
Could someone help? Code:
male.act(vizact.walkto([3,0,8], 10.5, 90, walkAnim=male.getAnimationID('male_walk.cax'))) Code:
male.act(vizact.walkto([3,0,8], 10.5, 90, 2)) Kind Regards, Iwan |
#2
|
|||
|
|||
It's working...
Wait... It's working now?!?!?!
Kind Regards, Iwan |
#3
|
|||
|
|||
It's not working...?
I pasted my code here. The guy is supposedly running around making a big circle, but he only stretches his arms while sliding around.
Code:
import viz import math iwan = [] for i in range(20): n = [math.sin(i)*1, 0, math.cos(i)+1] iwan.append(n) print iwan male = viz.add('male.cfg') male.idlepose(12) #Use animation 12 as the idle pose for each in iwan: print "male.act(vizact.walkto(",each,"))" male.addAction(vizact.walkto(each, 1.5, 90, 2)) # 2=walking anim if __name__ == "__main__": viz.go() Thank you very much. |
#4
|
|||
|
|||
The vizact.walkto command does not accept lists for the position. This will be fixed in a future release. For now you must use the following code instead:
Code:
vizact.walkto(each[0],each[1],each[2], walkSpeed=1.5, turnSpeed=90, walkAnim=2) |
#5
|
|||
|
|||
Thank you...
Hi,
Thank you. Why didn't I try that before? I will keep in mind that "vizact.walk" does not accept lists to specify position. Have a great day. |
#6
|
|||
|
|||
walkTo ... does not reach final destination....
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 |
#7
|
|||
|
|||
Can you post a sample script that reproduces the problem? It's difficult to tell what the problem is by looking at the screenshot.
|
#8
|
|||
|
|||
Action sequence code.....
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 |
#9
|
|||
|
|||
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?
|
#10
|
|||
|
|||
Additional file...
Please find additional file posted... I do apologise for not attaching this file earlier.
Kind Regards, Iwan |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Animation Tracks.... | k_iwan | Vizard | 2 | 03-26-2007 05:52 PM |
Jumpy animation | Elizabeth S | Vizard | 1 | 11-08-2006 02:11 PM |
animation sequence | pkhoosh | Vizard | 2 | 01-23-2006 08:03 AM |
avatar animation problems | jrodman | Vizard | 1 | 01-18-2006 09:12 AM |
Making an avatar speak while performing an idling animation | vr_boyko | Vizard | 1 | 10-05-2004 04:23 PM |