Research

 

Back
Home
Next

Jump right to current results!

   My current main research interest is developing new methods of creating believable, expressive 3D character animation.  It's already possible for talented animators to create beautiful, rich, animated personalities like those in Toy Story or Abe's Oddysee, but the task is amazingly complex and time consuming, because animators must individually position each bodypart many many times during the course of a few seconds' animation.

   I spent roughly two years investigating advanced uses of inverse kinematics in character animation.  Inverse kinematics (IK) lets the animator focus on controlling things like "the position of the character's hands and feet, and what he's looking at", and itself figures out just how each of the joints should be positioned so that the hands and feet are in the right place.  There are typically many sets of joint values that satisfy these "constraints", and picking the set that corresponds to the animator's wishes is a difficult problem indeed.  The fruits of my labor and early ideas (in conjunction with my advisor, Andy Witkin) are an animation system I call mover.  I've used it to create several jumping animations, and to map all the Flock of Birds data from my motion capture shoot with Lamb & Co. (more to come later) to my articulated figure, George.

   However, even with the greatest IK algorithm in the world, animation is still very difficult and time consuming.  It's still difficult because the temporal interrelationships between moving bodyparts are just as crucial to believable motion as are the trajectories the bodyparts follow.  To make a musical analogy, no matter how good the melody is, the end result doesn't hold up without rhythm, and only the pros have really good rhythm.  Furthermore, creating interesting personalities is one of the chief goals of character animation, yet is an amazingly subtle task, generally involving the creation of specific mannerisms, unique ways of performing common actions, facial expressions, and so on.

    Even worse, using traditional animation tools, this vast amount of effort must be repeated for each motion animated!

    Well, it seems to me and a growing number of others that what we need is a way of capturing the fruits of talented animators' labor, along with motion captured animations, and package them up with enough smarts so that when I want to create a new animation, I can do it essentially by directing from a script:

   George enters the room at 7:05 at point X, and walks angrily across the room to point Y, where he grabs the Coke bottle with premeditation, and throws it at the television at point Z.

   For my thesis, whose proposal was titled Kinematic Motion Models for Character Animation, I don't address the English-to-computer-script translation problem, but I do deal with just about all the other aspects of the motion synthesis problem (yes, that is too big of a thesis - that's why I'm still here).  What are those aspects?

  1. Coming up with a way to build nicely parameterized motion libraries; for instance, I have a "Jump" Motion Model in the library that can be told from and where to jump, and no matter how far apart or differing in height the two locations are, the motion model produces appropriate motion in a certain style.  Style is a parameter of all Motion Models, and can go a long way towards establishing personalities for characters.
  2. Figuring out how to transition one motion into another.  If one motion doesn't end up in approximately the same position the next motion to be executed expects to start in, we must make sure we make the character move believably from one motion into the other.   Even further, we'd like to be able to specify whether the character moves into the next action with forethought (anticipation), or suddenly.
  3. Reliably combining motions so that more than one action can be performed simultaneously.   This is a subtle problem because each action may affect the other in ways that simple blending or splicing cannot hope to capture.  For instance, I have a "Jump-up" motion and a "Reach-up" motion, and I wish to combine the two to allow my character to reach something well above his head.  The act of reaching with one hand while in midair causes the whole body to pivot about its center-of-mass, in turn causing the feet to land in a different position and orientation.   Since these may be parameters of the "Jump-up" motion model, the act of combining the two motions has caused further changes in the script that must be accounted for, hopefully in a general way.

    Well, those are the problems I'm dealing with.  I realize I haven't said too much about exactly how I'm going about it.  That's because I haven't yet published anything on this work, so I'm a bit reluctant to give out details just yet.  For now, 'tho, you can check out some of my recent results.   Much more is on the way in the next month or so, so stay tuned!