Houdini 20.5 Character KineFX

spline

Sets up a spline solver.

Since 20.5
This feature is still under development. The current functionality is unfinished and subject to change, and may have thin or no documentation. Please bear this in mind when using it.

This component sets up a spline solver and adds the control for either a tangent control or a custom setup by the user. This component can be run in a loop over different segments, or parts, of the character.

See rigging a character for an example use of this component.

Parameters

name

The name that is added to the nodes created by this component. When using segments, the segment name is also added to the nodes.

guidesource

The guide skeleton that is used as a reference when creating controls.

Settings

curveorder

The order of the Bezier curve to build from the CVs. Defaults to 2 (linear Bezier curve).

Each segment of a Bezier curve requires that <number_of_cvs> = order. Compound curves share a CV between their curve segments, so each additional curve segment requires an additional order-1 CVs. This requirement can be expressed by the equation <number_of_cvs> % (order-1) == 1.

Order 3 and 4 curves are popular choices for ensuring that each CV has a relatively local impact on the shape of the curve while allowing for the smoothness and flexibility of quadratic and cubic polynomial curves.

tangent

The direction down the length of the chain.

pinroot

When turned on, constrains the orientation of the driven root to the controls. When turned off, the spline solver determines the orientation of the root.

pintip

When turned on, constrains the orientation of the driven tip to the controls. When turned off, the spline solver determines the orientation of the tip.

Driven

segments

Segments are tags that separate each spline 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 spline 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, spine_01, spine_02, spine_03. This parameter also accepts APEX path patterns, so you can specify tags in this field, for example, %tag(spline).

It is good practice to also specify the bind tags that are set up by default on the fktransform component’s tags parameter. The fktransform component is normally the first component that is 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 spline tag. In this case, you can set driven to %tag(bind) & %tag(spline).

root

The root of the spline. If this is empty, the root of the driven chain is used. This parameter accepts APEX path patterns, so you can specify tags in this field, for example, %tag(splineroot).

When using segments, you can use the segment name plus the tag, for example, %tag(splineroot) & %tag({segment}). The {segment} string is used to find the segment names.

tip

The tip of the spline. If this is empty, the tip of the driven chain is used. This parameter accepts APEX path patterns, so you can specify tags in this field, for example, %tag(splinetip).

When using segments, you can use the segment name plus the tag, for example, %tag(splinetip) & %tag({segment}). The {segment} string is used to find the segment names.

Driver

By default, the spline component sets up a tangent spline with 4 controls - rootname, rootcvname, tipcvname, and tipname. The controls are created automatically using the root and tip as reference. Make sure the control names are unique and don’t conflict with any other controls. You can use the {segment} string when creating multiple splines so that there are no naming conflicts (see the root parameter).

custom

When turned on, the drivers, resample, prefix, and suffix parameters are available for creating a custom spline setup.

rootname

The name of the root control.

rootcvname

The name of the root tangent CV (control vertex).

tipcvname

The name of the tip tangent CV.

tipname

The name of the tip control.

drivers

When custom is turned on, these are the drivers for the custom spline setup. The controls are created based on the drivers. This parameter accepts APEX path patterns, so you can specify tags in this field, for example, %tag(spline).

resample

When custom is turned on, the controls are deleted based on this value.

prefix

When custom is turned on, this is the prefix for the control names in the custom spline setup.

suffix

When custom is turned on, this is the suffix for the control names in the custom spline setup.

Parents

rootparent

The parent of the root. If left empty, the root is parented to root's parent. If you are setting up multiple splines, you can leave this field empty. However, you can set parent tags on the guide skeleton, and use the parent tag plus the segment tag to get the correct parent for each segment.

This parameter accepts APEX path patterns, so you can specify tags in this field, for example, %tag(<tag>).

tipparent

The parent of the tip. This parameter accepts APEX path patterns, so you can specify tags in this field.

cvparent

The parent of the CVs. This parameter accepts APEX path patterns, so you can specify tags in this field.

Tags

tags

The tags that are added to the nodes created by this component.

Shape

scaleinheritance

The scale inheritance for the controls.

shape

The shape of the controls. It can be set to any of the built-in APEX control shapes.

scale

The scale of the control shapes. To inherit the shape scale from the guide skeleton, set this value to (0, 0, 0).

color

The color of the control shapes. To inherit the shape color from the guide skeleton, set this value to (0, 0, 0).

See also

KineFX

Overview

Preparing character elements

Rigging with APEX graphs

Building rig graphs with APEX Script

Rigging with rig components

Animating in the viewport

SOP-based animation

Deformation

Animation retargeting

Pre-H20

Panes

Appendix