IP Library Granted Patent US 9,342,913
Granted Patent B2
US 9,342,913 · App. 13/770,900 · Granted May 17, 2016

Method and system for emulating inverse kinematics

Inventors: Chun Yue Gordon Wong (Coquitlam, CA); Graham Thurstan Smith (Saskatoon, CA); Keith William Reid (Richmond, CA)
Assignee: NGRAIN (CANADA) CORPORATION
G06T13/20G06T2200/24
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,342,913
App. No.
13/770,900
Granted
May 17, 2016
Kind
B2
Abstract

System and method are provided for achieving “inverse kinematics” of 3D graphics depicting an object that consists of multiple parts. The system displays an animation of a 3D graphics object that consists of multiple moving parts. The animation is associated with an animation timeline defined by two end points—a starting time point and an ending time point. The user can manipulate the object back and forth along the animation timeline, between the two end points, by selecting (e.g., clicking on) and moving (dragging) any of the movable parts of the object on a display screen. In short, the user can use any of the movable parts as a scroll/slide button to move the animation forward and backward along the animation timeline, to achieve real-time inverse kinematics movement.

Claims (42)

1. A computer-implemented system comprising a processor, a memory, and a 2D display, wherein:

the memory is configured to be loaded with a pre-existing animation of a 3D graphics object having multiple distinct parts that are discretely selectable, the animation including multiple frames that respectively depict the 3D graphics object wherein the multiple distinct parts move frame by frame but are in defined shapes per frame, wherein the animation has an animation timeline of a fixed time length defined by a starting time point and an ending time point to depict interactive movements of the multiple distinct parts of the object along the animation timeline; and

the processor, when loaded with computer-executable instructions, executes an algorithm including:

(i) detecting user selection of one of the multiple distinct parts in one of the multiple frames of the animation as shown on the display, the frame being associated with a corresponding frame time (t frame ) along the animation timeline;

(ii) determining that user designation of a part movement direction as applied to the selected distinct part in the frame of the animation as shown on the display is acceptable;

(iii) selecting a frame, out of the multiple frames of the animation, which depicts the selected distinct part at its new user-moved position, based on user designation of a part movement distance ending at the new user-moved position on the 2D display, by (iii-a) determining a user-specified time (t user ) along the animation timeline, at which time in the animation the selected distinct part is shown at the new user-moved position, and (iii-b) selecting the frame that is associated with the determined, user-specified time t user ; and

(iv) showing the selected frame of the animation on the display.

2. The system according to claim 1 , wherein the algorithm further includes:

(v) in case the user-specified time t user is on or outside a boundary of the animation timeline, (a) determining a projected destination position of the selected distinct part on the display at the user-specified time t user , (b) in case the selected distinct part is defined as detachable, showing the selected distinct part at the projected destination position, and (c) in case the selected distinct part is defined as not-detachable, showing on the display a frame corresponding to the starting time point or the ending time point that is closer to the user-specified time t user .

3. The system according to claim 1 , wherein the animation consists of a plurality of key frames including a starting key frame and an ending key frame, and (iv) includes showing one of the plurality of key frames whose associated time is closest to the user-specified time t user .

4. The system according to claim 1 , wherein the animation consists of a plurality of key frames including a starting key frame and an ending key frame, and (i-iii) includes selecting an interpolated frame, which is generated based on interpolation of at least some of the plurality of key frames for the user-specified time t user .

5. The system according to claim 1 , wherein (iii-a) includes:

a) determining a pixel-wise distance that corresponds to the user-designated part movement distance on the display;

b) converting the pixel-wise distance to a 3D-wise distance in the 3D graphics object space; and

c) based on the 3D-wise distance of the selected distinct part, determining the user-specified time t user on the animation timeline.

6. The system according to claim 1 , wherein the algorithm repeats (i)-(iv) as long as a user selects and moves one of the multiple distinct parts within a boundary of the animation timeline.

7. A computer-implemented method comprising:

loading to a memory device a pre-existing animation of a 3D graphics object having multiple distinct parts that are discretely selectable, the animation including multiple frames that respectively depict the 3D graphics object wherein the multiple distinct parts move frame by frame but are in defined shapes per frame, wherein the animation has an animation timeline of a fixed time length defined by a starting time point and an ending time point to depict interactive movements of the multiple distinct parts of the object along the animation timeline;

(ii) detecting user selection of one of the multiple distinct parts in one of the multiple frames of the animation as shown on a 2D display, the frame being associated with a corresponding frame time (t frame ) along the animation timeline;

(iii) determining that user designation of a part movement direction as applied to the selected distinct part in the frame of the animation as shown on the display is acceptable;

(iv) selecting a frame, out of the multiple frames of the animation, which depicts the selected distinct part at its new user-moved position, based on user designation of a part movement distance ending at the new user-moved position on the 2D display, by (iv-a) determining a user-specified time (t user ) on the animation timeline, at which time in the animation the selected distinct part is shown at the new user-moved position, and (iv-b) selecting the frame that is associated with the determined user-specified time t user ; and

(v) showing the selected frame of the animation on the display.

8. The method according to claim 7 , wherein (ii) includes visually differentiating one of the multiple distinct parts as selected by a user on the display.

9. The method according to claim 7 , wherein (iii) includes comparing the user-designated part movement direction with a defined direction along which the selected distinct part is supposed to move in the animation.

10. The method according to claim 9 , wherein the user-designated part movement direction is determined to be acceptable if it corresponds to the defined direction within a defined tolerance range.

11. The method according to claim 7 , wherein (iv-a) includes:

a) determining a pixel-wise distance that corresponds to the user-designated part movement distance on the display;

b) converting the pixel-wise distance to a 3D-wise distance in the 3D graphics space; and

c) based on the 3D-wise distance of the selected distinct part, determining the user-specified time t user along the animation timeline.

12. The method according to claim 7 , wherein the animation consists of a plurality of key frames including a starting key frame and an ending key frame, and (v) includes showing one of the plurality of key frames whose associated time is closest to the user-specified time t user .

13. The method according to claim 7 , wherein the animation consists of a plurality of key frames including a starting key frame and an ending key frame, and (iv) includes selecting an interpolated frame, which is generated based on interpolation of at least some of the plurality of key frames for the user-specified time t user .

14. The method according to claim 7 , further comprising repeating (ii)-(v) as long as a user selects and moves one of the multiple distinct parts within a boundary of the animation timeline.

15. The method according to claim 7 , further comprising:

(vi) in case the user-specified time t user is on or outside a boundary of the animation timeline, (a) determining a projected destination position of the selected distinct part on the display at the user-specified time t user , (b) in case the selected distinct part is defined as detachable, showing the selected distinct part at the projected destination position, and (c) in case the selected distinct part is defined as not-detachable, showing on the display a frame corresponding to the starting time point or the ending time point that is closer to the user-specified time t user .

16. The method according to claim 15 , wherein each of the multiple distinct parts is pre-defined as detachable or not-detachable.

17. The method according to claim 15 , wherein (vi)(b) includes showing the selected distinct part at the projected destination position on a last frame that has been shown on the display.

18. A non-transitory computer-readable storage medium whose contents configure a computing system to perform a method, the method comprising:

displaying, on a 2D display of the computing system, a pre-existing animation of a 3D graphics object having multiple distinct parts that are discretely selectable, the animation including multiple frames that respectively depict the 3D graphics object wherein the multiple distinct parts move frame by frame but are in defined shapes per frame, wherein the animation has an animation timeline of a fixed time length defined by a starting time point and an ending time point to depict interactive movements of the multiple distinct parts of the object along the animation timeline;

(ii) detecting user selection of one of the multiple distinct parts in one of the multiple frames of the animation as shown on the display, the frame being associated with a corresponding frame time (t frame ) along the animation timeline, and detecting user designation of part movement distance of the selected distinct part ending at a new user-moved position in the frame of the animation as shown on the 2D display;

(iii) selecting a frame, out of the multiple frames of the animation, which depicts the selected distinct part at its new user-moved position, by (iii-a) determining a user-specified time (t user ) on the animation timeline, at which time in the animation the selected distinct part is shown at the new user-moved position, and (iii-b) selecting the frame that is associated with the determined user-specified time t user ; and

(iv) displaying the selected frame of the animation.

19. The medium according to claim 18 , wherein the animation consists of a plurality of key frames including a starting key frame and an ending key frame, and (iv) includes displaying one of the plurality of key frames whose associated time is closest to the user-specified time t user or displaying an interpolated frame, which is generated based on interpolation of at least some of the plurality of key frames for the user-specified time t user .

Assignments (5)
SECURITY INTEREST Recorded Feb 21, 2024
From: NGRAIN (CANADA) CORPORATION
To: ATB FINANCIAL
Reel/Frame 066516/0722 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2023
From: NGRAIN (CANADA) CORPORATION
To: MCLOUD TECHNOLOGIES (USA) INC.
Reel/Frame 064513/0803 →
RELEASE OF SECURITY INTEREST Recorded Aug 1, 2019
From: FLOW CAPITAL CORP.
To: NGRAIN (CANADA) CORPORATION; FIELD DIAGNOSTIC SERVICES, INC.
Reel/Frame 049937/0367 →
SECURITY INTEREST Recorded Feb 7, 2019
From: NGRAIN (CANADA) CORPORATION
To: FLOW CAPITAL CORP.
Reel/Frame 048285/0904 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2013
From: WONG, CHUN YUE GORDON; SMITH, GRAHAM THURSTAN; REID, KEITH WILLIAM
To: NGRAIN (CANADA) CORPORATION
Reel/Frame 030110/0570 →
Continuity (1)
Related Publication 20140232716A1 · Aug 21, 2014