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 orignal curve, or expand the scales when it’s shorter. A value between 0 and 1 linearly inteporlates 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.

`restanglemode`

## 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 |