Using Bones


Making a cool model is one thing, a good animation is something else. Using Bones in LightWave can help make those models really come to life. Using Bones can be quite a task sometimes. Fortunately, with the simple humanoid models we've made, it's relatively simple to Bone the model effectively.
Bones uses forward kinematics; that's when you have a chain of objects (the bones) linked together, and when you move something at the top of the chain, it affects everything below it. If you move something at the bottom of the chain, nothing above it will be affected. Inverse kinematics is when you move something at the bottom of the chain, and it affects everything above it. Both forward and inverse kinematics can be very helpful when animating a model. Forward kinematics is fairly simple, but inverse kinematics can get pretty hairy sometimes. For this tutorial we're only going to be using forward kinematics.


Open up Layout. Click "Objects" at the top of the screen. Click "Load Object" and open the model you just made.

Click on "Objects" under the edit menu on the left side of the screen, or press "O" (remember, LightWave is case sensitive, so "o" and "O" make a difference). Make sure your object is centered (the "Center" button doesn't center the object BTW). Then click on "Bones" under the Edit menu. Press "+" to create a new bone. This is going to be the main parent bone; if we move this one, the entire object will move with it. Under the Mouse menu, click on "Rest Length" then click and hold the left mouse button in the viewport and drag the mouse to the right until the bone is about the lenght of the character's neck. Then click on "Move" under the Mouse menu. Click on "Z" so that it is not yellow. Under the View menu, click on "Front". Then move the bone so that it is centered in the character's hips. Now click on "Create Key" at the bottom of the screen. Create a key at frame 0 for all items.
Now click the "=" key. This adds a child bone. Lets move this one up into the spine. Change the rest length so that it is the length of the spine. Then click the "=" key again, and lets make this one the head. If you have a big head (like my LobsterGuy model) you may need to add some bones to the head. Now select the parent bone. You can do this by clicking the drop-down list under "Selcted Item" at the bottom of the screen, or hold the shift key and press the up arrow. Press "p" to bring up the object skeleton panel. Choose rename bone, and rename this bone to parent_bone. Under the drop-down list on the skelton panel, choose the second bone (the head bone) and name this one head_bone. This is so we don't get the bones confused later on down the road. Click continue.

Make sure you have the parent bone selected, then click "=" again to add another child. Rotate this one so that it lines up with the shoulders. This will be a collar bone. It's a good idea to rename the bones as you add them, this way you can avoid confusion. When rotating a bone, be sure to check that it lines up with the object from the front, side, and top views. When rotating, you can only rotate along the axis that is highlighted in yellow; so if you only wanted to change the pitch of a particular bone, make sure only the "P" button is highlighted under Mouse controls (H=heading; P=pitch; B=bank). Continue to bone (remember to create a keyframe at 0 after adding/rotating each bone) the character until the skeleton looks something like this:

After you've finished adding all the rest of the bones (chest, arms, legs, feet, etc.) it's time to make the bones active and to set their limited range. Hold down shift and press the up arrow (this selects the item at the top of the drop-down list; in this case it is the parent bone. Press F1 for a list of keyboard shortcuts). You should now have the parent bone selected. Press "r" to activate the bone. Press the down arrow (this selects the head) and press "r" again. Keep doing this until you have all the bones activated. Now select the head bone. Press "p" to bring up the Object Skeleton panel. Make sure "Bone Active", "Scale Strength By Rest Lenth" and "Limited Range are all checked. Strenght should be 100%. For the Limited Range value, I usually have the minimum and maximum values the same. It's hard to know exactly what the range should be. It depends on your model. The way I do it is I set a reasonable min/max value then click "Continue" (BTW, you have to hit enter after you type in the value or else when you click "Continue" it will go back to the previous value, 0). Then I check to make sure the little dotted lines surrounding the bone (this indicates the range of the bone's influence) covers all the points I want, but not any extra ones. For example, on the arm, I make sure that the dotted lines surround all of the shoulder and the elbow, but that it doesn't also surround part of the chest, head, neck, or legs. This is pretty much a trial and error process, but soon you'll get good at geussing pretty closely the necessary value. Once you have finished adding and setting the limited ranges for all the bones, save the scene (I usually only limit the range of extremeties; limiting the range of things like the spine and hips and collar bones generally isn't a good idea).

Now you're almost ready to go. Click on "Options" at the top of the screen, and then click on the "Layout View" tab. Put a check in the box next to "Use OpenGL" and click continue. This is very helpful for when you pose your character. Seeing the wireframe is nice, but being able to see how the pose looks on the solid object is very helpful.

Now you can pose the character and create keyframe poses for the character to help speed up the creating of animations. Lets say you wanted to make a simple running animation. You could create a keyframe at 1, pose the character for the next big change of motion and create a keyframe at 4, and continue the process until you have a nice looping animation (press preview to get an idea of how the animation will look but make sure you have the framerate set to 10 fps, as this is what the fps in Quake is). LightWave will automatically create the frames between the keyframes. Choose the first frame of the animation, press "Objects" at the top of the screen, and click "Save Transformed". Save this as something like "run01.lwo". Continue this process until you have a transformed object for each frame of your animation.


And that's all for now! Using Bones will take a lot of practice before you get really good at it, so don't get discouraged if this sounds a little too tough right now. Remember to plan ahead, and don't settle for a poorly boned model.