/autoRigger

Procedural rigging tool for Maya

Primary LanguagePythonMIT LicenseMIT

AutoRigger 2.0

AutoRigger is an automated rig builder used in Maya. It currently supports procedural rigging based on modules as well as pre-made template for biped, quadruped and chain.
Chain Demo | Quadruped Demo | Biped Demo

About The Project

autoRigger

The AutoRigger tool started out as my practice for maya scripting back in late 2018. But Little by little, I started to implement new rigging knowledge on to it. After years of expansion, it became my rigging tool kit which handles a lot of the automation in general rigging process.

Getting Started

Prerequisites

Launch

  1. Unzip the autoRigger.zip package under %USERPROFILE%/Documents/maya/[current maya version]/scripts/ or a custom directory under PYTHONPATH env variable.

  2. Run through script editor:

    from autoRigger import autoRigger
    autoRigger.show()

Usage

The autoRigger is modular and very straight forward to use; Each item on the left is referred as a rig object, you create them in the scene individually and piece together to build the final rig; there are also pre-made template for standard characters like biped and quadruped.

note: autoRigger isn't a skinning tool

Create Guide

  • choose a rig object, and then enter specific properties on the right-side field, finally click guide.

  • this creates a guided locators or the rough joint placement of the rig. you are now free to move, rotate, scale the locators around to better match the target mesh.

Build Rig

  • when you are satisfied with the guide placement, click build. it will generate all the joints, controllers and constraints.
  • The next step if for you to skin your character/creature using anything you prefer

interface

Scripting Example

the rig object and all of its components can be accessed through scripting with ease, as each rig object is a class inheriting the abstract bone class.

To instantiate a rig object, build guide and rig

from autoRigger.constant import Side
from autoRigger.chain import chainEP

test_chain = chainEP.ChainEP(
   name='rope',
   side=Side.LEFT,
   segment=20,
   curve='curve1',
   cv=10
)

test_chain.build_guide()
test_chain.build_rig()

Access rig object properties:

>>> test_chain.name
output: rope
>>> test_chain.side
output: Side.LEFT
>>> test_chain.type
output: chain
>>> test_chain.scale
output: 1
>>> test_chain.components

# this is used mostly in template such as biped or quadruped
# which will yield all rig sub-components
output: []

Access rig object nodes in maya scene

# shared maya nodes
jnts = test_chain.jnts
root_jnt = jnts[0]
top_jnt = jnts[-1]

"""
subsequently:
['chain_l_rope0_jnt']
['chain_l_rope19_jnt']
"""

ctrls = test_chain.ctrls
locators = test_chain.locs
offset_group = test_chain.offsets

# chain specific maya nodes
test_chain.clusters
test_chain.guide_curve
test_chain.curve
test_chain.cvs

Roadmap

  • integrate facial rigging
  • bird template
  • vehicle template
  • refactor quadruped leg modules

Versions

Update 2.0 (current)
  • rig object abstraction
  • added chain modular rigging package
  • added dynamic property widget
Update 1.2 (01/05/2021)
  • PEP8 code re-formatting
  • updated naming convention
  • updated user-interface
Update 1.1 (04/08/2020)
  • added quadruped template rigging
  • added biped template rigging
Update 1.0 (10/19/2019)
  • re-built autoRigger as a modular rig system
  • updated user-interface
Update 0.4 (04/21/2019)
  • integrated body and face rigging
  • added face picker
Update 0.2 (03/22/2019)
  • added FK/IK to limb
  • added flexible spine control
Update 0.1 (12/29/2018)
  • initial release of the autoRigger tool
  • included one-click rig building
  • included default skin binding