Scrub the timeline to check your work. Use the "smooth" Paint Operation in paint weights to ease the transition between the two joints (Fig.24).
Fig. 24 - Smoothing weights before and after
For best results with "smooth", use on the back/extreme side of a bend and set the opacity to 1.
Right-click on the next thumb joint and repeat down each joint for the entire left side joints/verts. Once you've painted the left side, mirror the weights over.
Painting Weights - Tips
Avoid using Substitute; stick with Replace/Add/Smooth on the Paint Weight Brush options. Substitute can oddly disperse weights between joints.
Right-clicking on a joint and using a Marking menu to select the "paint weight" option is typically faster than trying to find the same joint in the Paint Weight Joint list.
You can quickly toggle between Adding and Smoothing weights by holding the Shift key while in Paint mode.
Display Joint Size (Display > Animation > Joint Size) will quickly change the visual size of the joint without changing or having to adjust the Radius value. This works well if the joints are grossly oversized or if you're doing many joints close together in a detailed area, such as the face.
Seeing the effects of smoothing weights is clearer when the mesh is being deformed by that joint. For instance the shoulder; smoothing the weights when the arm is raised up or lowered, the results are much more apparent. Combine with having the joint animated for that range of motion, you can quickly scrub the timeline to see the results even more so and adjust accordingly.
Additional Tools and Processes
Often times, there are instances where one mesh has to ride along with another, but not deform. This could be buttons on a shirt or a policeman's badge.
The script, djRivet.mel, uses follicles to constrain objects to a polygon or nurbs surface using Maya's hair system: http://www.creativecrash.com/maya/downloads/scripts-plugins/polygon/c/djrivet-mel--3
You can take this script further and use multiple "riveted" joints to ride along the surface of a mesh and then skin only to those riveted joints. For instance, a bandolier, slung diagonally across the chest, would deform oddly if the body is bent or the shoulder raised. If you created a series of joints that were then riveted to the underlying body mesh, you could skin the bandolier mesh for better results.
A note about using djRivet, is that the follicles created are based off UVs. If the mesh has overlapping UVs, the rivet may not work or will behave oddly. You can work around this by having the model's UVs laid out accordingly or by doing the following:
• Duplicate the un-UV'd mesh and name it "..._AutoUVs"
• With the AutoUVs mesh selected, go to Create UVs > Automatic Mapping
• Delete History on the AutoUVs mesh: Edit > Delete by Type > History
• Select the un-UV'd mesh, then Shift + select the AutoUVs mesh and got to Create Deformers > Blendshape
• Select the newly created blendshape node under the Inputs of the AutoUVs mesh
• Set the Influence of the un-UV'd mesh to 1 in the blendshape node
From here you would create your rivets on the AutoUV mesh as the UVs do not overlap and the mesh will follow along with the mesh driving the blendshape.
Weight Hammer (select verts, then go to Skin > Edit Smooth Skin > Weight Hammer) is a function in Maya that looks at the selected verts, gathers the weights of the verts around the selection and applies those weights to the selection. This tool is useful when you have stray verts being affected by outside joints. I run into this the most often with the lips; typically the lower lips will be weighted to the head or top lip joints, causing them to sheer. Once you select the verts and run Weight Hammer, the results are clear (Fig.25).
Fig. 25 - Weights hammered for stray vertex
Mirror Skin Weights Settings
Mirroring the weights from one side of the mesh to another can save hours of work and frustration. To do so correctly relies on a few key factors that have already been addressed: mesh construction, joint naming and position. If these factors are taken care of, mirroring weights is very straightforward.
Select your bound mesh, then go to Skin > Edit Smooth Skin > Mirror Skin Weights > Option Box. Use the settings shown in Fig.26.
Fig. 26 - Mirror weight settings
One of the main struggles when you're new to painting weights is maintaining the volume. Eventually, you realize that you can maintain the volume if you allow the meshes to penetrate or you can smooth the weights and loose that volume. Too often people spend so much time trying to get results that are not possible with a default skinCluster. If you're working in games, typically you cannot have blend shapes or too many corrective joints, so you paint weights to maintain as much volume as possible - hence penetration. If you work in a pre-rendered environment, you can explore adding additional joints, corrective blend shapes, muscle solutions and many others to get the desired results.
Start Rough and Polish as Needed
Painting weights can be a very long and tedious process. Instead of trying to get every vertex delicately weighted, put a default bind on there, fix the hot spots for volume control and start animating. Once the character is up and moving in the scene, you can see where the weights fall apart. If the shoulders or feet are sheering, fix those weights first and continue animating. By fixing as you go, at the end of the project you'll have only cleaned up the areas that needed it and not spent time on those that didn't.
Unnatural Animation Causes Unnatural Deformations
A common complaint of painting weights come from the shoulders. While it's true that this area comes under a high level of scrutiny, often times the rig is being animated into an unnatural pose that would be outside the range of motion for the character. Often this comes from raising the arm too high without lifting the clavicle, trying to shrug the shoulders too deeply or twisting too much (especially when twist joints aren't being used). By putting the character in an unnatural pose, you'll start seeing unnatural results in the skin that may need to be fixed by adjusting the pose in animation or a custom, one-off solution on the rig or in the scene.
Know When to use Another Approach
At some point, you'll find a situation where default skin clusters and painting weights is not getting the desired results. You can try adding more and more joints, but this may not be practical, either in terms of rigging or animation. Common examples of these situations are skirts and dresses in games (which sheer when the legs separate too far apart), muscular characters (whose loss of volume or lack of flexing is more noticeable), characters with layers of cloth that drape or hold a silhouette, or when the camera is closer and can see the deformation's shortcomings.
At this point, you may need to explore other options, such as corrective blend shapes, cloth simulation, muscle simulation and so on. My only words of advice before going down these additional paths is to make sure your project truly needs those results, as each one of these other options will make your character heavier and more complex, which may lead to unforeseen problems later on.
Painting weights is not nearly as bad as it's made out to be. With a few modifications in workflow and a better understanding of what the skinCluster can and cannot do, you'll find that painting weights is a far less daunting and time-consuming task.