EP1012791A1 - Systeme de coordination des membres pour animation interactive sur ordinateur de personnages articules avec donnees composees de mouvement - Google Patents

Systeme de coordination des membres pour animation interactive sur ordinateur de personnages articules avec donnees composees de mouvement

Info

Publication number
EP1012791A1
EP1012791A1 EP97918505A EP97918505A EP1012791A1 EP 1012791 A1 EP1012791 A1 EP 1012791A1 EP 97918505 A EP97918505 A EP 97918505A EP 97918505 A EP97918505 A EP 97918505A EP 1012791 A1 EP1012791 A1 EP 1012791A1
Authority
EP
European Patent Office
Prior art keywords
joint
joints
motions
computing
motion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP97918505A
Other languages
German (de)
English (en)
Other versions
EP1012791A4 (fr
Inventor
David A. Handelman
Stephen H. Lane
Vijaykummer Gullapalli
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Katrix Inc
Original Assignee
Katrix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Katrix Inc filed Critical Katrix Inc
Publication of EP1012791A4 publication Critical patent/EP1012791A4/fr
Publication of EP1012791A1 publication Critical patent/EP1012791A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39096Self-collision, internal collison, collision between links of one robot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2213/00Indexing scheme for animation
    • G06T2213/12Rule based animation

Definitions

  • the present invention relates to the field of computer animation. Additionally, the present invention further relates to the field of computer animation in which motion data is used to animate articulated characters .
  • Computer assisted animation is known.
  • the animator is helped by the computational power of the computer to render sequences of images which, when played back frame by frame, creates the desired animation.
  • Creating interactive sequences of animation to replicate natural human or animal-like motion is of particular interest to the animator, and is particularly difficult to create.
  • Computer animators have traditionally used forward kinematic approaches based upon * key framing" to produce animation.
  • Keyframing involves specifying the positions of the joints at specific instants in time during the desired motion (the key frames) , then interpolating between the positions of the joints in successive key frames to generate the intermediate positions of the joints over the time interval of the desired animation.
  • keyframing builds motion sequences frame by frame.
  • the keyframing approach to character animation is very tedious and time consuming, often requiring several work ⁇ days of effort to produce a few seconds of animation. Keyframing also relies heavily on the artistic abilities of the animator in order to produce realistic motions that appear smooth and natural.
  • motion capture An alternative animation method to keyframing is known as "motion capture” .
  • sensors attached to a human actor or a mechanical device are used to record (i.e., capture) data representing the positions of the joints of a person or animal over time during the performance of a desired motion.
  • capture data representing the positions of the joints of a person or animal over time during the performance of a desired motion.
  • the result is a predetermined (i.e. "canned") motion script.
  • This " canned” motion script is then used to drive a forward kinematic model of the character in order to produce the desired animation.
  • motion capture is a powerful method for reproducing complex natural human or animal-like motion
  • its main drawbacks are 1) the character' s body configuration is restricted to be similar to that of the performer generating the motion- capture data, 2) the resulting animations are stereotypical and limited to the set of movement data collected during the motion capture session, and 3) the range of possible movements is restricted to the movements a real person or animal is capable of performing.
  • inverse kinematics for computer animation.
  • IK inverse kinematics
  • Inverse kinematics (IK) a desired position and/or orientation in three-dimensional space is specified for a particular part of an articulated character's body. Inverse kinematic methods are then used to calculate body joint angles such that the particular part can be moved to the desired position and/or orientation. Inverse kinematics often is used with keyframing approaches to assist the animator in manipulating the character' s body into the desired postures for the key frames, thereby allowing animated character movements to be produced with less design effort.
  • Behaviors are defined as self-initiated movements generated in response to goal-based commands and interactions with the environment. Examples of behaviors are movements that enable a character to automatically "walk forward * , "sit", “stand”, “jump” and the like. High-level goal-based behaviors can b « achieved using an integrated combination of both forward kinematics and inverse kinematics.
  • the main advantage of animating characters using behaviors is that a potentially infinite variety of resulting movements can be created on-line, and modified in real-time. As a result, the characters produced by behavioral animation are both responsive to the user and interactive with their environment.
  • the present invention is embodied in a Limb Coordination System involving on ⁇ line computational methods for coordinating limb movements of articulated characters by solving associated forward and inverse kinematics problems in real time subject to multiple goals and constraints.
  • the Limb Coordination System of the present invention determines how the joints of an interactive character should rotate as a function of time to produce goal-directed limb movements that appear natural and realistic to the viewer.
  • the present invention is embodied in a method and apparatus for interactively controlling and coordinating the limb movements of computer-generated articulated characters with an arbitrary number of joints.
  • a novel on-line successive approximation method is used for solving inverse and forward kinematics problems concurrently, taking into account multiple goals and constraints.
  • the present method is capable of producing fully interactive goal-directed behaviors in real-time for three- dimensional articulated characters with multiple limbs through the simultaneous satisfaction of position, alignment, posture, balance, obstacle avoidance, and joint limitation constraints.
  • the character* s joint movements are automatically transformed such that all its body motion is produced relative to the contact point.
  • the ability to define and redefine the contact point enables a character' s movements to adapt in an on-line manner to accommodate uneven terrain, modifications to its body, or changes in the environment.
  • a synergy is defined herein as a process which produces a set of joint angle movements that attempt to satisfy a higher-level goal, such as a positioning, alignment, posture, balance, obstacle avoidance, or joint limitation constraint.
  • a higher-level goal such as a positioning, alignment, posture, balance, obstacle avoidance, or joint limitation constraint.
  • Five primary synergies are disclosed in the present invention: Position, Alignment, Avoidance, Balance and Posture.
  • a primary synergy' s name corresponds to the constraint it attempts to satisfy, with the exception that joint limitation constraints are enforced by a Synergy Coordination process discussed hereinafter.
  • two types of synergy components Tangential and Radial, are also disclosed. These synergy components are used to provide the Position, Alignment, Avoidance and Balance synergies with movement components in both tangential and radial directions.
  • the synergies disclosed in the present invention use a novel geometric successive approximation process which greatly simplifies the problem of limb coordination.
  • a first body joint is moved independently, while the movements of the other joints are temporarily frozen, and the error (e.g. position error, balance error etc., depending on the synergy) is minimized to a new error.
  • the error e.g. position error, balance error etc., depending on the synergy
  • a second body joint is moved independently, while freezing the movements of a new set of other joints, and the new error is minimized. This procedure continues until all the joints have been moved independently to minimize the error.
  • the synergy output at the end of each approximation step is a set of suggested joint angle movements for the joint under consideration.
  • another process called Joint Coordination is used to combine suggested joint rotations computed by a synergy to improve computational efficiency and produce natural-looking limb and body movements.
  • each synergy produces a different set of suggested joint angle movements.
  • a Synergy Coordination process is used at this stage, to achieve high-level objectives (such as walking) that require the simultaneous satisfaction of multiple goals and constraints.
  • the Synergy Coordination process determines the relative contribution of each synergy to the overall movement based upon weighting factors that adjust the strengths (or gains) of the synergies. For example, if a character is about to fall down, the joint angle movements suggested by the balance synergy might be given more weight (i.e. strength) than those suggested by the posture synergy.
  • Joint Coordination is used to determine the order in which synergy computations are applied to a set of joints. It is only at the end of the successive approximation process that the final set of weighted joint angle rotations are applied to the character and used in the rendering of the image that produces the desired animated movements.
  • a behavior is a higher-level function, often constructed using the laws of physics and other logic, that supplies synergies with goals such as the positions of the hands, head, feet and center-of-gravity as a function of time and also sets the relative strengths of the synergies.
  • a jumping behavior can be created by giving a character' s body mass, attaching springs to its legs, then pulling the body down and releasing it. Jumping motions are produced by simulating the dynamics of the mass-spring system on-line in real time. Consequently, in such a behavior the more the legs are compressed prior to takeoff, the higher the character jumps.
  • the legs automatically flex at the knees to the extent necessary to absorb the force of the impact,- the higher the original jump, the more the knees automatically flex.
  • More complex motion sequences can be created using behaviors as building blocks. For example, a higher-level task such as walking over uneven terrain while avoiding obstacles can be performed by jointly activating a walk behavior for generating forward motion, a dynamic balance behavior for automatically repositioning the character' s center-of-mass and feet as a function of the surface contour, and an obstacle avoidance behavior for stepping/jumping over or going around obstacles.
  • a walk behavior for generating forward motion
  • a dynamic balance behavior for automatically repositioning the character' s center-of-mass and feet as a function of the surface contour
  • an obstacle avoidance behavior for stepping/jumping over or going around obstacles.
  • the present invention is an iterative computational procedure that always produces meaningful joint motion (with no singularity conditions) after each iteration of the computation. It is not necessary to wait for the present process to converge to a minimum error condition.
  • the results of the calculation can be used "anytime” , i.e. , within the constraints of a real time animation system.
  • the present methods tolerate more tracking error, i.e., greater position, velocity or acceleration error, than matrix inverse methods, but in return provide more natural motion, and faster calculations.
  • the present invention can handle body configurations in which matrix methods fail.
  • a single iteration involves very little computation in the present method, and any additional iterations serve to rapidly increase the accuracy of the results, with most cases requiring less than 4 iterations to converge.
  • the "anytime" nature of the present method also means that non-converged intermediate computational results can be used without destabilizing future computations. Intermediate results also can be used as the starting point for the next computation iteration, making the present invention ideal for animating articulated characters in interactive applications.
  • the present invention uses a computational method that is based on geometry rather than error gradients.
  • the present invention incorporates a computational method for coordinating joints based on the body configuration that prevents unstable, oscillatory motion from taking place.
  • the latter stabilizing method is not only useful with the present invention, but also can be used with other prior art incremental inverse kinematic approaches, including those based upon error gradients.
  • the present invention enables a character' s joint hierarchy (skeleton) , represented as a collection of kinematic chains, to be anchored in the world at arbitrary points of contact.
  • skeleton a character' s joint hierarchy
  • the variable contact point feature allows characters to produce fully-interactive, non- scripted goal-directed movements that are capable of accommodating environmental variability.
  • Some of the above animation techniques are interactive and others are not.
  • the techniques of keyframing and motion capture produce fixed, i.e., scripted and non-interactive motion data.
  • Interactive techniques such as behavioral animation, and others, are desirable because of their ability to provide computer generated animation in an interactive environment.
  • the present invention is embodied in on-line computational methods for significantly enhancing playback of canned motion sequences by making the playback interactive in real time.
  • the data can be interactively modified to alter the motion of all or a subset of the body' s joints in a goal-directed fashion, while retaining the qualitative characteristics of the original motion data.
  • non-interactive motion data of a baseball swing is available, not only can the swing be played back as it was originally recorded, but similar swings also can be generated in which the bat trajectory is modified to swing high or low depending on the pitch.
  • motion is represented as a set of joint angle commands, a contact point and a contact chain.
  • the joint angle commands represent the angles by which each joint is to be rotated
  • the contact point in world coordinates is the part of the body in contact with the larger environment
  • the contact chain represents the order of transform processing consistent with and derived from the stored representation of the body.
  • synergies To animate the movements of a character' s body, a limb coordination system is used that performs separate calculations at each joint using goal-based motion primitives called synergies.
  • a synergy is a process which produces a set of joint angle movements that attempt to satisfy a higher-level goal, such as a position, alignment, posture, balance, obstacle avoidance, or joint limitation constraint.
  • Five primary synergies are preferred in the present limb coordination technology: Position, Alignment, Avoidance, Balance and Posture. Together, these synergies provide a comprehensive ability to interactively control the motion of the character' s body.
  • Each of the synergies produces a set of joint angle movements that attempt to satisfy one constraint.
  • the resulting motion is a blend of the motion due to each constraint.
  • Motion is effected by giving more weight to one synergy. For example, for a fighting character, more weight might be given to balance rather than posture, so the character is less likely to fall down. For a dancer, motions might look more fluid if additional weight were given to movements centered around particular body postures.
  • motion data is translated to be expressed in the same form as motion commands derived from synergies. Then, the motion data can be compared or combined with the synergy outputs to produce motions having the characteristics of both.
  • the amount of influence of the motion data therefore depends, like any other synergy, on the weight given to it.
  • non-interactive motion data is combined with the interactive limb coordination in three ways.
  • interactive motion data animation technology is used to control the motion of a subset of the free joints during the course of playback. For example, if non-interactive motion data for a walking gait only specified how the legs and hips move during the walk, the motion data is used to direct leg and hip movement, while synergy-based control is used to drive the motion of the arms, either to swing realistically to match the gait, or to perform any task required such as pointing, waving, or gesturing in an interactive and realistic fashion.
  • the interactive motion data animation technology of the present invention enables smooth transitions to be generated from one motion sequence to the next in a sequence automatically, such as transitions from purely synergy-based control to non-interactive motion data playback and back again to purely synergy-based control.
  • both non-interactive motion data and interactive animation program control commands are blended to specify elements of desired position, alignment, avoidance, posture, balance and/or joint limitation synergy goals as a function of time.
  • the non-interactive motion data provides one set of joint angle commands as a function of time.
  • the synergy-based limb coordination provides another set of joint angle commands as a function of time. Since the joint angle commands from both motion capture data and interactive based synergies are combined, the resulting motion is both interactive, and bears a resemblance to the original non-interactive motion data.
  • non-interactive motion data is used to create a template for interactive synergy based control, enabling purely synergy- based animation control to interactively produce motions characteristic of the original motion data movement sequences .
  • Samples of motion data are compared to movement data from synergy-based interactive control, for similar tasks or behaviors.
  • the error between the non-interactive motion data and the synergy-based data is quantified using a suitable error function.
  • the parameters of the synergy-based control such as synergy strengths and gains, are then modified, and the process is repeated, so as to minimize the error. Any one of a number of well known error minimization techniques, such as least squares minimization, may be used in the process.
  • Creating a template from non-interactive motion data "tunes" the adjustable synergy parameters, enabling subsequent program control to generate fully interactive movements that qualitatively resemble the original motion data.
  • the present methods integrate non-interactive motion data with interactive control, taking into account multiple motion sequences with arbitrary transitions between sequences, and multiple interactively specified goals and constraints.
  • the present methods are capable of producing seamless playback of non-interactive motion data sequences with additional fully interactive goal-directed behaviors in real-time through simultaneous satisfaction of position, alignment, posture, balance, obstacle avoidance, and joint limitation constraints.
  • Figure 1 is block diagram of the overall system of behavioral animation embodying the present invention.
  • Figure 2 is a block diagram illustrating the coordination of synergies to produce body mechanics in accordance with the present invention.
  • Figure 3A is an example of a joint hierarchy for an armless biped character
  • Figure 3B is a flowchart for creating a contact chain given a hierarchical skeleton composed of parented joints.
  • Figure 4 is a flowchart for creating a center-of-gravity chain given a hierarchical skeleton comprised of parented joints.
  • Figure 5A is a stick figure illustration of the Tangential Synergy component in accordance with the present invention.
  • Figure 5B is a detail diagram of the rotation of joint 3 of Fig. 5A in accordance with the present invention.
  • Figure 6 is a stick figure illustration of distal-to-proximal Joint Coordination using the Tangential Synergy component in accordance with the present invention.
  • Figure 6A is a detail of elbow rotation in accordance with the present invention.
  • Figure 6B is a detail of shoulder rotation in accordance with the present invention.
  • Figure 6C is a detail of hip rotation in accordance with the present invention.
  • Figure 6D is a detail of knee rotation in accordance with the present invention.
  • Figure 6E is a detail of ankle rotation in accordance with the present invention.
  • Figure 6F is a detail of the cumulative positioning of the control point in accordance with the present invention.
  • FIG. 7 is an illustration of the Radial Synergy component in accordance with the present invention.
  • Figure 8 is a flow chart diagram illustrating the Position Synergy computation in accordance with the present invention.
  • Figure 9 is a flow chart diagram illustrating an alternative Position Synergy computation in accordance with the present invention.
  • Figure 10 is a stick figure illustration of the Balance Synergy in accordance with the present invention.
  • Figure 10A is a detail diagram of the rotation of joint 1 of Fig. 10 in accordance with the present invention.
  • Figure 10B is a detail of the body of stick figure illustration of Fig. 10 in accordance with the present invention.
  • Figure IOC is a partial body detail of the body of stick figure illustration of Fig. 10 in accordance with the present invention.
  • Figure 10D is an upper body detail of the body of stick figure illustration of Fig. 10 in accordance with the present invention.
  • Figure 10E is an arm detail of the body of stick figure illustration of Fig. 10 in accordance with the present invention.
  • Figure 10F is a forearm detail of the body of stick figure illustration of Fig. 10 in accordance with the present invention.
  • Figure 10G is a detail of the relative locations of the distal center-of-mass of each joint in the body of the stick figure illustration of Fig. 10 in accordance with the present invention.
  • Figure 11 is a stick figure illustration of proximal-to-distal Joint Coordination using the Tangential Synergy component of the Balance Synergy in accordance with the present invention.
  • Figure IIA is a detail of ankle rotation in accordance with the present invention.
  • Figure IIB is a detail of knee rotation in accordance with the present invention.
  • Figure 11C is a detail of hip rotation in accordance with the present invention.
  • Figure 11D is a detail of shoulder rotation in accordance with the present invention.
  • Figure HE is a detail of elbow rotation in accordance with the present invention.
  • Figure HF is the final posture position of the stick figure of Fig. 11 after using the Tangential Synergy component of the Balance Synergy in accordance with the present invention.
  • Figure 12 is a flow chart diagram of the Balance Synergy computation in accordance with the present invention.
  • Figure 13 is a stick figure illustration of the Posture Synergy in accordance with the present invention.
  • Figure 14 is a flow chart diagram of the Posture Synergy computation in accordance with the present invention.
  • Figure 15 is a stick figure illustration of the Alignment Synergy in accordance with the present invention.
  • Figure 16 is a flow chart diagram illustrating the Alignment Synergy computation in accordance with the present invention.
  • Figure 17 is a stick figure illustration of the Avoidance Synergy in accordance with the present invention.
  • Figure 18 is a flow chart diagram illustrating the Avoidance Synergy computation in accordance with the present invention.
  • Figure 19A is a flow chart diagram illustrating a weighted sum Synergy Coordination process in accordance with the present invention.
  • Figure 19B is a flow chart diagram illustrating a prioritization Synergy Coordination process in accordance with the present invention.
  • Figure 19C is a flow chart diagram illustrating winner-take-all Synergy Coordination process in accordance with the present invention.
  • Figure 20 is a block diagram of the overall system of interactive motion capture playback embodying the present invention.
  • Figure 21A is a stick figure illustrating a motion capture sequence.
  • Figure 21B is a is a stick figure illustrating a motion capture sequence integrated with a synergy based interactive sequence in accordance with the present invention.
  • Figure 22 is a flowchart diagram illustrating interactive motion capture playback in accordance with the present invention.
  • Figure 23 is an example of a joint hierarchy for an armless biped character
  • Figure 24 is a block diagram of a system for creating a template using motion capture data to tune a synergy based interactive computer animation system.
  • Figure 25 is a flowchart diagram illustrating a method for creating a template using motion capture data to tune a synergy based interactive computer animation system.
  • Fig. l An overview of a behavioral animation system is shown in Fig. l.
  • High-level motor tasks 10 which are generated in response to user input commands 9, are decomposed into lower-level task commands that activate and coordinate behaviors 12.
  • Behaviors 12 set goals for the next lower level, synergies 14, which in turn provide joint angle commands for the body kinematics and image subsystem 16 to graphically render the joint angle commands on the video image as motion.
  • the high level motor task “go open the door” may be a sequence of behaviors such as “walk” , “reach” , “grab” and finally, "pull” .
  • Behaviors endow the animated character with task specific capabilities such as walk, run, jump, pull, dodge, etc., and simplify the animator' s job considerably. Behaviors also permit general interactions between the animated character, its environment, and the user without the need for pre-programming the kinds of interactions permitted or pre-specifying the nature of the environment.
  • synergies systems and processes that generate the goal values for the lower level synergies. Synergies are often collected into groups which are associateds with behaviors for convenience.
  • the outputs of the synergy subsystem 14 are commands to the body kinematics function 16, which, in cooperation with the image storage, rendering and display functions 16 actually animate the character by generating video for display 13 or storage 15, which may be a magnetic tape or form of disk storage media, or any computer memory.
  • Animation is driven by joint angle commands. Animation is created when the character' s position is updated in memory (by changing joint rotations, and/or body part positions and orientations), and the rendering subsystem creates a frame of video with the character in the new computed body pose and location.
  • a basic concept herein is that of a "synergy" .
  • a synergy couples the motion of a subset of a character' s joints for the purpose of satisfying a specific goal as specified by behavior 12 and task 10 commands. More particularly, a synergy couples the motion of a subset of a character' s joints responsive to a specific goal or constraint. For example, a simple goal is to move a hand from point A to point B.
  • movement from an initial point to a final point is realized by plural synergies, each of which coordinate some or all of the body limbs in making the desired movement.
  • Each of the plural synergies takes into account at least one constraint (e.g. balance, posture, etc.) .
  • Generating hand movement based on a balance constraint produces different limb movements than generating hand movement based on a posture constraint.
  • the plural synergies are coordinated by combining the joint angle commands from the different synergies, to provide limb movement which takes into account such different, plural synergies. By coordinating synergies, a more natural limb motion is achieved.
  • the speed and quality of the Limb Coordination System is dependent on how the synergies are implemented.
  • successive approximation is used to solve forward and .inverse kinematics problems in real time to coordinate the limbs of human and animal-like articulated characters. Characters are animated while simultaneously attempting to satisfy the constraints of position, alignment, posture, balance, obstacle avoidance, and joint limitation.
  • the simultaneous satisfaction of multiple constraints enables the creation of fully interactive goal-directed behaviors that produce life-like limb coordination and body movements.
  • the present method is implemented to run on-line and in real-time (as in a video game)
  • the present method also may be used to generate video on a non-real time basis, as may be useful in traditional animation (film, television, cartoons etc.) .
  • a body is a skeleton comprised of "links” connected together by “joints” in a hierarchical tree-like ⁇ tructure.
  • Joints are body joints such as wrists and elbows, while links are body parts between joints, such as forearms, lower leg, foot, etc.
  • Each link has various attributes associated with it, the most important of which are its mass and physical dimensions. The dimensions are usually fixed, but they can be variable if the link can, for example, elongate or shrink in size.
  • Joints join two links together in a way that allows them to rotate in relation to each other about the joint' s axes of rotation.
  • the preferred embodiment uses Euler angles to represent the orientation of a joint relative to its parent. Any order of rotation about three orthogonal coordinate axes in a frame of reference may be used.
  • An alternative embodiment can be formulated based upon use of quaternions to represent the orientation of a joint relative to its parent.
  • proximal and distal are relative terms describing a given joint relative to the contact joint. Joints may thus be ordered in terms of their distance in the joint hierarchy from the contact point, proximal-to-distal, or distal-to-proximal.
  • the Limb Coordination System consists of the following components:
  • BODY a tree-like data structure used to represent the hierarchical relationship and physical properties of the joints and links in an articulated figure' s body.
  • a limb coordinated body can have any joint serve as the origin (i.e. contact point) for the body's forward kinematic chain computations,
  • SYNERGIES Low-level goal-based motion primitives producing joint movement commands that attempt to satisfy position, alignment, balance, posture, avoidance or joint limitation constraints,
  • SYNGROUPS Groups of synergies that, when activated by a behavior, produce goal-directed actions that attempt to satisfy multiple constraints.
  • BEHAVIORS Mid-level command generators, functions and conditional logic that activate SynGroups and provide the associated synergies with desired goals, gains and relative strengths as a function of the task at hand so that the articulated character performs a specified high-level action such as getting up from a chair or opening a door.
  • MOTOR TASKS High-level command generators, functions and conditional logic that activates specific behaviors in conjunction and in sequence to perform specified tasks.
  • a layered approach is used to control the animation of a body as illustrated in Fig. 1.
  • one or more synergies are used to coordinate the motion of subsets of the body' s joints.
  • the body position is updated using forward kinematics based upon the active contact point.
  • a synergy coordination mechanism is used to arbitrate between the synergies.
  • Synergy coordination is illustrated in Fig. 2 by example.
  • the body kinematics 16 is responsive to right and left shoulder, elbow, hip, knee and ankle joint commands from the synergy coordination function 18.
  • Synergy coordination 18 is a process for coordinating the outputs of position synergies 22, alignment synergies 24, avoidance synergies 26, balance synergy 28 and posture synergy 30 using weighted sum, prioritization and winner-take-all combination schemes.
  • the output of each synergy 22-30 is a set of angles through which each joint is to be rotated. The contribution of each synergy to the final resulting movement is not necessarily equal.
  • the resulting movement provides new position, orientation and joint angles for the body kinematics 16, which are used in a feedback arrangement 17, as the new body position reference from which to compute the next set of synergy outputs.
  • a body skeleton composed of joints is maintained for each articulated character.
  • the parenting relationship of one joint to another defines the body topology, which can be represented by a tree structure 300.
  • An example of joint parenting, for an armless bipedal character, commonly referred to as a "biped” is illustrated by the topology in Figure 3A.
  • the joints are root 302, left hip 304, right hip 306, left knee 308, right knee 310, left foot 312, right foot 314, waist 316 and head 318.
  • the root joint specifies the origin of the joint tree, and therefore has no parent.
  • the left hip is parented to the root
  • the left knee is parented to the left hip
  • the left foot is parented to the left knee.
  • the right hip is parented to the root
  • the right knee to the right hip and the right foot to the right knee.
  • the waist is parented to the root
  • the head is parented to the waist.
  • Each joint has additional properties associated with it, including a mass, a preset position and orientation relative to its parent, the joint' s position and orientation relative to its preset position and orientation, relative position and orientation limits, a reference to a graphical object representing an associated body part, and dimensions of a bounding box (length, width, and height) to be used in collision detection computations.
  • a joint also has a type: regular joint or ball joint.
  • the orientation of a regular joint is referenced to (is relative to) its parent, whereas the orientation of a ball joint is referenced to some other coordinate system, usually the world coordinate system.
  • the world coordinate system is the coordinate system of the environment containing the articulated character.
  • Ball joints function as convenient " inertial" platforms that goals can be specified with respect to. For example, a ball joint located at the waist of a biped that moves with the waist, but always remains level, is a convenient frame of reference for specifying the coordinates of positioning and alignment hand and head goals.
  • the character body is assumed to have a "contact point" that specifies the point on the skeleton that is anchored in the world. It is the starting point for computing the forward kinematics of the body.
  • the anchor point or contact point for a character is often specified in world coordinates. For example, the contact point for a biped standing on its left foot is its left foot joint.
  • the "root" of the body remains the contact point when computing the forward kinematics of a character.
  • any point (or joint) of a body can be used as a contact point.
  • the Limb Coordination System uses a logical re-parenting of the body skeleton to compute the forward kinematics.
  • the present Limb Coordination System maintains a list of joints for each possible contact point that specifies the order of computation required for the forward kinematics from that contact point. This list can be either computed in advance or generated "on the fly", i.e., in real-time as the system operates. These ordered joint lists are called "contact chains" .
  • Fig. 3B illustrates one way to generate contact chains automatically for the sample biped above.
  • FIG. 3B depicts a recursive algorithm that generates a contact chain given an initial joint specified as the contact point (the "contact joint") .
  • each joint passed as the activeJoint parameter to the algorithm not only adds itself to the contact chain, but also has the option of recursively calling the algorithm with its next distal or proximal joint as the activeJoint. In this case the joint calling the algorithm becomes the callerJoint.
  • the contact chain indicates the order in which relative transformation matrices should be multiplied in order to determine each joint' s absolute
  • Left_foot contact chain (left_foot is the contact point) : left_foot,left_knee,left_hip,root,waist,head,root,right_hip,right_kne e,right_foot
  • right_foot contact chain (right_foot is the contact point) : r i g h t _ f o o t , r i g h t _ k n e e , r i g h t _ h i p , r o o t , w a i s t , head, root , left_hip, left_knee , lef t_foot
  • head contact chain (head is the contact point) : head,waist, root , right_hip, right_knee, right_foot, root, left_hip, left_knee,left_foot
  • the contact chain is generated by starting from the joint designated as the contact point and selecting and adding successive joints back to a branch point such as the root. Continuing from the root (or other branch point), successive joints are selected until an extremity (leave joint in the joint hierarchy tree) is encountered, which can be any remaining extremity not already included in the contact chain. From each extremity, the contact chain is continued by adding the root (or other branch point) , then selecting and adding successive joints to the chain until another extremity is reached. The process is continued until all the joints are accounted for in the generated contact chain.
  • any point on the skeleton (not just the joints) can be made a contact point by adding a "phantom" joint to the skeleton hierarchy at that location. For example, if a contact point is needed on the lower left thigh between the left hip and left knee, a "phantom joint" can be attached to the thigh link and located as needed, and the previous algorithm can be called to create a contact chain for this new joint.
  • a center-of-gravity (CG) chain described below, can be created as well. Consequently, the present method for skeleton representation is general in its ability to represent skeleton anchor points.
  • the Limb Coordination System also uses a similar type of list of joints to compute the center-of-gravity (CG) distal to each joint given the active contact point.
  • the distal CG of a joint is defined as the location of the cumulative mass of all joints distal to the given joint.
  • a "CG chain" is the ordered list of joints that indicates the order in which joints should be considered during the computation of distal CGs.
  • the CG chain is generated somewhat differently from the contact chain.
  • the CG chain begins by selection of the contact point and is continued by selecting successive joints back to the root (or another branch point) . From the root (or branch point) , the CG chain continues from an extremity, which can be any remaining extremity not already included in the CG chain. From the selected extremity, the CG chain is continued by selecting successive joints back to the root (or branch point) . The process continues until all joints are accounted for in the CG chain.
  • CG chain computation proceeds from the distal joints to the contact point.
  • These CG lists can be generated in advance or automatically generated on-the- fly as the system operates.
  • One approach is shown in Fig. 4.
  • the CG chain indicates the order in which distal centers-of-gravity should be computed, from the most distal centers-of-gravity of the joint hierarchy to the proximal contact point.
  • the algorithm first recursively calls the algorithm for joints which are direct children of the activeJoint in the joint definition hierarchy 400. Then it recursively calls the algorithm for the parent of the activeJoint 410. Finally, it inserts the activeJoint into the CG chain 420.
  • CG chains for the sample body discussed shown in Fig 3A are as follows:
  • left_foot CG chain (left_foot is the contact point) : right_foot,right_knee,right_hip,head,waist,root,left_hip,left_knee, left_foot
  • right_foot CG chain (right_foot is the contact point) : left_foot,left_knee,left_hip,head,waist,root,right_hip,right_knee, right_foot
  • head CG chain (head is the contact point) : left_foot,leftjcnee,left_hip,right_foot,right_knee,right_hip,root,waist, head
  • a synergy is a computational mechanism for coordinating the motion of a subset of body joints in order to satisfy a specific goal-based constraint.
  • Each synergy has a contact point, a list of joints, a goal, and a set of gains associated with it.
  • Individual joints may be associated with any number of synergies.
  • each synergy Given a value for a synergy goal and the current state of the body, each synergy computes how the set of joints it coordinates should move in order to achieve its goal. Relative gains are specified for each of the joints in a synergy, allowing some joints to contribute more towards meeting the synergy's goal than others.
  • Synergy gains can range from 0.0, implying no contribution to the motion of a joint, to 1.0 implying that the joint is moved to the full extent of its computed motion.
  • each synergy has a strength assigned to it. The synergy strength determines the contribution of that synergy to the total amount of movement computed for the joints. Synergy strengths also range between 0.0 and 1.0.
  • a Synergy Coordination mechanism determines how individual synergy joint movements are combined with the joint movements suggested by other synergies.
  • the object of a synergy is to position and/or orient a specific control point to satisfy a goal-based constraint.
  • the control point can be any point, joint or vector associated with the body.
  • the specification of the goal for a synergy has three elements: the control point to be positioned, the goal point (the desired location and/or orientation of the control point ) , and the coordinate frame in which the goal point location is specified.
  • the specification of such a coordinate frame allows the desired goal point location to be specified relative to an any arbitrary coordinate system in 3D space, including that of any other joint.
  • the left hand should be relative to the right hand and the synergy will try to maintain that relative position even as the right hand moves through space.
  • Three primary synergies are disclosed in the present invention: Position, Balance, Posture, Alignment and Avoidance as well as two types of synergy components (Tangential and Radial) .
  • the Tangential and Radial synergy components will be described first, then each primary synergy type in its turn.
  • the Tangential and Radial synergy components are generic. That is, they can be used in Position, Balance, Alignment and Avoidance synergy computations by appropriately defining the respective synergy error vectors.
  • Figs. 5A and 5B illustrate the computation performed by the tangential synergy component.
  • the tangential synergy computes the three-dimensional rotation of such joint that minimizes the error between the goal point (gp) location and the control point (cp) location, assuming that all the other joints are held motionless.
  • the rationale for the tangential synergy component is the following. Because all other joints are held motionless during each synergy computation step, the only possible movements of the control point are rotations about joint i. Moreover, by rotating joint i, the control point only can be located at some point on a sphere centered at joint i. The point on this sphere closest to the desired goal point location lies on the line joining joint i and the desired location. Therefore, as illustrated in the example in Fig. 5B, the synergy computes the joint rotation that moves the control point to lie on this line.
  • the term tangential is descriptive of the motion of the control point tangentialiy along the arc of a circle.
  • an articulated character 500 is shown having 10 joints, a head and 11 body links.
  • the location of the control point and the desired location of the goal point are provided to the tangential synergy component by higher-level behaviors and tasks.
  • the synergy goal is to move joint 508 (the control point) to the goal point location 510.
  • the problem to be solved is to compute the joint angle rotation commands for each joint which minimizes the length of the error vector 516.
  • arc 507 is the circular trajectory of control point 508 at a radius r 3 from joint 502 (hip) , as joint 502 is rotated (assuming all other joints are held stationary, i.e., joints 504 and 506 are held frozen or motionless) so as to minimize goal error vector 516.
  • Similar circular trajectories at radii r 1# r 2 , r 4 and r 5 from joints 514, 512, 504 and 506 are scribed for each of the other joints to individually minimize the error vector 516.
  • Each such rotation of the joints, independent of the other joints is a trial motion forming a successive approximation to the final motion to be used in rendering the video image.
  • FIG. 5B depicts a portion of the articulated character 500 consisting of joints 502, 504, 506 and 508 (from Fig. 5A) .
  • the angle of rotation which will rotate joint 502 such that control point 508 is nearest goal point 510 to minimize error vector 516 is computed.
  • the initial configuration 518 of the limbs is shown in dashed lines.
  • the desired final position 520 is showed in alternating dots and dashes.
  • the final configuration minimizes the error vector by bringing control point 508 as close as possible to goal point 510 by rotating joint 502 while holding joints 504 and 506 (and all others) motionless.
  • the final position of joint 508 lies on a line between joint 502 and goal point 510.
  • position 508 of the control point is referred to above as the "final” position, it is only “final” (assuming the synergy strength is 1.0) with respect to one step of the successive approximation process, i.e. the rotation of the hip joint 502.
  • position 508 is only an intermediate trial position, used for computing the proposed rotation of hip joint 502.
  • other proposed joint angle rotations for hip joint 502 will be computed from other synergies.
  • the final joint angle rotation commands for hip joint 502 will be the result of the Synergy Coordination 18 shown in Fig. 2.
  • the angle of rotation for each joint is computed using geometry and trigonometry.
  • the tangent of the desired joint angle rotation is proportional to the magnitude of the vector product of the associated radius vector and the error vector, and inversely proportional to the sum of the square of the radius vector and the dot product of the radius vector with the error vector. If the desired goal point location is outside the reach of the character, the tangential synergy will cause the control point to be moved as close to the desired goal point as physically possible.
  • Joint Coordination One method of Joint Coordination that is especially useful for coordinating the rotations of the tangential synergy 1 s joints is a distal-to-proximal rule. Joints are arranged in an ordered list, called the SynJoint list, starting with the joint closest to the control point and proceeding towards the contact point. Fig. 6 illustrates the distal-to-proximal rule for computing consecutive reductions in error using the present successive approximation process Joint Coordination method. Joint 608 is the control point and ankle joint 614 is the contact joint.
  • Rotations are computed for each joint on the SynJoint list, one joint at a time based on the order of appearance of a joint in the SynJoint list.
  • an intermediate position of the control point is computed using standard geometry and trigonometry calculations to rotate the vector r, which extends from the joint under consideration to the control point, to be collinear with the line segment between the joint location and the desired goal point location.
  • the new trial location of the control point is then used to update the error vector e used in the tangential synergy computation at the next proximal joint.
  • the sequence of operation is illustrated in Fig. 6.
  • Fig. 6 depicts an articulated character 600 consisting of joints 602, 604, 606, 608, 612 and 614.
  • the distal-to-proximal order of joints is elbow 606, shoulder 604, hip 602, knee 612 and ankle 614.
  • the rotation of elbow 606 that will move the control point 608 nearest goal point 610 to minimize error vector e n 616 is computed.
  • a detail drawing of the trial motion of the elbow joint is shown in Fig. 6A.
  • the final residual error e 5 remaining after the computed motion is shown in Fig. 6F.
  • the result of the tangential synergy computation is a series of joint angle rotations for each joint that drive the control point to the goal point within an error of e 5 .
  • the joints of the articulated character 600 have not actually been physically rotated yet.
  • the tangential synergy is only one of many synergies used to compute joint angle rotations during the limb coordination process.
  • distal-to-proximal ordering of computation Due to the distal-to-proximal ordering of computation, at each stage of the successive approximation process, only the distal joints necessary for eliminating the synergy goal error are used to move the control point. For example, if a character' s hand is to be positioned using a Position Synergy, for small positioning errors, only the elbow joint moves. However, when the error is larger, more proximal joints such as the shoulder and the waist also contribute rotations to reduce the error. The result is a coordinated motion of the body as a whole that looks very natural.
  • the distal-to-proximal Joint Coordination rule is only one example of the present successive approximation process Joint Coordination method. In general, any order of joints can be used in the Joint Coordination method.
  • a proximal-to- distal rule where the order of joint updates is the reverse of that of the distal-to-proximal rule
  • a parallel update rule where all the joints are updated in parallel using the same error vector
  • a generalized update rule where the joints are updated in an arbitrary pre-specified order.
  • the radial synergy component illustrated in Fig. 7, is designed to be used in conjunction with the tangential synergy and complements it in functionality.
  • the goal of the radial synergy is to move the control point 758 to the desired goal point location 710.
  • the radial synergy is directed towards extending or retracting the limbs of the body (by rotation of knee joint 754 in Fig. 7) to ensure that the desired goal point location 710 is within the reach of the body so that it can be reached by subsequent application of an associated tangential synergy component.
  • the radial synergy rotates joint i, 754, so that the distance between the next proximal joint 752 and the control point 758 is the same as the distance between the next proximal joint 752 and the desired goal point location 710. If the radial synergy can make these two distances equal, applying the tangential synergy at the next proximal joint will result in an aligning rotation that moves the control point exactly to the desired goal point location.
  • the radial synergy can be a powerful tool for fast and accurate limb coordination.
  • the radial synergy works by moving the control point radially inward or outward to decrease or increase the distance between the control point and the next proximal joint in the body.
  • the next proximal joint means the next joint in the SynJoint list that is relatively proximal to the joint under consideration. For example, in Fig. 7, because the contact point is the character" s right foot, the next proximal joint relative to the left knee joint 754 is the left hip joint 752, while the next joint distal to the knee joint is the left ankle joint 756.
  • the knee joint 754 In order to determine the rotations needed to move the control point 758 to the desired goal point location 710 using the knee 754 and the hip 752 joints, it is best to first use the knee joint 754 to extend or retract the control point 758 so that the toe is as far from the hip as is the desired location. Thereafter, the application of the tangential synergy at the hip joint 752 will rotate the leg so that the toe of the foot is at the desired goal point location.
  • the object of the radial synergy is to rotate the knee joint 754, moving ankle joint 756 until the initial distance d ⁇ is equal to the final distance d f .
  • the distance from the hip to either the control point 758 or the ankle joint 756 may be used in the computations because the movement of each joint is calculated with the other joints held fixed. However, calculations are simpler if the ankle joint 756 is used.
  • the error vector, e is shown in Fig. 7 is for the general three-dimensional case.
  • This 3D error vector, e is projected onto the two-dimensional plane of motion defined by the vectors r and r d , to form the desired motion vector d d , which is the desired movement of the control point in the plane in which the shin can rotate about the knee.
  • the desired motion vector d d is then translated to the ankle joint 756 for purposes of calculating d f .
  • the desired angle for knee joint 754 to rotate in order to translate joint 756 by vector d d starting from d ⁇ and ending at d f is computed using standard geometry and trigonometry (law of cosines) .
  • the cosine of the desired angle is proportional to the square of the final distance less the squares of the lengths of the next proximal limb and the next distal limb respectively, and inversely proportional to the product of the lengths of the next proximal limb and the next distal limb.
  • the tangential and radial synergies address the task of moving the control point to the goal point location in a mutually complementary manner. Best results are obtained when these synergy computations are interleaved.
  • the ordered list of joints used for the tangential synergy must include the radial synergy joints in the appropriate order so that the radial extension computation at a joint is followed by a tangential positioning computation at the next more proximal joint.
  • the error vector, e is updated after computing the rotation for the radial synergy, using the new location of the control point.
  • the body structure is specified in terms of links and joints arranged in a hierarchical tree-like structure.
  • each joint is tagged as having either tangential or radial synergy components, or both. Thereafter, when the joints are moved by a synergy during the successive approximation process, the previously specified tags are used to invoke relevant tangential and radial synergy components.
  • Fig. 8 is a flow chart diagram of a Position synergy using either tangential or radial positioning components at each joint, but not both.
  • Fig. 9 is a flow chart diagram showing an alternative Position synergy formulation using tangential, or tangential and radial, positioning at each joint.
  • an error vector e is initialized at step 802.
  • the next joint is selected at step 804, and the joint gain checked at step 804. If the joint gain is other than zero at step 806, the radial vector r is computed at step 808.
  • the previously specified tag for the joint under consideration is checked at step 812 to determine whether a radial or tangential synergy component should be used. For a radial synergy, the radial component is computed at step 814, otherwise the tangential component is computed at step 816.
  • the error vector is updated by transforming the computed joint rotation as represented in a "global" world coordinate frame of reference into joint rotation in the " local" coordinate frame of the joint at step 818, updating the goal point using the computed rotation at step 820 and storing the computed rotation for the joint under consideration. If there are no more joints to be computed at step 824, the program exits at step 826.
  • each joint is positioned either radially or tangentialiy but not both.
  • tangential positioning is always applied to each joint.
  • a decision is made as to whether to apply the radial synergy to the joint under consideration at step 812 based on the tags for that joint. If the radial synergy tag is present , the radial synergy component computation is carried out at step 814.
  • the error vector is updated by transforming the computed joint rotation as represented in a "global" world coordinate frame of reference into joint rotation in the "local" coordinate frame of the joint at step 918, updating the goal point using the computed rotation at step 920 and storing the computed rotation for the joint under consideration at step 922 in a manner similar to steps 818, 820 and 822 respectively. If there are no more joints to be computed at step 824, the program exits at step 826.
  • FIG. 10 An example of the Balance synergy is shown in Fig. 10.
  • the object of the Balance synergy is to position the center-of-mass of the body at a desired goal point location relative to the contact point. Values for the desired goal point are provided to the Balance synergy by higher-level behaviors and tasks.
  • the Balance synergy goal point can be specified relative to an arbitrary coordinate frame of reference. Figs.
  • 10 and 10A-G show Balance synergy computations similar to that of a tangential Position synergy, with two important differences: 1) the Balance synergy takes into account the mass of the limbs, and 2) there is not a single control point or goal point, but instead, a collection of control points and goal points, one associated with each joint.
  • the Balance synergy computes joint angle rotation commands that attempt to minimize the length of the overall synergy error vector defined by the error between the desired location for the center-of-mass of the entire body (the "synergy goal point” ) and the body* s actual center-of-mass location.
  • the control point location for each joint (the “joint control point") is the location of the center-of-mass of the portion of the body distal to the respective joint
  • the goal point for each joint is the location of the center-of-mass distal to that joint translated by the overall synergy error vector.
  • the Balance synergy computation takes place in a manner similar to that previously described for a tangential synergy, with the exception that a different definition of the radius vector is used.
  • the radius vector points from the joint to be rotated to the control point, where such control point is usually a fixed point on the character' s body.
  • the radius vector used points from the joint to be rotated to the instantaneous location of the center-of-mass of the portion of the character' s body that is distal to that joint.
  • an articulated character 1000 is shown having 10 joints, a head and 11 body links.
  • Each link is assigned a mass, m 1# m 2 , m 3 , m, and m 5 , approximated as a point mass at the center of each link.
  • each joint also is assigned a joint control point which is located at the position of the center-of-mass of the portion of the body distal to that joint.
  • the objective of the Balance synergy is to move the center-of-mass (cm) of the entire body 1008 to the location of the synergy goal point 1010.
  • the problem to be solved is to compute the joint angle rotation commands for each joint 1006, 1004, 1002, 1012 and 1014, which minimizes the length of the error vector 1016.
  • FIG. 10A depicts the center-of-mass 1009 of all the links of the body distal to ankle joint 1014 of the articulated character 1000.
  • the Balance synergy computes the joint angle rotation command for the ankle joint 1014 which moves the distal center-of-mass 1009 such that it is nearest the distal center-of-mass goal point 1010 to minimize error vector 1016.
  • the distal center-of-mass goal point (the "joint goal point") for the ankle joint 1014 is defined as the vector sum of r 1 (1007) and e cm (1016) .
  • Fig. 10A illustrates the two vectors used in the Balance synergy computations: a radius vector r 1 , from the joint 1014 to be rotated to the distal center-of-mass control point 1009, and an error vector 1016 from the center-of-mass of the entire character' s body 1008 to the associated synergy goal point location 1010. It so happens that in this example the center-of- mass distal to the ankle joint 1009 and the center-of-mass 1008 of the entire character's body are co-located, which is not usually the case.
  • the above mentioned radius and error vectors are used by the Balance synergy to compute joint angle rotation commands comprised of an axis of rotation and an angle of rotation (often collectively referred to as a "quaternion") .
  • the rotation axis for each joint is orthogonal to the associated radius vector and the synergy error vector 1016.
  • the angle of rotation for a joint 1014 is computed using standard geometry and trigonometry.
  • the tangent of the desired joint angle rotation at each joint is proportional to the magnitude of the vector product of the associated radius vector and the error vector, and inversely proportional to the square of the radius vector. If the synergy goal point is outside the range of the character, the Balance synergy will cause the actual center-of-mass to be moved as close to the location of the desired synergy goal point as physically possible.
  • the tangential component of the Balance synergy uses circular arc trajectories of the distal center-of-mass at a radius r. from each joint (assuming all other joints are held stationary) to determine the joint angle rotations that minimize the error vector 1016. Similar circular arc center-of-mass trajectories at corresponding radii from joints 1014, 1012, 1002, 1004 and 1006 (ankle, knee, shoulder and elbow) are scribed by their respective joint rotations to individually minimize the error vector 1016.
  • one arc is the circular trajectory at a radius r 3c from joint 1002 (hip) shown in Fig. 10D, as joint 1002 is rotated (assuming all other joints are held stationary, i.e., joints 1004 and 1006 are held frozen or motionless) so as to minimize error vector 1016.
  • Similar circular trajectories at radii r 1 ⁇ , r 2c , r, and r, from ankle joint 1014 (Fig. 10B) , knee joint 1012 (Fig. 10C), shoulder joint 1004 (Fig. 10E) and elbow joint 1006 (Fig. 10F) are scribed for each of the other joints to individually minimize the error vector 1016.
  • Fig. 10G shows, for the articulated character in Fig.
  • Radial synergy components also can be computed for the Balance synergy in a manner similar to the radial synergy components for the position synergy disclosed herein, above, using the radius and error vectors defined for the tangential components of the Balance synergy along with the specifications for joint control points and joint goal points.
  • Figs. 10, and HA through HE illustrate the proximal-to-distal Joint Coordination carried out by the Balance synergy.
  • the proximal-to-distal order of joints is ankle 1014, knee 1012, hip 1002, shoulder 1004 and elbow 1006.
  • the rotation of ankle 1014 that will position the joint control point cm, nearest its goal point, in this case 1010, to minimize the synergy error vector e cm 1016 is computed. This allows a new error, e, to be computed.
  • a detailed drawing of the trial motion of the ankle joint is shown in Fig. HA.
  • Fig. 12 shows a flow chart diagram of the Balance synergy computations.
  • all the distal centers of mass locations are computed for the current body posture and an error vector e is initialized at step 1202.
  • the next joint is selected at step 1204, and the joint gain checked at step 1206. If the joint gain is other than zero at step 1206, the radial vector r is computed at step 1208. If the length of r is zero at step 1212, the computation skips to the next joint. Otherwise, a tangential synergy computation is performed at step 1214 using the r and e vectors to minimize the error vector e.
  • the error vector is updated by transforming the computed joint rotation as represented in a "global" world coordinate frame of reference into joint rotation in the "local" coordinate frame of the joint at step 1216, updating the goal point using the computed rotation at step 1218 and storing the computed rotation for the joint under consideration at step 1220. If there are more joints to be processed at step 1222, the program repeats the computation from step 1406 for the next joint. Otherwise it exits at step 1224. Joints in the Balance synergy also can be coordinated using the distal-to- proximal rule described previously for the tangential positioning synergy.
  • the selected order of the joints m the present method of successive approximation need not always be proximal-to-distal, and a joint coordination mechanism can be selected based on the task requirements.
  • a proximal to distal order of successive approximation will generally produce more natural body motion, but the computational overhead will be higher than for distal-to-proximal order of successive approximation.
  • Parallel computation can be used as well.
  • each joint angle rotation computed by the Balance synergy is a trial motion forming a successive approximation to the final motion to be rendered in the video image. That is, during each step of the successive approximation process, the video image is not changed. Instead, a phantom movement for that joint is recorded in computer memory. Even after each synergy computes all its joint angle movement commands, the video image is still not changed.
  • the joint movement commands computed for each synergy must be coordinated with the joint angle movement commands computed for the other synergies through the Synergy Coordination process 18 m Fig. 2 to form the final joint angle rotation commands applied to the character' s body. After applying the final joint angle movement commands to the characters body, the position and orientation of the character' s body is updated in memory by the body kinematics and image subsystem 16, then graphically rendered to the display screen as a video image.
  • the posture synergy is a generalization of a keyframe and is used to maintain the character' s body in a specified goal posture (i.e. predetermined joint angle configuration) in the face of disturbances.
  • a goal posture is defined by specifying the desired joint angles for all the joints contributing to a Posture synergy.
  • the goal posture may vary over time or it may remain fixed.
  • the Posture synergy calculates joint angle movement commands necessary to return the body to a specified posture.
  • the synergy joints instantaneously snap to their desired values.
  • the snap to mode is useful if the body is to be set into some desired configuration.
  • the second mode called the "filter” mode, the error between the goal joint position and the actual joint position is passed through a filter to determine the rotation.
  • a filter For example, using a zero th order filter permits disturbance rejection by always trying to reduce the error between the current posture and the desired posture by an amount proportional to the error.
  • a simple filter is like the restoring force exerted by a spring when deformed.
  • a spring constant, k controls how weak or strong the disturbance rejection will be.
  • Higher-order filters can be used to produce more complex dynamic responses.
  • the spring analogy of the posture synergy is illustrated in Fig. 13.
  • Each of the joints tends to rotate to a natural posture.
  • the returning force is illustrated by a spring which tends to rotate the joint.
  • the returning force of a spring is proportional to the displacement of the spring, either by compression or extension.
  • the elbow joint 1302 has a natural angle when the arm is relaxed.
  • the posture synergy imposes a spring force 1350 which exerts a force so as to rotate joint 1306 towards its natural angle.
  • FIG. 14 A flow chart for the Posture synergy is shown in Fig. 14. For each synergy joint at step 1402, the joint gain is checked at step 1404. Where the joint gain is non-zero, and the snap to mode is enabled, a set of specified joint coordinates is generated at step 1406. If snap to mode is not enabled, then a spring equation or other filter is used to compute the joint coordinates at step 1410. When all joints have been processed and there are no moire joints at step 1412, the program returns at step 1414.
  • the Alignment synergy In many body movements, it is often desirable to align specific parts of the body in particular directions. For example, coordinating the movement of the head during walking to stabilize vision. To hold the head steady, the neck joint rotates so that the head is aligned in a vertical direction. If a character is walking over uneven terrain, the foot needs to be aligned with the ground plane.
  • the Alignment synergy specifies a control link and a goal direction.
  • the control link is a part of the body between a specified pair of proximal and distal control joints.
  • the goal direction is specified by the coordinates of a unit vector.
  • the Alignment synergy produces joint rotations which tend to align the control link in the direction of the goal unit vector.
  • the Alignment synergy is illustrated in Fig. 15.
  • the control link is r 3 ,.
  • the goal direction (unit vector) is shown as a direction 1552.
  • the first method is based on setting positioning goals for the proximal and distal control joints.
  • the second method is based on directly rotating the joints proximal to the proximal and distal control joints.
  • r represents the radius vector from the proximal control joint to the distal control joint as shown.
  • the rotation required of any synergy joint proximal to the proximal control joint for alignment is directly proportional to the vector product of the square of the r vector and the goal unit vector, and inversely proportional to the square of the absolute value of the r vector.
  • the positioning-based method is based on converting the alignment error into a positioning error for the proximal and distal control joints. That is, joints
  • 1504 and 1502 are considered to have positioning error vectors, e align and - e .. , respectively. Position synergies with both tangential and radial components can be used to position joints 1504 and 1502 to minimize their respective error vectors.
  • the rotation of the ankle joint 1514 which will minimize the error is proportional to the difference between the ratio of r 13 to the square of the absolute value of r 13 and ratio of r 14 to the square of the absolute value of r 14 times the error vector e align .
  • the rotation of the knee joint 1512 which will minimize the error is proportional to the difference between the ratio of r 24 to the square of the absolute value of r 2 , and ratio of r 14 to the square of the absolute value of r 14 times the error vector e al - .
  • the Alignment synergy can benefit from the distal-to-proximal ordering of computation. For this, after each step, the rotation computed by the Alignment synergy is applied to obtain updated radius and error vectors used for computing the alignment rotation at the next synergy joint. Other ordered Joint Coordination schemes, as previously discussed, also can be used.
  • a flow chart for the Alignment synergy is shown in Fig. 16.
  • the goal of the Avoidance synergy is to keep the body away from a specified avoidance location or obstacle 1710 in space.
  • the Avoidance synergy works by determining the point on the body 1706 closest to the obstacle (the control point) and moving the control point 1706 away from the obstacle 1710 in a repulsive manner.
  • the Avoidance synergy is like the inverse of the Position synergy which moves the control point to the specified goal point location in an attractive manner.
  • An assumption is made that the specified avoidance location 1710 repels the control point 1706 according to some predetermined function, typically a function of the respective relative locations of the control point and the avoidance location in space.
  • the avoidance error vector e avo d is computed using a predefined function of the distance between the character and the avoidance location. This function is specified as part of the synergy specification.
  • the synergy specification also includes a method of determining the control point. Usually, the character' s joint that is closest to the avoidance location is used as the control point.
  • the avoidance error vector is equal to the predefined function times the distance vector from the avoidance location to the control point, divided by the distance.
  • an inverse square function of the distance is used, that is, the predefined avoidance function is one over the square of the distance from the avoidance location to the control point. As the distance to the avoidance location becomes small, the error generated by the predefined avoidance function becomes large.
  • the avoidance error vector drives the positioning of the control point using computations similar to the Positioning synergy, and can have tangential and radial components. Also, with regard to Avoidance synergy Joint Coordination, the joint coordination schemes used are similar to those which can be used with Position synergies. A flow chart for the Alignment synergy is shown in Fig. 18.
  • Synergies are organized into Groups called SynGroups.
  • a SynGroup is a collection of synergies associated with a particular contact point that contributes to some larger scale task and serves to define the relative priority of each synergy for that task.
  • SynGroups are activated during character animation, it attempts to simultaneously satisfy the goals of all of the synergies in the group using the Synergy Coordination mechanism 18.
  • Syngroups are activated by behaviors, which are in turn activated by higher- level motor tasks. Behaviors provide synergy goals with values, set priorities and adjust synergy strengths and gains. The synergies then produce joint angle rotations that serve to satisfy their individual goals.
  • the Synergy Coordination process determines the relative contribution of each synergy to the overall movement. Through the combination of joint angle rotations from each active synergy, behavioral animation is produced that attempts to satisfy multiple goals and constraints.
  • the Synergy Coordination process can consist of, for example, weighted sum, prioritization and winner- take-all combination schemes as illustrated in Figs. 19A, 19B and 19C respectively.
  • each set of synergy joint rotations, 1902, 1904 and 1906 are given respective relative weights, i.e., weight 1, weight 2 and weight N.
  • the weighted sum of the synergy outputs 1903, is checked against permissible joint position limits 1910 which generates the final joint rotations.
  • a priority based selection is implemented in which the synergies are arranged in a predetermined order of priority, with higher priority synergies considered first.
  • the synergy with the maximum joint rotations (most movement) is determined 1916 and selected 1918 as the synergy output.
  • the Synergy Coordination process also implements joint limitation constraints 1910 as the last step of synergy coordination.
  • synergy based interactive animation can be readily blended with fixed motion data, such as is recorded by motion capture or from keyframing.
  • Generation of interactive motion data is achieved by using a hybrid approach in which non-interactive motion data playback and synergy- based control is blended at each time step to satisfy specified goals.
  • ⁇ ( t) denote the joint angles at time t specified by the non-interactive motion
  • Blending is achieved by using the joint angles
  • f (. , . ) is a time-dependent blending function that determines the relative weight of the synergy-based control component at each time step during playback. For example, if
  • synergy based interactive control will only be effective in the second half of the motion and the first half of the motion is generated solely by motion capture data playback.
  • a side-effect of blending non-interactive motion data and interactive synergy-based control is that the body configuration at the end of playing back a sequence can be different after each playback. Lack of a deterministic end configuration could be a problem, especially if the next sequence to play starts in a configuration different from the one in which the present sequence playing has just ended.
  • the continuity problem is overcome by using transition sequences to control the motion at the start and end of motion data playback.
  • a transition sequence is generated in the present embodiment based on the initial and final positions and velocities of all the body' s joints and goal positions. The user can specify the length of the transition sequence in terms of the number of time steps before the end of a sequence that the transition period starts and the number of time steps into the next sequence before the transition period ends.
  • FIG. 20 An overview of the interactive motion data animation system is shown in Fig. 20.
  • Three components are used to generate interactive motion data from recorded motion sequences. If a single original sequence is to be played back, the original sequence data 102 is sent as joint angle commands to the body, resulting in a reproduction of the recorded animation. If more than one sequence is to be played back, then it becomes necessary to smoothly connect the motion between sequences so that the overall movement is not abrupt or jerky. A smooth connection is accomplished by generating on-line transition sequences 104 obtained by constructing interpolating parametric curves between the two sequences. Each transition sequence specifies modifications to the nominal current sequence that will result in a smooth transition into the next sequence. These modifications are added to the joint angle commands from 102 during playback.
  • synergies 106 and their associated control points are defined for the body. These synergies are assigned appropriate strengths and gains and are supplied with goals interactively 108.
  • the synergies are provided with feedback 110 of the current body position and orientation and the body joint angles. Using this information, the synergies generate joint rotations which, when accumulated during the motion 112 and added 113 to the motion data 102, resulting in a modified motion of the body that satisfies the synergy goals.
  • the transition sequence in 104 includes interpolated curves for the goal points used in the interactions . By adding 113 a transition sequence 104 to the motion data 102 , a smooth interaction is possible even as the character performs several sequences in a row.
  • the outputs 118 of the of the combination of motion data 102, interpolation data 104 and synergy commands 106, 112 are commands to the body kinematics function 16, which, in cooperation with the image storage, rendering and display functions actually animate the character by generating video for display HI or storage 115, which may be a magnetic tape or form of disk storage media, or any computer memory.
  • FIG. 21A illustrates an example of the above interactive motion data animation system.
  • the original sequence shown in Fig. 21A, consists of data for a normal walk with the arms swinging by the side of the body. If it is now desired to wave the right hand while the character is walking as before, the right hand is specified as a control point for a positioning synergy and its goal is specified as a trajectory that results in a wave. The synergy generates appropriate modifications to the non-interactive joint angle motion data that will result in the desired right hand wave while the rest of the body continues to walk as in the original sequence as shown in Fig. 21B.
  • Figure 3 is a flow chart diagram of the interactive motion data animation system. In step 352 of Fig.
  • Blending sequences are represented as parametric curves associated with each joint and synergy goal. In the present embodiment, these curves are generated taking into account the position and velocity of each joint' s/goal' s motion. Additional factors such as joint or goal accelerations also can be incorporated into the blending sequences.
  • Playback is then started by passing through the data time-step by time-step, checking for more data in step 356 and exiting the program if there is no more data to playback in step 358. If there is more playback data, then the program checks to see if the current data sequence is approaching its end in step 361. If it is, in step 362, a transition sequence is generated to blend out of the current sequence and into the next, if a next sequence is specified. If no next sequence is specified, the transition sequence blends out to a fixed posture of the body. The next posture for the body is generated in step 364 using either the original data or the transition sequence if one is active. The position of the body is then computed from the generated posture using forward kinematics.
  • step 366 synergies driven by the error between the body part positions and their interactively specified goal positions are used to compute rotations to joint angles that minimize the errors.
  • the joint rotations computed by the synergies in step 368 are added to the joint angles of the body, resulting in a modified posture for the body that accommodates the interactively specified goals while playing back the original motion data. This posture is rendered at step 371, and the process is repeated from step 356.
  • non-interactive motion data 102 provides joint angle commands 118 to control body kinematics 116.
  • animation is generated purely by non-interactive motion data playback. For example, it might be desirable to have the character' s legs march (as in a parade) according to stored motion data, while the character' s upper body (waving an arm) is under interactive synergy based control.
  • One subset of joints is thus controlled by non- interactive motion data at the same time that an another subset of joints is controlled by interactive synergies.
  • Non-interactive motion data 102 may be actively blended with interactive synergy control of body kinematics 116.
  • the blending of non-interactive motion data and interactive joint angle command data is accomplished by the same type of coordination as is carried out between the different synergies.
  • Each synergy provides a set of joint angle commands for motion generated subject to a constraint, such as balance and the like.
  • the motion data 106 is treated similar to the synergies, in that the non- interactive motion data joint angle commands are combined with the synergy joint angle commands, and thus becomes one of the factors influencing limb coordination.
  • a different way to blend non-interactive motion data with interactive synergy- based control is to tune the parameters of the synergy-based interactive animation so that the output matches the non-interactive motion data as closely as practical.
  • the primary adjustable parameters are synergy strengths and gains.
  • non-interactive motion data 52 provides joint angle commands.
  • interactive synergies 54 provide joint angle commands.
  • the difference between the two sets of joint angle commands is provided by the summer 56.
  • a suitable error function 58 measures the difference between the non-interactive motion data joint angle commands and the joint angle commands produced under interactive control. The measured difference expressed as an error function is used to modify the synergy gains and strength factors.
  • Non-interactive motion capture data is loaded 60 and played.
  • Synergy goals and joint angle commands are generated as a function of time 62 from the non-interactive motion data.
  • new motion data new joint angle commands
  • the error or difference between the joint angle commands from the non- interactive motion data and the joint angle commands from the synergies, is quantified at step 66. If the error is above some minimum at step 68, then the synergy gains and strengths are modified at step 69, and the process is repeated at step 64. For each iteration, the error is reduced, until the error is below some minimum, and the program exits at step 68.

Abstract

On utilise des méthodes de calcul en lignes pour animer les mouvements des membres de personnages articulés en résolvant en temps réel les problèmes de cinématique directes et inverses associés, en tenant compte d'objectifs et de contraintes multiples. Ces procédés permettent de maîtriser de manière entièrement interactive des comportements axés sur un objectif, comme la marche d'un bipède, en apportant une réponse satisfaisante de manière simultanée à des contraintes de position, d'alignement, de posture, d'équilibre, d'évitement d'obstacles et de limitation des articulations. Les primitives des mouvements motivés, appelées synergies (22, 24, 26, 28, 30), coordonnent des ensembles de mouvements articulés tendant séparément à satisfaire à chacune de ces contraintes (18). Les données enregistrées des mouvements sont combinées avec des techniques de contrôle interactif pour manipuler l'animation des personnages articulés. La saisie non-interactive du mouvement et les données du cadre clé, représentant des exemples de mouvements désirés du personnage, sont conciliées de trois manières dans le présent système d'animation.
EP97918505A 1996-04-04 1997-03-31 Systeme de coordination des membres pour animation interactive sur ordinateur de personnages articules avec donnees composees de mouvement Withdrawn EP1012791A1 (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US1481496P 1996-04-04 1996-04-04
US14814P 1996-04-04
PCT/US1997/005513 WO1997040471A1 (fr) 1996-04-04 1997-03-31 Systeme de coordination des membres pour animation interactive sur ordinateur de personnages articules avec donnees composees de mouvement

Publications (2)

Publication Number Publication Date
EP1012791A4 EP1012791A4 (fr) 2000-06-28
EP1012791A1 true EP1012791A1 (fr) 2000-06-28

Family

ID=21767905

Family Applications (1)

Application Number Title Priority Date Filing Date
EP97918505A Withdrawn EP1012791A1 (fr) 1996-04-04 1997-03-31 Systeme de coordination des membres pour animation interactive sur ordinateur de personnages articules avec donnees composees de mouvement

Country Status (3)

Country Link
EP (1) EP1012791A1 (fr)
JP (1) JP2000508804A (fr)
WO (1) WO1997040471A1 (fr)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5936638A (en) * 1997-02-27 1999-08-10 Mitsubishi Electric Information Technology Center America, Inc. (Ita) System for determining motion control of articulated linkages
US6014150A (en) * 1997-08-01 2000-01-11 Avid Technology, Inc. System and method of defining and employing behaviors for articulated chains
US6115052A (en) * 1998-02-12 2000-09-05 Mitsubishi Electric Information Technology Center America, Inc. (Ita) System for reconstructing the 3-dimensional motions of a human figure from a monocularly-viewed image sequence
US6774885B1 (en) 1999-01-20 2004-08-10 Motek B.V. System for dynamic registration, evaluation, and correction of functional human behavior
WO2000048130A1 (fr) * 1999-02-12 2000-08-17 Duran Procede et appareil d'animation d'images bidimensionnelles et tridimensionnelles
EP1028393A1 (fr) * 1999-02-12 2000-08-16 Duran Procédé et dispositif d'animation d'images bidimensionnelles et tridimensionnelles
EP1028394A1 (fr) * 1999-02-12 2000-08-16 Duran Procédé et dispositif d'animation d'images bidimensionnelles et tridimensionnelles
AU3281900A (en) * 1999-02-12 2000-08-29 Duran Method and apparatus for animating two-dimensional and three-dimensional images
US6738065B1 (en) 1999-08-10 2004-05-18 Oshri Even-Zohar Customizable animation system
AU2000247675A1 (en) * 2000-05-02 2001-12-03 Vincent J. Macri Processing system for interactive, personal and idiosyncratic control of images and devices
JP2002319036A (ja) 2001-02-13 2002-10-31 Sega Corp アニメーション生成プログラム
US20040012593A1 (en) * 2002-07-17 2004-01-22 Robert Lanciault Generating animation data with constrained parameters
FR2861857B1 (fr) 2003-10-29 2006-01-20 Snecma Moteurs Deplacement d'un objet articule virtuel dans un environnement virtuel en evitant les collisions internes entre les elements articules de l'objet articule
JP2009093437A (ja) * 2007-10-09 2009-04-30 Sega Corp 画像表示プログラムおよび画像表示装置
US20090137933A1 (en) 2007-11-28 2009-05-28 Ishoe Methods and systems for sensing equilibrium
JP5486213B2 (ja) * 2009-05-12 2014-05-07 任天堂株式会社 ゲーム装置及びゲームプログラム
WO2011106928A1 (fr) 2010-03-02 2011-09-09 Nokia Corporation Procédés et appareils d'aide à la création d'une animation de squelette
US9349040B2 (en) * 2010-11-19 2016-05-24 Microsoft Technology Licensing, Llc Bi-modal depth-image analysis
US9245063B2 (en) * 2013-04-05 2016-01-26 The Boeing Company Creating ergonomic manikin postures and controlling computer-aided design environments using natural user interfaces
CN104123735B (zh) * 2014-07-24 2017-05-10 无锡梵天信息技术股份有限公司 能实现多种动作混合的方法
EP3324365A1 (fr) * 2016-11-22 2018-05-23 Dassault Systèmes Procédé mis en uvre par ordinateur pour simuler un corps prenant une posture, en particulier pour regarder une cible
CN111292401B (zh) 2020-01-15 2022-05-03 腾讯科技(深圳)有限公司 动画处理方法、装置、计算机存储介质及电子设备
CN112669413A (zh) * 2021-01-05 2021-04-16 北京诺亦腾科技有限公司 基于动作捕捉的动画制作系统和动画制作方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4600919A (en) * 1982-08-03 1986-07-15 New York Institute Of Technology Three dimensional animation
US5483630A (en) * 1990-07-12 1996-01-09 Hitachi, Ltd. Method and apparatus for representing motion of multiple-jointed object, computer graphic apparatus, and robot controller
US5623428A (en) * 1990-12-25 1997-04-22 Shukyohoji, Kongo Zen Sohozan Shoriji Method for developing computer animation
US5625577A (en) * 1990-12-25 1997-04-29 Shukyohojin, Kongo Zen Sohonzan Shorinji Computer-implemented motion analysis method using dynamics
US5586224A (en) * 1990-12-25 1996-12-17 Shukyohojin, Kongo Zen Sohonzan Shorinji Robot or numerical control programming method
US5594856A (en) * 1994-08-25 1997-01-14 Girard; Michael Computer user interface for step-driven character animation

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BLUMBERG B M ET AL: "MULTI-LEVEL DIRECTION OF AUTONOMOUS CREATURES FOR REAL-TIME VIRTUALENVIRONMENTS" COMPUTER GRAPHICS PROCEEDINGS, LOS ANGELES, AUG. 6 - 11, 1995,6 August 1995, pages 47-54, XP000546215 COOK R *
BOULIC R ET AL: "GOAL-ORIENTED DESIGN AND CORRECTION OF ARTICULATED FIGURE MOTION WITH THE TRACK SYSTEM" COMPUTERS AND GRAPHICS, vol. 18, no. 4, 1 July 1994, pages 443-452, XP000546590 *
MOON RYUL JUNG ET AL: "SIMULATING HUMAN TASKS USING SIMPLE NATURAL LANGUAGE INSTRUCTIONS" PROCEEDINGS OF THE WINTER SIMULATION CONFERENCE, PHOENIX, DEC. 8 - 11, 1991, no. CONF. 23, 8 December 1991, pages 1049-1057, XP000347680 NELSON B L;KELTON W D; CLARK G M *
See also references of WO9740471A1 *

Also Published As

Publication number Publication date
EP1012791A4 (fr) 2000-06-28
JP2000508804A (ja) 2000-07-11
WO1997040471A1 (fr) 1997-10-30

Similar Documents

Publication Publication Date Title
US6057859A (en) Limb coordination system for interactive computer animation of articulated characters with blended motion data
US6191798B1 (en) Limb coordination system for interactive computer animation of articulated characters
US6088042A (en) Interactive motion data animation system
WO1997040471A1 (fr) Systeme de coordination des membres pour animation interactive sur ordinateur de personnages articules avec donnees composees de mouvement
JP3579148B2 (ja) 多関節体の動きを生成するように複数の動きユニットを操作する方法及びそのシステム
Shoulson et al. Adapt: The agent development and prototyping testbed
US6317132B1 (en) Computer animation method for creating computer generated animated characters
Shapiro et al. Hybrid control for interactive character animation
US6285380B1 (en) Method and system for scripting interactive animated actors
Perlin et al. Improv: A system for scripting interactive actors in virtual worlds
Zordan et al. Motion capture-driven simulations that hit and react
Pollard et al. Adapting human motion for the control of a humanoid robot
Zordan et al. Tracking and modifying upper-body human motion data with dynamic simulation
Shapiro et al. Interactive motion correction and object manipulation
Kenwright Generating responsive life-like biped characters
JP2004030502A (ja) シミュレーション方法、シミュレーション装置およびシミュレーションプログラム
Zhang et al. Simulation and retargeting of complex multi-character interactions
EP0919031A1 (fr) Procede et systeme de scenarisation d'acteurs animes interactifs
Popovic Editing dynamic properties of captured human motion
Kenwright Real-time physics-based fight characters
Dow et al. Fast techniques for mixing and control of motion units for human animation
Westenhofer et al. Using kinematic clones to control the dynamic simulation of articulated figures
Kim et al. Keyframe-based multi-contact motion synthesis
Martin et al. Interactive quadruped animation
Lake et al. Dynamic motion control of an articulated figure using quaternion curves

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19981031

A4 Supplementary search report drawn up and despatched

Effective date: 19990510

AK Designated contracting states

Kind code of ref document: A4

Designated state(s): DE FR GB

Kind code of ref document: A1

Designated state(s): DE FR GB

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20011002