Mike D. Smith and Dr. Thomas W. Sederberg, Computer Science
In conventional two-dimensional or flat animation, an artist called a character animator will draw key poses for a cartoon that specify movement and expression. Generally, one or more additional artists will take these key frames of animation and draw more images to insert between them. This creates the illusion of the cartoon moving from one key pose to the next. What the additional artists do is called inbetweening. Inbetweening is not only labor intensive and very costly, but because of production budgets and time constraints, the level of detail in the animated characters must be kept very low.
To help lower production costs, many people have tried using computers to generate inbetweens. One approach is to use computer generated three-dimensional models. With these models, key poses can be set and the computer can be used to interpolate between the positions or move from one position to the next at varying increments. The computer then automatically colors the resulting frames to look flat, giving the animation the traditional two-dimensional feel.
An undesirable side effect of the three-dimensional model technique is that the generated images often look and move mechanically. Morph Interpolated Character Animation (MICA) is a different approach to solving the problems associated with automatic inbetweening. The purpose of MICA is to create computer tools that will allow animators to efficiently generate aesthetically pleasing inbetweens for highly detailed key frames of animation.
The problem of automatic inbetweening may be divided into three parts: identifying correspondences between images, handling occlusion or overlap, and specifying correct paths of the motion that the character should follow. This report will focus on how MICA handles occlusion and motion paths.
To solve the problem of occlusion, we need to figure out how to draw inbetweens for things that are visible in one frame but not visible in another. For example, if an arm is obscured to the viewer by the body in the first frame and is fully visible to the user in the second frame, where do we get the information to correctly draw the inbetweens of the arm?
A significant part of my research has been spent trying to solve this particular problem. Before using my current method, I tried to do handle occlusion by doing complex polygon intersections of loops that surround the character’s body parts. This resulted in a lot of undesirable points and lines in the final loop intersection. It also produced inaccuracies from round off error in the calculations.
The current approach that MICA uses to solve occlusion is as follows (see Figure 1):
1) The user draws loops around corresponding body parts in each of the two sequential images. If a body part is fully or partially occluded in one of the images, the user should draw a loop where the body part should be.
2) The user sorts the body part loops in layers from top to bottom with the loop closest to the user in the top layer and the loop furthest from the user in the bottom layer.
3) MICA moves through the sorted layers of loops from top to bottom cutting out and saving the loop shapes as body parts and leaving an empty spot or gap on the source images in their place. Note: A clipped body part may contain gaps left by previously cut body parts.
4) MICA fills any gaps in the cut body parts with color and location information obtained from the corresponding loop in the other image. If both of the corresponding clipped body parts have gaps at the same location, we need to use another method such as blending colors from the edges to fill the gap.
Along with providing a solution for occlusion, I also attempted to solve the path of motion problem. The path of motion for body parts is not always obvious. For example, if the character in question is swinging its arm, you may want to decide that the path of motion for the swinging arm should be curved instead of straight. You may also want each of your characters body parts to follow their own path of motion independent of any other body part. To accommodate this, MICA allows the user to specify a different path of motion for each loop or body part. MICA currently offers the user two types of motion: linear (all the points in the body part move in a straight path to their destination), and rotary with one or two axes (the points rotate around a single axis or around an axis that rotates around another axis to their destination location). This allows users to specify a wide range of motions for their characters. Another motion path algorithm that would be helpful is called as-rigid-as-possible shape interpolation [1]. This algorithm would allow a body part to follow a more complicated and accurate motion path.
I have made significant progress in my research regarding occlusion and motion paths, but there is still much work to be done in developing intelligent selection tools and solving self-occluding rotations. I am confident that by the end of my research, MICA will be able to greatly assist animators in the generation of inbetweens for key frames of animation.
References
- Marc Alexa, Daniel Cohen-Or, and David Levin. As-rigid-as-possible shape interpolation. SIGGRAPH 2000 Proceedings, pp. 157-164, 2000