A Lightweight Algorithm for Real-Time Motion Synthesis
In this research, we present a technique for interactive character animation with kinematic constraints with limited computational time. Real-time synthesis of character animation is widely needed in interactive computer graphics applications, such as videogames. In these applications, the animations are generated by deforming and concatenating short motion examples stored in a motion database, in which motion examples are classified according to their moving states, for instance "walk," "run," "jump," and so on.
When the state of the character's motion changes, a smooth transition between different motion examples is necessary in order to preserve their characteristics and naturalness. In addition, deformation of motion examples to satisfy kinematic constraints is necessary for reacting to varying external conditions of moving characters. In most interactive computer graphics applications, relative joint angles of characters are used to represent postures in motion examples. Since the available computation time is rather limited in such real-time applications, each angle is often calculated by simple linear interpolation in the state of transition. This linear interpolation method of joint angles sometimes results in skating of footprints or violation of external constraints. Consequently, more intermediate motions require to be supplemented between the motion examples, thus causing unnatural motions due to the interpolation.
We developed a motion synthesis method with lightweight computation load by restricting constraints in motion editing and introducing a particle representation of postures in motions. The inverse kinematics method with particles enables fast and stable deformation of keyframe postures, and motion examples can be fitted on a frame-by-frame basis by decomposing a whole-body deformation into per-particle deformations.
By using this method, more natural motion transformations in real-time animation synthesis using motion patterns become possible. Consequently, we can expect to see an improvement in the quality of generated images, and also a reduction in the number of man-hours required due to the decrease in the number of pre-built motion patterns required for various external constraints.
We have synthesized a series of animations of a skeletal character. The animation is generated from short motion examples, which are segmented from captured motion data at 30Hz. Minor discontinuities between motion examples are eliminated by deforming the examples with the constraints of continuity of positions and velocities at both ends of the examples. The whol motion examples are deformed to satisfy the external constraints between footsteps and the floor. The computation time for synthesizing one frame of these animations is 0.2ms on Intel Pentium4 (1.7GHz), which equals 0.6% of the available time for generating animations at 30Hz. The algorithm can generate a walking animation of arbitrary length from motion examples at interactive rate without spoiling their personality.