Skeletal Animation

Skeletal Animation is a technique used to pose character models. A skeleton is embedded in, and attached to, a character model. Once the skeleton is attached, the character model becomes the skin. Posing the skeleton causes the skin to be deformed to match the position of the underlying bones.

Skeletal Animation has a major advantage over jointed models in that a one piece mesh is used, so there are no seams.

What follows is an explanation of how to create a skeleton for a character.

For this tutorial we are going to use a cartoon-style model of an Ant as a skin.

This model has been provided by It's Ming! It was modeled with Lightwave.

It's Ming! have a wonderful assortment of cartoon-style models available at their website. No distribution of this model is permitted without the permission of It's Ming!

Click here to download the Ant Model in 3D Canvas format.

 

TutorialSkeletalAnimation1.gif (16745 bytes)

 

Drag and drop an appropriate skeleton onto the scene from the Skeleton  Object Library. You will want a biped skeleton with standard bones. In the default Skeleton Object Library, this is the first of the two skeletons provided.

Take care to drop it on the scene, not on the skin.
TutorialSkeletalAnimation2.gif (18990 bytes)

 

The next step is to adjust the size and position of the skeleton to fit the skin.

The best way to do this is to have a front view and a side view to work with.

Select View Selection from the View menu. Choose the icon that indicates two vertical-oriented views.

Right-Click on the left view, and select View->Orthographic->Front from the popup menu

Right-Click on the right view, and select View->Orthographic->Side from the popup menu

Using the front view, reposition the skeleton so that it is centered on the skin with the pelvis in its final position. You will want to move it using its root bone so that no Inverse Kinematics occur. For bipeds, the lower back bone is the root bone. Make sure that the skeleton is in front of the skin. At this stage working with a skeleton that is embedded in the skin is awkward.

 

TutorialSkeletalAnimation3.gif (18500 bytes)

 

The next step is to resize and reorient the bones to fit the skin. You will want to have the bones be oriented in the same way as the limbs of the skin, and the joints in the skeleton match the location of the joints in the skin.

The best approach is to work on one bone at a time starting with the hips and working your way outwards towards the end of the limbs. First rotate the bone so its orientation is correct, and then scale the bone so that its length is correct.

You will find that as you rotate and scale bones others will appear to end up in the wrong position. This is okay since as you continue along the chain these will be corrected. You may find yourself tempted to correct the size and orientation of bones out of order. Try to avoid this since it just makes the process more complicated.

To reorient a bone, click on the bone and rotate it using the Edit Control. Note that in orthographic modes the Edit Control only displays two of the three rotation axes. The third axis is pointing towards you. You can still use this axis by clicking the point where the two other axes meet and dragging. You will need to do this to reorient the bones appropriately.

To resize a bone, click on the bone and scale it using the Edit Control.  While scaling the size of the bone is displayed on the status bar at the bottom of the window. You can use this to ensure that equivalent bones on the right and left side of the skeleton are of equal size.

Sometimes a properly sized and oriented bone will protrude slightly from the skin. This usually happens at the thickest point of the bone. There is no need to be too concerned about this since the bone will be hidden whenever you play an animation. Just make sure that the bone is positioned and oriented correctly and of the right length and all will work out in the end.

 

TutorialSkeletalAnimation4.gif (17180 bytes)

 

Once you have resized and reoriented the bones appropriately in the front view, reposition the skeleton so that it is embedded in the skin. As before, you will want to move the skeleton using the root bone to avoid any inverse kinematics.

Before you do this, switch to wireframe mode. Click Button-Wireframe.gif (151 bytes) on the Primary Toolbar to enter wireframe mode. Once bones are embedded in an object it is much easier to work with them in wireframe mode.

Now, re-orient the bones for the side view. Re-orienting the bones may also require that you resize bones slightly for their new orientation. Again, start with the hips and work your way outwards towards the end of the limbs.

Also, delete the topmost bone from the Skeleton since this bone is intended exclusively for jointed models.

 

TutorialSkeletalAnimation5.gif (17493 bytes)

 

Using the Hierarchy, move the skin onto the root frame of the skeleton.

Click the hierarchy tab Button-Construction-Hierarchy.gif (721 bytes) on the left side of the window in order to show the full view of the scene hierarchy. On the hierarchy panel click on the ant object Icon-Mesh.gif (153 bytes) and drag it and drop it on to the frame Icon-Frame.gif (887 bytes) that contains the "Back - Lower" bone. You may find that you will need to close a few items to make dragging and dropping easier.

This is a critical point. The ant object Icon-Mesh.gif (153 bytes) must be in the root frame Icon-Frame.gif (887 bytes) of the skeleton so that skeleton moves when you move the ant. Also, it is important that this be done before you set the range of effect for each bone.

In this example the eyes are separate objects, so they must be moved to the frame that contains the skull so they will move when the head moves.

 

TutorialSkeletalAnimation6.gif (19232 bytes)

 

With this particular model, we want to be able to pose the antennas.

Drag and Drop a standard bone from the Bones Panel onto the topmost bone. Drag a drop a bone onto the bone just added.

Both bones will automatically have Inverse Kinematics enabled. This means that if you try to move a bone, the entire skeleton will move using Inverse Kinematics. Right Click on the first bone added and disable Inverse Kinematics. Move the bone so that it is at the base of the antenna. Right Click on the bone again and re-enable Inverse Kinematics.

You will notice that we now have a gap between bones. With 3D Canvas this is just fine. There is no need for bones to connect at a joint. Bones are a type of scene component and can be positioned and oriented in the same way as any other scene component.

 

TutorialSkeletalAnimation7.gif (19369 bytes)

 

Reorient and resize the two bones added the last step so that they are appropriate for the antenna.

Right-click on the topmost bone and choose Properties from the popup menu. Change the Inverse Kinematics mode from Enabled to Fixed. This will ensure that when either bone is dragged, only the base of the Antenna will be bent.
TutorialSkeletalAnimation8.gif (18791 bytes)

 

Repeat the last two steps for the other antenna.

 

TutorialSkeletalAnimation9.gif (17296 bytes)

 

Up until now, the Ant  in the scene has been a 3D Canvas Object. We are now about to transform it into a skin.

Double click on the middle back bone or single-click it and click Button-Toolbar-AttachSkin.gif (151 bytes) to attach the Ant object to the skeleton as a skin.

This will open the Skeletal Bone Range window which allows you to adjust the portion of the object that is affected by this bone.

All points included within the translucent cylinder will be affected by this bone. The range of effect of the bone can be adjusted using the sliders.

The Origin Range slider is used to increase or decrease the circumference of the bone's cylindrical range at the bone's origin.

The End Range slider is used to increase or decrease the circumference of the bone's cylindrical range at the bone's end.

The Extent slider is used to increase or decrease the length of the bone's effect.

 

TutorialSkeletalAnimation10.gif (25354 bytes)

 

Repeat the above step for every bone that you want to have affect points.

Keep in mind that bones should overlap so that they share points. This will produce nicer results during posing.

The shoulders, hips and lower back do not need to have an effect range.

The shoulders do not need to have an effect since they will be wholly enclosed in the upper back, middle back and upper arms.

The hips and lower back do not need to have a range of effect since all points not specifically assigned to other bones are automatically assigned to be affected by the root bone (the lower back).

 

TutorialSkeletalAnimation11.gif (19439 bytes)

 

Here we have all of the bones with range of effects.

Note that all bones and their range of effect are displayed for easy posing. When you record an animation or a snapshot, the bones are made invisible.
TutorialSkeletalAnimation12.gif (19439 bytes)

 

We are not quite done however. Due to the way this model is designed, with bent knees, we have a small gap at the knee.
TutorialSkeletalAnimation13.gif (19737 bytes)

 

As it is, when a skeleton is posed, these unassigned points will not move when the leg moves.
TutorialSkeletalAnimation14.gif (19786 bytes)

 

The solution is to add a Spherical Bone from the Bones Panel. Drag and Drop it on to the thigh bone. Then adjust its position and size so that it fill the gap. Note that spherical bones are only available with 3D Canvas Pro. If you do not have 3D Canvas Pro you can substitute a short standard bone.

Double click on the new bone or single-click it and click Button-Toolbar-AttachSkin.gif (151 bytes) to set its range of effect. Unlike Standard bones, Spherical Bones' range of effect is the same as the size of the bone. So any point enclosed in the Spherical bone will be affected by the bone.

We could also have solved this problem by changing the Extent of the thigh and shin bones. But, that would likely have resulted in too much overlap of bones which usually produces unattractive results during posing.

Spherical Bones can be useful to add to places where unattractive deformations are occurring to add just a little bit of weighting to how much the skin is deformed by each bone.

 

TutorialSkeletalAnimation15.gif (19063 bytes)

 

We now have a fully posable skinned skeleton.

Click here to download a model of the Ant with a skeleton attached.
TutorialSkeletalAnimation16.gif (19249 bytes)

 

To pose the ant, simply click on a bone and drag.

In order to show the Ant in a posed state, I have hidden the bones by clicking Button-Toolbar-ShowBones.gif (149 bytes) from the Primary Toolbar.

To move the whole object without causing any Inverse Kinematics positioning, simply click and drag the object by the root bone, any exposed skin.

If you want to rotate a bone beyond the range of its Inverse Kinematics joint, you can simply rotate it using the Edit Control.

 

TutorialSkeletalAnimation17.gif (15905 bytes)

 

To re-pose the object to its neutral relaxed state, select the skin, and click Button-Toolbar-Relax.gif (158 bytes) on the Edit Toolbar.
TutorialSkeletalAnimation18.gif (17728 bytes)