Professional Documents
Culture Documents
Introduction
Most of the perceived difficulty of painting weights comes from frustration of one or more of the following:
When some or all of these difficulties comes into play, painting weights can be miserable. However, with a clear mindset
and exposure to certain tools and processes, you can overcome each of them fairly straightforward. This document
covers: the importance of joint placement, creating a low res mesh to weight and transferring those weights back to the
highres, additional time saving tools for weighting and mirroring weights, and other useful tips and information.
Table of Contents
http://www.3dfiggins.com/writeups/paintingWeights/ 1/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
- Viewport Setup
- Painting Weights - Process
- Painting Weights - Tips
Additional Tools and Processes
- djRivet
- Weight Hammer
- Mirror Skin Weights Settings
Additional Tips
- Skinning can either maintain volume through penetration or lose it through even distribution
- Start rough, polish as needed
- Unnatural animation causes unnatural deformations
- Know when to use another Approach
Conclusion
Mesh construction for deformation is an art in itself. There is so much complexity and instruction to be found online
about how to achieve proper edge flow that I will not attempt to cover it here. However, I will point out some key
factors to look out for.
You’ll notice the high deformation areas of the torso, shoulders and hips have more spans that are evenly spaced.
Were areas of less deformation, such as the shins, are spaced further apart.
http://www.3dfiggins.com/writeups/paintingWeights/ 2/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
This even span construction also works well for more cartoony characters that may have more stylized deformation or
an exaggerated range of motion.
However, if a character is more muscular, such as a creature, then modeling to fit the muscles will produce more
accurate deformation results.
Here you can see the model’s construction fitting that of the underlying muscles:
http://www.3dfiggins.com/writeups/paintingWeights/ 3/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
http://www.3dfiggins.com/writeups/paintingWeights/ 4/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
http://www.zbrushcentral.com/attachment.php?attachmentid=229475
Density at key areas for corrective blend shapes and volume preservation
A common issue when dealing with high bend areas, like the elbow/knee/shoulder/hip, is that no matter how it’s
constructed or weighted, a corrective blend shape or additional helpers joints will eventually be needed to create a more
pleasing result.
Using the knee as prime example, you can see the difference in these two legs.
The leg built for even spans does not have much density to work with to sculpt out a corrective shape for a bent knee
(harder edge, 90 degree point and defined knee cap). Whereas the more anatomical leg was created with deformation in
mind, leaving enough spans in the mesh to allow a corrective shape.
http://www.3dfiggins.com/writeups/paintingWeights/ 5/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
http://www.3dfiggins.com/writeups/paintingWeights/ 6/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
http://www.3dfiggins.com/writeups/paintingWeights/ 7/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
For each scenario there are ways of creating the fingers that are optimized for the output. However, in a fairly standard
production, I’ve found the following to hold up nicely:
http://www.3dfiggins.com/writeups/paintingWeights/ 8/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
One of the most common missteps to making fingers, is to simply leave them as extrudes down the length with no
attention or detailing in the knuckle. This way of construction leads to uneven deformation and limited polygons to
manipulate if corrective shapes are needed.
Joint Naming
Naming the joints in relation to the body is helpful when using the Paint Weight joint list. Having all your fingers prefixed
with “_Fng_â€, such as “j_L_Fng_Index_1†will keep all your fingers together together on the list and reduce
the time spent searching for the others.
This can be modified to fit different workflows or preferences, such as naming the spine joints “j_Spine_0_Headâ€, â
€œj_Spine_1_Neckâ€, “j_Spine_2_Ribcageâ€, “j_Spine_3_Waistâ€, and “j_Spine_5_Hipsâ€. This naming
will list these joints numerically from top to bottom right and next to each other on the list. Without those prefixes, youâ
€™d have to search up and down your joint list from “H†to “W†to paint the next joint.
To effectively mirror weights, naming the joints is very important. “j_L_Elbow†and “j_R_Elbow†can be
mirrored using the Search/Replace option in Mirror Skin Weights, by searching for “_L_†and replacing it with â
€œ_R_â€.
Joint Placement
Joint placement is another area that will take a good amount of practice and trial and error to get better at. Having an
understanding of where the joints are anatomically will help, but are not an end all to where to place them. For example,
http://www.3dfiggins.com/writeups/paintingWeights/ 9/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
there are 33 vertebrae in the human spine, however, you wouldn’t want to put 33 joints in the rig for a multitude of
reasons. But, knowing where the spinal column is and how its oriented to the body, will help you place joints more
realistically.
One joint that is commonly misplaced is the clavicle. The clavicle pivot should be placed slightly to the side of the
sternum at the front of the chest, however, many people starting out will place it along the centerline of the body or
elsewhere.
As mentioned before, this placement of the joint is more anatomical, but may not suit your character. Joint placement
can be anatomical or more centerline. Centerline works well for more cartoony deformation, involving squash and
stretch. As cartoony characters can bend differently or more extremely, having the joints in the middle will keep the
deformations even and consistent, while not favoring one side or another.
http://www.3dfiggins.com/writeups/paintingWeights/ 10/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
http://www.3dfiggins.com/writeups/paintingWeights/ 11/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
Twist joints help maintain volume when the joint chain is twisted along the primary axis. The most common example of
this is the forearm twist. As the hand rotates, the volume in the forearm will be lost if weighed to the wrist joint or left to
sheer if not influenced at all.
Adding in these addition joints spreads out the distribution of the rotation value along the entire chain. Not only is the
rotational value spread, but also helps the position of the verts being weighed, though that is slightly more difficult to
explain.
You can learn more about setups and solutions for overcoming forearm and other twist areas in a previous write-up:
http://www.3dfiggins.com/writeups/forearmTwist/
Helper/Additional Joints
You can add additional joints to a skin that can help preserve specific volumes. These joints can be directly animated by
hand for spot fixes, driven by Set Driven Keys or nodes for automation.
One key place to have additional joints is the shoulder. A great example can be seen in this tutorial / script by Peter
http://www.3dfiggins.com/writeups/paintingWeights/ 12/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
Shipkov:
http://petershipkov.com/development/shoulderrig/shoulderrig.htm
Another area is the elbow / knee. By placing two more joints in the skin for the front and back of the bend joint, you can
have them push away as the limb bends, which in turn, will pull out the verts and give just a bit more volume in the crease
area.
Using this approach can also speed up rigging facets, such as:
Creating low res, deforming proxy for the Animator to work with or Cloth to sim on
Allow a more straight forward weight transfer if the meshes or point orders change
Adjusting weights on a single mesh instead of several
Greatly reduces time spent, especially initially, on skinning complex characters
http://www.3dfiggins.com/writeups/paintingWeights/ 13/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
http://www.3dfiggins.com/writeups/paintingWeights/ 14/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
http://www.3dfiggins.com/writeups/paintingWeights/ 15/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
http://www.3dfiggins.com/writeups/paintingWeights/ 16/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
http://www.3dfiggins.com/writeups/paintingWeights/ 17/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
http://www.3dfiggins.com/writeups/paintingWeights/ 18/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
Below is a MEL script that will transfer the weights from one mesh and apply them to other meshes.
To run this script:
-Select all of the code below and paste it in to the script editor
-Select all the meshes you'd like to paste weights to
-Shift-Select the mesh that has proper weighting
-Select all the code in the Script Editor
-Hit 'Enter'
http://www.3dfiggins.com/writeups/paintingWeights/ 19/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
//////////////////////////////////////////
//Select meshes to transfer weight to, then shift-select the mesh with weights, then run this sc
if(`size($userSel)` > 1)
{
select $userSel;
select -tgl $cageMesh;
string $pieces[] = `ls -sl`;
weighting adjustments.
-Switch to the FK controls, if the character is already rigged or key directly on bind joints if not
-Left fingers
-Left wrist, elbow, shoulder, clavicle, stretch long, common poses (arm in front
-Head/neck, spine from top to bottom
-Left hip, knee, ankle, toe, stretch long, common poses (toe raise, seated position)
Viewport Setup
-Hide non-skinning joints, rig elements (locators, IK Handles) and non-skinning meshes to make the viewport as clean
as possible
-Show joints and geo in viewport. (Show > None. Show > Joints. Show > Polygons)
-X-Ray joints in viewport (Shading > X-Ray Joints)
-Set joint color to red for easy viewing of joints, since purple on black can be difficult
(mel script)
//Joint Color Red
displayColor -dormant "fkJoints" 13;
Box)
-From here, you can either flood mesh to root and paint from scratch or paint atop the default results. Since you’ll
be adjusting all the verts anyways, it’s really about how much time you have at the moment. If time is short, you can
paint atop the default values to hit main areas to get the character to animation sooner, or you can flood to the root joint
and go through each section with much more precision.
-Right click on the left thumb tip joint, select ‘Select Influence’ in marking menu
-Scrub the timeline to check your work -Use the ‘smooth’ Paint Operation in paint weights to ease the transition
between two joints
http://www.3dfiggins.com/writeups/paintingWeights/ 22/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
-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 (See below for the process and notes on mirroring)
-Right clicking on 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 more clear when 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.
http://www.3dfiggins.com/writeups/paintingWeights/ 23/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
djRivet
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 has 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 them 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:
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
Weight Hammer (select verts, 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
http://www.3dfiggins.com/writeups/paintingWeights/ 24/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
Select your bound mesh, Skin > Edit Smooth Skin > Mirror Skin Weights > Option Box. Use the following settings:
http://www.3dfiggins.com/writeups/paintingWeights/ 25/27
2/23/2017 Painting Weights and Skinning: A Straighforward Approach - Kiel Figgins
Keep in mind that mirroring skin weights doesn’t work correctly if:
Joints share exact world space
Naming or Joint placement is not symmetrical
The mesh is not symmetrical
This is not to say the Mirror Skin will fail, but rather the results will not be as clean and predictable as you’d
imagine.
Additional Tips
Skinning can either maintain volume through penetration or lose it through even distribution
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.
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.
Conclusion
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, and you’ll find that painting weights is a far less daunting
and time consuming task.
Other Opinions, Further References, Typos, and Grammer Issues please contact KielFiggins22@gmail.com
http://www.3dfiggins.com/writeups/paintingWeights/ 27/27