Method for animating 3-D computer generated characters
First Claim
1. A method for animating a three-dimensional digital character, the method comprising:
- providing a digital representation of a character including joints and segments;
providing a library of animations for the character, each animation defining a path of motion comprising predetermined joint positions and rotations for the character;
providing a rendering system for displaying the character;
receiving at least one command sequence representing a selected animation;
determining an initial posture of the character;
determining the posture of the character at the beginning of the selected animation;
computing a first path of motion comprising joint rotations necessary to move the character from the initial posture to the posture at the beginning of the selected animation;
obtaining a second path of motion from the library corresponding to the selected animation; and
executing the first and second paths of motion in the rendering system to move the character from the initial posture to a final posture.
1 Assignment
0 Petitions
Accused Products
Abstract
A character animation system translates high-level commands from an external application into motions and deformations of a character model. The character animations are (1) composed in real-time from a sequence of basic actions and expressions, (2) calculated based on the desired end position and orientation of a hand or other body part, or (3) are generated randomly to simulate natural fidgets of the human body. In each case, the character animation system assures (1) that each action blends naturally with the succeeding action, (2) that collisions between body parts are avoided, and (3) that facial expressions are coordinated in parallel with the actions.
156 Citations
25 Claims
-
1. A method for animating a three-dimensional digital character, the method comprising:
-
providing a digital representation of a character including joints and segments;
providing a library of animations for the character, each animation defining a path of motion comprising predetermined joint positions and rotations for the character;
providing a rendering system for displaying the character;
receiving at least one command sequence representing a selected animation;
determining an initial posture of the character;
determining the posture of the character at the beginning of the selected animation;
computing a first path of motion comprising joint rotations necessary to move the character from the initial posture to the posture at the beginning of the selected animation;
obtaining a second path of motion from the library corresponding to the selected animation; and
executing the first and second paths of motion in the rendering system to move the character from the initial posture to a final posture. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
preparing a listing of first and second animation pairs wherein an interpolation between a last posture of the first animation and a first posture of the second animation would cause a collision between two segments of the character;
defining an intermediate posture associated with each of the first and second animation pairs for avoiding the collision;
determining if the first selected animation and second selected animated are included in the listing as a first and second animation pair, and if so, computing a path of motion for moving the character from the last posture of the first selected animation to the intermediate posture, and from the intermediate posture to the first posture of the second selected animation.
-
-
8. The method of claim 1, further comprising;
-
storing a plurality of fidget command sequences corresponding to a respective plurality of natural body fidgets;
detecting that no path of motion is currently being executed;
selecting one of the fidget command sequences; and
executing the selected fidget command sequence as the selected animation.
-
-
9. The method of claim 1, further comprising synchronizing a facial expression animation for the character with the step of executing the first and second paths of motion.
-
10. The method of claim 9, further comprising:
-
providing a library of facial expressions for the character, the facial expression being defined by a plurality of vertices connected by a mesh, each vertex having a defined position in space for a facial expression;
receiving a sequence of facial expression commands associated with the selected animation, the sequence of facial expression commands having an initial expression and a final expression;
executing a transition sequence to move the plurality of vertices to the initial expression during the step of executing the first path of motion;
executing the sequence of facial expression commands associated with the selected animation during the step of executing the second path of motion.
-
-
11. The method of claim 10, further comprising looping the sequence of facial expression commands associated with the selected animation during the step of executing the second path of motion when the number of frames of the sequence of facial expression commands is less than the number of frames of the second path of motion.
-
12. In a character animation system wherein a digital representation of a character is displayed and animated on a rendering system, the character having a limb connected to a torso and including a spherical proximal joint interconnecting a proximal limb segment and the torso, a revolute central joint interconnecting the proximal limb segment and a distal limb segment, a spherical distal joint interconnecting the distal limb segment and an end effector, a method for determining preferred rotations of the spherical proximal joint, the revolute central joint and the spherical distal joint for placing the end effector in a desired position and orientation, the method comprising:
-
positioning the end effector in a desired position and orientation;
computing a center point, radius and central axis of a circle defining all possible positions of the revolute central joint given the positions and orientations of the end effector and the spherical proximal joint;
computing a level of stress for at least one of the spherical proximal joint, the revolute central joint and the spherical distal joint resulting from the placement of the revolute central joint at each of a plurality of candidate points on the circle; and
computing the preferred rotations of the spherical proximal joint, the revolute central joint and the spherical distal joint as being the rotations necessary to position the revolute central joint at the one of the plurality of candidate points on the circle wherein the level of stress is a selected value. - View Dependent Claims (13, 14, 15, 16)
testing for an intersection of the torso and the limb resulting from the placement of the revolute central joint at each of the plurality of candidate points; and
eliminating any candidate point resulting in an intersection of the torso and limb.
-
-
15. The method of claim 14, further comprising testing for an intersection of the torso and the limb by modeling both the torso and a portion of the limb as respective cylinders with hemispherical caps and testing for collision between the two capped cylinder shapes.
-
16. The method of claim 14, further comprising determining if the computed preferred rotations are within predetermined limits for the respective joints.
-
17. In a character animation system wherein a digital representation of a character in an environment is displayed and animated on a rendering system, a method of tracking a point in the environment with a feature of the character, the method comprising:
-
orienting a feature of the character toward a defined point in the environment;
reorienting the feature of the character toward the defined point in response to a movement of the defined point within the environment relative to the feature of the character;
wherein the step of reorienting comprises moving the feature toward a reoriented position; and
decelerating a rate of movement of the feature as it approaches the reoriented position. - View Dependent Claims (18)
computing a joint rotation necessary to move the feature to the reoriented position;
rotating a joint by a fixed percentage of the computed joint rotation during a first time interval;
repeating the steps of computing a joint rotation and rotating the joint by a fixed percentage of the computed joint rotation to move the feature toward the reoriented position at a decelerating rate of motion.
-
-
19. In a character animation system wherein a digital representation of a character in an environment is displayed and animated on a rendering system, the character having a head and an eye, a method of tracking a point in the environment with the head and eye of the character, the method comprising:
-
orienting the head and eye of the character toward a defined point in the environment;
reorienting the head and eye of the character toward the defined point in response to a movement of the defined point within the environment relative to the head and eye of the character;
wherein the step of reorienting comprises moving the head and eye toward a reoriented position; and
decelerating a rate of movement of the head and eye as they approach the reoriented position. - View Dependent Claims (20, 21, 22)
computing an offset rotation necessary to reorient the head and eye to the reoriented position;
for each of a plurality of successive time periods, moving the head and eye a fixed fraction of the computed offset rotation.
-
-
22. The method of claim 21, wherein the fixed fraction utilized for the eye is a greater value than the fixed fraction used for the head to simulate the natural effect of eye motion leading head motion when the character'"'"'s gaze is directed toward the point in the environment.
-
23. A method of presenting information comprising:
-
providing a document including text and associated animation scripts;
displaying the document on a display device;
selecting a portion of the document with a user input device;
displaying an animation on the display device in response to an animation script associated with the selected portion of the document. - View Dependent Claims (24, 25)
storing the document on a document server using a unique document address; and
selecting the portion of the document using a document browser.
-
Specification