Virtual Object Joint Chain Curve Fitting for Natural Animation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Determining the desired locations of complex rigs formed of multiple joints to achieve desired behavior is complex, and existing inverse kinematics methods often result in unnatural-looking animations, especially when trying to constrain the end joint to a specific target position in 3D space.
Innovation Solution
A method and system for animating virtual objects by obtaining joint data for each joint in a chain, processing it to determine natural joint angles, and fitting scaled vectors to a target curve, ensuring the first and last joints are placed at the curve's start and end points, while distributing angle changes among intermediate joints to maintain relative angles and achieve a best fit.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If inverse kinematics methods are used to constrain the end joint to a specific target position, then position control precision is improved, but the animation looks unnatural
Solution Approach 1:
The invention divides the chain of joints into segments and distributes the angle changes among intermediate joints rather than applying all changes to the end joint. This segmentation allows the end joint to reach the target position while intermediate joints contribute to achieving a natural-looking configuration, resolving the contradiction between position precision and animation naturalness.
Solution Approach 2:
The invention changes the parameters of angle distribution among joints by introducing weights that determine how much each intermediate joint contributes to the total angle change. This parameter adjustment allows optimization of both the end joint position accuracy and the naturalness of the animation by finding the right balance in angle distribution.
2Adaptability or versatility
If complex rigs with multiple joints are used to achieve desired behavior, then animation versatility is improved, but the complexity of determining joint locations increases
Solution Approach 1:
The invention enables the complex rig system to determine its own joint locations automatically through an iterative process that distributes angle changes among joints based on their individual contributions. This self-service approach eliminates the need for manual calculation of joint locations, making the system manageable despite its complexity and allowing for versatile animation behaviors.
3Manufacturing precision
If angle changes are distributed among intermediate joints, then animation naturalness is improved, but the precision of end joint position control decreases
Solution Approach 1:
The invention employs an iterative process with feedback mechanisms that calculate the contribution of each intermediate joint to the end joint's movement toward the target position. By using feedback to adjust angle distribution weights, the system achieves both natural-looking animations and accurate end joint positioning, as the feedback loop continuously optimizes the balance between naturalness and precision.
Data Source
AI summary
A computer implemented method and a computer system for animating parts of a virtual object in a virtual world, accesses 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; accesses data for a target curve for use in defining possible target locations for the joints of the parts of the virtual object, and retrieves or estimates a length of the curve; and processes the joint data to determine a total length of the vectors for the joints of the chain using the length data for the vectors; to determine scaled vectors by determining a scaled length for the vector for each joint of the chain based on the length of the curve and the total length of the vectors for the joints of the chain; to fit the scaled vectors for the joints of the chain to the curve by rotating the scaled vectors, with a first joint in the chain fitted to a start point on the curve and the last joint in the chain fitted at or near an end point on the curve; rescale the scaled vector for each joint of the chain to have the vector length; to set the first joint in the chain to the start point on the curve; and to determine locations for the joints by rotating the vectors to fit the last joint in the chain to the end point of the curve and to determine the locations of intermediate joints by distributing vector rotations for the intermediate joints among the vectors.


