character rigging overview
TRANSCRIPT
-
7/28/2019 Character Rigging Overview
1/28
1
A Rigging Adventure
by
Aaron Frost
U0965225
The University of Huddersfield
BA [Hons] Animation
-
7/28/2019 Character Rigging Overview
2/28
2
-
7/28/2019 Character Rigging Overview
3/28
3
Contents
Introductionp4
The Set-Up Machine - p5-9
The Jacketp9-14
The Moustache - p14-15
The Stringsp15-16
The Sleevesp16-20
The Face Rigp21-25
Referencing and Hyper Graphp26-27
Conclusionp28
-
7/28/2019 Character Rigging Overview
4/28
4
Introduction
The rigging of characters is an often vital process in the production of a 3D animation, but despite it
being one of the most vital steps, it isn't quite as popular as modelling or animating. During this
exploration of rigging I have actually come to enjoy the process of rigging far more than any other
element in my overall production.
The rigging in 3D character animation is often regarded as 'skeletal animation'. There is the mesh,
which is the surface representation of the character, and then there is the skeleton, or more
commonly known as the rig. The mesh will connect to the rig allowing animators to move and key
frame of the character.
A good character rig should have a simple, usable interface that allows the animator as much direct
control as possible. This is so the animator can create interesting poses without struggling or
fighting controls. Controls should be in a logical position, easy to identify and also contain custom
attributes to help the animator achieve his goals as fast as possible.
Creating a good rig, often requires back and forth feedback with the animators, this allows therigger to cater to their exact needs. Often creating a rig is an on-going process. This is where file
referencing can come into play. With file referencing you can reference an unfinished character to
be used in a scene, and after every update the character will update in each scene. During my
personal production I had some problems with file referencing. These problems made it so the
animation I had done previously on the unfinished version of the character didn't transfer over,
making it so I had to copy and paste the keys from each individual control, onto the newly
referenced character control. This is somewhat time consuming, and it is a problem I will try to
avoid in the future.
This exploration of rigging will start at the beginning, with only the basic character model finished.
Firstly it will show the basic skeleton, which includes, fingers, arms, hands, legs, torso, and headcontrols. Following the basic skeleton, there will be secondary animation controls added. This
includes a moustache, strings, sleeves, jacket and hair controls, and finally after completing the
secondary animation controls, it will look at a face rig, which is capable of showing emotions and
expressions.
-
7/28/2019 Character Rigging Overview
5/28
5
The Set-Up Machine
To create the basic skeletal rig. I explored a plug in for Maya called the set up machine. This plug in
is a biped generator, and allows a custom biped to be generated quickly and efficiently.
After generating the initial biped, you scale the parts to match the character.
What is important in this process is to make sure the main joints are in the right place. Lets take alook at the wrist joint placement.
-
7/28/2019 Character Rigging Overview
6/28
6
Because my character has sleeves, when I first generated the skeleton from the biped, the wrist
joints were too far up the sleeve. This impacted the movement in a weird way, as too much of the
sleeve would move, making it appear he had a really long wrist, and also the jacket didn't appear to
be free moving, it looked as though it was clamped down.
This is something I had to rectify and the only way to do it was to retrace my steps by opening an
old incremented save, and generating a new biped.
After I was sure the generated biped was is in the right place, I generated the real skeleton. This
created joints. The joints are a complex set of bones which act just like a real skeleton and a real set
of bones.
Now there was a working skeleton. I could attach it to the mesh, which is the the character's model,
or surface representation.
After binding skin, the mesh will react to the joints, but often not in the way you would expect, this
is because the computer has made its best guess, however without the weight of the skin being
painted. It doesn't know how it should react.
The next step is called painting skin weights.
-
7/28/2019 Character Rigging Overview
7/28
7
The process of painting skin weights is time consuming, and often trial and error. There are two
ways to do it. The first is to paint skin weights using the paint weight tool. This allows for more of a
free flowing, hands on approach, which is much more interactive and reactive.
It is done by selecting each individual joint, and painting the area that it should effect. The thickerthe colour, the more it has influence over that part of the mesh.
The second way, is the use of the component editor, this allows for a greater degree of control. It
allows you to select individual verts and gives the weight a numerical value, making this way much
more effective for small details, like creases. Each vert selected will tell you which joints influences
it.
-
7/28/2019 Character Rigging Overview
8/28
-
7/28/2019 Character Rigging Overview
9/28
9
Eventually the skin bind was taken off the item, and the item was then just parented to the mesh. At
this stage. I had a very basic but usable rig.
The Jacket
The next challenge was the rigging of the jacket.
This was a complicated area, that ended up with 18 more joints. There are alternate ways to rig the
jacket, which could include the use of cloth dynamics, however if we refer back to the introduction,
my aim was the give an animator as much direct control as possible. Dynamics are good, but lack
control, with joints and key-able controls, the animator would have total control. An experienced
rigger could do both, and give the animator the ability to switch between controls which would add
a dynamic simulation, and controls which would offer key-able animation. This would require a
more in-depth exploration and also a lot more knowledge. It's something I may consider looking atin the future, but for this project, it wasn't necessary.
-
7/28/2019 Character Rigging Overview
10/28
10
The picture above shows the joints in their neutral position. To create the controls, I made NURBS
circles, and used a parent constraint to attach the joints to the circles. After that I parented each
circle to the one above it, so they move together. The top control for each strand of joints was then
parented to the red waist control, this is so they all moved with that control, as well as scaled
appropriately with the rest of the character.. Here is a diagram explaining the process, in a visual
way.
After some trial and error with parenting, I then moved on to re-painting the skin weights for the
lower jacket area.
-
7/28/2019 Character Rigging Overview
11/28
11
This turned out to be more difficult than anticipated. There were 18 joints to paint and also I had to
keep in mind how they moved with each other, as I wanted to jacket to look fluid, and for it to be
easy for the animator to create fluid motion. After many hours of painting I came to a point where I
was happy with the outcome, and how the jacket moved.
Something else which had to be considered was the placement of the joints. It was important toplace the joints in a good position, so that it would work well with the knee and with how the leg
bends.
-
7/28/2019 Character Rigging Overview
12/28
12
The joints were placed so that the jacket would bend appropriately around the knee, this is also why
there are 3 joints instead of 2, this helps the animator create fluid secondary animation, by having
the jacket controls flicking up and down in sequence.
The most difficult part of the jacket was the skin weights at the back. The joints at the front were
correlated with the opening of the jacket, so I only had to make it look good and react well to the
joints in the middle. The joints at the back of the jacket however, interacted with the joints on both
sides. This was particularly difficult and even now it still creates awkward looking dimples on the
jacket. This is something I could not fix despite having spent extra time on it, and it was something
which just required extra care from the animator when posing the back of the jacket.
Overall I feel the jacket works very well, but it's easy for the animator to get tangled up in the
controls.
You can make stand alone poses look fluid, but during animation it is quite difficult to make the
jacket stay fluid looking, and to create a flowing motion requires great care. This is down to the way
the joints interact with each other. During creating a walk or run cycle it is much easier and less
time consuming to use the jacket, than it is if you are animating a scene.
I'm sure it could be improved a lot by an experienced rigger. Something which could be done to
-
7/28/2019 Character Rigging Overview
13/28
13
improve it, would be to have a quick multiple selection option. While animating it is sometimes
difficult and time consuming to select multiple controls around the jacket to edit the keys, if there
was a faster way to select these controls it would be much easier.
I think it would also be easier if it had an interface which was not build around the geometry of the
character and instead, for the interface to be off to the side of the character. This would be achieved
by using Set Driven Keys. Set Driven Keys are something I explore later when creating the face rigand the interface for the face.
Another problem, is that in extreme poses the legs and knees come too high for the jacket, and the
legs come through the jacket mesh. This is something that could be fixed, but would probably
require me to start the jacket from scratch, as I would have to re-plan the joint placement. Currently
it is not a big issue and only affects extreme poses; therefore this problem can be avoided by the
animator.
After rigging the jacket with joints, I still think that it was the right way to do it when compared to
using dynamics and simulation, as the amount of control the animator has is unparalleled.
Secondary Animation, - Moustache/Sleeves/Strings
The next rigging tasks I decided to do were the moustache, aviator cap strings, and sleeves.
Moustache
Firstly, lets look at the moustache. There were a couple of ways in which you could approach
rigging the moustache. Firstly there is blend shapes. Blend shapes allow the rigger to be more
artistic, it allows them to sculpt each position and also would allow for squash and stretch, if we
were to make it so the head could squash and stretch. Blend shapes are something I explore later in
this report.
At this stage in the rigging process though, I was much more comfortable with joints, as I'd used
-
7/28/2019 Character Rigging Overview
14/28
14
them for everything else so far. Keeping with the flow of things I decided I would carry on using
joints to rig the moustache. This is how they were set up.
Similarly to how the jacket was made, the moustache used joints, with NURBS circles to control
them.
The skin weight painting for the moustache was much simpler than the jacket, as it doesn't have
strands of joints interacting with other strands of joints, and it is also a very simple piece of
geometry.
-
7/28/2019 Character Rigging Overview
15/28
15
Overall the moustache works fairly well. It is easy for the animator to achieve good secondary
animation, and the controls respond well. Again similarly to the jacket, it may have been a better
decision to have the controls away from the geometry, but because the face isn't as cluttered with
NURBS circles as the jacket, it doesn't become as confusing to work with, and the animator doesn't
get tangled up with trying to select the right control.
The process of making the moustache and the jacket was then repeated for the aviator cap strings.
Strings
Overall, the cap strings work fine, but could be improved. Often when using them, due to there onlybe 3 joints, they can look a little to square, for example:
-
7/28/2019 Character Rigging Overview
16/28
16
However during animation you don't really notice, and the animator can achieve good secondary
animation with them. The cap string controls, also could be improved by having another control
away from the geometry, similarly to the jacket and the moustache. It sometimes difficult to select
the middle control, as the moustache covers it in certain poses. This can sometimes be frustrating
and sometimes breaks the flow of work by adding unnecessary difficulty to selecting the control.
-
7/28/2019 Character Rigging Overview
17/28
17
Sleeves
I approached rigging the sleeves of jacket with a different method than the ones I'd used so far. It
could be achieved with joints, however using joints would have overcomplicated the process, and it
wasn't necessary. To create the rig for the sleeves, I used a mixture of blend shapes, lattices, and
also the connection editor.
Firstly I duplicated the mesh of the jacket. This allowed me to work on it separately and then later
allowing it to be connected with blend shapes and NURB circles. The first task was to create the
lattice. This was done by selecting the verts I wanted to be affected, then going to Create Deformer
Lattice
Once the lattice was created, I then selected the points of the lattice, to turn them into a cluster. This
allowed me to select a cluster to move each part of the sleeve much more efficiently. The cluster is
-
7/28/2019 Character Rigging Overview
18/28
18
represented by the 'C'.
Once the lattice was functioning properly, I then made the duplicated mesh into a blend shape for
the real jacket, and turned the blend shape to 1, therefore keeping it active at all times.
Something to keep in mind, and something which is good practice is to name the blend shapes
appropriately, here the duplicated mesh is called polySurface6, when really, to maintain good
practice it should be called jacketsleeves to make it easier to identify in the channel box.
Next was to create the NURBS circles, and connect them to the clusters which were controlling the
lattices, this time using the connection editor, which is something I hadn't used before, and
something which I was slightly confused about at first. The connection editor allows you to connect
different attribute from one object to another, in this case we want to connect the translate, rotate,and scale of the cluster, to the translate, rotate and the scale of the NURBS circle that we created.
To do this, we select both of them by selecting one, and shift selecting the other and then opening
the connection editor.
-
7/28/2019 Character Rigging Overview
19/28
19
When loading the connection editor, you first select load left and load right, this loads the attributes
which are available to connect. Next, you find the attribute which you want to connect, and select it,
while selecting the attribute from the other side to receive the connection. In the picture below, I am
connecting the translate from the cluster, to the translate of the NURBS circle.
I then repeated this process for all 4 clusters to finish off the sleeve, and started the whole process
again to do the other sleeve.
-
7/28/2019 Character Rigging Overview
20/28
20
The sleeves work really well, and the animator can achieve secondary animation fairly efficiently.
The controls work well, and the process to rigging them was much more efficient than it would
have been by using joints. One of the most important things creating this part of the rig was making
sure the geometry was the original geometry. The first time I made this part of the rig it went wrong,
this was because the geometry of the rig had changed due to the skin weights and the rigging which
had already been done on the jacket. This meant that the blend shape didn't work properly and cause
the jacket to deform. To fix this I imported a jacket from an earlier increment where the geometry
wasn't being change by the joints and skin weights. This seemed to fix the problem. I'm glad I
learned about this problem with blend shapes before I approached the face rigging part of this
exploration, as it is probably the most complex part and the next part I will be looking at.
-
7/28/2019 Character Rigging Overview
21/28
21
Face Rigging
Face rigging, is often an art in its self and in a studio environment there may be a specialist who just
works on face rigging. My aim for this part of the project was to create a face which was capable of
basic emotional expressions and have a clear interface which the animator could use easily. The
face rig is a hybrid of joints and blend shapes, and the interface uses Set Driven Keys, this connectsthe interface to each individual blend shape.
Below is an overview of the blend shapes used in the face rig:
-
7/28/2019 Character Rigging Overview
22/28
22
The first thing to establish was the jaw. For this I used a joint set up. I first tried to use only blend
shapes to create the jaw, however using a joint, you get a lot more motion, for a lot less work.
Firstly, lets look at the blend shape version. To create this I duplicated the geometry of the head,
and then pushed and pulled verts to sculpt the shape I wanted. It was a tedious process, and the
mouth is a complicated area for topology
It took some time to scult the blend shape and it only allowed me to move the jaw up and down,
also it didn't allow me to move it down a great length. Sculpting the blend shape lower became avery difficult task. Instead I decided to go for a joint set up, like this:
Using a joint, instead of a blend shape allowed for a free range of motion, that didn't require much
-
7/28/2019 Character Rigging Overview
23/28
23
effort. With this set up you get a lot motion for free. To make this work I just had to re-paint the
skin weights of the jaw.
The next thing to establish was the mouth shapes. I knew during my animation my character
wouldn't be talking, so the mouth shape didn't need to be phonemes, instead I just needed for the
animator to be able to create basic expressions which would represent happiness and sadness. To do
this I created smile and frown shapes. This required four blend shapes to be sculpted.
These four shapes were then connected to an interface made up of NURBS circles using Set Driven
Keys.
-
7/28/2019 Character Rigging Overview
24/28
24
Below is a picture of the NURBS circle interface which controls the mouth.
To connect each NURBS circle to the corresponding blend shape, you select the circle as well as the
geometry of the character's face.
In this case, we've loaded the driver, which will be the NURBS circle, and then the driven which
will be the blend shape. We want to connect the NURBS circle which will control the right side of
the mouth, and connect it to the blend shape in the channel box of the Face Geometry. The Face
Geometry has a blend shape group set up already from making the jaw. We want to connect
translate Y of the circle to the activation of the frowning of the mouth on the right had side.
Once we are happy we hit 'key', which keys them while they are in a neutral position. Afterwards
we load them back up again, while moving the NURBS circle down, and changing the blend shape
to be active and key them again. This means that moving the circle from neutral to down will cause
the blend shape to activate.
-
7/28/2019 Character Rigging Overview
25/28
25
The image above shows that moving the red NURBS circle down, causes the right frown blend
shape to activate in the channel box, because of the Set Driven Key.
We then repeat this process for each blend shape until the NURBS circle interface is connected toevery blend shape. The Face has controls which move the: eyebrows, top and bottom eyelids, mouth
open and close, smile, frown, and eye movements.
Next we have to create teeth correction shapes. This is because we haven't told the teeth what to do
while the jaw is moving. I made teeth correction shapes using a lattice.
Without creating teeth correction shapes, the teeth protrude the mesh when moving the jaw. So it
was important to create them. The same process what was used to connect the blend shapes to the
interface was used here also. I just connected the teeth correction shapes to the appropriate interface
NURBS circles and then with some trial and error, I got them to a stage I was happy with, where
they didn't protrude the mesh and also looked good and not overly 'cartoonified'.
-
7/28/2019 Character Rigging Overview
26/28
26
File Referencing and Hyper graph Hierarchy
File Referencing allows you reference a file, into another file. This means that you can continue a
work on the original files, and all the files that it has been referenced in will automatically update.
File referencing is extremely helpful, and without it I wouldnt have been able to spend so much
time on rigging my character, as it would have had to be completed much earlier for animation to
begin.
As you see Maya screenshot above, I worked by saving lots of different increments of files in case
anything goes wrong, with file referencing you can replace any reference with another version of
that file, and it will transfer attributes like key frames to the new version.
File referencing doesnt always go to plan. Due to my lack of experience with referencing, updating
the character rig with incremental saves sometimes caused huge errors. When looking at this further
I found out that a lot of the errors were caused by changing the file structure in the hyper graph
-
7/28/2019 Character Rigging Overview
27/28
27
The hyper graph hierarchy is an important tool; this is where you organise the hierarchy of the
files in your scene. For the character, it was important to keep the hierarchy logical, however due
to the sheer amount of objects, geometry, constraints, joints, and attributes it was sometimes
difficult. The image to the right is the full list assets which make up the character.
It was only around half way through the rigging process that I realized keeping these files inorder was not only important to maintain a good work flow and practice, but pivotal when it
came to making sure the rig worked efficiently. What was a major problem was changing the
structure of the hierarchy broke the file referencing and also the ability to continue to replace the
reference with new increments, as replacing the reference with a new structure just completely
broke the rig. Instead it meant that I have to reference a new character file in the scene, and then
manually copy and paste all the key frames, and attributes over from the old reference to the new
one. This process is an extremely tedious job and I had to continue to do
many times until I became efficient with the hyper graph hierarchy.
Overall, throughout the project the structure of my hierarchy hyper graph for my character went
from looking like this:
To looking like this, which as you can see is much more efficient.
-
7/28/2019 Character Rigging Overview
28/28
Conclusion
Above you can see some examples of the face rig. I'm really proud of how it turned out, and it was
probably my favourite part of the rigging process. I think in future face rigging is something I
would like to explore further; it is an interesting challenge and also can become quite complicated.
It can also rely on other things. Before attempting the face rig it is important to have good clean
topology around the mouth and the eyes which makes the process a lot easier, and allows for good
creases in the face, like the laughing example above.
Something I maybe would like to look at in the future is building the initial rig from scratch instead
of using a plug in such as the set up machine to generate a biped. I think this would be helpful as it
would allow me to rig non humanoid characters, exploring the plug in though saved me a lot of
time, which was crucial for this project.
Overall rigging the character was quite a journey, it was a long on-going process and I learned a lot.
Using file referencing allowed me to work on other parts of my main project whilst working on the
character rig continuously, therefore allowing me to explore the subject much more than if I didnt
use it
I look forward to future rigging challenges and incorporating all the skills I learned here into thecreation of my next character.