TUTORIAL February 1998
Learning to Crawl
It's been said
that following even the most devastating environmental event, the Earth will
continue to be overrun by insects, with cockroaches leading the pack. From the
heart of the deepest jungle to the most sterile laboratory, bugs are a part
of our daily lives, but when it comes to animation, they are often overlooked.
Whether as a main character or a subtle detail to add realism in a scene, insects
can be an important enhancement to a wide variety of 3D projects. But have you
ever tried to animate a spider or other arthropod? In most cases, six or more
legs can become a real problem when it's time to put them in motion. NewTek,
the creator of LightWave 3D, has come out with Cyclist, a plug-in for LightWave
5.5 that can make it easier to animate multi-legged characters such as spiders,
ants, bees, or, as you'll soon discover, cockroaches.
by Dan Ablan
Download the Lightwave 5.5 object and scene files: 0298roach.zip (PC, 51k) or 0298roach.sea (Mac, 52k).
Cyclist is part of NewTek's Motion Pack update for LightWave 5.5, and is sold as a set that includes the plug-ins Serpent, Follower, Oscillator, and Gravity. Cyclist is a motion plug-in that interpolates a preset group of keyframes and repeats them over time based on a parent object's movements. For example, you've built a cockroach and need to make it crawl across a kitchen counter. As the animation progresses, the camera pans down to a close-up view of the roach. For the purposes of your scene, it's important to have the movement of the critter's legs synchronized with its movement across the counter. Without the Cyclist motion plug-in, each leg would have to be keyframed, and its repeat motions would need to be timed based on the distance traveled by the bug. Using Cyclist, the roach will walk perfectly across the counter. As the roach begins to walk, the legs will begin to move, and as the roach walks faster, the legs move faster. If the roach slows down, the legs slow down. Think about the work it would take to animate an insect without the luxury of a plug-in-crawling and stopping, backing up, crawling again, and so on. It would be quite an endeavor to say the least.
This tutorial will guide you through the workings of Cyclist and show you how to set up a cockroach to walk (or crawl) across a counter. Figure 1 shows a frame from the animation used for this article. Here, the cockroaches crawl across the kitchen counter at different speeds, but only one walk cycle was used. Because the cloned roaches all have the Cyclist plug-in applied, the leg movements for the roaches are configured to automatically match the speed of the roaches' bodies. Follow along to see how this powerful plug-in operates.
FIGURE 1. The roaches crawl at different speeds using
one walk cycle. The cockroach model was created by Komodo Studios.
From the ground up
The first step in creating an animated crawling cockroach
is to build the object. Bill Fleming and his team at Komodo Studios
(www.komodostudios.com), based in Escondido, CA, created the cockroach model used
in this tutorial. The object was built and surfaced by Fleming, so all I needed
to do was separate the legs and put them in motion. The cockroach was taken apart
leg by leg in Modeler to prepare for animation and was set up using the following
Step 1-To use Cyclist, some time-consuming set-up is
involved. However, this is time well-spent in comparison to how long it would
take to calculate and keyframe every footstep of every leg of the roach. Each leg
has four pieces that need to be keyframed. Figure 2 shows the legs together in
Step 2-Each leg segment is separated and saved with file
names such as: LB_1.lwo, for left back, piece one; LB_2.lwo, for left back, piece
two; and so on. Each of these leg segments are saved in their original
positions-the legs were built, aligned with the roach object, taken apart, and
saved. This procedure allows the segments to be loaded directly in place in
Step 3-Once in Layout, the main roach body is loaded. From there, each of the
individual leg pieces are added. Figure 3 shows the leg segments loaded. Notice
how each segment loads in the proper position, shown in bounding box mode.
FIGURE 2. Each leg of the cockroach has four segments, shown together
in one piece in this image.
Step 4-A null object needs to be added to the scene as an overall movement controller. This null object can be renamed for organizational purposes, allowing you to globally control many objects. Each leg must be parented to its appropriate parent. For example, the left back leg LB_1.lwo is the parent for the left back leg LB_2.lwo, which is the parent to the LB_3.lwo, and so on. The LB_1.lwo is a child of the main null object. Figure 4 shows LightWave's Scene Editor.
Note the indented listings-these are the child objects of the object listed above it.
Step 5-Because the legs were saved off of the center axis in Modeler, their
rotation will be awkward and inaccurate in Layout and must be fixed manually.
This is done by repositioning the particular object's pivot point. Although
the objects load directly in place in Layout, their pivot points need to be
moved into position so that the legs will rotate properly. Figure 5 shows one
of the leg segment's pivot points being moved into position.
FIGURE 3. The individual leg segments load directly into place in Layout
because they were saved in the proper orientation in Modeler.
Step 6-At this point, the legs are in place, and their pivot points are lined up. Next, apply the Cyclist plug-in. Begin by selecting one of the leg segments. Press m on the keyboard to enter the object's Motion Graph panel. Select the Motion Plug-ins drop-down menu, and load Cyclist.
Step 7-Once Cyclist is selected, click the Options button to enter the controls for the plug-in. Figure 6 shows the Cyclist plug-in interface.
The Cyclist plug-in needs to be applied to every object for which the animated motions will be repeated, such as the leg motion. This process gets a bit tedious because there is no global selection for the objects. For the cockroach model, 24 objects (four segments on six legs) need to be put in motion.
FIGURE 4. The leg segments are set up in a hierarchy, as shown here in the LightWave Scene Editor.
Across the top of the Cyclist plug-in interface, you'll see on/off controls
for Move, Rotation, and Scale. When you create keyframes for the object, having
these buttons on tells Cyclist to use the keyframed motion to set these values.
Beneath these buttons is the setting for Cycle Frames control. Here, you tell
Cyclist which frames for the selected object to cycle (repeat). From there,
you set the Cycle Controller-for the object that will be moved in Layout-to
have the cycled objects (the legs) follow along. For example, if you had a car
driving down the road, its four wheels would have the Cyclist plug-in applied,
and the car itself would be the controller. For our purposes, the cockroach
body is the Cycle Controller.
A drop-down menu defines the applied keyframe by either X, Y, Z position, rotation, or scale. In regard to the cockroach, the objects are moving along the Z-axis, so this value should be set to Z. Leave the Cycle range setting at 0.0 to 1.0.
FIGURE 5. The pointer in this figure shows the pivot point for one of
the leg segments. Each leg segment's pivot point needs to be moved into
Step 8-Back in Layout, you need to set the keyframed motions for each leg.
Although you don't need to create keyframes for the legs throughout the animation,
Cyclist needs a few keyframes to understand what movements to "cycle." To achieve
this, set the keyframes of a basic walk cycle over 20 frames (this tells Cyclist
to repeat the process for 20 frames). An example would be to bring the back
left leg of segment one up over seven frames. It moves forward at frame 12,
then returns to its original position at frame zero, only the last keyframe
Step 9-Next, the back right leg would do the same thing, only it would start moving a few frames later. The back right leg would then have its original resting position at 0 hold for five frames. At frame 9, the portion of the leg rotates up, and at frame 15, it moves forward. At frame 20, the leg returns to the original position that it was in in frame 0.
This walk cycle should be set for each segment on every leg. While tedious to set up, when it's time to animate, your character's legs will move based on the movement of the character.
FIGURE 6. The Cyclist motion plug-in interface looks unassuming, but
has powerful results.
Once the keyframes are in place for all segments of the legs, you can enter
their Motion Graph panels to apply the Cyclist plug-in. When in the Motion Graph
panel, set the End Behavior to Repeat, which will keep the legs walking, then
apply the Cyclist plug-in, which controls when the legs move.
FIGURE 7. This image
created by Bill Fleming of Komodo Studios shows the crawlin' critters
under attack. The cyclist plug-in helps make animations like this much
better and easier than before.
Working out the Bugs
This exercise is a quick look at NewTek's Cyclist. Its
ease of use and productive results can translate into more control over your
animations. And, its functionality doesn't end at adding motion to mere insects.
Be sure to try Cyclist on cars, motorcycles, four-legged creatures-or be daring
and apply it to a human object! Remember, Cyclist acts like a controller for
parented items that have repeating motions. Using this plug-in will help you
achieve more realistic results by removing the need to calculate distances and
rotations, not to mention eliminating the tedious keyframing formerly required
for complex scenes. Cyclist and the entire Motion Pack from NewTek is an exciting
set of plug-ins that is well worth the investment and is highly recommended
for your LightWave arsenal. 3D
Dan Ablan is president of AGA Digital Studios Inc. in Arlington
Heights, IL, which produces 3D animation for broadcast and corporate video.
Dan is the author of LightWave PowerGuide and Inside LightWave 3D
5.5, both from New Riders Publishing. Feel free to bug Dan at [email protected]
Cyclist (included with
LightWave 5.5 ($1,995)
210-370-8000 or 800-843-8934