• Mason Smigel

White Paper

Updated: Mar 22

Over a year ago I built my first automated rigging system for Maya (Rigmajig). It was a huge step up from manually building character rigs, and allowed me to rig characters very quickly. However, after using the system for over a year on dozens of rigs the faults became painstakingly apparent. I decided to tackle rebuilding a new modular rigging system, building upon what I learned from the previous version, as well as adding new functionally based on things the first version was missing. Over the span of the next several months, I plan to record progress, on rigamajig2.



THE PROBLEM:


Rigging is a complex process that involves many elements of production. rigamajig2 aims to simplify three key areas:

  • Pipeline scalability

  • Rigger interface

  • Animator interface


Pipeline scalability:

  • SCAD currently has no unified rig building pipeline. Rigs are often created as one-off products with the delivery as a Maya file.

  • This can cause a bottleneck in the pipeline, with production slowing because of model or manual rig updates.

  • Working in this way also makes rigging massive amounts of assets not only cumbersome but unrealistic


Rigger interface

  • Auto-rigging solutions may offer immediate speed boosts to rig time, however extending rigs beyond the capability of the built-in functionality. 

Additionally, the artist-guided setup can be confusing, overly complex, or otherwise un-intuitive.


Animation interface

  • The end goal is to create a speedy rig with beautiful deformations. Reaching peak performance while also providing artists with the needed controls to fine-tune poses.



THE SOLUTION:


Pipeline Scalability:

  • The system must be 100% modular. Components can be connected anywhere on any other component.

  • Rigs must be data-centric. All elements should be exported and saved, allowing the rig to be completely rebuilt from several lines of code.

  • A scalable pipeline should support large quantities of assets along with variants.


Rigger interface:

  • Simple component authoring, components can easily be created by additional TD's

  • Compartmentalized components. Each component can stand on its own receiving inputs into a single node, at least in the rigger interface. (Cult of Rig style )

  • Laying out guides or joints should be intuitive.


Animator interface:

  • Rig performance as close to real-time as possible.

  • Optimization of setup. Extra attributes and nodes to make the setup easier to modify for the rigger are baked and removed.

  • All Rigging information will be stored in meta nodes in the deliverable Maya scene. (Allowing for fun bells and whistles like space matching, Ik/Fk matching, and more.)


The workflow is also defined into several sections. Allowing users to interact with rigamajig2 at a very low level (for TDs) or a high level (Animators)

  1. Author Interface: Python framework of utilities used to create components or perform other operations in Maya.

  2. Rigger Interface: User Interface for riggers to build rigs using pre-constructed components and archetypes.

  3. Animator Interface: Deliverable rig complete with animation interface to access quick control selections, Ik/Fk match, and more.


MEASUREMENT OF SUCCESS:


Variants:

rigamajig2 should be capable of easily creating numerous quantities of variants falling under three categories.

  • Model Variants

  • Look Variants

  • Rig Variants


Pipeline:

rigamajig2 is capable of building a rig from a single file in only several lines of code. This should scale to building multiple files at once.


Rig:

The deliverable rigs should be fast, intuitive and easy to use. It should be designed to contain an optimal amount of controls, so the animator can easily pose, but has the ability to fine-tune small details.