Section: New Results
Keywords : Human Motion, Motion Capture.
Real-time animation of virtual humans with motion capture
Past years, we proposed a new formalism to model human skeletons and postures. This formalism is not linked to morphology and allows very fast motion retargeting and adaptation to geometric constraints that can change in real-time. Captured motions are consequently stored using this formalism. However motion is not limited to a sequence of postures but also takes intrinsic constraints into account, such as ensuring foot-contacts or reaching targets while grasping objects. We have proposed a xml-based language to design such constraints off-line. A user can then use a graphics interface to edit those constraints and define their beginning, end and properties while playing the captured motion. Those constraints can deal with points of the body or of the environment that both can change during real-time animation. Several types of constraints are addressed with this language: contacts and distances between points, restricted and authorized subspaces for a given point and orientation in space for a given body segment. All those constraints are converted into a unique formalism that enables to solve them thanks to a unique solver.
This solver offers inverse kinematics  and inverse kinetics  capabilities. Indeed, the control of the center of mass position allows preventing from some unrealistic postures although all the other geometric constraints are verified. For example, if geometric constraints are placed far in front from the character, he could take a posture that does not verify balance. In order to ensure balance, the user can ask the system to impose that the center of mass is placed on a vertical line going through its initial posture. In that case, we assume that balance is verified in the original captured motion. Our inverse kinematics and kinetics module is based on an improvement of the Cyclic Coordinate Descent method. In this last method, the body segments are rotated individually to solve geometric constraints, leading to unrealistic postures when numerous body segments are used. To overcome this limitation, we gathered some body segments into groups, leading to the use of the minimum set of required body segments. Moreover, we also introduced the control of the center of mass position in this algorithm (see figure 25 ). As a perspective, we wish also to control the Zero Moment Point position in order to deal with balance in very fast and dynamic motions.
The solver described above can obviously deal with captured motions but it is also able to deal with gestures calculated by other modules. Indeed, this solver is embedded in the MKM software library (cf paragraph 5.3 ) which also offers motion synchronization and blending. Hence, the solver can be used after motion blending is performed, by taking into account priorities associated to actions  .
The methods presented above were also used to make a character jump at various heights while using a unique captured motion, contrary to approaches based on dynamic simulation or motion graphs. In this approach, general mechanical laws are used to predict the new center of mass trajectory (during the contact and the aerial phase) that is required to verify the new maximum jump height. This approach should be extended to deal with more complex and various motions for which dynamics cannot be neglected.