top of page

My first Character Rig: The Balet dancer


Learning to Rig is what I imagine it would be like to learn how to explain the choreography of a complicated dance to a person who doesn't share the same language as you using only a diagram with shapes and numbers. (and the person also has a rare condition whereby their limbs can move in any which way) Or something as inconceivable as that. BUT ... I think im getting there. With the help of strange analogies for how hierarchies work (parent/child... glass boxes... master/slave) and repetition and testing and trial and error, and a naturally logical mind on my part. (pah...). I am getting there. My first human rig is supposed to allow for the character to do ballet moves. I thought about this while rigging her but in the end I think I rigged to allow for all movement. These are the poses I aimed for

Legs and Feet:

I used IK handles. Inverse Kinematics, intended to allow the joining limbs to move in reaction to the limb being animated ?!.

I made the IK s Rotate-Plane IKs so a controller could be added to the knees to rotate in the y axis. This was especially important in the 'Ankle Ik' and not so much in the two Iks in each foot. Either single_chain solver or Rotate plane-solver could have been used here.

A controller for each foot was connected to groups of iks with thoughtfully placed pivot points using simple parent child structure. The IKs were grouped in order to manipulate them. Their pivot points snapped to strategic vertices which would allow for rotation around a point . Then controllers were snapped to a position at the knees and constrained with a 'pole vector constraint' to the rotation in y of the ankle IK. (twist)

Attributes were added to the foot controls based on movement allowed by the grouping of the iks. These attributes (ankle twist, toe twist etc) were connected to the relevant IK groups using the connection editor.

This is the hierarchy I used to make the legs and feet work.

These are the Attributes added to the foot_ctrl

Here it is in action

Torso:

I rigged the back with an IK spline.

I placed joints along where the spine would be in the character. Starting at the pelvis I made a root joint and then I created joints all the way to the neck. At the hip area I made them close together as this is a very flexible part of the back. The hierarchy of joints in back

I used an IK spline solver with upper body, mid body and lower body clusters to manipulate the joints in the back to bend, and curve controllers to easily animate these clusters.

I also created a body control as a parent of the lower mid, and upper body control clusters to move the whole body side to side without bending the spline.

The root joint was connected the the lower back control, the hip joints were then parented to the root joint.

The root joint was rigged with a controller to acts as an orientation joint to rotate the hips and torso. Master Control (super_mover) A master controller was created at the bottom of the character. The other controllers were placed below this controller in the hierarchy, the back controller and the foot controllers. The back IK spline was not parented to the master controller, the back IK and the curve were put in their own group. (rig_group) Hierarchy of controllers in master controller

Scalability I selected the root joint, which selects the whole skeleton, grouped it to itself and created the skeleton group in order to connect the scale of the joints to the scale of the Master controller. I used a constrain scale to achieve this.

Rotation of Joints

At this point I needed to do something to allow the joints in the back to rotate as well as translate. With the upper back control for example, I wanted the joints there to rotate around the y axis. I connected the rotation in y of the upper back controller to a twist attribute in the back Ik using the connection editor. Arm and Hands I used forward kinematics only in the arms as the ballet dancer won't need Inverse kinematics in her arms.

Hierarchy of joints in arm

I parented the clavicle joint to the chest joint. Created a control and snapped it to the exact location of the shoulder, elbow, wrist and each knuckle. It was an arduous process trying to get the correct orientation and alignment between the controllers and the joints in the arm. It involved a lot of parenting, constraining, freezing transformations, unparenting etc

Placing and Orienting the controller's

Once the controller was placed and oriented correctly I connected the rotation in each axis between the controllers and the joints for each of the joints in the arm. I also had to parent the controllers correctly.

Skinning and Painting weights

I need help.


Recent Posts
Archive
bottom of page