| Since | 21.0 |
This component sets up neck and head controls for a character, and can be run in a loop over different segments, or parts, of the character. It is similar to the spline component.
The example in this file demonstrates how to use the neck rig component for the Otto test geometry.
The neck component creates the controls shown in the image below. It sets up a tangent spline with 4 controls - the root control, root CV (control vertex), tip CV, and tip control:
By default, the CVs are parented to the closest outer control, so the root CV is parented to the root control, and the tip CV is parented to the tip control. The root control is the main parent of the neck, and the mid and end controls allow you to further adjust the rotation of the neck and head:
The default position of the end control is higher up on the head, but its pivot position is in the middle of the head. You can change the end control position with the End Control Offset parameter:
If you want to rotate the head only, use the end control. If you want the neck to twist with the head rotation, use the tip control:
To stretch the neck, turn on the Add Stretch Control parameter in the Settings tab. This adds a slider configuration parameter to the neck component’s menu that allows you to adjust the stretch of the neck:
Parameters ¶
Name
The name to add to the nodes created by this component. When using Segments, the segment name is also added to the node names.
Settings ¶
Type
The type of curve to create from the control points.
Curve Order
The number of control points used to construct the curve. By default, Curve Order is set to 4 because we have the following control points for the neck - the root control, root CV, tip CV, and tip control.
A Bezier curve (the curve type is set in parameter Type) requires that the number of control points is equal to the curve order. Compound curves share a control point between their individual curve segments, so each additional curve segment requires an additional order-1 control points. This requirement can be expressed by the equation <number_of_control_points> % (order-1) == 1. See control spline for more information.
Pin Root
When turned on, constrains the orientation of the root joint to the root control (the root joint is the joint driven by the root control).
Pin Tip
When turned on, constrains the orientation of the tip joint to the tip control (the tip joint is the joint driven by the tip control). See the spline component for an example.
Add Stretch Control
When turned on, adds a slider configuration parameter in the neck component’s menu that allows you to adjust the stretch of the neck:
Stretch
Specifies whether to keep the length of the neck. When set to 0, the neck keeps its length. When set to 1, the neck stretches to follow the tip control.
Stretch Scale
Controls the amount of stretch. Increasing this value increases the effect of the stretch.
Squash Scale
Controls the amount of squash. Increasing this value increases the effect of the squash.
Keep Tip Scale
When turned on, the scaling of the neck at the tip remains unchanged as you stretch the neck. When turned off, the neck at the tip is scaled as you stretch the neck.
Note
You can only see the effects of the scaling if Stretch Scale or Squash Scale is greater than 1.
Driven ¶
Segments
Segments are tags that separate each neck chain. Tags can be set up on skeleton joints using an Attribute Adjust Array SOP. See preparing skeletons for rigging for more information.
If Segments is empty, the neck logic is run once.
Note
The Segments parameter does not take APEX path patterns, for example, the #<tag> function. Instead, specify the tag names directly in this field.
Driven
The TransformObject nodes to drive, for example, “
neck_01 neck_02 neck_03”. This parameter also accepts APEX path patterns, so you can specify tags in this field, for example, #neck.
It’s good practice to also specify the bind tag that is set up by default on the FK transform component’s Tags parameter. The FK transform component is normally the first component used to start building a rig. Including the bind tag helps to ensure that you don’t include other controls that might have inherited, for example, the neck tag. So for this component, you can set Driven to “#bind & #neck”.
Driver ¶
Make sure the control names are unique. To avoid naming conflicts when creating multiple neck setups, you can specify the neck segment using the string “{segment}”. For example, if your segment is named neck_01 (Segments is set to neck_01), you can set Root Name to {segment}_root_ctrl. The value of Segments replaces the string “{segment}”, so the root control is named neck_01_root_ctrl.
Root Name
The name of the root control.
Root CV Name
The name of the root tangent CV.
Mid Name
The name of the middle control.
Tip CV Name
The name of the tip tangent CV.
Tip Name
The name of the tip control.
End Name
The name of the head control. This control doesn’t affect the neck.
Root CV Offset
The offset to add to the root tangent CV.
Tip CV Offset
The offset to add to the tip tangent CV.
End Control Offset
The offset to add to the end control.
Parent ¶
Root
The parent of the root control. If left empty, the root control is parented to its associated TransformObject node’s parent. For example, if the root control sits at node
C_neck_02, and C_neck_02's parent is C_neck_01, then the root control will be parented to C_neck_01.
You can also set parent tags on the skeleton, and use the parent tag plus the Segments tag to get the parent for each segment. For example, if your segment is named neck (Segments is set to neck), and you tag the parent joint with neck_parent, then you can set Root to {segment}_parent. The value of Segments is used to replace the string “{segment}”.
To unparent the root control, set this parameter to an underscore (“_”).
This parameter accepts APEX path patterns, so you can specify tags in this field, for example, #<tag>.
Tip
The parent of the tip control. If left empty, the tip is parented to the Root. To unparent the tip control, set this parameter to an underscore (“_”). This parameter accepts APEX path patterns, so you can specify tags in this field.
CV
The parent of the CVs. If left empty, the CVs are parented to the closest outer control. To unparent the CV controls, set this parameter to an underscore (“_”). This parameter accepts APEX path patterns, so you can specify tags in this field.
Tags ¶
Shape ¶
The APEX Configure Controls SOP provides more options for changing the look of the controls.
Shape
The shape of the controls. It can be set to any of the built-in APEX control shapes.
Color
The color of the control shapes. To inherit the shape color from the skeleton, set this value to (0, 0, 0).
Translate
The translation of the control shapes.
Rotate
The rotation of the control shapes.
Scale
The scale of the control shapes. To inherit the shape scale from the skeleton, set this value to (0, 0, 0).
| See also |