IP Library Granted Patent US 8,896,607
Granted Patent B1
US 8,896,607 · App. 12/475,268 · Granted Nov 25, 2014

Inverse kinematics for rigged deformable characters

Inventors: Doug Epps (Novato, CA); Nate Reid (Novato, CA)
Assignee: Two Pic MC LLC
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,896,607
App. No.
12/475,268
Granted
Nov 25, 2014
Kind
B1
Abstract

A method for a computer system includes receiving a surface deformation for an object from a computer system user, wherein an object model comprises animation variables used to determine the surface of the object model, determining at least one pre-defined object pose from pre-defined object poses in response to the surface deformation, wherein the predefined object poses includes a first predefined object pose and comprises animation variable values, wherein the animation variable values are determined from physical motion capture data of surface positions of a physical representation of the object posed in a first pose, posing the object model in a pose in response to at least the animation variable values, and displaying the object model in the pose on a display to the computer system user.

Claims (74)

1. A method for a computer system including a processor, a memory, a display, and a user input device comprising:

receiving at least one surface deformation for a surface of a model of an object via the user input device, wherein the model of the object comprises a plurality of animation variables, wherein values for the plurality of animation variables are used to determine the surface of the model;

in response to receiving the at least one surface deformation:

determining, by the processor, a first predefined pose for the model of the object from a plurality of pre-defined poses for the model of the object, wherein a pre-defined pose is based on motion capture data, wherein the first predefined pose comprises a first plurality of values for the plurality of animation variables and a first plurality of surface deformations;

determining, by the processor, a second predefined pose, wherein the second predefined pose comprises a second plurality of values for the plurality of animation variables and a second plurality of surface deformations,

determining whether the received at least one surface deformation is more similar to the first plurality of surface deformations associated with the first predefined pose or more similar to the second plurality of surface deformations associated with the second predefined pose;

in response to determining that the received at least one surface deformation is more similar to the first plurality of surface deformations, posing, by the processor, the model of the object in response to the first plurality of values of the plurality of animation variables;

in response to determining that the received surface deformation is more similar to the second plurality of surface deformations, posing, by the processor, the model of the object in response to the second plurality of values of the plurality of animation variables; and

displaying the model of the object on the display.

2. The method of claim 1 further comprising:

physically posing the object in the first pose;

determining the physical motion capture data of the surface positions of the object with the processor;

determining, by the processor, the first plurality of values for the plurality of animation variables in response to the physical motion capture data and in response to user input from the user input device;

determining a first plurality of surface deformations in the processor in response to the first plurality of values for the plurality of animation variables; and

determining the first predefined pose in the processor in response to the first plurality of values and in response to the first plurality of surface deformations.

3. The method of claim 1 further comprising:

receiving a value for an animation variable from the plurality of animation variables from the user via the user input device; and

wherein posing the model of the object is in response to the first plurality of values of the plurality of animation variables and in response to the value for the animation variable.

4. The method of claim 1 further comprising:

rendering an image with the processor in response to the model of the object posed in the pose;

storing a representation of the image in a tangible memory; and

displaying the image retrieved from the tangible memory to the user on a display;

wherein the tangible memory is selected from a group consisting of: an optical storage medium, a magnetic storage medium, an electrical storage medium, film medium.

5. The method of claim 1

wherein the surface of the model of the object comprises a wire-frame model comprising a plurality of vertices; and

wherein the surface deformation comprises a displacement of at least one vertex from the plurality of vertices.

6. The method of claim 1

wherein the surface of the model of the object comprises a plurality of control points; and

wherein the surface deformation comprises a displacement of at least one control point from the plurality of control points.

7. The method of claim 1

wherein determining at least the first predefined pose for the model of the object also comprises determining a second predefined pose for the model of the object stored in the memory in the processor in response to the surface deformation, wherein the second predefined pose comprises a second plurality of values for the plurality of animation variables, wherein the second plurality of values for the plurality of animation variables is determined in response to physical motion capture data of surface positions of the object physically posed in a second pose;

wherein posing the model of the object comprises posing the model of the object in the pose with the processor in response to the first plurality of values of the plurality of animation variables and the second plurality of values of the plurality of animation variables.

8. A computer program product residing on a tangible medium and executable on a computer system including a processor, a user input device and a display, comprising:

code that directs the processor to receive at least one surface deformation for a surface of a model of an object via the user input device, wherein the model of the object comprises a plurality of animation variables, wherein values for the plurality of animation variables are used to determine the surface of the model;

code that directs the processor to, in response to the surface deformation:

determine a first predefined pose for the model of the object from a plurality of pre-defined poses for the model of the object, wherein a pre-defined pose is based on motion capture data, wherein the first predefined pose comprises a first plurality of values for the plurality of animation variables and a first plurality of surface deformations;

determine a second predefined pose, wherein the second predefined pose comprises a second plurality of values for the plurality of animation variables and a second plurality of surface deformations,

determine whether the received at least one surface deformation is more similar to the first plurality of surface deformations associated with the first redefined lose or more similar to the second plurality of surface deformations associated with the second predefined pose;

in response to determining that the received at least one surface deformation is more similar to the first plurality of surface deformations, pose the model of the object in response to the first plurality of values of the plurality of animation variables;

in response to determining that the received surface deformation is more similar to the second plurality of surface deformations, posing, by the processor, the model of the object in response to the second plurality of values of the plurality of animation variables; and

code that directs the processor to display the model of the object in the pose on the display.

9. The computer program product of claim 8 further comprising:

code that directs the processor to determine physical motion capture data of the surface positions of the object while physically posed in the first pose; and

code that directs the processor to determine the first plurality of values for the plurality of animation variables in response to the physical motion capture data and in response to user input from a user input device of the computer system, configured to determine a first plurality of surface deformations in response to the first plurality of values for the plurality of animation variables, and configured to determine the first predefined pose in response to the first plurality of values and in response to the first plurality of surface deformations.

10. The computer program product of claim 8 further comprising:

code that directs the processor to receive a value for an animation variable from the plurality of animation variables from the user via the user input device of the computer system; and

code that directs the processor to pose the model of the object is in response to the first plurality of values of the plurality of animation variables and in response to the value for the animation variable.

11. The computer program product of claim 8 further comprising:

code that directs the processor to render an image in response to the model of the object posed in the pose;

code that directs the processor to store a representation of the image in a tangible memory, wherein the tangible memory is removable from the computer system, and wherein the tangible memory is selected from a group consisting of: an optical storage medium, a magnetic storage medium, an electrical storage medium, film medium.

12. The computer program product of claim 8

wherein the surface of the model of the object comprises a plurality of control points; and

wherein the surface deformation comprises a displacement of at least one control point from the plurality of control points.

13. The computer program product of claim 8 further comprising:

code that directs the processor to determine a second predefined pose for the model of the object from a plurality of pre-defined poses for the model of the object in response to the surface deformation, wherein the second predefined pose comprises a second plurality of values for the plurality of animation variables, wherein the second plurality of values for the plurality of animation variables are determined in response to physical motion capture data of surface positions of the object physically posed in a second pose; and

code that directs the processor to pose the model of the object in a pose in response to the first plurality of values of the plurality of animation variables and to the second plurality of values of the plurality of animation variables.

14. A computer system comprising:

a memory configured to store a model of an object comprising a plurality of animation variables, wherein values for the plurality of animation variables are used to determine a surface of the model of the object, and configured to store a plurality of predefined poses including:

a first predefined pose, wherein a pre-defined pose is based on motion capture data, wherein the first predefined pose comprises a first plurality of values for the plurality of animation variables and a first plurality of surface deformations; and

a second predefined pose, wherein the second predefined pose comprises a second plurality of values for the plurality of animation variables and a second plurality of surface deformations;

a user input device configured to receive an input from the user;

a processor coupled to the memory and to the user input device, wherein the processor is configured to:

determine at least one surface deformation for the surface of the model of the object in response to the input from the user, wherein the processor is configured to determine whether the received at least one surface deformation is more similar to the first plurality of surface deformations associated with the first predefined pose or more similar to the second plurality of surface deformations associated with the second predefined pose; and

in response to determining that the received at least one surface deformation is more similar to the first plurality of surface deformations, pose the model of the object in a pose in response to the first plurality of values of the plurality of animation variables; and

in response to determining that the received surface deformation is more similar to the second plurality of surface deformations, pose the model of the object in a pose in response to the second plurality of values of the plurality of animation variables; and

a display coupled to the processor, wherein the display is configured to display the model of the object.

15. The computer system of claim 14 further comprising:

a motion capture device coupled to the processor, wherein the motion capture device is configured to determine physical motion capture data of the surface positions of the object while physically posed in the first pose; and

wherein the processor is also configured to determine the first plurality of values for the plurality of animation variables in response to the physical motion capture data and in response to user input from a user input device of the computer system, configured to determine a first plurality of surface deformations in response to the first plurality of values for the plurality of animation variables, and configured to determine the first predefined pose in response to the first plurality of values and in response to the first plurality of surface deformations.

16. The computer system of claim 14

wherein the processor is configured to receive a value for an animation variable from the plurality of animation variables from the user, and configured to pose the model of the object is in response to the first plurality of values of the plurality of animation variables and in response to the value for the animation variable.

17. The computer system of claim 14

wherein the plurality of predefined poses includes a second predefined pose, wherein the second predefined pose comprises a second plurality of values for the plurality of animation variables, wherein the second plurality of values for the plurality of animation variables are determined in response to physical motion capture data of surface positions of the object physically posed in a second pose;

wherein the processor is configured to determine the second predefined pose for the model of the object from the plurality of pre-defined poses for the model of the object in response to the surface deformation, and wherein the processor is configured to pose the model of the object in a pose in response to the first plurality of values of the plurality of animation variables and to the second plurality of values of the plurality of animation variables.

Assignments (2)
CHANGE OF NAME Recorded Feb 8, 2012
From: IMAGEMOVERS DIGITAL LLC
To: TWO PIC MC LLC
Reel/Frame 027675/0270 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2009
From: EPPS, DOUG; REID, NATE
To: IMAGEMOVERS DIGITAL LLC
Reel/Frame 023118/0370 →