
For one of my personal projects, I needed a tracked anti-aircraft gun to menacingly roll over some terrain. The problem I had was figuring out how to get the tank's tracks to roll at all. After tinkering around for a few hours, I finally came up with a convincing way to make turning, rolling, terrain-hugging tank tracks.
The first step is to make the tracks themselves. I'm going to go ahead and assume you've already built the rest of the tank. [Editor's note: Check out tomahawk.welch.hu.edu, an FTP Internet site containing various objects.-JG] By that I mean you have the tank body that the guide wheels attach to and the guide wheels the tracks wrap around. You should also have a scene file set up with the guide wheels parented to the tank's hull and configured appropriately.
To figure out how long to make the tracks, you'll have to Measure (Options panel) in Modeler around the wheels that the track will wrap around. Set up your tank in Modeler the way it would be in Layout, with the guide wheels in place on the body. Then measure around the wheels. I took four measurements around my wheels (top, bottom and sides) and added them up to get 7.1 meters. This measurement will be the length of the track.
Select Box (Object panel) and hit (n) to bring up the Numeric options. Set the number of Segments on the Z-axis to 100. The Z-axis size should be set to the length of the track, which you got in the last step (in my case, 7.1 meters). The width should be slightly more than the width of your wheels, and the thickness just a centimeter or two.
You may want to add some extra details to the tracks. I did a low Bevel (b) (Multiply panel) off of every other polygon from the Top view to get a tread effect. I also did another, lesser bevel on the bottom of the tracks for yet more detail.
Save this object as "Track-Start". Move the track the length of two segments (polygons) on the +Z-axis. Save this again as "Track-Morph". An example of the slightly offset track is shown in Figure 1. What you've just made is a flat tank track and a copy of the track moved a slight bit on the +Z-axis. This will be used to move the track forward with a morph.

Figure 1: Track-Start (in Background layer) and Track-Morph (in Forground) as an example of shifting the track two segments.
Go into Layout and load up a scene that has the tank and its wheels set up. Load both the Track-Start and Track-Morph objects. Parent the Track-Start object to your tank's hull, not the wheels, since you'll want them to spin separately from the track. Move Track-Start so it is resting over the wheels, with the "back" end about midway between the front and rear tank wheels.
Go into the Objects panel and set the Object Dissolve for Track-Morph to 100%. Set the Track-Start's Metamorph Target to Track-Morph. Track-Morph is there only as a template to morph into, so it will never be seen. Now the whole morph is set up except for the envelope.
By editing the Envelope (E) of the Metamorph Amount, the track will move forward or backward. It will only move two segments of track, but once we're finished, it will be a seamless transition. To make the track go forward, have the morph percentage start with 0% and go up to 100% over the number of frames you want. To go backward, start from 100% and end at 0%. You will want to set the envelope's End Behavior to Repeat. (This will all make more sense later on.)
A track that moves forward and jumps back to the beginning over and over again is useless unless it wraps around the wheels of the tank. That's where Bones come in.
Bones are fairly painless in this case. All you need are a bunch of them. You don't even have to mess with any of the settings in the Bones panel. We're going to use bones to bend the track around the wheels.
The way this works is a bit strange. You will want to arrange your bones along the track in their rest position at Frame 0, and move your bones at frame 1. This way it'll be easier to add more bones for greater control later.
Go into the Objects panel and select the Track-Start object, the object you'll be adding all the bones to. Select Object Skeleton and click Add Bone. Hit (p) to close the Bones panel and go back to the Layout screen. This first bone is going to be used to "hold down" the rear end of the track, so you'll want to position it there. Place the bone so the pivot is in the track and the other end is pointing upward. If you think of the bones as the control rods of a puppet, this setup will seem a little clearer. Those of you who are more technically minded can think of these as the control handles of a B-spline.
Add two more bones by hitting the (+) key twice. Do not use Add Child Bone, as this will only complicate things. Position Bone 2 so it is over the frontmost wheel. Bone 3 should go further beyond Bone 2 by an amount equal to a diameter and a half of the front wheel. Don't forget to hit (r) to set the Rest Position and activate each bone after setting its position and creating a key at frame 0.
Now go to frame 1. Take Bone 3 and rotate it 180 degrees so it is pointing downward. Drag the bone down until it is under the front wheel. The track should now be more or less bent around the front wheel. Notice how this doesn't quite work. The track is a little bit off the front of the front wheel. Now you know why we are doing all of our setup on frame 0 and our final positioning on frame 1.
Go back to frame 0 and hit (+) to add another bone. Position Bone 4 so it is between Bones 2 and 3. Create a key for it and hit (r) to set the Rest Position. Go to frame 1 and you'll notice that the track is warped severely. Rotate Bone 4 approximately 90 degrees and place it slightly ahead of the rear wheel. This extra bone is used to keep the track against the front wheel.

Figure 2: Frame 0 of the treads with the bones positioned.
We've covered the basics of setting up the tank track. To get it all working requires a fair number of bones-I used 18 for mine. For an idea of what the bones look like after they are all oriented correctly, Figure 2 shows frame 0 and Figure 3 shows frame 1. Pay attention to the front of the tank (on the right of the screen) to see how those first three bones are set up.
If you need to adjust a bone (and you will), you'll want to move it at frame 0 and set the Rest Position again. If you move the bone at frame 1, the track warps as the bone stretches it. If you first change the positioning on frame 0 and reset the Rest Position, you can safely move it the same distance on frame 1 without any nasty warping effects.
There are two other important bone placements. The bone at the rear end of the track on frame 0 should be moved on frame 1 so it exactly matches the first bone's position on frame 1. That way the entire track smoothly wraps around the wheels.
The final trick is to put a last bone about two track segments (yes, we're back to that again) ahead of the frontmost bone, so it is actually off the end of the track. This should also be moved forward two segments past the last bone on frame 1. The reason for this bone will make sense in the next step, when we get this thing moving.
Did I say bones were painless? I lied.

Figure 3: Frame 1 of the treads with the bones positioned.
Remember that morphing setup we did way back when? Now we're going to use it.
Go to the Metamorph Amount envelope for Track-Start.
For a test, set frame 0 to 0% morphed and frame 10 to 100% morphed. Make sure to set the End Behavior to Repeat.
Now go ahead and make a wireframe preview.
When you play this back, the tank track should be smoothly turning around the tank's wheels. The reason for putting that last bone just forward of the front end of the track is to keep the track from warping as it morphs. Without that extra bone, the track starts bending upward, which ruins the illusion.
By now you've probably noticed a major limitation with this method: texture mapping. Since the track only moves two segment's worth, the texture map has to be two segments long and must be seamless, or else there will be a noticeable jump in the texture as the morph repeats. With a little work and some clever mapping, you can get around with a little work and a program like DeluxePaint.
To control the speed of the tracks, you simply have to adjust the number of frames the morph occurs over. Add more frames and the tracks move slower. About five minutes of tinkering is all you need to synchronize the turning of the tracks to the turning of the tank's wheels. If you want to be scientific about it, try the following formula:
r = radius of guide wheel
l = length of track
d = distance to move track per full guide wheel rotation
PI r2
____ = d
l
In other words, if you divide the circumference of the wheel by the length of the track, you get the distance the track should move for each full (360-degree) rotation. You will have to measure the distance of two segments worth of track in Modeler, and divide that by the distance to move the track. Then you will have the number of frames to morph the object over. As for an equation:
d = Distance to move Track per full Guide Wheel rotation
s = Distance of two segments of track
d
___ = Number of frames to morph over
s
Remember to use meters for all of these distances! You can also use Joe Dox's acceleration and deceleration macros (from LIGHTWAVEPRO disk 10) to control the rotation of the wheels and to figure out the amount to morph the tank tread. If I ever learn ARexx, I'll have to write a script for this.
One of the great things about using bones for this project is that you can have the tracks bend as the tank passes over different terrain. As it bumps over a rock, the track can compress against the wheel, and as the hull hangs in the air, the track can become more slack.
Making the track for the other side of the tank is easy. Just use Clone Object on the first track. The morphing information and bones are all kept during the clone, so all you need to do is move the track over to the other side of the tank.
This method of generating tank tracks gives you an incredible amount of control over making the track move and react to the terrain. Once you get everything set up, it's simple to control. Now all you need to do is build the terrain!
Joe Angell is a film/animation/video student at the Rhode Island School of Design. When he's not in class, he tries to actually get some CGI done. E-mail him at jangell@RISD.edu.