Problem:
KineFX can automatically solve the weight on the first pass of rig. However, for a humanoid character, weights on parts like fingers, eyeballs usually cannot get a perfect weight result.
For example:
A.Finger rigging. The index front skeleton will get some weight on the polygons of the index finger's mid polys, as well as polygons on middle finger. That is what will happen if we use standard rigging like this.
I tried to use capture override node to set the index front bone's weight on the polygons of the index finger's front part to one,and set index front bone's weight on polys of theindex finger's mid part to zero. However, if I rotate the index root bone, the polys of index finger's middle part is almost not moving. And the index finger's mid bone is still dragging middle finger's polys. The result is that I need to use a chain of endless capture override node to correct the skinning and still cannot get a good result.
>S1.I used inversed selection to get polys of none-index finger's-front, and set it to zero.
>S2.Then I used selection to get polys of index finger's-front, and set it to one.
>S3.Repeat this step for the index finger's mid.
>S4.Then rotate the index finger's root bone. Mesh almost tears apart (might be index root not having enough weight on it or other finger's bone is affecting it). It seems if checking normalized weights does not affect the outcome
Because I need to know,say, for index finger's mid part, how many bones have weight on it, and for each bone affecting it I have to use a capture override node to correct its weight on it. But there're tens of thousands of polys in a character mesh, the list of upper-stream affecting bones of polys vary because they are at different locations. If I vagely use capture override node to correct it, I im introducing more confusing and complexity to a rigged skin.
I also tried to solve it by capture layer paint, but it sometimes became very slow and sluggish if there are more than 100k polys.
B.Another similar scenario. Eyeball Skinning. So the head's skeleton is like this: Head, L-Eyesocket and R-Eyesocket is the child of Head, L-Eye is the child of L-Eyesocket, R-Eye is the child of R-Eyesocket.
The first standard rig like this will give polygons of eyelid/nose area some weights of the L/R-Eye. Therefore, if i rotate the R-Eye, upper part of the nose and right eyelid is also rotating.
What I tried here is to use capture override node, set the weights of the polygons of eyelid/nose area of the L/R-Eye joint to zero. However, the Head still has a little weight on the polygons of eyelid/nose. So If I rotate the Head joint, polygons of eyelid/nose moves very slightly, thus tearing the face mesh apart.
This lead to a lot of wasted time. If not, I still have to paint over tight space between fingers and spend a lot of time debugging where are the hidden bones affectings this part of the finger. Lot's of frustration.
I don't know if I'm describing the entire set of problem clearly, but I do want to have a walk-around on this.
Sample Scene: