Loading...
Searching...
No Matches
InvertibleRigsExample_Authoring Class Reference

Class that implements authoring functionality needed to demonstrate an invertible rig with compensation. More...

#include <authoring.h>

Public Member Functions

EXEC_INVERTIBLERIGSEXAMPLE_API InvertibleRigsExample_Authoring (const UsdStageRefPtr &stage)
 
EXEC_INVERTIBLERIGSEXAMPLE_API void BreakdownInputAvars (const UsdAttribute &switchAttribute, const UsdTimeCode &time)
 For each input avar, authors a knot or a time sample at the given time, with the value of the avar at that time.
 
EXEC_INVERTIBLERIGSEXAMPLE_API void CompensateSwitch (const UsdAttribute &switchAttribute, const UsdTimeCode &time, const TfToken &switchValue)
 Authors a value to a switch attribute with compensation that authors input avar values such that the overall pose is the same before and after the change to the switch attribute value.
 

Detailed Description

Class that implements authoring functionality needed to demonstrate an invertible rig with compensation.

Definition at line 25 of file authoring.h.

Member Function Documentation

◆ BreakdownInputAvars()

EXEC_INVERTIBLERIGSEXAMPLE_API void BreakdownInputAvars ( const UsdAttribute & switchAttribute,
const UsdTimeCode & time )

For each input avar, authors a knot or a time sample at the given time, with the value of the avar at that time.

This operation can be used to preserve the pose at the given time, in preparation for authoring knots at other times, which might otherwise cause the pose at the broken down time to change, due to interpolation or extrapolation caused by spline knots or time samples authored at times before or after the breakdown time.

Warning
This function currently hardcodes the set of input avars in the rig used in testSwitchCompensation. A production-ready version of this function would find the input avars by analysis, based on the switch attribute, but that requires additional core support for invertible rigs.

◆ CompensateSwitch()

EXEC_INVERTIBLERIGSEXAMPLE_API void CompensateSwitch ( const UsdAttribute & switchAttribute,
const UsdTimeCode & time,
const TfToken & switchValue )

Authors a value to a switch attribute with compensation that authors input avar values such that the overall pose is the same before and after the change to the switch attribute value.

Switching control rigs with compensation is a primary workflow supported by invertible rigs. The value of the switch controller 'switch' attribute determines which control rig is used to compute the rig's pose at any given time. If we simply author a new value to the 'switch' attribute, then the resulting pose will, in general, change discontinuously. Compensation invokes inversion to compute the input avar values that preserve the pose and authors those values, along with the new 'switch' value, changing the active control rig such that the pose is continuous across the transition.

Warning
This function currently hardcodes the set of input avars in the rig used in testSwitchCompensation. A production-ready version of this function would find the input avars by analysis, based on the switch attribute, but that requires additional core support for invertible rigs.

The documentation for this class was generated from the following file: