IP Library Granted Patent US 7,151,542
Granted Patent B2
US 7,151,542 · App. 10/960,481 · Granted Dec 19, 2006

Manipulation of motion data in an animation editing system

Assignee: Avid Technology, 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 7,151,542
App. No.
10/960,481
Granted
Dec 19, 2006
Kind
B2
Abstract

The problem of editing motion data can be solved by providing a way to specify control points (herein called “handles”) along the path of the motion data and to describe the motion data as a combination of layers of information describing the motion in relationship to these handles. A first layer may describe, for each point in the motion data, the distance of the point between the handles. For example, a path between two handles may be defined. Each point in the motion data is closest to a point along that path. That point along the line has a distance to the two handles. These distances may be defined as a percentage of the length of the path. A second layer may describe the offset of points in the motion data from the line between the two handles.

Claims (175)

1. A computer program product, comprising:

a computer readable medium have computer program instructions stored thereon which, when interpreted by a computer, instruct the computer to perform a process for editing motion data for animating a character, comprising:

receiving information specifying a plurality of handles in the motion data;

for points in the motion data between a pair of the specified handles:

computing a value representing a distance of the point along a path between the pair of handles; and

computing a value representing an offset of the point from the path between the pair of handles;

receiving user input to allow a user to manipulate the computed values representing the offsets to specify an animation of the character using the manipulated computed values.

2. The computer program product of claim 1 , wherein the information specifying a plurality of handles in the motion data comprises positions at which a minimum velocity is represented by the motion data.

3. The computer program product of claim 1 , wherein computing the value representing the distance comprises:

identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

computing a first distance between the reference point and a first of the pair of handles.

4. The computer program product of claim 3 , wherein computing the value representing the distance further comprises:

computing a second distance between the reference point and a second of the pair of handles.

5. The computer program product of claim 4 , wherein computing the value representing the distance further comprises:

computing the first distance as a percentage of a distance between the pair of handles.

6. The computer program product of claim 5 , wherein computing the value representing the distance further comprises:

computing the second distance as a percentage of the distance between the pair of handles.

7. The computer program product of claim 4 , wherein computing the value representing the distance further comprises:

computing the second distance as a percentage of a distance between the pair of handles.

8. The computer program product of claim 3 , wherein computing the value representing the distance further comprises:

computing the first distance as a percentage of a distance between the pair of handles.

9. The computer program product of claim 1 , wherein computing the value representing the offset comprises:

identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

computing an offset between the reference point and the point in the motion data.

10. An animation system for editing motion data for animating a character, comprising:

means for accessing information specifying a plurality of handles in the motion data;

means for determining, for points in the motion data between a pair of the specified handles, a value representing a distance of the point along a path between the pair of handles; and

means for determining, for points in the motion data between a pair of the specified handles, a value representing an offset of the point from the path between the pair of handles; and

means for processing user input to allow a user to manipulate the computed values representing the offsets to specify an animation of the character using the manipulated computed values.

11. The animation system of claim 10 , wherein the information specifying a plurality of handles in the motion data comprises positions at which a minimum velocity is represented by the motion data.

12. The animation system of claim 10 , wherein the means for determining the value representing the distance comprises:

means for identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

means for determining a first distance between the reference point and a first of the pair of handles.

13. The animation system of claim 12 , wherein the means for determining the value representing the distance further comprises:

means for determining a second distance between the reference point and a second of the pair of handles.

14. The animation system of claim 13 , wherein the means for determining the value representing the distance further comprises:

means for determining the first distance as a percentage of a distance between the pair of handles.

15. The animation system of claim 14 , wherein the means for determining the value representing the distance further comprises:

means for determining the second distance as a percentage of the distance between the pair of handles.

16. The animation system of claim 13 , wherein the means for determining the value representing the distance further comprises:

means for determining the second distance as a percentage of a distance between the pair of handles.

17. The animation system of claim 12 , wherein the means for determining the value representing the distance further comprises:

means for determining the first distance as a percentage of a distance between the pair of handles.

18. The animation system of claim 10 , wherein the means for determining the value representing the offset comprises:

means for identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

means for determining the offset between the reference point and the point in the motion data.

19. An animation system for enabling editing and animation of a character using motion data and information specifying a plurality of handles in the motion data, comprising:

a motion data processing module that computes, for points in the motion data between a pair of the specified handles, a value representing the distance of the point along a path between the pair of handles, and that computes, for points in the motion data between a pair of the specified handles, a value representing the offset of the point from the path between the pair of handles; and

an animation user interfaces that receives user input to allow a user to manipulate the computed values representing the offsets to specify an animation of the character using the manipulated computed values.

20. The animation system of claim 19 , wherein the information specifying a plurality of handles in the motion data comprises positions at which a minimum velocity is represented by the motion data.

21. The animation system of claim 19 , wherein the motion data processing module comprises:

means for identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

means for determining a first distance between the reference point and a first of the pair of handles.

22. The animation system of claim 21 , wherein the motion data processing module comprises:

means for determining a second distance between the reference point and a second of the pair of handles.

23. The animation system of claim 22 , wherein the motion data processing module comprises:

means for determining the first distance as a percentage of a distance between the pair of handles.

24. The animation system of claim 23 , wherein the motion data processing module comprises:

means for determining the second distance as a percentage of the distance between the pair of handles.

25. The animation system of claim 22 , wherein the motion data processing module comprises:

means for determining the second distance as a percentage of a distance between the pair of handles.

26. The animation system of claim 21 , wherein the motion data processing module comprises:

means for determining the first distance as a percentage of a distance between the pair of handles.

27. The animation system of claim 19 , wherein the motion data processing module comprises:

means for identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

means for determining the offset between the reference point and the point in the motion data.

28. A process for editing motion data for animating a character, comprising:

receiving information specifying a plurality of handles in the motion data;

for points in the motion data between a pair of the specified handles:

computing a value representing a distance of the point along a path between the pair of handles; and

computing a value representing an offset of the point from the path between the pair of handles;

receiving user input to allow a user to manipulate the handles to specify an animation of the character using the computed values and the manipulated handles.

29. The process of claim 28 , wherein the information specifying a plurality of handles in the motion data comprises positions at which a minimum velocity is represented by the motion data.

30. The process of claim 28 , wherein computing the value representing the distance comprises:

identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

computing a first distance between the reference point and a first of the pair of handles.

31. The process of claim 30 , wherein computing the value representing the distance further comprises:

computing a second distance between the reference point and a second of the pair of handles.

32. The process of claim 31 , wherein computing the value representing the distance further comprises:

computing the first distance as a percentage of a distance between the pair of handles.

33. The process of claim 32 , wherein computing the value representing the distance further comprises:

computing the second distance as a percentage of the distance between the pair of handles.

34. The process of claim 31 , wherein computing the value representing the distance further comprises:

computing the second distance as a percentage of a distance between the pair of handles.

35. The process of claim 30 , wherein computing the value representing the distance further comprises:

computing the first distance as a percentage of a distance between the pair of handles.

36. The process of claim 28 , wherein computing the value representing the offset comprises:

identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

computing the offset between the reference point and the point in the motion data.

37. A computer program product, comprising:

a computer readable medium have computer program instructions stored thereon which, when interpreted by a computer, instruct the computer to perform a process for editing motion data for animating a character, comprising:

receiving information specifying a plurality of handles in the motion data;

for points in the motion data between a pair of the specified handles:

computing a value representing a distance of the point along a path between the pair of handles; and

computing a value representing an offset of the point from the path between the pair of handles;

receiving user input to allow a user to manipulate the handles to specify an animation of the character using the computed values and the manipulated handles.

38. The computer program product of claim 37 , wherein the information specifying a plurality of handles in the motion data comprises positions at which a minimum velocity is represented by the motion data.

39. The computer program product of claim 37 , wherein computing the value representing the distance comprises:

identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

computing a first distance between the reference point and a first of the pair of handles.

40. The computer program product of claim 39 , wherein computing the value representing the distance further comprises:

computing a second distance between the reference point and a second of the pair of handles.

41. The computer program product of claim 40 , wherein computing the value representing the distance further comprises:

computing the first distance as a percentage of a distance between the pair of handles.

42. The computer program product of claim 41 , wherein computing the value representing the distance further comprises:

computing the second distance as a percentage of the distance between the pair of handles.

43. The computer program product of claim 40 , wherein computing the value representing the distance further comprises:

computing the second distance as a percentage of a distance between the pair of handles.

44. The computer program product of claim 39 , wherein computing the value representing the distance further comprises:

computing the first distance as a percentage of a distance between the pair of handles.

45. The computer program product of claim 37 , wherein computing the value representing the offset comprises:

identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

computing the offset between the reference point and the point in the motion data.

46. A process for manipulating motion data for editing motion data for animating a character, comprising:

receiving information specifying a plurality of handles in the motion data;

for points in the motion data between a pair of the specified handles:

computing a value representing a distance of the point along a path between the pair of handles; and

computing a value representing an offset of the point from the path between the pair of handles;

storing the computed values in a computer readable medium for editing and animation of the character using the motion data.

47. The process of claim 46 , wherein the information specifying a plurality of handles in the motion data comprises positions at which a minimum velocity is represented by the motion data.

48. The process of claim 46 , wherein computing the value representing the distance comprises:

identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

computing a first distance between the reference point and a first of the pair of handles.

49. The process of claim 48 , wherein computing the value representing the distance further comprises:

computing a second distance between the reference point and a second of the pair of handles.

50. The process of claim 49 , wherein computing the value representing the distance further comprises:

computing the first distance as a percentage of a distance between the pair of handles.

51. The process of claim 50 , wherein computing the value representing the distance further comprises:

computing the second distance as a percentage of the distance between the pair of handles.

52. The process of claim 49 , wherein computing the value representing the distance further comprises:

computing the second distance as a percentage of a distance between the pair of handles.

53. The process of claim 48 , wherein computing the value representing the distance further comprises:

computing the first distance as a percentage of a distance between the pair of handles.

54. The process of claim 46 , wherein computing the value representing the offset comprises:

identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

computing the offset between the reference point and the point in the motion data.

55. A computer program product, comprising:

a computer readable medium have computer program instructions stored thereon which, when interpreted by a computer, instruct the computer to perform a process for editing motion data for animating a character, comprising:

receiving information specifying a plurality of handles in the motion data;

for points in the motion data between a pair of the specified handles:

computing a value representing the distance of the point along a path between the pair of handles; and

computing a value representing the offset of the point from the path between the pair of handles;

storing the computed values in computer readable form for editing and animation of the character using the motion data.

56. The computer program product of claim 55 , wherein the information specifying a plurality of handles in the motion data comprises positions at which a minimum velocity is represented by the motion data.

57. The computer program product of claim 55 , wherein computing the value representing the distance comprises:

identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

computing a first distance between the reference point and a first of the pair of handles.

58. The computer program product of claim 57 , wherein computing the value representing the distance further comprises:

computing a second distance between the reference point and a second of the pair of handles.

59. The computer program product of claim 58 , wherein computing the value representing the distance further comprises:

computing the first distance as a percentage of a distance between the pair of handles.

60. The computer program product of claim 59 , wherein computing the value representing the distance further comprises:

computing the second distance as a percentage of the distance between the pair of handles.

61. The computer program product of claim 58 , wherein computing the value representing the distance further comprises:

computing the second distance as a percentage of a distance between the pair of handles.

62. The computer program product of claim 57 , wherein computing the value representing the distance further comprises:

computing the first distance as a percentage of a distance between the pair of handles.

63. The computer program product of claim 55 , wherein computing the value representing the offset comprises:

identifying a reference point along the path, wherein the reference point is closest to the point in the motion data; and

computing the offset between the reference point and the point in the motion data.

64. A process for enabling animation of a character using edited motion data, comprising:

receiving information specifying a plurality of handles in the motion data, values representing distance of points in the motion data along a path between a pair of the handles and values representing offsets of points in the motion data from the path between the pair of the handles;

receiving user input to allow a user to manipulate the received information to specify an animation of the character; and

rendering the specified animation of the character using the manipulated received information, wherein the information specifying a plurality of handles in the motion data comprises positions at which a minimum velocity is represented by the motion data.

65. A computer program product, comprising:

a computer readable medium have computer program instructions stored thereon which, when interpreted by a computer, instruct the computer to perform a process for enabling animation of a character using edited motion data, comprising:

receiving information specifying a plurality of handles in the motion data, values representing distance of points in the motion data along a path between a pair of the handles and values representing offsets of points in the motion data from the path between the pair of the handles;

receiving user input to allow a user to manipulate the received information to specify an animation of the character; and

rendering the specified animation of the character using the manipulated received information;

wherein the information specifying a plurality of handles in the motion data comprises positions at which a minimum velocity is represented by the motion data.

66. An animated work on a medium containing a plurality of images, produced by the process of:

receiving information specifying a plurality of handles in the motion data, values representing distance of points in the motion data along a path between a pair of handles and values representing offsets of points in the motion data from the path between the pair of handles; providing a user interface to allow a user to manipulate the received information to specify an animation of the character;

rendering the specified animation of the character using the manipulated received information; and

manipulating the medium to contain the rendered plurality of images representing the animated work;

wherein the information specifying a plurality of handles in the motion data comprises positions at which a minimum velocity is represented by the motion data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2009
From: ISNER, MICHAEL
To: AVID TECHNOLOGY, INC.
Reel/Frame 022757/0997 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2008
From: AVID TECHNOLOGY, INC.
To: AUTODESK, INC.
Reel/Frame 021962/0974 →
Continuity (3)
Continuation 1026417300 · Oct 3, 2002
Provisional Application 6033013600 · Oct 17, 2001
Related Publication 20050041030A1 · Feb 24, 2005