Jerry
Yee
3/14/2005
CMPS 161
This
application animates Furrball, a cartoon cat in the Warner Brother’s Tiny Toon Adventures cartoon series. The character
is created in 3D and stands in a simple 3D football field. The primary focus of
this project is animating Furrball with hair - making it walk and animating the
hair.
To
move Furrball, set the focus to the render window by clicking inside the render
window. Then use the following keyboard keys:
To turn to Furrball’s left – press the left arrow button
To turn to Furrball’s right – press the right arrow
button
To move Furrball forward – press the up arrow button
To move Furrball backward – press the down arrow button
In
the application window, there are sliders to change the camera position. The
camera is always aimed at Furrball’s head. And the camera’s view-up vector is
always up (the y-axis). To move the camera:
To
the left - move the camera’s x slider down
To
the right – move the camera’s x slider up
Up
towards an overhead view – move the camera’s y slider up
Down
towards a perpendicular view – move the camera’s y slider down
Closer
to Furrball – move the camera’s z slider up
Farther
from Furrball – move the camera’s z slier down
There
are also sliders to modify Furrball’s hair count and walking speed:
To decrease the number of hairs – move the density slider
down
To increase the number of hairs – move the density slider
up
To decrease the walking speed – move the speed slider
down
To increase the walking speed – move the speed slider up
Furrball is created and animated using hierarchical
animation. It is rendered using separate coordinate and polygon files for each
limb: head, body, arm, hand (includes lower arm), leg, foot (includes lower
leg). The right and left arms are generated from the same files, as are the
hands, legs, and feet. The body is the main limb. The head, arms, and legs are
children of the body. The hands and feet are grandchildren of the body.
Forward
kinematics is used to rotate and translate the limbs as Furrball walks. The leg
has two degrees of freedom. It rotates about the y-axis and bends about the
z-axis. The feet has one degree of freedom.
It bends about the z-axis. The arm has one degree of freedom. It rotates
about the z-axis. The hand has one degree of freedom. It bends about the
x-axis.
There
are 5 key frames in the walking sequence. The degrees of rotation are
interpolated for each key frame. For example if the total rotation between the
current and next key frame is 90 degrees and parameter t is some real number
between 0 and 1, then the rotation at some t is (90 * t). Furrball is at rest
in key frame 1.
In
key frame 2, Furrball’s body goes up, right leg goes forward as the left leg
goes backward a little. The opposing arms move similarly. And the head bobs to
the left.
In
key frame 3, Furrball’s body goes down, the head , legs, and arms go back to
the resting position.
In
key frame 4, Furrball’s body goes up, left leg goes forward as the right leg
goes backward a little. The opposing arms move similarly. And the head bobs to
the right.
In
key frame 5, Furrball’s body goes down, the head , legs, and arms go back to
the resting position.
Hair
covers most of Furrball’s body, except the eyes, nose, hands, and feet. The
hair is randomly generated using particle simulation and line integration. For
each hair, a particle is projected from a random position on Furrball (a
polygon). The initial velocity is in the same direction as the polygon’s normal
vector. The velocity changes as a result of gravity and Furrball’s bouncing and
head bobbing as it walks. The particle’s position is taken at 8 consecutive
moments and they are connected by a line to form a single strand of hair.
Below
is a close-up image of the hair in Furrball’s resting frame. Note that only
gravitational forces are applied to the hair in this state.
Below
is a close-up image of the hair as Furrball bounces up. Note that the hair has
gone down a little from the upward movement.
Below is a close-up image of the hair as Furrball bounces down. Note that the hair has gone up a little from the downward movement.