Skip to content

Making a rig work with it

The menu does not need a rig to be built by AM_Rig — it reads a handful of attributes and names, and offers each item when what it needs is there. This page lists all of them, so a rig of your own can get as much of the menu as you want.

On any control you already get Reset, Toggle Display, X-Ray, Isolate and the whole Space submenu.

The AM_Rig marker

Attribute On Unlocks
AmCtrl (any type) a control the AM_Rig items: Select all/child controls, Reset all below, Mirror, Flip, Settings

The menu reads it on the first selected control.

Selecting and resetting below

What Where Used by
Controller tags Maya controller nodes, parented the way the controls should be walked Select child controls, Reset all below, Mirror/Flip all below
is_controllers_set attribute an object set containing every control of the rig, connected to the controls Select all controls, Switch pose

IK/FK

Attribute On Meaning
match_nodes (message) each control of the limb connects to the limb's settings node — the component root (componentType) or a sub-component (SubComponentType)
has_relatives the control also offer the match relatives variants
comp_relationship the settings nodes links a sub-component to its component, and a component to its related parts
is_AmRig2 / is_AmRig3 the component root which AM_Rig generation built it

The IK/FK switch itself is AM_Rig's component logic; a rig not built by AM_Rig will not have the settings it reads, and the items stay hidden.

Spaces

What Meaning
space — an enum on the control its spaces, in order; what the Space submenu switches
a group named <control>_space_cons above the control what the spaces drive — Add Space Group creates it
consNode (message) on that group the parent constraint or blendMatrix driving it — found and connected automatically
spaceUseTranslate / spaceUseRotate on a blendMatrix setup, whether the spaces drive translate and rotate
hasAutoClav (message) links an arm control to an auto-clavicle control that must hold still on a switch

A control that already has a space enum wired by hand — by a condition node per space, or anything else — switches from the menu as it is. Its world position is kept either way.

Mirroring

The opposite control is found by name first: a side label L_ or R_ is swapped (L_hand_ctl ↔ R_hand_ctl, arm_L_ctl ↔ arm_R_ctl).

For other naming, put a string attribute side_meta on the control:

side|L_label|R_label|C_label

for example L|Lf|Rt|Lf on hand_Lf_ctl tells the menu this is the left side, that the right side is named with Rt, and which part of this name to replace.

To flip a channel's sign when copied across, add a boolean inv<Channel> attribute set to on — invTx, invRy, invSz… — to the control.

Settings and poses

Attribute On Used by
componentType the component's settings node, above the control Component setting selects it
Am_pose_0, Am_pose_1 — strings each control Switch pose. Each holds a Python dict of attribute → value, e.g. {'tx': 0.0, 'ry': 12.5}

Channel Box colours

Attribute names can colour themselves in the Channel Box, so a long list of custom attributes reads in groups:

Name Shown as
starts with AM___SEP_ a separator: red text on a dark band
ends with _AM___VIS_ dimmed text, for visibility switches

The colours are applied whenever the selection changes.