The process of converting our current character rigs into a multi-threaded solution was one of the most significant challenges that Blue Sky Studios has had to face in recent years. Our goal was to find a solution to deliver our current rigs at a minimum evaluation speed of 24 fps. This solution also needed to be accomplished without compromising the actual rig mechanics or deformation quality of our assets. In the end, the optimization was designed to not hamper the standard rigging workflow or any other department’s standard pipeline processes.
Our goal was to update our rigging system in Maya® for parallel rig valuation and to maximize the multi-core capabilities of our current desktop architecture. Even though many of the deformers used in our characters were already internally multi-threaded, rigs did not meet our performance targets. This indicated to us that we needed to take a higher level approach to solve the problem.
The solution came with the creation of our ChopRig system, which breaks up the work in the rig so more tasks can be scheduled in parallel by the evaluation manager in Maya®. Instead of handing the entire geometry and its deformer stack to the scheduler all at once, we pre-separate the main geometry of the character, transferring the necessary portion of each deformer to each chopped piece. The final deformation of the pieces drove a combined mesh, using our proprietary “SubDeform” plugin, which was designed to be a lightweight evaluation. Doing this allows the scheduler to play a more significant role in load balancing all evaluation tasks across all cores in the machine. The gains were profound, giving us the interactive performance we desired.
The ChopRig system uses a simple external data format, called DataCut, which is created by the rigger and consists of a pre-selection of edge loops. These edge loops represent where chops should occur in the character geometry. The chop lines can be placed anywhere in character, allowing us to configure the cuts in any way for different performance needs.
How it Works
After the rig is shipped to production, the ChopRig automatically splits the geometry using the DataCut, previously created by the Rigger. Then it transfers deformer nodes to each piece.
During the transfer, it scans the blendShape deltas and weight map influence of each character’s original deformer on each vertex and then only transfers what is relevant to the designated chopped geometry piece.
At the end of the ChopRig process, the system collects every chopped piece and uses these meshes to drive a copy of the original character’s mesh. This way we keep the final character topology consistent and entirely compatible with what Materials and Fur department have in hands.
The ChopRig process allowed us to meet a performance target of
evaluating character rigs for animation at interactive speeds above
24 fps. This solution has proven flexible and easily applied to all
kinds of character types. Our solution did not require a re-write of
our rigging system to accomplish our goals, and we were able to
test and deploy this new system during our character development
schedule. To the downstream departments our process was seam-
less, and fit right into the pipeline. In addition to achieving real-time
performance with our rigs, the ChopRig technology allowed the
animation department to develop a new set of workflows for shot
animation and asset visualization