Character Animation from MoCap Data

by Adriana Schulz,
graduate course at IMPA instructed by Luiz Velho - Jan/Fev 2010

Overview

Realistic animation of human motion is a challenging task firstly because human movements can be quite complex since joints have many degrees of freedom and secondly because people are very sensitive to inaccuracies in rendered motion.

In this context, motion capture comes out as a very interesting technique for character animation. Nevertheless, MoCap by itself only allows for the reproduction of an acquired motion and therefore, much effort has been (and is currently being) put into extending the applications of MoCap data.


Acquisition

The fist part of this course involves acquiring motion capture data. Motion capture was done in the Visgraf Laboratory using OPTITRACK cameras and the ARENA software was used to process the acquired data and export a bvh file. A complete motion database will soon be available at www.visgraf.br/database, however for the time being, the captured motion data can be found here.


image

Figure 1: Motion Capture at Visgraf.



Motion Editing and Filtering

There are many reasons that make editing captured motion extremely important. Firstly, it is usually necessary to eliminate artifacts generated during acquisition. Secondly, it is important to match time and space of computer generated environments, overcome spatial constraints of capture studios and allow for the existence of motions that would be extremely hard for an actor to perform, such as the ones used in special effects. Finally, it is interesting to be able to reuse motion data in different occasions. For example, given a walking scene, it should be possible to generate a walk on an uneven terrain or steeping over an obstacle.

Therefore, the second part of this course involved editing the acquired MoCap data.We implemented the Cartoon Animation Filter [1], which aims at making the motion more "animated" by adding effects such as anticipation, follow-through, exaggeration and squash-and-stretch. Some results are shown if Figure 2 and others can be found here.


image

Figure 3: Results of our implementation of the cartoon animation filter. The First row is the input motion of arms stretching and the second row is the filtered result.


It is noteworthy that when signal processing methods are used to transform the original acquired movements, physically impossible motion can be produced. To solve this problem, post-processing techniques should be developed in order to adjust constraint violations. It is not within the scope of this course to study or implement such techniques. However, we did implement a transform that translates the root node in order to keep the character's feet on the ground, so the character does not "fly" during the scene. Achieved results can be found here.


Motion Synthesis

There is more to editing MoCap data then simply modifying specific motion clips. It is the interest of many researches in the field to synthesis new streams of motion from previously acquired data and therefore be able to create new and more complex motions from previously acquired data.

An interesting work that has this approach is [2], which creates a motion graph in order to encapsulate connections among a database. In this graph, edges correspond to motion clips (sequence of frames) and nodes to choice points (specific frames) connecting these clips. After selecting the similar frames, or windows of frames, and creating the graph connections, a walk along the graph allows us to re-assemble the captured clips, creating new motion.


image

Figure 3: Implementation of Motion Graphs.


We implemented the framework responsible for constructing the motion graph and synthesized new motion by performing random graph walks. The developed user interface is shown in Figure 2 and some examples of our results can be found here. Future directions of this work will definitely include extracting motion from the motion graph in a fast and efficient way, meeting user specifications.


Documents

Acknowledgements

Special thanks to Bruno Madeira and Djalma Lucio for the technical support and to Rafaella Gappo for her acting performances!


References

[1] Jue Wang, Steve Drucker, Maneesh Agrawala, and Michael Cohen The Cartoon Animation Filter ACM Transactions on Graphics (SIGGRAPH'06), July 2006.

[2] Lucas Kovar, Michael Gleicher, and Fred Pighin Motion Graphs ACM Transactions on Graphics (SIGGRAPH'02), July 2002