Thursday, 21 November 2013

Rigging Zoe the Character

The Character


This is the Provided Character for Rigging, I have chosen to stick with this as 

1) Its Topology is Correct
2) Low Triangle/Poly Count - It currently sits around 6k Triangles

The Legs

I started rigging with the standard Route, Hips to Toes, Instead of Reverse Toe Rig where you start at the Toes and Work up. I also Added the Master JNT (for UDK) which I Have called Spline_JNT, I need to Duplicate this so I have two here (one for UDK and another for the Rig.


Adding The Foot Controllers

For the Foot Controllers I Extracted the Edge of one of the feet and Converted to Edge Curves, this created the Correct sizes for the Feet.



These are the Constrained to the Joint Chain for the corresponding legs, Both an Orient and Point so that the are attached to Movement and Rotation of the Joint Chain.


I then need to set up Custom Attributes for me Foot Controller

Once you have Done this it is Time to add the Skin for the Mesh. (But I am Going to Do This Later)

Rigging the Arms

The arms are pretty similar to the Legs in lieu of how you layout the structure.




Having created the Joints, Which should have a clavicle, Shoulder, Wrist and Hand - For the Hand you will want joints that correspond to each Finger,

Next its time to have some fun in the Outliner


Naming Conventions are important when rigging, I Have Mentioned this in a Previous Blog Post..

_JNT/BNE - Refers to an item in the Outliner that is a Joint or Bone
The Suffix (before the_JNT) refers to the correct Anatomical name for that Joint - Logical Naming, (note that I forgot to add the Suffix for L_?????_JNT (I Shall change this now)

Also in the Hierarchy for the Fingers I forgot to add _JNT to the end of the Names, I have changed this Now

Adding IK and Controllers for the Wrist/Hand and Mirroring

The first step is to Mirror the Joints and then Re-Orient them to the World (all I ill  need for now is Y to follow the Bone Structure, X and Z can be reversed (it will just mean Negative is Positive and Vice Versa) I then add a single IK chain to arm, from the ?_Shoulder_JNT (? indicates the Left/Right arm)

Spine

The spine is one of the most important parts of the Rig, in terms of it connects the Lower and Upper Rigs, a swell as the characters ability to bend and well generally have any form of natural movement and realism, I crate this using the joint tool, I decide it should have 6 Total joint starting at the Hips and the final being the Shoulders


as you can see the spine is made of a total of 6 Joints - from Hips to Neck - Using the correct Spline IK  Tool I end up with a pre-Created Curve, which is something iIneed. having the curve in place allows me to create a series of Clusters from - This can be found in the create deformers menu - Clusters - Once create i I then move the Pivots to the Correct Pivot Positions - One at the Lower Vertebrae - Called Lower_Spine_cluster and One somewhere in the region of the upper spine - Called   Upper_Spine_Cluster, The Controller

The spine needs some form of Controller - This will control the spines ability to rotate forward and backwards, it also needs have some form of Twist, which you can set up by using the 
Controllers, Set Driven Keys and the Spine IK

1) - I create a simple NURBS circle - I move this to the correct position, This one will be the Lower Spine Cluster
2) - I create another Circle - I move this to the Upper Spine Cluster
3) - I constrain these to the corresponding _Spine_Cluster
4) - By default the Clusters are automatically parented to the Spine and based upon your Pivot is that where they effect



Hands - Controllers

I have already covered how I create the joint system for the hand, but now I need to explain my controllers and the SDK's

I create a simple controller for hand, Essentially just a Nurbs circle and name this appropriately for the job it will be doing - controlling the Hand movement, so I name the Controller - L_Hand_CTRL  - This will mean I can find it easily in the Outliner, 

Pivot and Position - Once the Controller has been created it need to be moved to where it will control from - I position it to match the Centre of my Bone 

he next thing I do is constrain this Controller to the correct joint - Which is the - L_Wrist_JNT

Orient Constraint - The First Constraint will be an Orient Constraint in all Axis with maintain offset ticked on, This will make sure that the Controller does not affect the position of any of my Joints. 

Point Constraint - The Second constraint I set up in a point constraint, Again  I set it up to constrain in all axis as well as leaving maintain offset ticked.  - This will allow me to move the hand in the X, Y and Z axis based on the position of the Wrist CTRL

Custom Attributes

Because I plan on using SDK's for the Characters Hands instead of an IK chain 

I need Four custom attributes one for each finger of my character, Not Including the Thumb I am still deciding at this moment if the Thumb will have an SDK or IK chain 

the first set of attributes will be for the finger curl - And then I will look at adding span /Spread to them once I have got them working correctly,I then use the Channel Box/layer Editor - Which is where you usually find your values for Position of  X,Y,Z  in scale, Rotation and world position to create my own attributes- From here I used the Edit - add attribute option - In the image above the second image down shows how this works. I then name the attribute relative to the ones below - Its an integer, and then minimum and Maximum values as well as starting points.

Naming Conventions for Custom attributes
- Middle Finger 
- Ring Finger
- Index Finger
- Little Finger/Pinky 

Things to consider

- Maximum  Roll of fingers
- Negative value (how far you fingers can be bent backwards)
-Start point - 0?

SDK's for the Finger

I decided that instead of having one large SDK for making a fist I would have a series of Individual SDK's for each finger meaning you could create a series of different Gestures with the Hand,  - I  also decided that an IK was needed the Thumb - Which gives you more choice for positioning the Thumb

Things to Consider

- One hand has a glove on - Most likely made of thick leather restricting Movement
- The Other hand has no Glove - Unrestricted Movement






Head

I was really worried about how to rig the head correctly, as I thought it was going to be really complex however once I got into it I did not find it that difficult

The Rig

I kept the rig pretty simple, I added Four Joints to the Rig, two for the Head and Two for the Eyes, Once skinned these will control the head

Main Controller

i create a simple arrow shape using the EP curve tool - generally I have used this tool to create any controllers where NURBS would not give me the desired affect. Once the initial shape is created I use a bend deformer to create the shape, Duplicate this four times and create a locator - You then group these under the Locator

I then group the controllers to the Head_Locator - This acts as the main  point of selection for when rotating the head, I then orient constrain this to the Head_Base_JNT- This will mean that the head works like a head essentially



Eyes

The eye rig is slightly more complex to set up - I started by remodelling the eyes - The eyes attached to the Character originally where not working correctly so i Modelled a sphere and positioned it to work like an Eye
The Controller

The eye is a pretty simple Controller - It is really down to personal Preference how you model this and put it to use

1) - I create a GUI/Surround for the Controllers (this is the blue cube you can see on the outside
2) - I create a NURB's Circle (this will act as the controller, and is conveniently similar to the shape of an eye) I then Rename this in the Outline - L_Eye_CTRL
3) - Duplicate this - Rename - R_Eye_CTRL -
4) - Aim Constrain these controllers to the Corresponding eye - I use Maintain offset and the All axis options enabled
5) - I grouped the eyes - these are linked to the GUI
6) - Hey Presto my eyes correctly follow a point



Evidence of Eyes Working










Adding the Skin
At this point in the process I add the Skin - This allows for me to see the kind of issues that i am having with my Rig at this moment in time, Especially when I start adding SDK's - I had actually been adding and removing the skin throughout rigging so that I could see if the changes I was making on the rig would work -



Skin Issues and Paint Weights 

The skin is pretty easy to set up, I select my Mesh and then Skeleton, Or the Joint System, I leave the options as default which skins my mesh pretty well.



Issues

There are a few issues with the skin - and that certain fingers meshes are being caught in the next fingers bones influence - which is an easy fix - the issue was that the Skin is generates based upon the bone as well as the Mesh overall - the fix is simply using the Paint weights tool to remove the weight from the joint that is affecting the joint you do not want it to

hand issue

The hands main issue was the Influence of the glove and how it skinned in comparison to the position of the Elbow,  and the way the mesh is Modelled in regards to the elbow - Below shows the fix for this issue


The other issue was the Hip, more specifically the Belt and The weird, Knife like object that hangs of the side - The main issue was how to go about skinning this correctly - I needed it to


Blend Shapes/Facial Rigging, Controller and GUI

I am going to create a controller for a simple series of facial animations, some of the controllers will have a slider and some will just be done with custom attributes (putting to the test what I have learnt over the last six weeks)

I use blend shapes to create a simple series of Facial Animations, This will allow me to create something on the face

Please Note - I did the separation of the head from the main mesh before I skinned the Rig - However as this is an extra on my rig and is not necessary, Also I have seen this done a few times before, where the Head mesh is separate - I always thought maybe this was to do with texturing but maybe it was rigging?

How they work - essentially a blend shape works by creating a slider between the original mesh and the blend shape - You can then access the blend shape in windows, Animation, Blend shapes

Left Eye Wink

Blend Shapes are simple to set up  - I duplicate the head mesh, Move the duplicated mesh to one side and name it - In the first image below you can see this shown  (the Green box indicates the blend-shape meshes and the red indicates the original meshes)- Once duplicated you use the Create Deformers - Blend Shapes, I also make sure that they have proper naming conventions


From Left to right are Blend shapes for, Blink, left Eye Wink, Right eye Wink, Smile, Frown, Left Eyebrow, Right Eyebrow


The Video/Giff below shows all of my Blendshapes working in one go








Conclusion

Over the last Twelve weeks I have Made allot of mistakes, learnt allot and done some stupid things in the Unit. The main issue for me was the actual meshes, having to find suitable meshes, that  I liked and was happy working on was a pain in the arse - Turbo squid is extremely unreliable, most of the Meshes I downloaded had bad topology and each time we had to do this I wasted a good amount of time trying to find a mesh I liked working with.

What would I do Differently? - There is not much i would do differently, I acknowledge my mistakes, I forgot to add locators to the Knee's IK chain which means you cannot reposition the Knee easily, the Other issue is the GUI - I really wanted to create one that Mimics the face and has some form of Dynamic interaction, meaning if I Move a point on it it affects the Face





No comments:

Post a Comment