Close

Handle COMP

Summary

The Handle Component is a new IK tool designed for manipulating groups of bones. Whereas the previous IK tools only allowed for a single end-affector per bone chain, this new method allows for several end-affectors per bone. Furthermore, the bones need not be a chain. Any setup, including branches, are handled.

One typical example is the use of motion capture data. In higher-end systems, you could have a cloud of marker positions and a skeleton to be driven by it.

This Handle Component works in tandem with the Handle CHOP. The following setup is commonly used: Given a hierarchy of bones, attach one or more Handle Components to specific locations on each Bone Component. Assign each handle a target in space to follow. Create a Handle CHOP which collects this information and calculates the rotation channels for the bones. Export these values back to the bones.

PythonIcon.pnghandleCOMP_Class


Parameters - Handle Page

Target target - Where the Handle will pull the bone towards (like an end-affector).

Translate t - - Displacement tx,ty,tz relative to the origin of the bone where the handle is anchored.

  • X tx -
  • Y ty -
  • Z tz -

Weight weight - When multiple handles are attached to a bone, higher weighted handles draw closer to their target.

Twist Only twistonly - When enabled the handle only contributes the the z rotation of the bone, when disabled it points the bone (rx, ry, and rz).

Falloff falloff - This value affects how much parent bones are affected when the child bone is reaching a target. It affects the flexibility of the chain.

Rotation Limits X dorxlimit - These affects how much the bone is allowed to rotate with respect to its parent.

Limit X lrx - -

  • lrxmin -
  • lrxmax -

Rotation Limits Y dorylimit - These affects how much the bone is allowed to rotate with respect to its parent.

Limit Y lry - -

  • lrymin -
  • lrymax -

Rotation Limits Z dorzlimit - These affects how much the bone is allowed to rotate with respect to its parent.

Limit Z lrz - -

  • lrzmin -
  • lrzmax -


Parameters - Render Page

The Display parameter page controls the component's material and rendering settings.

Material material - Selects a MAT to apply to the geometry inside.

Render render - Whether the Component's geometry is visible in the Render TOP. This parameter works in conjunction (logical AND) with the Component's Render Flag.

Draw Priority drawpriority - Determines the order in which the Components are drawn. Smaller values get drawn after (on top of) larger values.

Pick Priority pickpriority - When using a Render Pick CHOP or a Render Pick DAT, there is an option to have a 'Search Area'. If multiple objects are found within the search area, the pick priority can be used to select one object over another. A higher value will get picked over a lower value. This does not affect draw order, or objects that are drawn over each other on the same pixel. Only one will be visible for a pick per pixel.

Wireframe Color wcolor - - Use the R, G, and B fields to set the Component's color when displayed in wireframe shading mode.

  • Red wcolorr -
  • Green wcolorg -
  • Blue wcolorb -

Light Mask lightmask - By default all lights used in the Render TOP will affect geometry renderer. This parameter can be used to specify a sub-set of lights to be used for this particular geometry. The lights must be listed in the Render TOP as well as this parameter to be used.


Parameters - Extensions Page

The Extensions parameter page sets the component's python extensions. Please see extensions for more information.

Re-Init Extensions reinitextensions - Recompile all extension objects. Normally extension objects are compiled only when they are referenced and their definitions have changed.

Extension Object 1 extension1 - A number of class instances that can be attached to the component.

Extension Name 1 extname1 - Optional name to search by, instead of the instance class name.

Promote Extension 1 promoteextension1 - Controls whether or not the extensions are visible directly at the component level, or must be accessed through the .ext member. Example: n.Somefunction vs n.ext.Somefunction


TouchDesigner Build: