Rigging for Animation¶
The process of creating a control structure that allows us to easily pose and animate our models is called rigging. The final product is a model with controllers that allow us to easily pose and animate.
The rigging process is twofold: First we want to create a virtual skeleton and controls for the model and set it up to be manipulated easily. This includes technical setups for easier manipulation. Second we want to attach or ‘bind’ our model to that skeleton.
Basic concepts¶
Rigging aims to make animation as easy as possible by creating simple and easy controls to an animator. If possible, we want to try to hide and simplify complexity and make it easy to grasp all functions of our rig at a glance.
Attributes and Channels¶
Most animation in Maya relies on changing the values in different channels and attributes over time. In Maya, you can expose any channel on a node to be animated in the channelbox. By default, the most important animation channels are visible and keyable: Translate, Rotate, Scale and Visibility.
If you want to change which channels are shown, you can add channels to the visible and keyable list in the Channel Editor. You can find the Channel Editor in the Channel Box’s Edit > Channel Control. Select attributes and use the ‘Move’ buttons to change the attributes state.
You set the status of shown channels by selecting them in the Channel Box and Right-Clicking to open the context menu. To the bottom of the menu, you can find the options to ‘Hide Selected’, ‘Make Selected Non-Keyable’, ‘Make Selected Keyable’.
Channels can also be ‘locked’. Locking keeps a channel from being manipulated. Choose ‘lock selected’ to lock a channel.
Note
It is a good idea to lock channels that should not be changed after the rig is built. Examples are the transformations of anything but controls or driven channels.
You can find more information in the official manual:
Which channels should I show?¶
A rig should be simple - this means it should only show channels that we want to animate. If you want a control to only be rotated, hide the scale and translate channels by selecting them in the channelbox, rightclicking and selecting ‘Hide’ or ‘Lock and Hide’. Sometimes it is a good idea to show more channels than the basic ones. It could,for example, be beneficial to give the animator control over a controller’s rotation order by showing the ‘rotation order’ channel and making it keyable.
Hint
Show as little channels as needed, but think of unconventional animation that might need more channels than strictly realistic movement would do.
Custom Attributes¶
To make your rig easy to control, switch IK-FK, Visibility or other things, you can add custom attributes to your controllers. To add an Attribute go to the Channelbox and choose Edit > Add Attribute. In the Add Attribute Window, you can set up your attribute by naming it, chosing a data type and setting a minimum and maximum.
Note
To use your custom attributes you need to connect them to their target values in the Connection Editor or Node Editor.
Connecting Attributes¶
To connect attributes, you can use two direct and one keyable way: The Connection Editor or the visual Node Editor to connect attributes 1:1 and Set Driven Keys to connect attributes via an animation curve.
Connecting attributes with the Connection Editor¶
Open the Connection Editor from Windows > General Editors > Connection Editor or from the Channelbox’s Edit > Connection Editor. Select your source object and click ‘Reload Left’ to load the object into the source side. Then select your target object and click ‘Reload Right’ to load that object into the target side of the Connection Editor. You can click any single attribute on the source side and any number of matching attributes on the target side to connect them. Attributes that are connected to each other will now be shown with a blue background when the source attribute gets selected. Other connected attributes will be shown in italic type.
Hint
The Connection Editor only allows to connect matching data types. When clicking an attribute on the source side, matching datatypes on the target side will be shown in bold.
Find out more in the documentation:
Connecting attributes in the Node Editor
The Node Editor can be used to build complex node networks. Find out more in the manual:
Using Set Driven Keys to connect attributes¶
Set driven keys allow you to use an animaiton curve to connect attributes. Instead to direct connection, Driven keys use an animaiton curve to map one value to another.
You can create driven keys in the animation toolset: 1. Go to Key -> Set Driven Key -> Set… Optionbox to open the Set Driven Key Manager. 2. Select the object with the source attribute and click ‘Load Driver’, then select the target object and click ‘Load Driven’. 3. Just as with the Connection Editor, you can now select the two ( or more ) attributes you want to connect. 4. Use the viewport and channelbox to set the first value relationship by setting both objects to their desired values. Click ‘Key’ to set the first key. 5. Use the viewport and channelbox again to set the object to the second value relation ship. Click ‘Key’ again. The objects are now connected via an animation curve and values will be mapped using this curve. Setting the source value to the first key will recall the first values on the target object etc.. You can add as many driven keys to your Driver-Driven combination as you want.
TranslationY of the green cube is mapped to RotateX of the purple cube using the animation curve shown in the grapheditor.
Note
When we create driven key relationships, we oftentimes want them to be mapped linear. By default, Maya will use the current curve setting ( most times auto ). Click the driven object and change the curve type in the Graph Editor to the type you want to use.
Check out the official manual to learn more:
Constraints¶
Constraints allow us to connect an objects transforms to the transforms of another object without changing the hierarchy. Compared to direct connections, constraints have different options like keeping the current offset or blending between multiple constraints. Constrained attributes will be shown with green bars in the Channelbox. In Maya, there are four different ‘standard’ constraints that connect trans form attributes directly and two ‘special’ constraints that can be used for advanced setups.
pCube2 is constrained to pCube1. Green Bars in the Channelbox show constrained rotations (1), P Cube 1W0 shows that the constraint to pCube1 has a weight of 1 (2), Red chain icon in the outliner shows the constraintnode. It is parented under the node that has been constrained (3)
While it is possible to create the same behaviour using direct connections and math nodes, constraints are easily visible in the outliner and much quicker to use.
To connect two objects using constraints, select the driving objects first and the driven object last. Then use the constraint icons form the ‘Rigging Shelf’ or add them by selecting them in the Constrain menu in the rigging toolset.
Note
Selecting more than two objects will make all objects drivers of the last selected one. The transformation of the driven object will be interpolated between all drivers.
More specific information on constraints, more advanced constraints as well as constraint options can be found in the official Maya Manual:
Parent¶
Point¶
Orient¶
Scale¶
Combining Constraints¶
Advanced Constraints¶
Maya 2020 offers a bunch of specialized constraints that allow to aim at objects, constrain an object to a polygon, component or normal and many more. You can find more information about them in the Maya Manual:
Connecting Rig and Meshes¶
Rig Finishing and Cleanup¶
- Lock and Hide
- Set up layers
- Make sure animators can’t break the rig
- TEST THE RIG