IP Library Granted Patent US 11,302,052
Granted Patent B2
US 11,302,052 · App. 17/379,992 · Granted Apr 12, 2022

Forced contiguous data for execution of evaluation logic used in animation control

Inventors: Niall J. Lenihan (Wellington, NZ); Richard Chi Lei (Wellington, NZ); Sander van der Steen (Wellington, NZ)
Assignee: WETA DIGITAL LIMITED
G06T13/40G06F3/04842G06F3/04845G06T1/60G06T19/20G06T2213/08G06T2219/2016
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 11,302,052
App. No.
17/379,992
Granted
Apr 12, 2022
Kind
B2
Abstract

An aspect provides a computer-implemented method for constructing evaluation logic associated with an animation software package. The method comprises receiving at least one software module, the at least one software module including at least one evaluator; writing the at least one software module to at least one executable code object; and maintaining data for the at least one software module in a contiguous block of memory for use by the software module.

Claims (28)

1. A computer-implemented method for implementing evaluation logic associated with an animation control rig, the method comprising:

receiving a command to execute the evaluation logic to manipulate the animation control rig, wherein the evaluation logic includes at least two data structures that would be stored noncontiguously in one or more memories;

modifying a storing of at least one of the two data structures so that the two data structures are selectively stored in cache memory to reduce data access time to within a time reduction threshold;

storing the data structures in association with a computing object that implements at least a portion of the evaluation logic;

integrating one or more modules associated with the computing object with one or more host applications, wherein:

the one or more host applications includes an animation software package;

the one or more modules include one or more functions usable via one of the one or more host applications; and

the one or modules include a module that is limited to receiving one or more fixed-length variables; and

implementing the evaluation logic by executing the computing object using the two data structures in cache memory, and the animation software package, to cause an animation of the animation control rig.

2. The computer-implemented method of claim 1 , wherein modifying a storing includes modifying a storing of at least one of the two data structures so that the two data structures are stored in close proximity in cache address memory that is within a proximity threshold, whereby the data structures exhibit increased cache locality relative to initial storage locations.

3. The computer-implemented method of claim 1 , wherein the two data structures include skeleton data associated with an animation control rig, wherein the skeleton data is represented by the two data structures, which include one or more transform matrices.

4. The computer-implemented method of claim 3 , wherein the two data structures include skeleton data associated with multiple animation control rigs associated with a particular scene.

5. The computer-implemented method of claim 1 , wherein the skeleton data is represented by the two data structures, which include one or more transform matrices.

6. The computer-implemented method of claim 1 , wherein the one or more functions include a function to perform one or more kinematics or inverse kinematics operations, whereby one or more inputs to the function include position or orientation of one or more features of an animation control rig.

7. The computer-implemented method of claim 1 , further including providing a UI widget with one or more UI controls for enabling user control over functionality and use of the one or more functions by the host application.

8. The computer-implemented method of claim 1 , wherein the one or more functions include one or more evaluators and control logic for selective manipulation of an animation rig within the host application.

9. The computer-implemented method of claim 1 , wherein the one or more functions include a scaling function to selectively scale a rendered object.

10. The computer-implemented method of claim 1 , wherein the one or more functions include a rotation function to selectively rotate a rendered object.

11. The computer-implemented method of claim 1 , wherein the one or more functions include a translation function to selectively translate a rendered object.

12. The computer-implemented method of claim 1 , further including converting variable length data types to be input into the one or more modules into fixed-length data types in advance of providing the data types as input arguments into the one or more modules.

13. The computer-implemented method of claim 1 , wherein the one or more modules are implemented via one or more flat files in the portion of contiguous memory.

14. The computer-implemented method of claim 13 , wherein the one or more modules includes a hierarchy of modules.

15. The computer-implemented method of claim 14 , wherein the one or more modules includes integration software for facilitating use of functionality provided by the one or more modules.

16. The computer-implemented method of claim 15 , wherein the integration software includes a compiler enabling Just-In-Time (JIT) compilation of one or more processes for use by the host application.

17. The computer-implemented method of claim 16 wherein the compiler includes a C++ compiler.

18. The computer-implemented method of claim 1 , further including using the one or more modules to expose user versioning control of modules via the one or more host applications.

19. The computer-implemented method of claim 18 , further including using an Application Programming Interface (API) to expose functionality of the one or more modules to the one or more host applications.

20. The computer-implemented method of claim 1 , further including selectively restricting connecting one or more Graphics Processing Unit (GPU) variables with a function running on a Central Processing Unit (CPU).

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2022
From: UNITY SOFTWARE INC.
To: UNITY TECHNOLOGIES SF
Reel/Frame 058980/0369 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2022
From: WETA DIGITAL LIMITED
To: UNITY SOFTWARE INC.
Reel/Frame 058978/0905 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2021
From: LENIHAN, NIALL J; LEI, RICHARD CHI; VAN DER STEEN, SANDER
To: WETA DIGITAL LIMITED
Reel/Frame 058424/0424 →
Continuity (3)
Provisional Application 63214729 · Jun 24, 2021
Provisional Application 63056454 · Jul 24, 2020
Related Publication 20220028148A1 · Jan 27, 2022