Previous: Adding a Texture
Back to Contents

Modelling, Texturing and Animating a Hand

by Julian MacDonald

Animating the Hand

The first thing to do here is make the Score visible by clicking on Show Score under the Animation menu. This brings up a timebar at the bottom of the screen onto which are placed keyframes to define the properties of the various tracks at key moments in time. Click on the hand object in the Object List and this object will appear in the score. Listed below the object are the tracks controlled by the animation. You will probably have Position and Rotation tracks there by default. In order to animate our hand, however, we're going to need a Pose Track. Select Animation -> Add Track to Selected Objects -> Pose. At this point you will be see a warning that the mesh object is to be converted to an actor and therefore new vertices cannot be created and existing vertices cannot be deleted. Click on Yes and a Pose Track will be shown in the score as below:
The numbers running along the top of the score are the times in seconds.

Now, if you double-click on the hand object in the object list, instead of displaying the normal mesh editor, you get a dialogue like this:

The box on the left of this dialogue is (or, at least, will be) a list of all the defined 'gestures' of the mesh. Initially this consists solely of the Default Pose which is the hand mesh as created. The box on the top right lists the 'gestures' which make up the current pose. There is a subtle distinction between 'gestures' and 'poses'; a 'gesture' is a particular instance of the mesh. A 'pose' is a combination of 'gestures'; in fact it is a weighted sum of the gestures as displacements from the Default Pose. We'll see exactly what this means as we progress with this example.

In this example I'm going to create an animation with the fingers closing and opening. The Default Pose is the hand with the fingers open so all we need to do is create a few gestures with the fingers closed. Because Poses are weighted sums of Gestures as displacements from the default pose, it is possible to create several gestures, say of each finger bent in turn, then add them to the Current Pose list. Indeed this makes better sense than creating a single gesture with all the fingers bent as we can individually control the bending of each finger.

To create a new gesture, click on Default Pose in the gesture list and click on This creates a direct copy of the Default Pose which we are going to edit in a moment. First, give the gesture a name when prompted (say 'first finger bent'), then select it in the list and click on to display the familiar mesh editor as shown below:

We're working on the first finger here and the idea is to bend the finger over. Before we start moving anything, set the lower joint of the 3rd bone (the 4th cross down) as the base by <shift> clicking it as shown on the left. This will stop any movement of bones lower down the chain. The joint cross will turn green as shown. Now select the top joint by clicking on it - it will turn pink. At this point, it is helpful to rotae the view so that we can see the side of the finger as below. Click on the joint and drag it down to the right position as shown below:

This has successfully moved the finger to the required position but the finger has become slightly squashed around the joints as a result. It may be possible to remedy this by setting different values of IK Weight via the Edit Points tool but it is probably easier to manually edit the mesh to achieve a better look as shown on the right. This is simply a matter of using the mesh editing tools to move the vertices to better positions. Because Art of Illusion interpolates vertex positions for the in-betweens, this should look reasonably natural.
Let's try it to make sure it looks OK. With the time marker (the vertical green line on the score) set at time 0 (either drag the time marker there or select Animation -> Jump to Time and enter 0), click on Animation -> Keyframe Modified Tracks of Selected Objects . This defines the first position of the hand in terms of Pose, Position and Rotation. Now move the time marker to 0.2 where we're going to set the next pose. To do this, double click on the hand object in the Object List to display the Pose dialogue window again as shown below left. At the moment, there is nothing listed under Current Pose. Remember that this is a list of displacement gestures from the Default Pose so the absense of anything in this list means that the Default Pose itself is the current pose. However we want to have the 'first finger bent' pose so click on this in the gesture list and add it to the Current Pose list by clicking to produce the result shown below right:

Click OK to accept this. To actually set this pose to the current point in time, we now need to select Animation -> Keyframe Modified Tracks of Selected Objects . This produces a new keyframe in the Pose Track as shown on the right:

OK, the first stage of the animation is complete. If you drag the time marker along between 0 and 0.2, you will see the in-between positions change in the view windows. Another way to preview the animation is via Animation -> Preview Animation . This shows a wireframe preview of the animation.

All that needs to be done now is to create gestures for the other digits. In each case, duplicate the Default Pose and edit the copy to bend the fingers over using the skeleton and any tweaking of the vertices as necessary. The great thing now is that we can produce a pose with any combinations of fingers open and closed simply by adding and removing gestures from the Current Pose list. By altering the Weights it is also possible to have any of the fingers only partly open; a Weight of 1 means that the gesture is as defined by the mesh, 0 means that that gesture is not incorporated into the current pose at all and anything inbetween will produce a partial incorporation of the gesture. In this example, I'm going to produce an animation of the hand initally closing all digits and then opening them one by one.

Go to time 0.2 and double-click the hand object in the Object List to display the pose dialogue. Add all the gestures you have created to the Current Pose. This should result in a clenched hand pose as on the right:

Click on OK to accept this and then keyframe the pose track as before. Just as a little aside, move the time marker to 0.1 and double-click the hand object to display the pose dialogue again. You will see that all the gestures defined are still in the Current Pose list but that their Weights are different. This is because, of course, the digits are only part closed. The actual Weight values will depend on the type of Smoothing employed for the Pose track. Double-click on the Pose track in the score to bring up a dialogue change this. The options are Discontinuous (sudden changes in pose), Linear (linear interpolation - weights will be 0.5 for all gestures) and two types of smooth interpolation - Interpolating and Approximating. We'll stick with Linear for now but you may wish to try out either of the smoother options later.

Now, go to time 0.4 and double-click on the hand object as before. This time, click on the '1st finger bent' gesture in the Current Pose list and click on . This will make the first finger alone go back to its default position. Click OK and keyframe this new pose.

Repeat this for the 2nd finger at time 0.6. With the 3rd finger at time 0.8, as well as removing the 3rd finger gesture from the Current Pose list, reduce the Weight on the 4th finger to 0.5 to make it raise up slightly as well (have you tried lifting your 3rd finger without the little finger coming with it ?!).
Finally, at time 1.0, remove all the gestures from the Current Pose list to return to the Default Pose.

To render the animation, go to Scene -> Render Scene. In the dialogue, select the type of renderer you want to use and the settings appropriately; an example is shown on the right: Here I am using the raytracer with anti-aliasing on and min rays/pixel 4, max rays/pixel 16. This should give a fairly good result.

Click on 'Movie' and ensure that the Start Time is set to 0 and the End Time to 1 as this is the time range of our animation. Frames/Sec will determine how smooth animation plays. The greater the number the smoother the animation but the larger the animation file size and the longer the overall rendering time. A value of 30 is normally large enough. The Images/Frame is used if we want some motion blurring in the animation. The value entered here is the number of frames that is rendered and then averaged per frame. This adds a photorealistic effect but the rendering time is again increased. Motion blur is particularly effective for fast movement.

Previous: Texturing the Hand

Back to Contents