|
Animating The Inanimate, Part Four We're going to wrap up our series today with a lively discussion of one of the more flexible techniques for character animation: bones. Now, in the real world, the words "flexible" and "bones" may not belong in the same sentence without requiring a trip to the emergency room, but as this is the magical land inside your computer, the two words are quite comfortable being in the same proximity. As usual, I'm rambling already, so let's just dive right in and take a look. Huh? What do I mean, "bones?" No, I'm not referring to the 2001 film starring the master thespian known as Snoop Dogg, which I somehow managed to miss. And no, I'm also not using one of many slang terms for either U.S. dollars or a pair of dice. Give up yet? Good, because I'm fresh out of not-so-witty wrong answers. Bones, in the world of 3D animation, are somewhat analogous to real-world bones in that they generally work under the surface of a model to determine the model's pose. But the analogy really ends there, because while it's common to create a sophisticated "skeleton" of bones that you can use to control your model's movement in extremely realistic ways, it's somewhat of an insult to the entire bones family by typecasting them in this manner. You might get more mileage out of bones by thinking of them as invisible objects designed for very specific, targeted deformations of a model. Plus, it's quite possible to create believable characters using only two bones, which is what I'm planning on showing you today. I'm sure I've lost a great many of you by now with my overly abstract explanations, so I now turn to our long-AWOL friend Ralph the Peanut to help illustrate what the heck I'm talking about. [an error occurred while processing this directive] I introduced Ralph (fig. 1) way back in part one of this series, but in case you need a refresher, Ralph is an anthropomorphic in-the-shell peanut created for a series of two commercial spots. The scripts for Ralph's spots called for him to do things like turn his "head" up and down and side-to-side, as well as some hopping around. I was also going to need to squash him down a bit in the hopping portion of the spot, plus he had to rotate along his base occasionally. However, neither of the latter properties required any special geometric considerations during modeling.
Now, if you've been following along with this series, I previously introduced two other methods of deforming character models: morph targets and handles. Morph targets probably would have worked fine for what I needed to do with Ralph, but the technique sometimes lacks the on-the-fly flexibility you sometimes want, especially when there's an involved producer who is likely to make numerous tweaks along the way. And animating Ralph with the handles technique wouldn't have worked very well at all in this case. What to do, what to do. Eureka! I'll use bones! Bones would let me place a virtual skeleton inside Ralph's frame, and by moving the bones I would be able to affect movement in Ralph's outer "skin." Hot damn! Adding bones Having the desire to use bones is all well and good and everything, but just how do you add bones to a model? In LightWave (again, the 3D program I'm using), there are a couple ways to produce bones: by either adding them through a menu command with no options or by drawing them with your mouse. Although the menu command is fine 'n dandy (fig. 2), it doesn't give you a whole lot of control over their initial position.
Now, this particular limitation isn't such a huge deal in Ralph's case, but when you start talking about a complete human-like skeleton of bones it may become a royal pain in the bee-hind to add a bone and then manipulate it into each individual position. I usually find it's much easier to draw bones in. Here's what I usually do:
As you've probably noticed by now, bones "do their stuff" mostly under a parent/child relationship, meaning that if you move the parent, the child goes with it, but not vice-versa. Again, refer to your own skeleton (your real one, I mean) if you're having trouble visualizing the concept. But keep in mind that you can start a new parent chain whenever you want within the same model -- you're not stuck with just creating child bones. Go nuts. However, this parent/child thing isn't exactly a hard and fast rule, which I'll go over in a minute. 1 2 Next [an error occurred while processing this directive] ![]() |