So classes are officially done and my extension has been approved which will allow me to spend time doing a quality animation instead of a rushed one. This way I can ensure I learn something out of it rather than rushing through it. First up I to see where I am currently at. My other courses are all done so everything is CGI focuses from here on. As can be seen I have a long ways to go. I have a bit more work to do on my handles then I can showcase my rig. Though technically I have been doing a bit of showcasing in the other blogs already. 🙂
The first thing I have accomplished is to add IK handles to the legs. I realise I in last weeks handle setting up I did not really explain how I did it so I will do so for these leg handles.
The first step I took is to create a new bone at the knee and ankle joints and cleared their relationship to their parent. The knee one I named ‘KneeIK’ and the ankle one ‘FootIK’. These will be my handles. The foot one is a bit hidden at the moment, but will be changed later on to make it easy for an animator to use.
I then selected the shin bone and added to it an IK constraint with the target set to the ‘Armature’ with the bone being the ‘FootIK’ and for the pole target this too I set to ‘Armature’ and the bone for it to ‘KneeIK’. I gave it a pole angle of -90 degrees and a chain length of 3. If I had been using a single joint instead of my knee’s current double joint then I would have had to set the chain length to 2.
One more constraint I have to add is the a ‘Copy Rotation’ to the foot bone. Its target is also ‘Armature’ and the bone ‘FootIK’. This I did to the second leg as well and I am done. Below is a short clip of my finished result.
At this point I have decided that I want to make my controls more user friendly so in edit mode I have combined two loops into one object which I shall use as my custom bones for the controls. I have additionally separated them into groups and assigned each group a colour to make a clear easily visible distinction between the left and the right controls. Below is my current result.
I have also assigned the leg and arm bones into a new group which and hidden them on a new layers since the only time these should need to be interacted with is by using the IK handles.
FK + IK Together
I have added some additional functionality which allows both the arms and legs to be moved as IK or FK. I have added a snippet of this below. As can be seen I have created a new FK controller on the shoulder and parented it to the the IK controller I created previously. This now allows me to use the FK control to move the whole arm as one or the IK control at the hand to move the arm using inverse kinematics. I had done the same with the other arm and both legs. One other thing that is noticeable is the dashed line. This is a relationship line between a parent and its children. Its a functionality I have only just discovered. 🙂
For these I need to constrain each finger to only bend forward and back. This I achieved by adding a ‘Copy Rotation’ constraint between each bone of each finger. Two constraints a finger. I also ensured that it rotates on the ‘z’ and ‘y’ axis and that the space it rotates is set to ‘Local Space’. They constraints have to be set to two axis since each joint is not quite rotating on a single axis due to the spread and position of the fingers.
Below is my finished result. As can be seen I have only kept the base bone for each finger since each of these now moves an entire finger. The other bones I have moved to a layer for hidden bones. Those not needed by the animator. The thumb I only added the copy rotation constraint to the last two bones since the base of the thumb on a human body can do a lot more than just rotate back and forwards. Due to this the thumb has two controls one for the thumb bending and the other for the base which allows for movement in any direction.
I have repeated the same for the other hand and that is the hands rigged and working. I can select and rotate all finger controls to bend them simultaneously. For instance if I wanted to make the character to ball its fists. The controls also allow for the fingers to be moved further apart or closer together so an animator may simulate this action like what would happen on a real hand.
Checking the movement of the fingers the bones are working correctly, however the glove is not moving properly as automatic weights has made each finger influence others too much. So I have spent a bit of time weight painting to get this sorted.
This has proved to be one of the easiest controls to set up. All I have needed to do is duplicate the head bone and moves this out in front of the head. I then have added a ‘Track To’ constraint to my head bone telling it to track the head controller. Now when an animator wants to control the head they just have to move the single controller. I did in the process of checking the working of the head find that the automatic weights weren’t quite right in the neck either. I was getting a bulge appearing when the heap was tilted up too high. This I have fixed and as seen in the following clip it works well now.
I will admit that I am very happy with how the neck turned out. 🙂
Now for the spine. I had a lot of difficulty finding any material to learn about the stretchy IK spine from so I had to settle for the following method of rigging my spine which utilizes two controllers. One is an FK to bend the character at the hips to allow the it to bend over. The other is an IK control in the waist to chest area. This one allows the character to bend here as well as doing things like mimicking the swaying of hips while walking etc. For this first IK handle it will move just the middle and upper bones. All I have had to do here is create a new controller bone and then parent the upper spine bone to it instead of the waist bone. Below you can see that I can now sway the upper body side to side. It did cause a few issues with the weights which I had to fix. This is due to the waist skin, the top and the trousers all being separate objects. Before I fixed the weights swaying the upper body would cause large gaps to appear between each of the three objects letting me see inside the body.
The other controller is at the hips and allows for the bending over.
Once I had all my controls working as intended I finished off by testing the use of some drivers. These are the equivalent of correction bones and will make small automatic changes as the affected areas on the rig are moved and trigger them. These get added to the values of a bone and require a bit of Python code to be inserted for the auto correction to happen.
The area in which I had a play around with these was in the hand knuckles. I used a couple of drivers to flatten the knuckles out and move them over slightly upon being curled. This simulates how they bend on a real hand.
I have finished off this week by conducting a full test of my rig on a recording to display my models rig as fully working and ready to animate. I intend to animate using my own rig as I feel that it can do everything I will need it to do sufficiently.