troll rig
v1.0

 
 
this is the aspect of the rig when opened in Maya

about the model

I got this model from the 10 Second Club's model library. At that time, there was a great discussion going on at the club, where a lot of people seemed to think that their animations were not of quality because their rigs (or character setups, as some people likes to call them) were not really good in the first place. They said that, being animators and not actually riggers, the characters they created lacked a lot of important controls and mobility, and that their animations were not as good as they could get to be.

I fail remember who it was, but somebody got the idea to create a model contest. After voting for the best model, the idea was to create a similar rig for it in every 3D application (if possible), and therefore everyone in the club would be able to download the charcter rig that was prepared specifically for their 3D tool, and animate away.

A lot of characters were presented and, way before the actual voting process began, this model caught my eye. I really liked it, and thought it would be both nice and challenging to create his rig. Hmmm... Cat-like legs... Fingered feet, and with an opposing thumb... Eyebrows that went round the whole eye socket... Pointy ears... Just nice.

I don't know how long it took to create the rig. I'd say a couple of weeks or so, but with the club submission deadlines as tight as ever ;-), the occasional commercial work at Arena Shots, and preparing my reel, time just flew by. It was four good weeks until I uploaded my rig to the club again.

In this document you'll find explained, one by one, all the controls that I provided Troll with, as well as some insight on why I made them like this, what decisions I had to go through, and the parts that I found toughest to get right. I hope you enjoy this document. If you have any comments or questions, feel free to contact me at lluisllobera@hotmail.com.

 
the TRANSFORM node can be used to move, rotate and scale the whole rig

transform

At first, when the model is open in Maya 4.0 and beyond, the user will not be able to interact much with it. I've seen a lot of people opening this rig for the first time and trying hard to select the geometry, only to realize that they cannot do so. After a little bit of turning it around, they'll get to select the purple circle at Troll's feet, which is a node called TRANSFORM.

I've worked hard to make sure that each control in Troll's rig displays in the Channel Box only the attributes that it needs to work correctly. This means that, for example, if the head couldn't rotate, you wouldn't see the rotateX rotateY rotateZ attributes at all in the Channel Box and, as a matter of fact, if you picked the rotation tool, you'd see that the rotation axes were locked. I think this is how all rigs should be done, so that the animator deals only with relevant stuff and can quickly know how the controls work.

The TRANSFORM node, of course, follows this rule as well. If one picks it and takes a look at the Channel box, they'll see the regular translate, rotate and scale attributes. When moved around, this control will move the whole rig to another position, without it breaking at all. If rotated, the TRANSFORM node will rotate the whole rig, and if scaled, the whole rig will become larger or smaller.

This node is, therefore, of great importance, because it makes of Troll a universal character. The scene is smaller than you planned and you cannot scale it up? No problem, Troll will shrink to fit in! :-)

 
the VISIBILITY node has the ability to show/hide the rest of Troll's controllers

visibility

The only other selectable node in the scene are actually the letters that spell out Troll's name, which are parented to the TRANSFORM. This new control, named TROLL_VISIBILITY, has the power to show and/or hide the rest of the rig's controls.

A very important attribute within the VISIBILITY control is the divisions one. It has three possible values: either 0, 1 or 2, and playing around with it will make Troll's geometry complexity change. This attribute is directly connected to each of Troll's polygon sufraces' polySmooth input.

For the animator to work smoothly with the rig, it is recommended to work with 0 divisions. Level 1 is fine for making animation previews, and setting the attribute to its maximum value is the correct thing for final render.

Another important attribute found in the VISIBILITY control is animateTroll. It can be either tuned on or off, as the rest of the attributes within this node, and when activated it will change Troll's colors. Internally, it is actually hiding the regular Troll and making visible another one that is exactly the same, but that has got the limbs painted: blue for the right arm and leg, and red for the left arm and leg.

This coloration fits the different symmetrical controler's: for example, the IK controller for the left arm is also colored blue. This system is meant to help the animator to identify quickly which extremity should not be working as it is.

the divisions attribute changes the polygons smoothness level
when animateTroll is ON, Troll's skin color will change to visually identify each side
 
the DirectHead controller can be rotated to rotate Troll's head, and moved to move it around a little bit

head

Let's examine the rest of Troll's setup, from head to toes. The head can be controlled via two different controllers: the direct one and an indirect one.

Troll's DirectHead controller is an open circle, sort of like an aura, surrounding his head. It can be rotated around, and Troll's head will rotate accordingly. If desired, this controller can also be used to actually move the head. This feature may not be always used, but it can be valuable when trying to get certain head movements.

 
the IndirectHead controller will make Troll's head aim to it's direction

Troll's IndirectHead controller is a little cross sitting way ahead of him, head level, at the end of a grayed-out line. These lines are actually 1-degree curves, and I find them really useful as they are a great way of knowing exactly how your rig's controls are tweaked about. You'll see that most controllers in this rig are attached together through these lines.

The IndirectHead controller must be activated before actually seeing how it affects Troll. To do so, first of all the DirectIndirect attribute, found in the controller itself, has to be raised up to a value of 10. This way of switching from direct to indirect controllers, or IK to FK controllers, is one that I like very much as it doesn't make Troll snap, but smoothly move from one controller's influence to another.

When moving around the IndirectHead controller, Troll's head will always aim at it. It also has a Tilt attribute, which can be messed around to make Troll's head tilt. Even when the IndirectHead controller is working, moving the IndirectHead controller will affect Troll.

 
Troll's facial controllers are rather intuitive

expressions

Troll has an inbuilt system for facial deformation which I think works quite nicely.

First of all, and for the purposes of concentrating in facial expressions solely, there is a camera called cameraTroll that is always looking straight at Troll's face, no matter what pose he's in. This camera has the far / near clip planes adjusted so that nothing gets in the way between it and Troll's face. There are a couple of attributes within the camera's transform node, which will make it zoom in / out and rotate around Troll's head.

The controllers for facial deformation are always at Troll's head level, and they are easy to figure out. All of them except jawSlide are outside Troll's geometry, so that they can be quickly identificated.

Troll's jaw is manipulated with the jawSlide control, which can be rotated around in any axis to open and close Troll's mouth.

The tongue controller, sitting above Troll's head, can be rotated to make the tongue curl up and down, or bend sideways. It can also be scaled in the X axis to make the tongue thinner or thicker, and in the Y axis to make it longer or shorter. Troll's tongue is something that I could have worked harder with, but I felt I didn't have enough geometry on it to play nicely with it.

 
the lip controllers allow to precisely modify the mouth's shape

The lips controllers are a set of circles and squares that modify the shape of the lips. The idea behind them is that the user can, visually, move the controllers in either direction, and that a portion of the mouth shape will change to adap to this movement. There are lip controllers for the top and bottom lip separately, which are represented by the little circles in the controller. The squares are used to move the top and bottom lip controllers at the same time.

The eyes are, by default, controlled directly. The DirectEye controls can be moved around inside the curve that simulates the eyeball, and Troll's real eyeballs will rotate accordingly. Parented to the DirectEye controls are the Pupil controls, which can be scaled either in X or Y, to make Troll's pupils grow or shrink, and even change their shape.

The eyelids are controlled independently with the ULid and LLid controllers. These controllers can only be moved up and down in the Y axis. They are limited, but only far beyond their possible states.

Troll's eyebrows can be controlled through the Eyebrow controllers. They can be moved in every axis, and can provide his face with a wide range of expressions.

The nose controller can be moved in either X or Y, and can make Troll's nose move a little bit. This controller may not be used frequently, but it's helpful when Troll needs to sniff around.

The ears can be controlled by rotating the Ear controllers. They can be rotated in either axis to get different ear curling effects.

Finally, the IndirectEyes controller can be found sitting next to Troll's IndirectHead controller. It has to be activated by setting the DirectIndirect attribute within the controller to 10. When moved, the eyes will always aim at it. It also has a separate attribute that can either separate or get closer Troll's eyes.

 
Troll's arms move in FK by default

arms

By default, Troll's arms move in FK. There are three FK controllers for each arm: the ShoulderFK, the ElbowFK and the WristFK. The first and last one can rotate in either axis, but the ElbowFK controller will only rotate in the Y axis, just like arms in real life do. When rotating the WristFK controller in the X axis, the wrist will not break like a candywrap as happens in other rigs, thanks to Troll's forearms being three-jointed.

There are two IK controllers for each arm: the IKElbow and the IKHand. IK controllers have to be activated using the FK_IK attribute found in each HandIK controller. After that, the IKHand can be moved to place Troll's hand in any coordinates (provided it is within arm's length reach), and even rotated to rotate Troll's hand. The IKHand controller is sticky, which means that it is prepared so that Troll is able to lean on tables or walls without having intersection problems. When rotated in the X axis, it also takes advantage of Troll's forearm being three-jointed. The IKElbow controller is simply a poleVector for the arm's IK Handle, and when moved around will make Troll's elbow move to point it's way.

Troll's rig is also provided with a very important controller that's often overlooked in other rigs: Clavicle controllers, which can be rotated around.

Troll's IKHand controller is sticky
Troll is also provided with rotating clavicles

The finger controllers are little dented wheels that are always in top of Troll's hand, no matter if in FK or IK mode. They have curl attributes for each finger, which can be set to any value between -10 and 10, and that go beyond real life fingers' curling abilities. There are also spread attributes for each finger, also allowing the animator to exaggerate the poses if needed. The thumb is treated as a special finger within this controller, for it can either curl, spread and rotate.

The finger controllers also have an explicitFingers attribute, which, if enabled, will make visible a little circle inside the dented wheel. This new controller, called ExplicitFingers, gives the animator control over the curling of each joint in Troll's finger. This will be a very useful feature when the fingers' desired rotation cannot be attained with the attributes found in the parent controller.

the HandFingers controller offers spreading and curling for each finger
with the ExplicitFingers controller each finger's joint can be curled independently
 
the COG is one of Troll's most important controllers

spine

The COG (stands for Center Of Gravity, and is also called root in some other rigs), is one of the most important controllers in this setup. Changing it's position will make the character move entirely, pelvis up, and rotating will also affect it. Its visual is a yellow selection handle, which (as experienced Maya users know) has got highest priority in panel selecting. It is, thus, very quick for the animator to locate it and select it.

 
the DirectSpine controllers can be either moved or rotated around

Troll's spine can be controlled both with direct controllers and indirect controllers.

The direct controllers are three selection handles that can be found inside Troll's torso, and they can be rotated in every axis to provide Troll's spine with some rotation. They can also be moved around.

 
the IndirectSpine controllers will help to adjust little rotations of the torso

Generally, the DirectSpine controllers will be enough for the animator to use. The IndirectSpine controllers, however, offer a little wider range of possibilities when adjusting the torso's shape.

There are two IndirectSpine controllers: the hipController and the shoulderController. The first one is the most relevant one, as it has the power to make Troll shift his hips in any direction. The second one will just add up to the rotation given by the rotation of the DirectSpine controllers. Both IndirectSpine controllers can be either rotated or moved.

 
Troll's feet move in IK

feet

Troll's feet have only IK controllers, as I have never had the need to use FK for them -- generally, the feet will be in contact with the floor, right?

There are two main controllers for the feet: the first one is called foot, and is used to adjust both the position and orientation of the foot. Its visual is, again, a selection handle: if it was some other node type, the animator would experience trouble when trying to select it alone. It is also provided with two attributes: tap and twist.

The other main controller for the feet is the knee controller, which, like the elbow controller, acts basically as a poleVector for the IK Handle used in Troll's leg.

 
the foot can be rolled in any axis

I decided to place the foot roll in a separate controller, called footRoll, and it's visual is a hexagonal prism. The reason why I placed it outside of the main foot controller is that I felt that, due to this character's special feet anatomy, the foot would have to be able to roll not only forward, but also sideways.

This controller is parented to the main foot controller.

Finally, like in the hands, there are two controllers for the fingers. The footFingers controller has attributes for curling and spreading each finger, and there also is an explicitFingers controller that can curl each joint in the foot individually.

the footFingers controller offers spreading and curling for each finger
with the explicitFingers controller each finger's joint can be curled independently
 
there are four muscle controllers

muscles

Instead of automatically having the muscles bulge or contract, I decided to have the muscle controllers separately, to give more control and freedom to the animator. There are four muscle controllers: one for each bicep, one for Troll's chest, and another one for his abdomen.

Those controllers just need to be scaled up or down in any axis, and the model will react accordingly and consistently.

The torso and abdomen muscle controllers will work nicely if used also to show Troll's breathing.

 
there's an inbuilt MASK skeleton to allow for Troll's facial deformations

inside the rig

There's a little particularity of this rig that I think it's worth commenting, and it is that it does work with blendShapes. As a matter of fact, it works with only one blendShape, that's always 100% working.

When thinking what I would need to do for the rig, I found that there could be some problems if I tried to have Troll's musculated arms intersect with his torso, for the torso would start also scaling up. I also thought that, since I wanted a sophisticated facial deformation system, I would have to build it separately to have more control on it.

I resolved, therefore, to make an exact duplicate of Troll's body geommetry, and to use it as a blendShape target. This target geommetry would have the musculation deformers and the facial expressions deformation, only it would always be hidden. Therefore, in the very past of Troll's body shape, you'll find the blendShape input. It was only after creating the blenndShape that I started to work on Troll's skeleton.

The facial controllers are actually moving and rotating the different joints of a skeleton mask that's binded to this blendShape target. After getting the idea, resolving how to work on it was not so difficult.

the rig in numbers

Finally, and for the curious, I have the exact number of different nodes found in Troll's rig.

69 meshes
6 NURBS surfaces
124 NURBS curves
257 joints
17 IK Handles
185 point constraints
63 orient constraints
2 scale constraints
132 clusters
26 multiplyDivides
637 animation curves

wrapping it up

This is it for Troll's rig. I hope you enjoyed reading this document, and that you will enjoy moving Troll around. The rig is available to download freely at http://www.lluisllobera.com/DOWNLOADS/TROLL/TROLL.zip. It will work in Maya v4.0 and higher.

There is also a DivX avi showing the rig in movement at http://www.lluisllobera.com/DOWNLOADS/TROLL/TROLL_RIG.avi.

If you have any comments or questions, or even suggestions, feel free to contact me at lluisllobera@hotmail.com.