Friday, 21 December 2012

Character rig

To begin, I started creating the joints for the character rig by clicking on the skeleton menu and selecting the joint tool, and in the side view port I added the leg joints in simply by clicking, named them accordingly using the outliner. I then mirrored them by selecting skeleton menu and clicking mirror joint, one of the important thing I noticed was in the search for box you could replace L_ with R_ so I didn't need to rename them.  I did this with the arms too. However I first created the spine and after everything was placed I parented the legs to the spine and the arms to the clavicle, connected it all to the root, and finally the fingers to the hand.

Now the next task was important I needed all my local rotation axes to be facing the correct way, to do this I selected component type and then miscellaneous objects which allowed me to check and alter the rotation of any that were facing the wrong way.
Now with all the joints complete the Spine/Arm IK handles were my next task so I could start create the skeleton that is needed for the rig. Firstly I created an IK spline handle going from the root to the top of the spine. I then added an IK handle between the clavicle and the arm, and then from the arm to the wrist. The arm area is where I found most of my problems and after trying several methods I just couldn't understand what I was doing wrong, the arm didn't react correctly when bending it. In the end I moved on and tried to complete the rest of the rig, I added IK handles between the neck and the head, and the head and the skull. With that now done I created clusters on the spine by selecting the curve and selected create deformers, clusters options box. After naming them accordingly I moved them slightly backwards so they were move visible and moved the pivot points snapping it to the centre of the joints.
The leg controls/ IK handles were the easiest to understand for me, I firstly applied Ik handles from the thigh to the heel, the heel to the ball of the foot, and the ball to the toe. I then added them into their own groups and set the group pivot points to the centre of the joints for example ankle grp is snapped to the ankle joint pivot. I then constrained the controller to the ankle group using point and orient constraints allowing the legs to move and be rotated, I then added attributes to the foot controllers, setting ball lift and toe lift with limits between -10 and 10. Then using set driven keys I applied the ball lift attributes to be driven by the ball lift group, and same with the toe. By changing the ball lift attribute settings I could rotate the rig to give it a ball lift when the user inputs a number.
The spinal controls were next and were surprisingly quite simple to understand, firstly I added in the controllers for the hip, hip shake, abs, chest, back and head, snapping them to the pivots of the joints, the for the back controller I used CV curve to create the two sided arrow and of course deleted history and freeze transformation as always. I then selected each controller and the cluster and applied point constraints to each one, I oriented constrained the head and the chest allowing them to be rotated, with the chest I selected connection editor and in the outputs I loaded chest control and inputs I loaded the spine IK handle selected rotateY to twist, this allowed a move realistic movement of the spine. I then decided to create a layer to hide the clusters because I didn't want them to show all the time.
I found the hand controls to be the most difficult in the whole character rigging process, I couldn't quite complete the right hard due to the errors I kept getting, I just couldn't find a solution, I kept restarting the process however I managed to get the left hand working fine, and managed to add finger controls to both hands. Firstly I added some circle curves as controllers for the Arm, Elbow, Wrist and Hand and places them accordingly snapping them to the pivot of the joints. I then added orient constraint to them allowing the user to move them around. For the wrist controller I added attributes allowing the user to change the fingers and thumb rotation, if they wanted to hold an item. I set minimum and maximum values so the user has a realistic limit and using the set driven keys commands I was able to create driven keys that allow the fingers to bend inwards outwards slightly.
The Global control allows you to scale, move, simply alter the rig in case you need it to be smaller or moved into a different spot, to create a controller I created a circle curve and altered the shape using its vertices. I then placed it directly under the rig making sure it's big enough to be noticed as a main control. I then grouped all my joints, Ik handles and Controllers in to their separate groups respectively. I then applied a scale and parent constrain to the global control and grp_All allowing the user to change the size of the rig.

Finally Skinning, skinning is the process of when you apply the rig you have created with the 3d mesh you want it to affect. When bonded together you can move any controllers you have made and the mesh will move accordingly. This process is the final part to rigging when everything is complete, all the bones, IK handles, controllers etc are all in place and finished. To bind the mesh firstly select the rig, then select the mesh and press the skin tab, select bind skin and select smooth bind, now moving any controllers around will change the way the mesh looks. Now if the character mesh does not look quite right when moving it around and trying out poses then it's time to adjust the skin weights. Skin weights affect which parts of the mesh are affected when moving the rig around for example if you move the leg up it should affect the leg and not the upper body.
Selecting the mesh and clicking the skin tab, then edit smooth skin, and select paint skin weight tool options box will open up some settings. Here you can select each joint, which should be named correctly or it will look very confusing, and the white patch around that joint shows that it is influenced by that area of the rig, so the white represents areas that cannot be moved while the black areas represent areas that can be moved freely.

No comments:

Post a Comment