Inverse Curve CHOP

From TouchDesigner 099 Wiki

Summary

The Inverse Curve CHOP calculates an inverse kinematics simulation for bone objects using a curve object.

The Inverse Curve CHOP will stretch and position a set of bones to follow a curve defined by another set of objects (guide).

Specify the first and last bone in the chain with Bone Start / Bone End.

Specify the Guide by listing them in order, space separated, in the Guide Components field. This parameter also accepts patterns and wildcards. Example: null[1-5] null17 null4. You can also specify bones in this group as well.

The CHOP will then create a set of rotate and bone-length channels for each bone. Additionally, the CHOP will also output 3 translate channels for the first bone in the chain. It will also setup the export links automatically, so you just have to turn on the export flag for this CHOP.

The way the CHOP solves this system is by creating a guide curve between the supplied Guide objects. Use the Interpolation and Order parameters to define what type of curve it will use. By default, the control vertices of the curve will be the centroids of the object. The curve is also given orientation, by adopting the orientation of each guide object. The bones line up their X axes with this orientation.

You can view this curve by using the Inverse Curve SOP. Just supply it with the name of the Inverse Curve CHOP and it will extract the geometry for viewing/debugging purposes. It actually will contain 3 curves (the original guide, and the guide displaced in +X and +Y). These curves can be skinned with a Skin SOP for better feedback, etc.

The span parameters can be used to trim out the beginning and end of the guide curve if so needed. For example Span 0.3 0.7 will lay the bones along the middle 40% of the curve.

In the rare case that the user has setup a curve with all the X axes (twists) pointing along the same direction of the curve, then the Up Vector parameter is used to break the tie, so to speak. However, this curve setup is likely degenerate to start with and should be avoided by twisting all the objects 90 degrees.

PythonIcon.png inversecurveCHOP_Class

Parameters - Inverse Curve Page

Guide Components - /guide

Bone Start - /bonestart

Bone End - /boneend

Span - /span

Interpolation - /interpolation

Order - /order

Up Vector - /upvector

Map Exports - /mapexports

Standard Options and Local Variables

none.