IP Library Granted Patent US 9,275,488
Granted Patent B2
US 9,275,488 · App. 13/649,855 · Granted Mar 1, 2016

System and method for animating a body

Inventor: Daniel Paul Sheerin (Westchester, CA)
Assignees: SONY CORPORATION; SONY PICTURES TECHNOLOGIES INC.
G06T13/40
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 9,275,488
App. No.
13/649,855
Granted
Mar 1, 2016
Kind
B2
Abstract

Systems and methods are disclosed for applying a controllable and predictable muscle oscillation to a portion of a body such as a character in a predetermined and intuitive way. Positions of separate muscle locations are analyzed throughout a timeline. A third derivative with respect to time of the positions of the separate muscles is calculated to measure a change of acceleration for a particular point of interest. The change in the acceleration gives positive or negative changes in the applied forces. The direction and magnitude of the applied forces is passed onto a part of a solution that creates a procedural oscillation based on the magnitude and the direction of the applied forces in the muscle space.

Claims (46)

1. A method of animating an external layer of a body, comprising:

a. for a point location on an external layer of a body, taking a third derivative of position with respect to time to determine a vector whose magnitude is a rate of change of acceleration of the point location; and

b. if the vector magnitude is greater than a predetermined threshold, then applying an oscillation to the external layer,

c. wherein the body is a character and the external layer represents a body mass group, and wherein the body mass group is defined between a plurality of joints, and the body mass group is constrained against oscillation at a point of connection with each of the joints, and wherein the body mass group experiences a minimum of the magnitude of oscillation at the connection points and an upper limit of the magnitude of oscillation between the connection points,

d. wherein the body mass group is associated with a set of parameters including a maximum longitudinal value, a maximum rotational value, and a damping coefficient, and wherein the parameters include a common factor, wherein by changing the common factor, each of the parameters scales to an appropriate value; and

e. generating an animation with the applied oscillation.

2. The method of claim 1 , wherein the body mass group represents flesh, fat, or muscles.

3. The method of claim 2 , wherein the body mass group represents a muscle group.

4. The method of claim 1 , wherein after a temporal delay following the applying an oscillation, applying another oscillation to another body mass group.

5. A method of animating an external layer of a body, comprising:

for a point location on an external layer of a body, wherein the body is a character and the external layer represents a body mass group, taking a third derivative of position with respect to time to determine a vector whose magnitude is a rate of change of acceleration of the point location;

if the vector magnitude is greater than a predetermined threshold, then applying an oscillation to the external layer; and

generating an animation with the applied oscillation, wherein after a temporal delay following the applying an oscillation, applying another oscillation to another body mass group, wherein the temporal delay is associated with a time required to display 1 to 5 frames.

6. A method of animating an external layer of a body, comprising:

for a point location on an external layer of a body, wherein the body is a character and the external layer represents a body mass group, taking a third derivative of position with respect to time to determine a vector whose magnitude is a rate of change of acceleration of the point location;

if the vector magnitude is greater than a predetermined threshold, then applying an oscillation to the external layer; and

generating an animation with the applied oscillation, wherein after a temporal delay following the applying an oscillation, applying another oscillation to another body mass group, wherein a magnitude of the another oscillation is a fraction of a magnitude of the oscillation.

7. A method of animating an external layer of a body, comprising:

for a point location on an external layer of a body, taking a third derivative of position with respect to time to determine a vector whose magnitude is a rate of change of acceleration of the point location; and

if the vector magnitude is greater than a predetermined threshold, then applying an oscillation to the external layer and generating an animation with the applied oscillation;

wherein the oscillation has an associated wavelength, magnitude, and damping coefficient.

8. A method of animating an external layer of a body, comprising:

for a point location on an external layer of a body, taking a third derivative of position with respect to time to determine a vector whose magnitude is a rate of change of acceleration of the point location; and

if the vector magnitude is greater than a predetermined threshold, then applying an oscillation to the external layer and generating an animation with the applied oscillation;

wherein the vector magnitude has an upper limit; and wherein an oscillation magnitude is substantially the same as the vector magnitude.

9. A method of animating an external layer of a body, comprising:

for a point location on an external layer of a body, taking a third derivative of position with respect to time to determine a vector whose magnitude is a rate of change of acceleration of the point location, wherein the external layer corresponds to a body mass group on a bone between two joints having a longitudinal axis, and further comprising representing the vector by a longitudinal component and a rotational component;

if the vector magnitude is greater than a predetermined threshold, then applying an oscillation to the external layer, wherein the applying as oscillation further comprises:

applying the longitudinal component to an oscillation of the body mass group along a longitudinal axis of the bone;

applying the rotational component to a rotational oscillation of the body mass group about the longitudinal axis of the bone; and

generating an animation with the applied oscillation.

10. The method of claim 9 , further comprising comparing a magnitude of the longitudinal component to a maximum longitudinal value, and if the magnitude is greater than the maximum longitudinal value, then using the maximum longitudinal value in the applying the longitudinal component to an oscillation of the body mass along the length of the bone.

11. The method of claim 9 , further comprising comparing a magnitude of the rotational component to a maximum rotational value, and if the magnitude is greater than the maximum rotational value, then using the maximum rotational value in the applying the rotational component to a rotational oscillation of the body mass about the longitudinal axis of the bone.

12. The method of claim 9 , wherein the body mass group on a bone defines a translation unit vector along a length of the bone, and further defines a rotation unit vector perpendicular to the translation unit vector, and wherein the longitudinal component of the oscillation is proportional to a dot product of the jolt vector and the translation unit vector, and wherein the rotational component of the oscillation is proportional to a dot product of the jolt vector and the rotation unit vector.

13. A non-transitory computer-readable medium, comprising instructions for causing a computing environment to implement the method of claim 1 .

14. A system for animating an external layer of a body, comprising:

a. a jolt determination module, the jolt determination module for accepting one or more animation curves representing positions on or within a body and determining if an oscillation should be applied to a body mass group within the body, and if an oscillation should be applied, determining the magnitude and direction of the oscillation; and

b. an oscillation application module, for applying the oscillation to the body mass group, the oscillation application module representing the oscillation by a longitudinal component and a rotational component to generate an animation;

c. wherein the jolt determination module is configured to determine if an oscillation should be applied by taking a third derivative of position with respect to time for a point location within the body mass group to determine a vector whose magnitude is a rate of change of acceleration of the point location, and if the vector magnitude is greater than a predetermined threshold, then the jolt determination is configured to determine that the oscillation should be applied;

d. wherein the body mass group is defined between a plurality of joints, and the body mass group is constrained against oscillation at a point of connection with each of the joints, and wherein the body mass group experiences a minimum of the magnitude of oscillation at the connection points and an upper limit of the magnitude of oscillation between the connection points, and

e. wherein the body mass group is associated with a set of parameters including a maximum longitudinal value, a maximum rotational value, and a damping coefficient.

15. The system of claim 14 , wherein the body mass group is defined on a bone between two joints having a longitudinal axis, and wherein the longitudinal component is applied to the body mass group along the longitudinal axis and wherein the rotational component is applied to the body mass group about the longitudinal axis.

16. The system of claim 14 , wherein the parameters include a common factor, wherein by changing the common factor, each of the parameters scales to an appropriate value.

17. A method of animating an external layer of a body, comprising:

a. for a point location on an external layer of a body, taking a third derivative of position with respect to time to determine a vector whose magnitude is a rate of change of acceleration of the point location; and

b. if the vector magnitude is greater than a predetermined threshold, then applying an oscillation to the external layer and generating an animation with the applied oscillation, wherein a magnitude of oscillation is proportional to the vector magnitude.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2012
From: SHEERIN, DANIEL PAUL
To: SONY CORPORATION; SONY PICTURES TECHNOLOGIES INC.
Reel/Frame 029119/0691 →
Continuity (1)
Related Publication 20140104282A1 · Apr 17, 2014