Don’t you hate going through the Outliner and manually creating, orienting, renaming, and constraining every Transform? I had to do something after several attempts to find anything on the internet that is helpful. Setting up Controls manually is very repetitive, and hopefully you will never have to do that again.
I want this guide to be useful for Gamedevs and Riggers alike - and since Maya LT does not support Python, we’re going to use MEL for this guide. Feel free to use my code and make it your own.
… I wish someone shared these scripts 4 years ago.
Just create a bunch of joints like you would typically do when rigging. Make sure you have a consistent naming convention. What we’ll do later is replace
_end (the end joints), with
_end_grp. We’ll use some MEL to generate a group of Transforms that will later allow us to manipulate its orients for our controllers.
You’d normally want all the joints under a root for your rig, but that’s up to you. Take a look below to see how I’ve set it up!
As you can see below, I have selected the Root Joint of the Character. Open up the script editor via
Windows > General Editors > Script Editor from the Navbar.
Now we’re going to run a script. Simply
CTRL+c the script below and
CTRL+v it into the MEL tab inside the Script Editor. You will want to adjust the substitutions in the
$name variable to match your naming convention. Make sure you don’t have two joints with the same name.
The script will create a group of transforms while preserving the joints’ orientations.
// This procedure will iterate through whatever joint is
The next step would be to manually create nurbsCurves and use them as controllers. We’ll be parent-constraining the controllers to eachother automatically, but also we’ll constrain the controllers to the joints manually. Make sure you set the rotations and translations of the controllers to 0, and freeze their scale transformation.
Due to every rig being different, it will unfortunately be un-realistic to write a script that constrain the controllers to the joints directly. However, we can at least automate the first half of this step - which is to constrain the controls together. Simply select the root of your rig and run the script. Make sure you delete unwanted constraints for the IK’s.
Please save your file before running this script. Don’t trust yourself nor the script!
// This procedure will parent-constraint controls to every child of the control's
This script will allow you to automatically rename your NurbsCurve Controllers so that you don’t have to name everything! Just select the Root of your Rig’s Controls and it will automatically rename everything below it. The script replaces the
_grp suffix with
_ctrl, but you can easily change it to match your preferred naming convention.
// This will rename every nurbsCurve's transform under the root you selected.