Here's the challenge: create a swarm of Baja race cars racing across undulating terrain. Sounds difficult, right? Well, yes, if you individually keyframed all the cars. But if you use a good particle engine to develop the motion of your race cars procedurally, you can save time and experiment more without destructively editing keys. For this tutorial I'm using Kinetix 3D Studio Max2 with an advanced particle engine called Outburst, by Animation Science. Animation Science wrote the Particle module that ships with Softimage Extreme and now they have ported it to 3D Studio MAX.
![]()
![]()
![]()
![]()
![]()
![]()
![]()
DUNES
I started by creating some mellow rolling hills for the cars to scoot around on. This was accomplished by taking a segmented grid and displacing the sand dunes with the displace modifier. Once I got the right look and feel, not too steep, not too shallow, I collapsed the modifier stack on the object. This really helps the overhead on the system and will speed things up a bit later when we use it as an obstacle.SOURCE
Next I created an Outburst system in the scene to set up my particle system. I used a linear source so that the particles emitted inline abreast instead of from a single location. By setting the emission rate to 0.2 we should get a controllable amount of particles.PARTICLES
So we get plenty of time to experiment with the particle motion I went ahead and changed the scene time configuration to 300 frames. Now we want the particles to remain in the scene for the duration of the animation, so we set the lifetime to 300 as well. Because we are simulating powered vehicles we don't need to bother with drag settings, but to get some variation in the speed of the vehicles I set the velocity noise to 10. When we test the motion of the particles I find it easier to use crosses as the viewpoint representation. This is good because they aren't resource hogs and they are the only ones that will scale properly in the viewport. Lastly, we want the cars to travel in a direction relative to their velocity, so particle alignment needs to be set to particle velocity.
COLLISIONS
![]()
To make the particles interact with the terrain we need to set it up as an obstacle in Outburst. Select the terrain as the obstacle geometry and set the properties to bounce. Now if the particles collide with the terrain they will be reflected back. But we don't want them to bounce around like jumping beans, so if we set the damping normal to 0 they'll pretty much glance off the surface of the obstacle.FORCES
If you played the animation at this point you'll get this group of particles moving along their merry way without anything keeping them on the ground. Here's where we add gravity to the scene. I applied a modest 50 gravity setting in the system rollout. But this doesn't do the trick completely. This is where I added a custom field that presses hard against the particles in the Z axis. Custom fields affect individual particle types by pushing them along a vector. The custom field has to be large enough to encompass the entire terrain mesh with the strength set to 1 and the Z axis setting set to 180. When you set up a custom field you also need to define how much it affects each particle type in the scene. I went back to the bottom of the particle rollout and set the custom forces strength to 100.GEOMETRY
Now if you play the animation you'll get a steady flow of particles rolling along the surface of the terrain. Notice how they decelerate as they climb uphill and accelerate as they take off downhill. Some will get bogged down in the troughs while others will be launching off the tops of the dunes. This is the best time to play with all of the settings and refine your particle motion. Once you have the motion down you can just replace the particles with instanced geometry in your scene. For this example I made a cheesy dune buggy out of a box and some cylinders and then grouped all of the geometry just in case I needed to make corrections. In the particle rollout you'll see under render type that you can assign geometry. Click the G button to get the geometry substitution rollout and assign your dune buggy or whatever object as the geometry. You'll notice several parameters within this dialog box. Animation synch settings let you offset animation parameters on the object, like for a flock of birds so that they don't all flap their wings in unison. One convenient feature is replace in viewports, which lets you jump between viewing particles or viewing the actual objects displayed in your viewports.IN CLOSING
Procedural animation is a powerful tool that is quickly catching on in the animation industry with high-end packages like Alias/Wavefront Dynamation and Side Effects Prisms and Houdini leading the way.
By Brandon Davis - brandon@particlefx.com - www.particlefx.com.