I know that for most riggers, including myself, the most complicated part is the painting weights. I feel this is mainly because of lack of understanding of how paint weights work and of course experience.
I am currently focusing on rigging a face that deforms very well. So, obviously I am focusing a lot on painting weights. I just finished painting weights very thoroughly and then realised I made a major blunder.. So, I have to think of some intelligent scripting to save some time, or go through the entire process again.
Just so I do not make these mistakes again, I am listing down points I feel will help me in future.
1) Have two bones to which you will paint the entire face weights to. Let the two joints be Head and Jaw joint.
2) The head joint will have all verts that do not move when the jaw is opened painted to it.
3) The Jaw joint will have all the remaining verts.
4) enable normalisation for the skin cluster. This will now make sure that when I paint further weights in interactive mode, the total weights on a vertex do not cross 1.
5) When you are happy with the weight influence, lock the weight. Proceed to the next joint.
6) when you are done, you will see that the head and jaw joint snow have just enough weights to maintain deformation.
Easier said than done. But I think this theory should work pretty fine. I will know when I paint the next model/face.