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:
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.