character rigging overview

Upload: aaron-frost

Post on 03-Apr-2018

224 views

Category:

Documents


0 download

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.