Create > Rig Handle
A shape node for visible, easily selected rig controls.
Introduction
zRigHandle is a viewport shape designed for use as a rig handle. It's modelled after
the handles provided by HumanIK to be much easier to select quickly than NURBS curves
and can be viewed in Xray.
Usage
Create a rig handle with Create > Rig Handle.
This node can be used in place of shape nodes and nurbs curves for rig controls.
-
This control is drawn in X-ray, like HumanIK controls, to make it easy to see
and select. This can be turned off in the attribute editor.
-
Like HumanIK viewport handles, a solid object is displayed and selectable, so
you don't have to click on an awkward thin wireframe like with joint controls.
-
The color and opacity of the control in the viewport can be set. These can be
keyed, for example to brighten a control as it gets further away from its bind
position.
-
Local transform, rotate and scale attributes allow adjusting the displayed
control, without affecting objects constrained to it.
Custom shapes
To use a custom shape for the handle, create a mesh with the shape you want. Set
zRigHandle's Shape attribute to "Custom", and attach the outMesh of your custom shape
to the inCustomMesh attribute of the handle. You can then hide the mesh.
Only the shape of the mesh is used, and not its materials or textures. The mesh must
only contain tris and quads (n-gons will be ignored).
The shape should be a static mesh. Attaching deformed meshes as a custom shape may
work, but this is unoptimized and will be very slow.
Local transforms
Four attributes are provided to transform the control in the viewport: transform, Local Position,
Local Rotation and Local Scale.
The local attributes allow moving the displayed handle in the viewport without affecting its
transform. Manipulators won't be affected, so this can be used to position the handle relative
to the manipulator.
The transform attribute has the same effect, but receives a matrix value directly. This can
be connected to a composeMatrix node.
Limitations
-
This is only tested in Viewport 2.0, and isn't expected to work in obsolete viewports.