With character rig it is very important to create a good base, good skeleton. You need to think very carefully about where you place your joints. First I made many mistakes with legs and had to redo them, placement of my joints was very wrong, and I forgot to orient them. When it came to skinning I also found out that I've chose not really best position for shoulder joints, that made skinning part harder.
To orient joints select your bones then go to -Skeleton->Orient Joint Tool and set it as you feel comfortable to. I usually use world oriented.
The orientation of last joint, the end joint, is not important as it has no further bones and will not rotate anything. Orientation is extremely important at the fingers, make sure that your joints are properly aligned.
Otherwise you are going to get the effect of broken fingers when bend them.
To create IK you go to >Skeleton-> IK handle Tool -> IKR or IKS, other settings are like on screenshot below.
When IKs are on their place it is good to add Pole Vectors. They will not only allow you to adjust the direction where knees and elbows are pointing but with that you also will get the rotation of the whole leg and arm.
IKR is very simple and doesn't need an explanation.
IKS is pretty simple too. It creates a curve that will work as axis on which joints will bend.
To help us work with IKS we've got tools like clusters.
Clusters can group several CVs of the curve, that way we are getting more of control over it.
Simply select two bottom CVs, go to Create Deformers->Clusters
Repeat same thing with upper two CVs.
5. Creating properly working controllers. That means clean history, frozen transformation (everything is at 0,0,0.) named and with pivots in the right spots. Some controllers need to be parented with others for a more comfortable use.
This is a very nasty thing unless you know how to fix it. When all the controllers are parented to master controller to allow movement of the whole character figure, if you move it clusters will trigger this stretching.
to fix it, select clusters ->go to Att Editor -> and tick Relative.
I also had one more trouble with my rig. I am not sure what triggered that error, but controllers for the spine suddenly stopped working. They were moving clusters like they should, but clusters stopped moving bones. However if I would select the clusters directly and move them, they worked properly and moved bones. The simple solution was to create Orient and Point constraint from controllers to clusters.
That should be it for the base. Now when it is all nice and shiny we can start skinning. But first lets look at blend shapes and Set Driven Keys.
For facial expressions a decided to use blend shapes on this character. This is a very nice, simple and fast way. To create blend shapes we need to duplicate the mesh, change it (e.g. crossed brows) then select changed mesh, then shift select original mesh ->Create Deformers->Blend Shape. To access the blendshapes that you created go to ->
If you intend to create several blandshapes for one mesh and want them to blend between each other you need create all the changed meshes first, then shift select them with original mesh selected last and apply blendshapes. Otherwise, if you will make them one by one, it will create separate groups that can't be blended together.
There is one more tool that is very useful, Set Driven Keys. Unlike constraints or parenting this tool allows you to bind ANY! attribute of one object to absolutely ANY! attribute of other object. Isn't that absolutely amazing!? To open SDK go to Animate->Set Driven->Set. Then simply select your driver object and click load driver -> select Att which will controll, select driven object and click load driven, select Att that is going to be controlled. As you can see on the screen below you can set few driven objects, in this case joints of the finger.
To make it work you need to key them in default position (at 0) and then at changed position. Sometimes you will need to move or rotate driven object by inserting numbers directly in Att line instead of moving it by hand, because it can give different results (like rotation on all three axis when rotating just on Z)
I used SDKs in many places, one of them was head controller. I created new attributes for it (in channel box ->Edit->Add Att. Set it to min -10, default 0, max 10 if object is moving to both sides, like to the right,default,to the left. Set it to min 0, def 0, max 10 if it only moves to one side.)
These attributes had names of blendshapes, because I wanted to link my blendshapes to head controller for more comfortable use, I also united blendshapes like brows down and up in one Att.
Skinning
Now we really can start skinning.
-Some people may say that skinning is nasty process. But when all your bones are properly named and you remember all the hierarchy it can be even fun at simple areas like torso and legs. Though fingers can give you a bit of trouble. It wasn't that bad for me because I used popular this days technique where last three fingers are controlled by one finger bone.
We already learned how to apply smooth skin and use Component Editor with our car. But this time we will take a look at interactive skin weight painting and envelope technique.
- I preferred to start my character rig with envelope skinning first to get a cleaner base to work on. To apply it select top of the bones hierarchy, shift select mesh, go to Skin->Bind Skin->Interactive Skin Bind. Keep Max influence at 2.
I recommend to save it on your Quick Access panel (Ctrl+Shift+Rclick on Interactive Skin Bind)
That way if you accidentally will go out of this mode you just select mesh and click INB to return into envelope mode.
Resize envelopes so the are not touching the parts you don't want. To do this just move the edges or use the move/scale/rotate GUI that you can see inside the envelope. Do not press E,W or R as it will go out of INB mode. The best thing about this method is that if your model is in the center of the grid it will automatically mirror it to the other side. Be quick with this stage, don't go too far, define just the major shapes.
When you are done, select the mesh, Rclick it and go to Pain Skin Weights.
Now you can adjust the Radius of your brush, radius of its fallout, and value of weight where 1 is 100% and 0 is 0%.
At this stage DO NOT! delete your history, unless you want to get rid of your skin weights completely :) .
Remember to save all the time. You also can export your skin weights by going to
Skin->Edit Smooth Skin->Export Smooth skin Maps, resolution is number of vertices in your model. This can be a savior in some cases. It was for me as when I finished skinning I found out that Maya decided that I don't need my blendshapes and just deleted them. Even though I had all meshes saved, it would not allow me to to apply them again, saying Nondeformable object. So I just exported my weights, went to my older saves where I had both blendshapes and skinning on, and imported skin weights.
Skin->Edit Smooth Skin->Import Maps, in files format select all files and choose document file, hit import. It will do it's magic and hopefully you will get everything in place. If not try to make sure that you entered right number of vertices on export, and remember that you still can paint out some minor errors. I had slight problem at the beginning, but that was because resolution was to small, why I entered the right amount of vertices everything was perfect.
Mirroring weights.
Another nice tool that helps you to finish things faster. Especially helpful when object is perfectly symmetrical.
YZ!! not XY
Even if object is not perfectly symmetrical it will mirror everything that is. For example in this case it didn't mirror the whole hand because they are different, however it mirrored the thumb :)
Remember that you are not limited to painting, you still can use Component editor.
Remember when we selected Max Influence 2? It is good for making nice bend at knee and elbow.
Here is an example of how I painted leg. You can see that vertices, in the are where knee joint is, are influenced by two bones, upper and lower leg.
There is really no certain way to skinning, as every object can be a bit different, but it becomes easier to do with every next time. You just need to know how things must look at make your best attempt at achieving it. Make sure you not only paint it in one position, try moving rig, bend it, to see if everything folds nicely. To get back to painting simply select mesh-> Rclick-> Paint Skin Weights.
Finishing.
When your model is all skinned and you think 'this is the end!', there is one more little thing that need to be done. In order for blenshapes and skinning work together properly, skinning must come first in your Channel Box list. To do this you select the mesh->Rclick->Inputs->All Inputs. Here you Middle Click+Drag the blendshapes under skinning.
This is it! The character rig is done!