root_module
A rigging module defining one root control and one root joint. This module requires two pins:
root_control
The rest transform of the root control.root_joint
The rest transform of the root joint.
Inputs
inputs
The Rigging::Module::Inputs
struct of this module, containing all input setup and input animation data to drive this module. inputs
is expected to be exposed to the host application.
setup.pins
An array of pins. Pins are helpers transforms acting as guides, usually used to define the rest transformation of controls and joints. Default pins for this port can be set on the Parameter Editor.setup.custom
An object containing any custom data setup data to be used within theuser_setup
.animation.control_operator_matrices
An array ofdouble4x4
operator matrices to drive the control transforms. Operators are automatically applied on transforms before theuser_animation
solve.animation.joint_operator_matrices
An array ofdouble4x4
operator matrices to drive the joint transforms. Operators are automatically applied on transforms before theuser_animation
solve.animation.attribute_data
Arrays of data for the control attributes. Attributes generated by this module are created on the host application's controls from theoutputs
. Their values are connected back to theinputs
in order to be used within theuser_animation
solve.animation.custom
An object containing any custom data setup data to be used within theuser_animation
solve.
General
The standard parameters of a rigging module.
name
Defines the name of this module. This is primarily used to identify this module, but can also be used as a prefix for control and joint names.
state
The state of this module's control and joint transforms.
Animation
Sets the transforms in their full animation states. Transforms are fully affect by movement from parent modules, by their operators, and animation solve.Rest (Relative)
Sets the transforms in their relative rest states. Transforms are still affected by movement from parent modules, but not by their operators, nor the animation solve.Rest (Absolute)
Sets the transforms in their absolute rest states. Transforms are not affected by movement from parent modules, their operators, or animation solve.
Diagnostics
Displays this module's resulting pins, controls, joints and transforms upon enabling the D
Terminal flag.
display_pins
If enabled, displays the pins as red points.
display_controls
If enabled, displays the control shapes as either strands or meshes, depending on the specified control shapes.
display_joints
If enabled, displays the joints as a mix of points and strands.
display_transforms
If enabled, displays the transforms of the enabled diagnostic entities. For example, if display_pins
is enabled but not display_controls
and display_joints
, only the transforms of the pins will be displayed.
axes_shape
The type of geometry shader to apply on the resulting transform axes.
Wire
: Displays the strands as thin lines 1px wide.Ribbon
: Displays the strands as strips, with a width relative to the scales of the transforms, and theaxes_scale
,arrowhead_size_ratio
, andstem_width_ratio
values.Tube
: Displays the strands as thick tubes, with a radius relative to the scales of the transforms, and theaxes_scale
,arrowhead_size_ratio
, andstem_width_ratio
values.
axes_scale
A multiplier to increase or decrease the scale of the transform axes to display.
Evaluation
profile_evaluation
If enabled, profile this module, as well as the individual setup and animation computation. The result of the profiling can be seen in the host application's profiler.
edit_mode
Controls whether the module operates in an "editing" or "performance-optimized" mode by managing the evaluation of both the user_setup
and the lookup computations of find_*
nodes in the user_animation
. This should always be enabled while editing the inside of this module or while tweaking parameters that directly affect the setup. Once editing is complete, it is highly recommended to disable this mode to maximize performance.
When enabled: The
user_setup
of this module will be evaluated every time the graph evaluates, ensuring that changes to the module's setup are applied immediately. The lookup computation of thefind_*
nodes within theuser_animation
area will be forced to update every time the graph evaluates.When disabled: The result of the setup will be cached and only updated if the
inputs
setup data is dirty or if any parent module's setup is dirty. The result of the lookup will also be cached and reused to retrieve the target data, optimizing performance by avoiding unnecessary re-evaluations. It will only be updated if this module’s setup becomes dirty. Note that you can still force the lookup computation of individualfind_*
nodes by enabling theirforce_lookup_evaluation
parameters.
Setup
The parameters affecting the user_setup
area of this module. Make sure that force_setup_evaluation
is enabled before tweaking these parameters, otherwise the setup will not be re-evaluated until something forces it to recompute.
create_control
If enabled, creates the root control.
control_name
The full name of the root control. If this is not specified, this module's name
will be used instead.
create_joint
If enabled, creates the root joint.
joint_name
The full name of the root joint. If this is not specified, this module's name
will be used instead.
lock_joint
If enabled, the root joint transform will be locked in the host application.
control_shape
The shape of the root control.
control_color
The color of the root control shape.
control_rotation
The relative rotation of the root control shape, in degrees.
control_scale
The relative scale of the root control shape.
joint_color
The color of the root joint.
joint_radius
The radius of the root joint.
Outputs
outputs
The Rigging::Module::Outputs
struct of this module, containing all the data generated by this module. outputs
is expected to be exposed to the host application.