Cartoon Animation

by Jared Brockway


Introduction

The word multimedia, used in the context of computer applications, usually implies image and sound. This benchmark is an indicator of a toolkit's facility for assembling applications or presentations using image, sound, and basic programming logic. Simple animation and image manipulation are also exercised since these are common to many multimedia applications.

The benchmark is a simple interactive multimedia presentation similar in function to many popular multimedia titles that introduces the characters of South Park. The series South Park began as an animated short using constructionpaper cut-outs. Since then, the construction paper method has been replaced with digitally manipulated images, but the style of animation remains the same. Kenny, Eric, Stan, and Kyle are the stars of the show. They are grade schools boys living in a mountain town where it seems to snow year round.

The setting for all the animation that takes place in the benchmark is supplied, as well as one image for each character. Each character is introduced in turn using a combination of simple programmatic animation and sound according to the specification. After the characters are introduced, a user can select a character and choose a selection from the cartoon to watch. The introductory segment exercises a toolkit's ability to do basic programmatic animation and image manipulation, play sound, and synchronize sound playback with the visual presentation. The second segment, where a user can view parts of the cartoon featuring their chosen character, exercises movie playback capability and interactive presentation logic by offering a choice of cartoon clips to play. The benchmark does not include image capture, sound capture, or sophisticated image effects since these activities are provided by separate applications such as graphics packages, sound editors, etc. The purpose of this benchmark is mainly to assemble images and sounds into a fun, interactive presentation.

It is not intended as an exhaustive test of a toolkit's capabilities, rather it is a fun way to get a feeling for the ease with which a simple demonstration can be programmed. The functions demonstrated by the benchmark are similar to what you might find in many entertainment and children's multimedia titles. All master image, movie, and sound files are included in the benchmark, so assembling them according to the specification is all that is required. The specification should be straightforward to implement in any toolkit advertising itself as multimedia authoring or presentation software, but implementation might be complicated or impossible in toolkits designed for other types of applications.

Specification

Introducing the characters

The background for the entire sequence is supplied as an image file. The images of the four characters, also supplied, should be overlayed on the background so the characters appear to be standing in a line facing forward. They should be ordered, from left to right, as follows: Eric, Stan, Kyle, Kenny.

In the next step, each characters will introduce himself by jumping in the air as his name is played. It is important to synchronize play of each character's name with his jumping. Introductions should go sequentially from right to left. As Kenny's name is played, he jumps up to a height less than half his own and lands in the same place he started. Kyle does the same, except his jump is slightly higher, followed by Stan, who jumps high enough so that the top of his head reaches the upper edge of the background image. Eric's jump is so high that his character goes completely off screen for a second and lands near the right edge of the screen--directly on Kenny's head.

When Eric lands on Kenny's head, the impact should appear to push Kenny neck-deep into the snow. For this sequence, there are two sound files supplied: a whistle with decreasing pitch (bomb) that plays during Eric's descent, and a squishing sound (squish) that plays the same instant Eric lands. Eric will disappear off screen during his jump, so the bomb sound should begin playing as he starts descending (midway through the time he is off screen). The squish sound will begin playing as soon as Eric touches Kenny's head and stop when Kenny is neck-deep in the snow. The bomb sound should stop at the same instant. (Notice that the squish and bomb sounds play simultaneously as Kenny is pushed into the snow by Eric's landing.) These animations should be fluid (more so than the real cartoon), but fast enough to appear similar to the speed of a real person jumping. Since there is bound to be some variation on what speed the implementor sees as "real", the sound files can be trimmed slightly to meet the synchronization requirements.

Playing the clips

After the Eric lands and Kenny is neck deep in the snow, everything becomes dependent on user input from this point on. If the user clicks on each of the characters, the movie clip provided for him should play in a window. If the clicks somewhere on the background, nothing happens. The benchmark provides four movie clips: one featuring each character.

Each character should have a button, normally invisible, that becomes visible when the mouse pointer moves within the bounds of the character's image. This button should be labeled "play " where is the name of the character the mouse pointer is over (e.g., play Eric, or play Stan). This button should become invisible again when the mouse pointer moves outside the bounds of the character's image. Clicking the button should open a movie window and play the movie supplied for that character. The pop-up button is functionally unnecessary (it would be more straightforward to have users click on the character image), but it is useful for excersizing a toolkit's facility for implementing basic UI controls common in multimedia applications.

If the users clicks on a character's button, the specified movie should play in a window with controls to stop and resume the animation, and close the movie window (you should be able to stop an animation by closing the window even while a movie is playing). When the movie is finished, the window should persist until the user chooses to close it.

It must be possible for several movie windows to be open at once, but degraded play quality from playing concurrent movies or moving the windows during play is acceptable. However, it is required that main presentation window (the one where Eric still stands on Kenny's head) still respond to user input while a movie is playing. For example, a user should be able to select a character, make a selection from the movie clip dialog, begin playing the movie, and immediately return to the main window to play the movie for another character. The selection dialog should still function even if a movie is being played.

A means to exit the benchmark application should be available at all times. Choosing this option (clicking this button, etc.) should immediately end the application, closing the main presentation window and any open movie windows.