Houdini 21.0 Character KineFX

Ulna

Sets up an anatomical twist for a character’s forearm.

Since 21.0

This component uses the ulna and radius joints on a character’s skeleton and sets up an anatomical twist for the character’s forearm.

No twist on the forearm
Added ulna functionality

The following is an example network for setting up the ulna component:

The image below shows the character’s mesh and skeleton:

Mesh (left), skeleton (right)
  1. The ulna component requires ulna and radius joints on the skeleton:

    Joints needed for the ulna component

    The ulna and radius joints are parented to the elbow joint, and the wrist is used as a look at for the ulna and radius. For the twist functionality, the elbow and wrist joints are the root and tip of the look at, and the ulna and radius joints are the twist joints. See the twist component for a description of the parenting hierarchy of twist joints.

  2. Add ulna tags to the elbow, radius, ulna, and wrist joints using the Attribute Adjust Array SOP (see preparing skeletons for more information on tagging skeleton joints):

    Ulna tags
  3. Add the mesh and skeleton to a character folder structure, and create a starting rig for the character using an APEX Pack Character SOP. See rigging a character for how to use this node. On the APEX Pack Character SOP:

    • Turn on Add FK and Bone Deform Components.

    • Remove the entries in the Rotate Group parameter.

  4. The limb rig component sets up the clavicle controls that are needed by the ulna component. Set the parent of the arm pole vectors to the root of the skeleton - on the APEX Autorig Component SOP, limb, Parent tab, set Pole Vector to the skeleton’s root joint, in our case, C_root. If you used a root component upstream to create root joints for the character, you can set Pole Vector to #root since the root component adds “root” tags to all the controls it creates.

  5. On the ulna component, Driven tab, set Segments to the ulna tags, in our case, *_ulnaTwist. If you rotate the wrist control, the character’s forearm twists with the wrist rotation:

Parameters

Name

The name to add to the subnet nodes that set up the look at functionality for the ulna and radius joints.

Driven

Segments

Segments are tags that separate each ulna setup. For example, *_ulna loops over tags L_ulna and R_ulna. You can set up tags on skeleton joints using an Attribute Adjust Array SOP. See preparing skeletons for rigging for more information.

If Segments is empty, the ulna logic is run once.

Note

The Segments parameter does not take APEX path patterns, for example, the #<tag> function. Instead, specify the tag names directly in this field.

Tags

Component

The tags to add to the nodes created by this component.

See also

KineFX

Overview

Preparing character elements

Rigging with APEX graphs

Building rig graphs with APEX Script

Rigging with rig components

Animating in the viewport

SOP-based animation

Deformation

Animation retargeting

Pre-H20

Panes

Appendix