Character rigging

For some years now i’ve been learning Max script (also sometimes called MXS) whenever i have time. Max script is embedded scripting language of 3ds Max and with it, it’s possible to automate repetitive tasks and also add features into scenes and rigs which are not available out of the package.

I decided to create a custom character rig. This is something i did completely as hobby. Aim was to create a rig which would put most of the rigging related scripting stuff i’ve learned into use. Sort of scripting + rigging challenge for myself.

First i created a list of features i wanted to have in this rig and then i was ready to go - So a lot of hard work was ahead!

Here is a video of the rig for those who prefer video over text, in h264 MOV format!

Goals

1. Pose mirror and copy’n'paste feature for arms, legs and spine

2. Selection UI with fancy graphics

3. Name independence - most or all of the rig parts should be name-independent

4. Deformation sculpt controls
- I wanted to add basic deformation sculpt controls.

Features of finished rig…

And finally, when i got everything done, here’s what i came up with. All of the previous stuff ended up into finished rig. Many other things were added on the way.

Body

I created custom control panel for body and limbs animation.

Full body controls:
- Store, fetch, save and load poses

Mirror, flip, copy’n'paste, key and reset poses of:
- Spine
- Arms
- Legs

Torso:
- Twist control for hips and ribcage
- Stretch

Arms and legs:
- FK-IK blending
- FK and IK snap
- FK and IK limb stretch and blend between FK and IK stretch

Foot:
- Animatable tilt pivot for foot sole
- Roll, tap and tip controls

Head:
- Neck space follow - body space follow with animatable blend

Hand

- Store, fetch, save and load poses
- Direct finger animation and slider + spinner based animation, works both ways

Monkey wrench

Animation controls to deform monkey wrench:
- Store, fetch, save and load poses
- You can twist, bend and bulge monkey wrech and you still can animate open-close control to move jaw part - Kinda neat?

Face and facial expressions

- Joystick based face animation controls
- Store, fetch, save and load poses
- Eyes “look at” or “direct orientation” with animatable blend for both eyes
- Eyelid auto-track eyes, works with open and closed eyelids
- Eyelids collision prevention
- Anti-bite tongue
- Teeth collision prevention

Secondary deformation

- Secondary deformation controls for legs, arms, fingers, head, torso and feet
- Works with stretchy limbs and preserve volume while limbs stretch
- Secondary deformation reset transformations

Selection UI

A rig needs selection UI with fancy GFX! Or does it? Well anyway, i made one to see how it would work. It consist of one picture and rows of buttons.

Some features of selection UI:
- Hide and show rig parts
- Reset transformations of rig parts
- Select and multi-select rig parts
- Toggle view to face animation camera

Rigging tools

Now, rigs always have quite a lot manual work involved, so i had to automate many parts of rigging to be able to do also something else than rigging on my spare time this year!

Here are some scripts i wrote to help creation of this rig:

Auto rig arms
- Creates full blown FK-IK animation rig from arbitrary arm bones

Auto rig legs
- Creates full blown FK-IK animation rig from arbitrary leg bones

Auto rig hand
- Creates full blown hand and finger controls from finger bones

Auto rig limb deformation controls
- Creates secondary deformation control rig with wanted control count for selected limb

Auto rig face joystick controls
- Speeds up “Osipa style” control connection creation

Pose saver
- This is used for all of the parts which require saving and loading of poses

Characterization

This is a sort of concept of my own. Animation control panel of character is created for selected objects. Each object is added to “character rig” and then my script creates an animation control panel for these object.

This makes it possible to change arm, legs and spine structure, joint count and similar stuff, and then i can just run characterization script once again!

That’s it?

I think making of this rig was very rewarding - Also a big thanks to all the rigging gurus!