Gno Love

by: Eron Steger

Click here to see the animation (16MB).  If you cannot play it, try installing the latest version of the DivX codec.
If you have a slow Internet connection, click here to download a smaller version (2MB).


To start, I needed to come up with a story for my animation.  My original plan involved the idea of gnomes going on 'vacation', but that would have turned out to be too complex for this assignment.  Instead, the story I settled on involves a gnome coming alive and falling in love with a beautiful but inanimate female garden gnome, only to have his dreams crumble before him.

To determine how my animation would be setup, I created the following storyboard:

My final animation doesn't follow it exactly, but it did provide a useful guide, especially during motion capture.


The male gnome is made up of several parts.  The body and arms were constructed from a cylindrical polygon, whose edges were pushed, pulled, and extrude to construct an arm and the stomach.  This shape was then mirrored to construct the other arm and make the shape symmetrical.  The legs and feet were constructed from a subdivision surface, with the legs extruded out from a cube shape.  The head was constructed using a nurbs sphere, using the sculpt tool to push and pull control vertices.  The beard is simply a sculpted squished nurbs sphere.  To construct a texture for the face, I used the 3d paint tool.

The female gnome was made by copying the male gnome model and then pushing the face inward and stretching the shirt into a dress.  Hair was added using a deformed nurbs sphere.

While modeling, I used a photograph as a reference.  Unfortunately I didn't have a side view of the object, but I was still able to construct a reasonable looking 3D model.

For the background, creating the grass, flowers, and tress was all done using the PaintEffect tool in Maya.  To animate them so that the appear to be blowing in the wind, I setup the force attributes on these painted strokes.

The backdrop sky was constructed using an "EnvMap" texture on the camera's image plane.  This provided a blue sky along with a green floor for areas where the Paint Effects grass strands weren't thick enough to fully cover the area.

Motion Capture

As my animation concentrated on subtle movement, I decided to use motion capture.  Though it took a while to setup, actually capturing the animation wasn't too difficult.  I did have some problems with cameras not capturing points on the motion capture suit, the skeleton to shake.  With some slight adjustments to the position of points on the suit, I was able to get it to work properly.  Thanks to Alex Kolliopoulos for providing me much help in using the Vicon system to capture my animation.  Take a look here for his mocap tutorial.

To import the animation into Maya, I made a script to construct the skeleton and its motion.  It contains functions which when called, prompt the user for a Vicon V-file and then uses it to construct a skeleton with keyed motion.  The script is based on the script Alex created, but unlike his copies the keyframes from the locator objects to the skeleton instead connecting them.  This makes it much easier to work with since directly connecting the locators means that any tweaks to the motion must occur at the locators, not the skeleton.  This script is also able to import multiple animation into an already constructed skeleton.

To use this script, you must first have the V-file import plugin installed.  Call the 'importVSkeletonAndMotion' to prompt the user for a V-file to construct the skeleton and motion keys.  To import motions into an already constructed skeleton, select it and call 'importVMotion'.  Note that motions are inserted at the current time, so it is important that the timeline is set where you want the motion captured animation to start.

Once the skeleton was imported into Maya, the bone positions were set to fit my gnome model.  I found that although the gnome shape is much different then the shape of myself, the resulting motions still looked reasonably good, with only a small amount of sliding being visible.  I did have some trouble with joints being twisted, which I believe may have been due either to problems with the motion captured data or the positions of the bones.

To make working with the motion captured data easier, I simplified the keyframe curves.  In areas where I modified the motion of some joints by hand, I would sometimes copy sections of keys from a set of other joints at another part of the animation to go along with my manually created keys.  By combining manually created keys on some joints with motion captured keys on the other, I was able to construct natural looking movements for motions I didn't capture directly.

Physical Animation

The female gnome was made into an active rigid body, to allow it to move realistically when it is interacted with.  Since there were times I wanted the male gnome to be able to pass through the female gnome, I decided to use an invisible 'pusher' object to actually interact with her.  Unfortunately, I found properly setting up all this to be much more tedious than it would have been to keyframe it.

To shatter the female gnome, I constructed a copy of the gnome and then applied the dynamic's 'shatter' effect to various pieces of her.  To make the shatter effect occur at a particular time, I had to keyframe the 'ignore' and 'visible' attributes of the shattered pieces and the original female gnome appropriately.

Facial Animation

To make various facial expressions, I constructed several blend shapes.  The 'smile' and 'eyebrow' shapes were constructed using a cluster deformers.  The 'suprised' shape was constructed my moving and sculpting the CVs till they looked appropriate.  To construct a frowning face, I simply blended a negative amount of the 'smile' shape.

The eyelids were constructed using a nurbs sphere. To control them, I constructed an attribute that goes from 0 to 1 and using expressions based on this attribute set the open and close sweep angles of the eyelids' spheres.