Rigging in Maya
Table of Contents
- 1 Table of Contents
- 2 Summary
- 3 Before starting
- 4 Starting the task
- 5 Requirements and best practices
- 5.1 Choosing the right cache file format
- 5.2 Hierarchy
- 5.3 Creating a clean skeleton
- 5.4 Preparing the skeleton for rigging
- 5.4.1 Freeze Transforms on Joints
- 5.4.2 Orient Joints
- 5.4.3 Set Preferred Angles
- 5.4.4 Mirror Joints
- 5.4.5 Joint Scaling in Maya
- 5.5 Creating a clean control rig
- 5.6 Blendshapes
- 5.7 Connecting the Control Rig
- 5.8 Rig Cleanup
- 5.8.1 Organizing the Hierarchy
- 5.8.2 Locking Transforms
- 5.8.3 Hiding/Templating the Skeleton
- 5.8.4 Setting Limits
- 5.8.5 Assigning Proxy Materials
- 6 Publishing the version
Summary
This document details the workflow of rigging in Maya with SYNK. The output will be a rigged 3D model, often accompanied by a cache (fbx and/or abc) which only contains the meshes and the skeleton, and also by a turntable/screenshots. The asset is then ready to be animated.
Before starting
To start rigging, you will need a published model made out of meshes that have their history deleted and their transforms frozen. Blendshapes could already be present in the modeling file, or they can be created during the rigging process. In the best case, the meshes are already unwrapped, if not, the rig will have to be updated and the meshes reskinned later.
Starting the task
Ftrack
In order to start working on the rigging of your asset, you will first need to:
Make sure you’re logged in to Ftrack connect, which is a standalone app.
Travel to the Rigging task of the asset you want to work on.
Launch the SYNK Maya action for your task.
A version of Maya which includes the SYNK Pipeline will now launch automatically.
Maya
Once Maya opens, you will be greeted by a window that will allow you to select which version of the file you want to work with.
Open the version you want to work with or create a new version and start rigging.
A new rigging scene will now be created and the latest published modeling file will be referenced in it. A “Ctr_grp” and “Jnt_grp” will be generated under the root of the asset for you to respectively create your Controllers and Bone hierarchies.
A lot of riggers do not like their meshes to be referenced when they skin them, so they import the reference. This has no impact on SYNK except that asset updates won’t be done automatically and models will require manual replacing.
Requirements and best practices
Choosing the right cache file format
There are multiple file formats in which your rigging cache can be exported that have an impact on the way the rig has to be created. It is a good idea to skim through this general guide, then thoroughly read the specific workflows to understand what your rig can and can’t have.
Rigging for FBX: the fbx file format is more lightweight and allows tweaking of the animation after export since it includes both mesh, skinning and joint data. However, it has stricter requirements and limitations as a result. Excellent for real-time projects where the animations need to be lightweight and adjustable after the fact.
Rigging for alembic: the alembic file format is more tolerant to special rigging techniques as it only includes baked vertex/mesh data. As a result, it is heavier. Excellent for high-poly, complex transformations and deformations where the end result matches the preview 100% and performance is not that important.
This decision should be made before rigging starts by supervisors and producers, and communicated to the artists.
Hierarchy
In the “Geo_grp”, some assets will have meshes under the “static” group. This means that this part of the asset is not meant to move at all and thus should not be skinned. Nonetheless, you might want to move the entire asset - including its static meshes - in an animation scene using a world/global controller. In these cases, you can parent the meshes directly to the controller instead of skinning them.
This is an important rule to follow for real-time projects as skinned meshes can’t be lightbaked (process that computes the global illumination into maps and applies them to meshes so GI doesn’t have to be calculated each frame)!
Your scene will also include an FBXExport selection set containing the “Geo_grp” and “Jnt_grp”. This set will indicate to the pipeline what to export in the FBX of the rig when publishing the file (as you can see, controllers are not included). When you’re done with the rigging of your asset, make sure that the Geo and Jnt groups have been correctly set.
When creating/importing a rigging file from outside of the pipeline, you will have to manually recreate the hierarchy and the FBXExport set described above!
Go to Create > Sets > Set and click Set
Duplicate this first set, and drag one under the other
Name the parent set Sets, and name the child set FBXExport
From your main asset hierarchy, drag the Geo_grp and the Jnt_grp to FBXExport
When creating a rigging file outside of the pipeline, make sure to work in the correct units of the project! (by default: meters)
Creating a clean skeleton
Having a clean hierarchy in the Outliner is key to being able to export your work. A clean joint hierarchy is well-named and neatly organized.
Make sure all nodes are named and that you don’t have multiple nodes with the same name.
All joints should have the suffix “_jnt” at the end of their name. This will allow artists to easily filter out the skeleton.
Preparing the skeleton for rigging
Once you’ve placed your skeleton joints, you’ll need to make sure there are no rotation or scale values on them, that orientations are correct, preferred angles are set, joints are mirrored, and scale compensation is set correctly.
Freeze Transforms on Joints
It’s important to clean up rotation and scale values on a skeleton before skinning to the mesh or attaching a control rig.
Translations cannot be frozen on joints.
With the top joint in the hierarchy selected, go to Modify > Freeze Transformations.
Orient Joints
Orienting joints in a skeleton is an important step. The main tool for this is the Orient Joint tool.
Open the Orient Tool option box: [from the Rigging workspace] Skeleton > Orient Joint.
Select a joint and use the Orient Tool to orient a primary axis down the bone and a secondary axis as an up vector (The axis you choose as a pimary axis depends on the rig and the standards you choose).
A good rule is to have the primary axis match the direction of the joint chain in world space. (e.g. for the spine, +Y is the primary axis)