tldr: The space/ref attributes created by the control_01 component do not follow the logic expected by the “mgear viewport menu” (mgear.core.dagmenu.py) for switching spaces/refs.
For this example, let’s say you’re using a control_01 component and have named it “sword”.
The enum attribute that holds the space or “ikref” node names is being named “control_ikref”, rather than “sword_ikref”. Therefore, when the code is trying to determine the space attribute name, it is looking for: sword_C0_ctl.control_C0_ctl (where the control name exists but the attribute does not)
The space switching code is looking for an extra token in the control name, which doesn’t get created.
The component creates: “sword_C0_ctl”
The space switching code is looking for “sword_C0_ik_ctl”.
The component is creating a “control_control” attr rather than an expected “sword_sword” attr.
- Rename the control: “sword_C0_ctl” -> “sword_C0_ik_ctl”
- Rename attributes:
“sword_C0_ctl” -> “sword_C0_ik” (string value of “sword_C0_ik_ctl,”)
“control_ikref” -> “sword_ikref”
“control_control” -> “sword_sword”
- Import biped template (this isnt absolutely necessary, but gives a starting point".
- Add a control_01 component
- Rename the component to “sword” (Settings -> Main Settings)
- Set the Channel Host to itself (“sword_C0_root”)
- Add some nodes to the IK Reference Array (In Component Settings)
- Build Rig
- Toggle On mGear -> mGear Viewport Menu
- Select “sword_C0_ctl”, right click, and set to a different parent ik space