Tutorial
Rigging Toolkit is a Python script for Autodesk Maya 2022+ containing a set of helper tools for rigging. The script speeds up everyday rigging work by bringing frequently used operations into a single panel, eliminating the need to perform routine tasks manually.
Features
- Create joints and locators on selected objects, components and mesh surface normals
- Quickly build FK controls with automatic grouping and constraint setup
- Set up IK systems with pole vector controller and Soft IK
- Create an IK/FK switch with seamless switching between modes
- Library of 28 controller shapes applicable to multiple objects at once
- Color tools for controllers
- Copy skin weights and move skinned joints
- Create proxy meshes with weight transfer
- General utilities - freeze, reset transforms, grouping, match transform, parent in order
What's new in version 1.4
- Proxy mesh creation from selected faces, edges or vertices with automatic skin weight transfer
- Soft IK - smooth chain softening at the reach limit without snapping
- Seamless IK/FK switching with automatic controller pose matching
- Switch controller with switch attribute and automatic constraint and visibility connections
Add joints into selected bone hierarchies with optional chain insertion
Version 1.4.1
- Fixed automatic image detection for the script interface when OneDrive is installed
- Fixed the construction of the IK skeleton when there are additional bones in the hierarchy
Version 1.4.2
- An IK is now created when selecting two bones, as well as when selecting two bones and a pole vector locator with a solver selected.
Version 1.5
- Added IK Spline, Ribbon, and a custom shelf. Minor issues have been fixed.
Version 2.2
- Added Avtorig for biped
- Update Control Window
- Other minor fixes
Version 2.3
- Added automatic bone mirroring for the "Toggle Move Skinned Joints" button
- Other minor fixes
_____________________________________
Installation:
1) Unzip the archive to any convenient location.
2) Drag the DragAndDropInstall.py file into the Maya viewport with the desired shelf open.
3) An icon will be added to the open shelf.
4) The script will be installed at the following path:
Windows: C:\Users\<Your_User>\Documents\maya\<Maya_Version>\scripts
The folder containing the images will be installed at the following path:
Windows: C:\Users\<Your_User>\Documents\maya\<Maya_Version>\prefs\icons\ImageRiggingToolkit
______________________________________
How to use the tools
Joints
Joint Between - creates one joint at the center of the selection. If one object is selected - the joint is created at its center. If multiple objects or components are selected - at the average position between all of them. If nothing is selected - at the origin.
Joint on Each - creates one joint at each selected object or component. If nothing is selected - one joint at the origin.
Oriented Joint on Each - same as above, but each joint copies the world rotation of the selected object.
Normal Joint - creates a joint oriented to the mesh surface normal. Select a vertex or face on a mesh.
Aim Joint - opens a settings window. Select 2 objects (first - joint position, second - target) or 3 objects (third defines the up vector via a locator). Set the aim direction (+X or -X) and the local axis that should point up, then click Create Aim Joint. If Aim first selected object is enabled - the first selected object is oriented instead of creating a new joint.
Toggle Local Axes - toggles local axis display on selected objects or joints.
Toggle Axis Hierarchy - same, but applied to the selected object and all its descendants.
Locators
Locator Between - creates one locator at the center of the selection. If one object is selected - at its center. If multiple - at the average position. If nothing is selected - at the origin.
Locator on Each - creates one locator at each selected object. If nothing is selected - one locator at the origin.
Oriented Locator on Each - creates locators copying the rotation of each selected object.
Normal Locator - creates a locator oriented to the mesh surface normal. Select a vertex or face.
Match Transform - opens a window. Select sources, then select the target last. Check what to match (position, rotation, scale), click Match.
Copy Skin - copies skin weights. Select the source mesh (with skin), then the target mesh. If components on two meshes are selected - copies component-based using Maya's standard CopySkinWeights.
Skin Move Joint - skinned joint move mode. Select joints with skin, click to activate - joints can be moved without breaking the skin. Click again to exit - bind pose updates automatically.
Utilities
Freeze - freezes all transformations on selected objects.
Reset Ctrl - resets translate and rotate to 0, scale to 1 on selected objects.
Only Curve - curve-only selection mode in the viewport. Click to enable, click again to disable.
Mirror Shape - mirrors a controller shape. Select the source, then the target. In the window choose the mirror axes and click Mirror.
Add Group - wraps the selected object in a group with an auto-generated name. The name is determined by context - if the object is named hand_ctrl, the group will be named hand_grp, the next one hand_offset, and so on.
Parent Hierarchy - parents objects in selection order. The first becomes a child of the second, the second a child of the third, and so on.
Controls - opens the controller shape library. Select one or more controllers and click a shape - it will be applied to all selected objects at once. If nothing is selected - the shape is simply created in the scene.
FK Controls
The Create Control button creates FK controllers for selected joints. Behaviour depends on the active modes:
-
Select Mode - toggles between single joint mode and chain mode (joint and all its descendants)
-
GRP Mode - cycles through wrapping options: Off (no group), On (one group), Offset (group + offset group)
-
Parent - enables creation of a parent constraint from controller to joint
-
Scale - enables creation of a scale constraint from controller to joint
-
Duplicate - duplicate skeleton mode: a separate joint chain is created and controllers are built on it
-
Constrain - used together with Duplicate: the duplicated chain is automatically connected to the original joints via parent constraint
-
IK System
Pole Vector - creates a pole vector locator.
- If 1 joint is selected - the locator is created at that joint's position
- If 3 joints are selected (start, mid, end - e.g. upperarm → lowerarm → hand) - the locator is automatically placed perpendicular to the chain plane at a distance equal to the chain length. The locator group is oriented so that translateX slides strictly along the correct direction - move it closer or further without breaking the IK plane
-
Create IK - creates a full IK system. Select three objects in order: start joint, end joint, PV locator (created with the Pole Vector button). A window will open asking for IK controller orientation:
-
Local - the controller is oriented to match the end joint
-
World - the controller sits aligned to world axes with offset
-
The result includes an IK controller, a PV controller with a follow attribute (0 - world space, 1 - follows IK), an ikHandle and an orient constraint on the end joint.
Soft IK - adds a softIK attribute (0-1) to the selected IK controller. Select the IK controller and click the button. At 0 - standard IK behaviour. At 1 - the chain smoothly slows down before reaching the extension limit with no snapping.
IK/FK Switch
Create IK/FK Switch - opens the switch setup window. Steps:
- Click Create Control (Gear) - a gear controller is created at the selected object's position
- Select IK controllers, click Pick next to IK Ctrls
- Select FK controllers, click Pick next to FK Ctrls
- Select the constraints driving the skeleton, click Pick next to IK Cons and FK Cons
- Click Create Switch Rig - the IK_FK_Switch attribute is created on the gear controller, visibility and constraint weights are connected automatically. At 0 - IK is active, at 1 - FK
-
IK/FK Switcher - seamlessly switches between IK and FK. Select the switch controller and click the button. On first use a window opens where you can specify the switch attribute, IK controller and PV controller. Enable Remember for this session to skip the window next time and switch immediately.
Adding Joints
The number field and Add Joints Between button add the specified number of joints.
- Select 1 joint - new joints are added as children at the same position
- Select 2 joints - new joints are distributed evenly between them
-
Insert checkbox:
-
On - joints are inserted into the existing hierarchy (chain is preserved)
-
Off - joints are added as children without reorganising the chain
-
Proxy Mesh
Proxy Mesh - creates a simplified mesh from selected components. Select faces, edges or vertices on a mesh. A window will appear offering to transfer skin weights to the proxy mesh. Click Yes, Transfer Weights to copy weights automatically, or No, Skip to edit the mesh manually first.
Color and Shapes
-
Color palette - click any swatch to quickly apply a color to selected objects
-
Color Picker - pick any custom color using the slider and apply it to objects
-
Color history - the bottom row of swatches stores recently used colors
-
Color names in Outliner - when enabled, color is applied to the object name in the Outliner instead of the shape
-
Get color on select - when enabled, selecting an object automatically reads its color and adds it to the history
-
Line Width - < > buttons change the line width of selected curves
-
Size < > - scales the CVs of selected controllers by 10%
-
Rotate X/Y/Z - rotates controller CVs 90° around the chosen axis
-
Joint Size - < > buttons change the display radius of selected joints
Help - opens a window with descriptions of all script functions. Clicking the button again closes the window. Clicking on the image inside the window switches the language between Russian and English.