Houdini 20.0 Nodes VOP nodes

IK Solver VOP node

Positions and orients points from a root position, end effector position target, and twist position using KineFX Inverse Kinematics.

On this page
Since 18.5

This solver generates world transforms using Inverse Kinematics (IK).

Parameters

Signature

Specifies which inputs and parameters are used to create the world transforms.

The IK Solver VOP node supports multiple signatures and its inputs and parameters are dynamic.

Target IDs + Root/Goal/Twist IDs

Uses an array of Target Point IDs and 3 Control Point IDs.

Target IDs + Root/Goal/Twist IDs Array

Uses an array of Target Point IDs and an array of Control Point IDs.

Target IDs + Root/Goal/Twist Matrix

Uses an array of Target Point IDs and a 3 Control Point matrix.

Target IDs + Root/Goal/Twist Matrix Array

Uses an array of Target Point IDs and an array of Control Point matrix.

Target Transforms + Root/Goal/Twist IDs

Uses an array of Target matrix and 3 Control Point IDs.

Target Transforms + Root/Goal/Twist IDs Array

Uses an array of Target matrix and an array of Control Point IDs.

Target Transforms + Root/Goal/Twist Matrix

Uses an array of Target matrix and a 3 Control Point matrix.

Target Transforms + Root/Goal/Twist Matrix Array

Uses an array of Target matrix and an array of Control Point matrix.

Targets File

Specifies which input contains the geometry file to use for the targets point IDs.

Target Points

Specifies the target points as an array of point IDs or matrices. If no input is connected, you can use the group parameter field to create a point group.

Controls File

Specifies where to find the geometry file to use for the controls point IDs.

Control Points

Specifies the control points as an array of point IDs or matrices. If no input is connected, you can use the group parameter field to create a point group. The 3 first elements in the array are used to define the root, goal, and twist.

Root

Specifies the root control point as a point index or a matrix.

Goal

Specifies the goal control point as a point index or a matrix.

Twist

Specifies the twist control point as a point index or a matrix.

Use Simple Solver for 2 or 3 joints.

When on, the solver uses a direct/simpler solver with 2 or 3 joints.

Stretch

Specifies the stretch factor. A value of 1 stretches the input lengths evenly to match the curve length before running the solver. A value of 0 keeps the input lengths as is. A value between 0 and 1 linearly interpolates the stretch factor. Scale along the curve direction is also adjusted.

Stretch Tolerance

Specifies a world space position tolerance that is used to snap the tip joint to the end of the curve.

Squash

Specifies the squash factor which controls the scaling on the 2 axes orthogonal to the curve. A value of 0 disables leaves the scales intact. A value of 1.0 will compress the scales when the curve is longer than the original curve, or expand the scales when it’s shorter. A value between 0 and 1 linearly interpolates the scales.

Lookat Axis

Determines the axis that points in the curve tangent direction.

Lookup Axis

Determines the axis that points in the curve normal direction.

Twist Flag

When on, enables twist computation for the solver.

Twist Offset

Specifies an additional twist angle to be applied to the solution bone angles.

Dampen

Specifies how easily the Root can be pulled off the Goal as the chain is stretched out.

Resist Straight

When off, the IK chain will completely straighten out in the direction of the goal if the IK goal is farther away than the length of the bone chain (with a tolerance of the tracking threshold). When on, no attempt is made to further straighten the IK solution. By default, Resist Straight is turned on because it improves the speed of the solve.

Tracking Threshold

Specifies the accuracy threshold. Use smaller values for more accurate solutions at the expense of more computation time. Use larger values to save computation time at the expense of getting less accurate solutions.

Keep Root Transform

Keep the original transform from the Root or use the one returned by the IK solver.

Scale Mode

Specifies how the resulting joints are scaled. The joints can use a unit scale or keep the target scales.

Inputs

target_file

The geometry file to use for the targets point IDs.

targets

The target points as an array of point IDs or matrices.

ctrl_file

The geometry file to use for the controls point IDs.

ctrls

The control points as an array of point IDs or matrices. The 3 first elements in the array are used to define the root, goal, and twist.

root

The root control point as a point index or a matrix.

goal

The goal control point as a point index or a matrix.

twist

The twist control point as a point index or a matrix.

stretch

Scale factor (0-1) by which the input lengths are scaled to match the curve length before running the solver.

stretch_tol

The world space position tolerance that is used to snap the tip joint to the end of the curve.

lookataxis

The axis that points in the curve tangent direction.

lookupaxis

The axis that points in the curve normal direction.

twistflag

Twist computation flag. When on, enables twist computation for the solver.

twistoffset

An additional twist angle to be applied to the solution bone angles.

dampen

Representation of how easily the root can be pulled off the goal as the chain is stretched out.

resiststraight

Resist straight flag. When on, no attempt is made to further straighten the IK solution. When off, the chain will completely straighten out in the direction of the goal if the IK goal is farther away than the length of the bone chain (with a tolerance of the tracking threshold).

trackingthres

The accuracy threshold.

keeproot

Keep the original transform from the Root or use the one returned by the IK solver.

restanglesmode

Outputs

file

A pass through returning the File Input. This output is invalid when using a signature with Targets Transforms.

pts

An array of integers with point IDs. It outputs the resolved target point IDs. This output is invalid when using a signature with Targets Transforms.

xforms

An array of matrices with world transforms for each target.

See also

VOP nodes