Editorial Policy
   Contact Information
   Advertising Info
   Publicist Info
   Privacy Statement
   Contact 3Dgate

More of Dem Bones

by Raf Anzovin

It's often assumed that you need a high-end package such as Softimage or Maya to construct CG characters with advanced articulation. A classic example is the title creature in Godzilla, articulated in Soft with a system that automated such actions as movement of the tail and the body's reaction to the feet. In this article, we'll show you how to create a sophisticated bone system in Hash Inc.'s Animation:Master 99, a $199 program.

In Part I of our Animation:Master 99 tutorial ("Dem Bones," 3D Design magazine, p. 34, June 1999), we looked at the basic bone and joint construction of Dennis the Dog, a cartoon character I created (star of Java Noir, winner of the "Best 3D Cartoon" category at 3D Design's 1998 Big Kahuna Design & Animation Contest). This version of Dennis (whose Java Noir incarnation was created in NewTek LightWave) was modeled with an unusual goal in mind: to combine cartoon proportions with semi-realistic anatomical structures. In Part II, we'll complete the setup of Dennis by discussing more advanced aspects of boning, including control bone systems, automatic center-of-gravity placement, and a way to create a single bone structure that can quickly switch between low-res and high-res skins.

These systems are more complex than the ones we discussed in Part 1. We recommend that you download the help files for this article, which include the fully articulated Dennis bone system and a low-res proxy skin that you can play with and pick apart.

The Control Bone System

In Part I, we set up a basic bone structure for Dennis. But these are not the bones we'll actually use to animate him. Instead, we'll set up a system of control bones, completely abstracted from the actual geometry, that provide a higher level of streamlined control over the lower-level bone and constraint system. The control bones work like a set of carefully calibrated levers and cranks connected to the lower-level bones; the constraints make sure that the body holds together and animates correctly. Employing a higher level control system eliminates the need to worry over such low-level issues as what directions the joints are bending in or whether the arm animation will be thrown out of whack by a new movement in the pelvis; all this is taken care of for the animator, who only needs to manipulate a few well-placed controls. In practice, this allows a quick and spontaneous animation workflow.

A control bone is the same class of object as any other Animation:Master 99 bone, with the same constrainability, but there are two important differences. Lower-level bones (which we'll call geometry bones for purposes of this article) are attached to geometry, while the control bones are not. Also, control bones can be placed wherever they are easiest to grab and move—meaning they can perform the same function as nulls do in other programs. (Animation:Master 99 also has null objects, if you need them.)

To begin, consider the model discussed in Part I. This is a fully articulated creature with fully working joints. However, posing and animating with the bones as they are currently designed is difficult—there are too many bones, and they aren't easy to manipulate. That's why a control bone system is needed.

Take a look at Figure 1, which shows Dennis's complete control bone system. This can be quickly roughed out (but not connected or constrained) using the bone creation and placement techniques outlined in Part I. Let's briefly tour some of its important features.

Figure 1. Dennis's control bone system. Note that control bones do not have to be attached to any geometry, but can be placed where it is most convenient to manipulate them.


The overriding goal of this system is to give maximum control with the fewest bones possible. For example, the spine is controlled by only two control bones: the pelvis control bone and the torso control bone. Similarly, there are no control bones at all for the legs; control bones for foot placement take care of all the leg control.

Unlike the legs, there are control bones in the arms themselves. This is because the arms, with their more complex motions, will need to be manipulated with forward kinematics (FK) as often as with inverse kinematics (IK). Note that the arm control bones are not parented to the Torso control bone or to any other bone, as they would be in an ordinary hierarchy. The arm control bones float freely, which allows them to be used as IK handles that will stick in place as the body moves. The control bones themselves are capable of FK, but can also be manipulated via IK by moving the whole control-bone chain of the arm.

Note also that there is one main foot target, placed down at the ball of the foot, and that there are three others parented to the main foot target, one at the toe and two at the heel. This is so the whole foot can be moved as one, while still retaining separate controls for toe-raising, heel-raising, and heel rotation.

With many character setups, if you try animating the head first to fit with a certain attitude, any animation subsequently applied to the torso changes that head movement, since the head is parented to the torso and inherits its rotation. With Dennis's constraint system, however, any part of the body can be animated at any time, independently of the others, and still retain its rotation and attitude even when its parent is animated. This system allows movement—but not rotation—to travel up the hierarchy. You can pose, say, the torso in any way you please, and rotating the pelvis does not effect it at all, except to reposition the chain slightly. The shoulders continue to point in the same direction no matter what is done to the Pelvis. We'll see how this works as we continue setting up the control bones system.

Abstracting and Attaching the Control Bones

Once the control bones have been created inside the original Dennis model, they must be moved out. Since we're going to make them completely abstract from the actual Dennis geometry, they can't be in the same model or have any permanent relationship to the underlying geometry bones.

Create a new model, which we'll call the Dennis Control Bones model. It will appear below the Dennis model in the Project Workspace. Copy the control bones from the Dennis model to the Dennis Control Bones model by dragging them from one to the other. Note that grabbing a bone at the top of the chain brings all its child bones with it. Once all the control bones have been copied, delete them in the original model.

Now create an Action for the Dennis Control Bones model. We'll call this the Dennis Full Action, since it contains the full Dennis geometry (in contrast to the Dennis Proxy Action, a substitute skin with much reduced geometry, which we'll discuss later). Next, create an Action Object for the original Dennis model. An Action Object is an object whose geometry can be temporarily embedded within an Action. This allows you to easily add and remove geometry from your character, just as motion can be added or removed by applying an Action. All of Dennis's geometry is being added by Action Object so that it can be removed and swapped for other geometry at any time.

Drag the original Dennis model onto the Dennis Full Action. It will appear in the Action as an Action Object (see Figure 2), which will be added temporarily to whatever object the Action is applied to.

Figure 2. The Dennis geometry is embedded in an Action as an Action Object.


Now attach the geometry bones in the Action Object to the control bones in the Dennis Control Bones model. We'll begin with the spine and progress to the rest of the bone assemblies.

In the Dennis Control Bones model, hide everything but the Torso and Pelvis control bones. In the Dennis model, hide everything except the five spine bones. Drag the Dennis model Action Object to the side so that the spine bones are next to the spine control bones, but not on top of them, as in Figure 3. Now we're ready to apply constraints.

Figure 3. Diagram of the spine control bones setup. The blue arrows represent the Orient Like constraints attaching the spine to the Torso and Pelvis control bones.

We want the upper spine geometry bone to inherit the rotation of the Torso control bone. The geometry bones in the middle of the spine need to blend smoothly into this rotation. This is best accomplished using constraint influence values. We can orient all the spine geometry bones (except the bottom one) like the Torso control bone with Orient Like constraints, using diminishing influence values (as discussed in Part I). The second spine geometry bone gets a value of 75%, the next below it 50%, and so on. Finally, the bottommost spine geometry bone should be oriented like the Pelvis control bone, at full intensity. This will produce a spine that always blends smoothly between the values of the two control bones. Since the control bones themselves are not attached to each other in any way, it's easy to manipulate, say, the torso first without worrying about the pelvis rotation, which can be added later without disturbing the first motion. The underlying geometry bones will still hang together. The head/neck and tail control bones are attached in exactly the same way.

Next, we'll attach the leg control bones, but first we'll need to know a few things about the way Animation:Master 99's IK constraints works. Most programs with good IK tools have controls like Pole Vectors and single-plane IK systems, which allow IK chains to be set up so that they always bend as expected.

Animation:Master 99 has similar controls, but they are handled differently. The key to controlling a kinematic constraint is to know that Aim At and Aim Roll At constraints can be added to any bone in the middle of the chain and that these constraints will affect how the whole chain bends. For instance, in a two-bone chain the second bone would be kinematically constrained to a IK target bone, and an Aim At constraint would be used to constrain the first bone to another target. The joint in the middle would always predictably point at that target. Since the Aim At target can be parented to the IK target bone, it's easy to construct a very intuitive IK manipulator out of a few bones. Add in an Aim Roll At constraint to the Aim At target, and you have a chain limited to 180 degrees on one axis—in other words, a single-plane chain. This kind of chain is perfect for elbows and knees, which essentially bend along only one axis.

Figure 4 shows the leg constraints. The assembly includes some additional target bones to keep the legs and feet in line, which are added around the control bones and then hidden.

Combining IK and FK

Rather than using simple IK, the arms use a combined system in which IK positional keyframes and FK rotational keyframes can be used simultaneously, by either rotating the arm bones (for FK) or grabbing them and moving them around (for IK). Under this combined system, the arm rotation can be made independent of the rotation of other bones in much the same way as the torso's rotation was isolated from the rotation of the head, and the elbow can be made to point in an anatomically correct direction at all times, whatever is done to the arm bones.

Figure 4. Diagram of the leg constraints. The pink arrow represents a Kinematic constraint, the green arrows Aim At constraints, and the orange arrows Aim Roll At constraints.

With the arms, we want to keep the ability to use FK and IK simultaneously, so it's necessary to have a full set of arm control bones (Figure 5) instead of just an IK target at the end. However, since the chain is free-floating, it can simply be picked up by the elbow and dragged away, acting as an IK target.


Figure 5. Diagram of the arm control bones constraints.

In this case, the hand is the actual target, and the position of the Aim At target is derived, by means of a complex constraint system shown in Figure 6, from the shape of the arm control bones curve. This has the added benefit of making it possible for the arm geometry bones to be pulled around in any way in FK, but never break the elbow. Since the target for the arm geometry bones is always in exactly the place the elbow is pointing, the elbow always points in an anatomically correct direction no matter what shape is formed by the arms. This assembly forces the roll of the upper arm geometry bone to constantly point in the same direction as the curve of the elbow joint. This constrains the elbow joint to rotate 180 degrees in a single axis, even as the shoulder joint is forced to twist to keep the hand in the appropriate place. The result is an anatomically realistic elbow joint, no matter how the arm control bones are bent. The red arrows represent Translate To constraints. The gray arrows represent parenting relationships.

Ordinarily, when switching from FK to IK and back, the many internal changes in the hierarchy would force the animator to wade into the complexity of the underlying control and constraint system. We'll create a set of Pose Sliders that reaches into the guts of the system and changes specific elements, without requiring you to address low-level issues.

Figure 6. Elbow control bones assembly. Note the elbow target near the top of the screen.

Figure 7. Arm Pose Sliders for IK. Sliding these back and forth varies the arm constraints, so that you can combine IK and FK motion.

Sometimes you'll want the arms to move with the body, and sometimes you'll want them to float freely (when, for example, the hand needs to maintain a specific rotation). This can be easily achieved by applying a Translate To constraint to the shoulder control bones in a Pose Slider (see Figure 7). At 0%, the arm sticks where it is when you move the shoulder; at 100%, the arm follows along with the shoulder.

Similarly, you may want the arms to move exactly like a normal parented FK hierarchy without any other kind of behavior. A combination of Translate To and Orient Like constraints contained in a Pose Slider makes this possible, and it can be turned on and off at any time.

Creating Facial Controls

As the final step in attaching the geometry, we need to complete the facial controls. In Part I of this article, facial controls were created using bones and Smart Skin, without the use of Pose Sliders. One important reason for this was to ensure that the facial geometry bone rotation values could be transferred from the Dennis Control Bones model to the Dennis Full Action Object.

To do this, we need to copy all the facial bones from the Dennis model to the control bones model and create Orient Like and Translate To constraints that connect the facial geometry bones directly to their counterparts in the control bones model. This can be accomplished using the bone duplication method discussed above. When all the geometry bones are attached to their respective control bones as shown in Figure 8, the last step is to construct a Pose Slider that moves the facial control bones. Then the control bones can be hidden. The end result is a simple Pose Slider interface that can influence the facial expression of any skin popped into the control bone setup (Figure 9).

Figure 8. The arm in action.


Figure 9. Facial expressions controlled by Pose Sliders.


Swappable skins

At this point, we can see how the separation of control bones and geometry bones works. First, hide all the bones in the original Dennis model. Open a new Choreography and drag the Dennis Control Bone model into the window. It appears as a completely empty model. Now apply the Dennis Full Action to the model. Instantly, the Dennis geometry will appear. Go into Skeletal Mode and play with the control bones. Move them around in any way you want: the geometry will mimic their movement exactly. Deleting the Action and the Action Objects entry makes the geometry disappear. Applying it again will make it reappear, in the position dictated by the control bones. Other "skin" Actions—for example, a low-res "proxy" skin or a skin with different surfaces—can be swapped in or even layered with the same ease.

In high-end programs, when animators need to manipulate very complex characters with real-time feedback, a low-resolution "proxy" model is often used for animation, then a full-res version is swapped in for the final tweaking and rendering. In Animation:Master 99, we can switch between a proxy and a full resolution Dennis model simply by dragging and dropping an Action. Figure 10 shows Dennis fully posed with control bones.

Figure 10. Dennis fully posed with control bones.

Figure 11 shows the swapped-in proxy skin. It retains the basic Dennis shape, yet, because it contains only about 400 patches (in contrast to the full Dennis model's 2000 patches), it is much more responsive to animate.

Figure 11. Dennis after the full geometry has been swapped for the proxy.


Creating a Smart Auto-Center-of-Gravity System

Now we have a working Dennis setup that can be used in a Choreography with either the proxy version or the full skin. All that's left is to add an uppermost layer of "smart" control bones that can act automatically when necessary. We'll concentrate on Dennis's most complex "smart" assembly, the auto center-of-gravity (AutoCG) system.

It's standard practice to set up a character so that the feet are anchored through kinematic constraints by extra bones or nulls not parented to the root of the hierarchy. This enables the animator to move the body around and shift the character's weight without worrying about where the feet are—they'll always stay anchored in the same place unless pulled off the ground.

With Dennis's AutoCG system, we'll create a whole level of control above this one. The foot-anchors not only anchor the feet, they also interact with and control the position of the body. Pulling the foot forward under this system automatically pulls the body forward to maintain Dennis's center of gravity. If pulled far enough, the heel of his back foot starts to lift off the ground, bending the toes in the same way that toes bend in a walk cycle before the "kick off" position when a foot is raised off the ground. The bobbing-up-and-down movement of the body created by a walk is automatically added here, since the body always tries to keep itself at a height where both feet have just enough room to reach the ground.

The AutoCG system can be turned on and off at any time, and the internal functioning of the system can be adjusted easily with controls for Leg Stiffness and Ground Height, among others. None of these automatic functions takes control away from the animator, because the animator can override or adjust the automatic placement at any time. However, they do make most animation jobs considerably easier.

We'll create all the bones used in the AutoCG system in a new model and bring them in by Action Object, just as with the two Dennis skins. This will keep them separated from the control bones we made before.

Basically, the AutoCG system consists of a two-bone "stride measuring" chain, which is stretched between two "stride" control bones by a kinematic constraint. The two stride control bones must form a pyramid, the top of which is at the pelvis of the character. The whole thing is kept pointing upright by a "center of gravity" control bone, which is put immediately between the two stride bones by means of Translate To constraint to each of them. The center of gravity control bone has a child bone, way up above the setup, to which the stride measuring chain is pointing. This keeps the chain upright at all times.

In a simple application of the CG system, the two stride control bones would Translate To the foot targets and then Translate To the Upper Body control bone right at the top of the pyramid. This would produce a satisfactory result when moving the feet around on the X and Z axes—that is, across the ground—without being lifted. The body would always place itself right between the positions of the feet, and would adjust its height so that the feet would have just enough room to touch the ground. Try this by bringing the AutoCG model into the Dennis Proxy action as an Action Object and applying these constraints. Pull the foot control bones around and see the result. This simple setup, however, causes trouble when the foot targets are moved up on the Y axis (Figure 12).

Figure 12. The basic stride measuring setup has a problem when the feet are lifted above the ground.

Because the setup always maintains the same distance between the foot targets and the body, the knees can never bend at all. The legs always remain stiff, and the body is pushed off center. Try pulling the feet up and observe this effect.

To solve this problem, apply a Translate Limits constraint to the stride control bones. This type of constraint allows the movement of any object to be limited easily. In this case, reduce the Y axis limits to 0,0. This will prevent the stride bones from moving above the ground plane.

Now move the feet around. The stride control bones follow the feet on the X and Z axes but not the Y. This produces a much more realistic body movement, since the body is not influenced at all by the Y axis foot movement. (Figure 13.)

Figure 13. Stride measuring setup with Translate Limits constraint. The improved system works better, but produces robotically smooth movement.

However, the body is still not moving in a naturalistic way. What's missing is the movement that the body does have to make to respond to the movement of the foot on the Y axis. Stand up and lift your own foot—you have to shift your center of gravity to keep from falling. We'll create an automatic system that takes into account the Y-axis foot movement and allows the animator to control the amount of influence it has over the body by using both constraint systems discussed above at once, and blending between them with a Pose Slider.

Figure 14 is a diagram of the full AutoCG control bones assembly showing the two "stride measuring pyramid" systems right next to each other. The "stiff knee" system has its stride control bones Translated To the foot control bones, and the "flex knee" system has its stride control bones Translated To the stride control bones of the "stiff knee" system, but with a Translate Offset applied. Two extra control bones are used as intermediaries to allow the Upper Body control bone to be attached and unattached from the system by Pose Sliders.

Figure 14. Complete AutoCG Assembly diagram. The two triangular bone assemblies are the stride-measuring systems. The assembly on the right is the "flex knee" system, and the assembly on the left is the "stiff knee" system. The broken red arrows represent Translate To constraints to which Translate Limits has been applied. The hollow red arrows represent Translate To constraints constrained within a Pose Slider.

We also need two Pose Sliders containing Translate To constraints (Figure 15). The first attaches the Upper Body control bone to the "flex knee" system and is used to turn the whole system's influence up or down. The second Pose Slider translates the "flex knee" system's extra control bone to the "rigid knee" system. Turning this slider's influence up just a little adds a lot of life to what otherwise would be rather mechanical motion.

Figure 15. Pose Sliders for the AutoCG system.

As the final touch, we'll add a control to set the height that the Translate Limits constraint sees as ground level. This is useful for making Dennis walk up stairs or stand on raised platforms. To create the "ground level" control, create a null or bone behind Dennis named "Ground Level." In the Dennis Proxy and Dennis Full Actions, create a Translate To constraint for the AutoCG bones Action Object itself to the "ground level" null or bone. Figure 16 shows a pose that employs all the capabilities of the full AutoCG system.

Figure 16. Fully articulated Dennis model with AutoCG system in a pose.

Lastly, Figure 17 provides a color key to constraint types.

Figure 17. Color Key to Constraint Types.


This article has merely scratched the surface of what can be done with boning in Animation:Master 99. Note that the techniques we used in this tutorial aren't limited to this particular character or character design; you can apply the basic jointing, constraining, and control-bone methods described here to any bipedal character—or adapt them to quadrapeds and other more exotic body designs. In fact, there are as many ways to bone a character as there are characters; the creative boning techniques possible in Animation:Master 99 can help you animate all of them.

Animation:Master 99 (Version 7.0), $199; network version $699
Hash Inc.

Raf Anzovin is an independent 3D character animator. His animation Java Noir won the 1998 3D Design Big Kahuna award for best 3D cartoon. Contact Raf at [email protected].