[codesyntax lang=”python”]
#****************************************************** # Add a random walk animation to selected objects # - random_walk.py # - Give Selected Objects a simple random # animation # - By Mark Caldwell # - Version 0.1 # - 30th April 2006 # - Tested with Vue 5 Infinite 5.10 and Vue 6 Infinite Pre Release # # How to use in 4 easy steps # # 1. Download this file onto your computer # # 2. Edit the configuration variables below # # 3. Select Objects to be Replace in Vue Infinite # # 4. Then run script and wait for it to work # To run it go to Python -> Run Python Script # Then locate the file on your computer # #****************************************************** def RandomWalk (objprop,i,accxmin,accxmax,accymin,accymax,acczmin,acczmax): vx=random.uniform(accxmin,accxmax) vy=random.uniform(accymin,accymax) vz=random.uniform(acczmin,acczmax) vel=[vx,vy,vz] objprop=UpdateObj (objprop,i,vel) return objprop def UpdateObj (objprop,i,vel): objprop[i][0]=objprop[i][0]+vel[0] objprop[i][1]=objprop[i][1]+vel[1] objprop[i][2]=objprop[i][2]+vel[2] return objprop import random #---------------------------------------------- # Configuration: Set these to alter end result #---------------------------------------------- # Frames to generate start=0 # First frame of animation stop=101 # Last frame of animation if step divides into stop add 1 to get a frame on last step step=10 # Number of frames between key frames # Starting Velocity of objects velsxmin=-1 # Starting Minimum Velocity in the x direction velsxmax=1 # Starting Maximum Velocity in the x direction velsymin=-1 # Starting Maximum Velocity in the y direction velsymax=1 # Starting Maximum Velocity in the y direction velszmin=-1 # Starting Maximum Velocity in the z direction velszmax=1 # Starting Maximum Velocity in the z direction # Random Walk accelerations applied at a key frame accxmin=-20 # Minimum Acceleration the x direction accxmax=20 # Maximum Acceleration the x direction accymin=-20 # Minimum Acceleration the y direction accymax=20 # Maximum Acceleration the y direction acczmin=-20 # Minimum Acceleration the z direction acczmax=20 # Maximum Acceleration the z direction #---------------------------------------------- # Internal Variables Set Up: Don't alter these #---------------------------------------------- obj=[] objprop=[] ran = random.Random() countobj=CountSelectedObjects() #---------------------------------------------- # Find Selected Objects #---------------------------------------------- for i in range(0,countobj): object=GetSelectedObjectByIndex(i) obj.append(object) vx=random.uniform(velsxmin,velsxmax) vy=random.uniform(velsymin,velsymax) vz=random.uniform(velszmin,velszmax) v=[vx,vy,vz] objprop.append(v) #---------------------------------------------- # Add Plants #---------------------------------------------- for j in range(start+step,stop,step): SetCurrentFrame (j) for i in range(0,countobj): object=obj[i] objprop=RandomWalk (objprop,i,accxmin,accxmax,accymin,accymax,acczmin,acczmax) object.Move(objprop[i][0],objprop[i][1],objprop[i][2])
[/codesyntax]