Virtual Object Joint Chain Curve Fitting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Determining the desired locations of complex rigs formed of multiple joints in virtual object animation is complex, and existing methods like inverse kinematics require significant computational effort to achieve realistic behavior.

Innovation Solution

A method and system for animating virtual objects in a virtual world by processing joint data to fit a chain of joints to a target curve, iteratively minimizing the distance between joint locations and target locations using vector rotations and compound vectors, allowing for efficient alignment of joints along a curve defined by the animator.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If inverse kinematics is used to determine joint angles for realistic character animation, then the realism of character behavior is improved, but the computational effort and complexity increase significantly

Engineering Contradiction:
Improverealism of character behaviorVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the complex inverse kinematics problem into multiple simpler iterations. Each iteration focuses on fitting one joint at a time to its target location on the curve, rather than solving for all joints simultaneously. This segmentation reduces the computational complexity of each individual calculation step while maintaining the overall realism of the animation through cumulative refinement across iterations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by pre-defining the target curve that guides the joint positions before performing the inverse kinematics calculations. By establishing the desired path in advance and using it as a reference for each joint's target location, the system simplifies the computational process while ensuring realistic animation behavior follows the predetermined artistic intent.

Inventive Principle:
Principle #10Preliminary action

2Manufacturing precision

If complex rigs with multiple joints are used to achieve realistic virtual object animation, then the accuracy of joint positioning is improved, but the computational effort required increases

Engineering Contradiction:
Improveaccuracy of joint positioningVSAvoidcomputational effort
Core Design Contradiction:
Manufacturing precisionVSUse of energy by moving object

Solution Approach 1:

The patent applies dynamics by implementing an iterative solution process that dynamically adjusts joint positions across multiple passes. Each iteration refines the positioning accuracy by recalculating joint angles based on updated target locations derived from the target curve. This dynamic approach allows the system to achieve high positioning accuracy for complex rigs while managing computational effort through progressive refinement rather than requiring all precision in a single expensive calculation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9984488B2Animating a virtual object in a virtual world
Publication Date: 2018.05.29 NATURALMOTION
  • US9984488B2 patent drawing
  • US9984488B2 patent drawing
  • US9984488B2 patent drawing

AI summary

A computer implemented method for use in animating parts of a virtual object in a virtual world, the method comprising accessing joint data for each joint of a chain of joints associated with parts of a virtual object, joint data including length data defining a vector length for a vector from the joint to a next joint, the length data corresponding to a length of a part in the virtual world; accessing data for a target curve for use in defining possible target locations for the joints of the parts of the virtual object; and processing the joint data to set a location of a first joint at a first end of the chain to location of a first end of the target curve; define an end target location on the curve for an end joint at a second end of the chain; define intermediate locations on the curve for joints intermediate the ends of the chain based on the lengths of the vectors along the chain; and for a number of iterations, repeatedly identify a joint at a location having a largest location error relative to an intermediate location on the curve for the joint; rotate a vector for a preceding joint in the chain to minimize a distance between the end joint and the intermediate location on the curve; rotate a vector for the identified joint to minimize the distance between the end joint and the end target location on the curve; identify a joint at a location having the largest location error relative to an intermediate location on the curve for the joint; and determine a rotation to be applied to the vector for the first joint and the vector for the identified joint to fit the end joint to the end target location, and rotating the vector for the first joint and the vector for the identified joint to fit the end joint to the end target location.