IP Library Granted Patent US 8,284,203
Granted Patent B2
US 8,284,203 · App. 13/430,332 · Granted Oct 9, 2012

Looping motion space registration for real-time character animation

Assignee: Autodesk, Inc.
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,284,203
App. No.
13/430,332
Granted
Oct 9, 2012
Kind
B2
Abstract

A method for generating a looping motion space for real-time character animation may include determining a plurality of motion clips to include in the looping motion space and determining a number of motion cycles performed by a character object depicted in each of the plurality of motion clips. A plurality of looping motion clips may be synthesized from the motion clips, where each of the looping motion clips depicts the character object performing an equal number of motion cycles. Additionally, a starting frame of each of the plurality of looping motion clips may be synchronized so that the motion cycles in each of the plurality of looping motion clips are in phase with one another. By rendering an animation sequence using multiple passes through the looping motion space, an animation of the character object performing the motion cycles may be extended for arbitrary length of time.

Claims (41)

1. A computer-implemented method of rendering an animation sequence from a plurality of looping motion clips included in a looping motion space, comprising:

determining a number of motion cycles performed by a character object depicted in each of a plurality of motion clips that includes a first motion clip and a second motion clip, wherein a first number of motion cycles performed by the character object in the first motion clip is less than a second number of motion cycles performed by the character object in the second motion clip;

processing each of the first motion clip and the second motion clip to generate a plurality of looping motion clips, wherein each looping motion clip includes the same number of motion cycles bounded by the first number of motion cycles;

identifying a first looping motion clip and a second looping motion clip from the plurality of looping motion clips to blend together, wherein each of the first and second looping motion clips depicts the character object performing an equal number of motion cycles, at least one of the first looping motion clip or the second looping motion clip is padded so that the first frame of the first looping motion clip is identical to the first frame of the second looping motion clip and the last frame of the first looping motion clip is identical to the last frame of the second looping motion clip, and a first frame of the first looping motion clip is synchronized with a first frame of the second looping motion clip so that the motion cycles in each of the first and second looping motion clips are in phase with one another;

rendering, within a computer system, a first frame of the animation sequence by blending the first frame of the first looping motion clip and the first frame of the second looping motion clip;

rendering, within the computer system, subsequent frames of the animation sequence by blending each subsequent frame of the first looping motion clip with a corresponding subsequent frame of the second looping motion clip; and

upon determining that a last frame of the first looping motion clip and a last frame of the second looping motion clip have been blended and rendered as a frame of the animation sequence, rendering a next frame of the animation sequence by blending the first frame of the first looping motion clip and the first frame of the second looping motion clip.

2. The method of claim 1 , further comprising transforming the character object depicted in the frames of the rendered animation sequence to place the character object within a world space coordinate system of a graphics scene.

3. The method of claim 1 , wherein each of the looping motion clips depicts the character object performing a periodic motion.

4. The method of claim 3 , wherein the periodic motion depicts a locomotion action of the character object.

5. The method of claim 1 , wherein a path of the character object in the rendered animation sequence is controlled by a blending weight specified for each frame rendered from the frames of the first looping motion clip and the frames of the second looping motion clip.

6. The method of claim 1 , wherein the frames of the rendered animation sequence are generated in real-time.

7. The method of claim 1 , further comprising texture mapping the character object depicted in the frames of the rendered animation sequence.

8. A non-transitory computer-readable storage medium storing instructions that when executed by a processor cause the processor to render an animation sequence from a plurality of looping motion clips included in a looping motion space, by performing the steps of:

determining a number of motion cycles performed by a character object depicted in each of a plurality of motion clips that includes a first motion clip and a second motion clip, wherein a first number of motion cycles performed by the character object in the first motion clip is less than a second number of motion cycles performed by the character object in the second motion clip;

processing each of the first motion clip and the second motion clip to generate a plurality of looping motion clips, wherein each looping motion clip includes the same number of motion cycles bounded by the first number of motion cycles;

identifying a first looping motion clip and a second looping motion clip from the plurality of looping motion clips to blend together, wherein each of the first and second looping motion clips depicts the character object performing an equal number of motion cycles, at least one of the first looping motion clip or the second looping motion clip is padded so that the first frame of the first looping motion clip is identical to the first frame of the second looping motion clip and the last frame of the first looping motion clip is identical to the last frame of the second looping motion clip, and a first frame of the first looping motion clip is synchronized with a first frame of the second looping motion clip so that the motion cycles in each of the first and second looping motion clips are in phase with one another;

rendering a first frame of the animation sequence by blending the first frame of the first looping motion clip and the first frame of the second looping motion clip;

rendering subsequent frames of the animation sequence by blending each subsequent frame of the first looping motion clip with a corresponding subsequent frame of the second looping motion clip; and

upon determining that a last frame of the first looping motion clip and a last frame of the second looping motion clip have been blended and rendered as a frame of the animation sequence, rendering a next frame of the animation sequence by blending the first frame of the first looping motion clip and the first frame of the second looping motion clip.

9. The computer-readable storage medium of claim 8 , wherein the steps further comprise transforming the character object depicted in the frames of the rendered animation sequence to place the character object within a world space coordinate system of a graphics scene.

10. The computer-readable storage medium of claim 8 , wherein each of the looping motion clips depicts the character object performing a periodic motion.

11. The computer-readable storage medium of claim 10 , wherein the periodic motion depicts a locomotion action of the character object.

12. The computer-readable storage medium of claim 8 , wherein a path of the character object in the rendered animation sequence is controlled by a blending weight specified for each frame rendered from the frames of the first looping motion clip and the frames of the second looping motion clip.

13. The computer-readable storage medium of claim 8 , wherein the frames of the rendered animation sequence are generated in real-time.

14. The computer-readable storage medium of claim 8 , wherein the steps further comprise texture mapping the character object depicted in the frames of the rendered animation sequence.

15. A method for generating a looping motion space, comprising

selecting a plurality of motion clips that includes a first motion clip and a second motion clip to include in the looping motion space; and

invoking a looping motion space generation tool provided by a rendering application executing within a computer system, wherein the looping motion space generation tool is configured to:

determine a number of motion cycles performed by a character object depicted in each of a plurality of motion clips that includes a first motion clip and a second motion clip, wherein a first number of motion cycles performed by the character object in the first motion clip is less than a second number of motion cycles performed by the character object in the second motion clip,

process each of the first motion clip and the second motion clip to generate a plurality of looping motion clips, wherein each looping motion clip includes the same number of motion cycles bounded by the first number of motion cycles,

identify a first looping motion clip and a second looping motion clip from the plurality of looping motion clips to blend together, wherein each of the first and second looping motion clips depicts the character object performing an equal number of motion cycles, at least one of the first looping motion clip or the second looping motion clip is padded so that the first frame of the first looping motion clip is identical to the first frame of the second looping motion clip and the last frame of the first looping motion clip is identical to the last frame of the second looping motion clip, and a first frame of the first looping motion clip is synchronized with a first frame of the second looping motion clip so that the motion cycles in each of the first and second looping motion clips are in phase with one another,

render a first frame of the animation sequence by blending the first frame of the first looping motion clip and the first frame of the second looping motion clip,

render subsequent frames of the animation sequence by blending each subsequent frame of the first looping motion clip with a corresponding subsequent frame of the second looping motion clip, and

upon determining that a last frame of the first looping motion clip and a last frame of the second looping motion clip have been blended and rendered as a frame of the animation sequence, render a next frame of the animation sequence by blending the first frame of the first looping motion clip and the first frame of the second looping motion clip.

16. The method of claim 15 , further comprising transforming the character object depicted in the frames of the rendered animation sequence to place the character object within a world space coordinate system of a graphics scene.

17. The method of claim 15 , wherein each of the looping motion clips depicts the character object performing a periodic motion.

18. The method of claim 17 , wherein the periodic motion depicts a locomotion action of the character object.

19. The method of claim 15 , wherein a path of the character object in the rendered animation sequence is controlled by a blending weight specified for each frame rendered from the frames of the first looping motion clip and the frames of the second looping motion clip.

20. The method of claim 15 , wherein the frames of the rendered animation sequence are generated in real-time.

21. The method of claim 15 , further comprising texture mapping the character object depicted in the frames of the rendered animation sequence.

Continuity (3)
Continuation 11833953 · Aug 3, 2007
Provisional Application 60916259 · May 4, 2007
Related Publication 20120188257A1 · Jul 26, 2012