Houdini 21.0 Nodes APEX nodes

rig::ControlSpline 3.0

Builds a spline from a list of CVs.

On this page
Since 21.0

Generates a spline from a number of input control matrices. The position of the control matrices defines the shape of the generated spline, while the upper 3×3 transform of the matrices defines the framing of the spline in the proximity of the CV.

Splines can be created as either a Bezier curve or a NURBS curve, according to the value of the splinetype port. The order of the curve is set using the order port.

Each spline type has its own advantages. Bezier curves pass through the first CV, last CV, and every knot (the CVs representing the junction points of curve segments in a compound curve). However, Bezier curves can be restrictive in that they require a specific number of CVs to form a valid curve. NURBS curves are more flexible in the number of CVs required to form a valid curve (they just need a minimum of order CVs). However, NURBS curves only pass through the first and last CVs, approximating the position of the rest of the CVs.

Bezier Curve Construction

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.

For example, if an order 4 Bezier curve is created with two curve segments, it would require 4 CVs for the first curve segment and 3 CVs for the second curve segment (since the second curve segment shares its first CV with the first curve segment). This amounts to a total of 7 CVs.

Inputs

cvs: VariadicArg<Matrix4>

A list of CVs, provided as Matrix4 transforms, that specify the position of the CVs, as well as a coordinate frame for the spline in the vicinity of the CV.

splinetype: Int

The type of spline curve to create from the input CVs. A value of 0 creates a Bezier curve and a value of 1 creates a NURBS curve. The default is a Bezier curve.

order: Int

The order of the generated spline curve. As the order of the spline increases, each CV has more global impact on the shape of the curve. Order 3 and 4 curves are popular choices to ensure that each CV has a relatively local impact on the shape of the curve while simultaneously producing smooth shapes. An order 2 curve is equivalent to a linear polyline.

Outputs

geo: Geometry

The output geometry containing the built spline. The scale and orientation of the control frame represented by the input CV matrix is specified in the Matrix3 transform point attribute.

See also

APEX nodes