Skinning Basics

Skinning 01

MAIN POINTS FOR GOOD SKINNING

-Correct Joint Placement
-Using A Range Of Motion
-Smooth Bind (options)
-Painting Weights
-Component Editor
-Holding skin Weights (lock unlock)

 

THE BIND SKELETON

We teach a method that binds our model to the skeleton early and we build the rig separately. Often animators will build the skeleton and rig only bind at the last stage. This can cause problems while finally testing the mesh deformations only to find that something needs to be changed.

So instead our method goes like this…

1. Create the characters joint hierarchy
2. Bind The skin
3. Test the poses/deformation with keyframe animation
4. Build the rigs controls and constrain the skeleton last.

This method simplifies things and allows us to test our skin weights and deformations as early as possible. Also steps 3 and 4 can be made in parallell and by different people.

 

PREPARING THE SKELETON

Before the bind we must

1. Place pivots of joints placed in good locations.
2. make sure halfway joints are placed for twist
3. make sure joints have zeroed rotation values at the default pose.
4. check Local Rotation Axis for all joints.

These can be found in the joints section.

 

Range of Motion

We animate each part of the skeleton individually to test all the posing, this animation is called Range of Motion or ROM.

Create one long animation with all variations of each joint’s movements every 10 frames. Your animation might be roughly 1000 frames long depending on the number of joints.

 

BINDING THE MESH TO THE SKELETON

We usually “Smooth Bind” the model to joints. There’s lots of options in the “smooth bind” options box.

Animation menu > Skin > Bind skin > Smooth bind (options)

We can change a couple of the smooth bind settings. Good starting values are…

 

SMOOTH BIND OPTIONS

Bind to: Change to… Selected Joints (select the joints using a “quick select set” to save extra joints from being skinned)
Bind Method: Change to… Heat Map (a smart algorithm that does a great default job) ****note this doesn’t work on many meshes, if erros use “closest distance” buggy maya (sigh)
Skinning Method: Classic Linear (default is fine)
Normalise Weights: Change to… Interactive (skin weights will automatically add up to 1, never more or less. Post ignores this.

Rest can be defaults…
Allow multiple bind poses: yes
Max Influences: 5
Maintain max influences: Yes
Dropoff Rate: 4.0
Remove unused influences: Yes
Colorize Skeleton: Yes

Heat Map falloff: 0.00 (is fine) but .68 is a value recommended if you get the non manifold error and you are sure you don’t have non manifold geometry. Though I’ve still found lots of problems.

**Experiment with some of these values: Max influences, Dropoff rate and Heat Map falloff to see if different results work well.

**** Heat map only works when the bones are inside the mesh. Also if you ever experience a non manifold error and your mesh is fine, a Heat Map Falloff of setting of over might .5 fixe the problem, try .68 recommended by Autodesk guys. If still errors use closest distance.

 

ADJUSTING VERTEX SKIN WEIGHTS

It’s good to get a good skin bind on your mesh. Extra techniques are used later to get the mesh to deform properly. Corrective blend shapes, muscles and deformers etc. Corrective blend shapes is the method I prefer to teach.

95% of the deformation can be solved with good mesh topology and weighting. So get this right and the rest will be much less hassle.

Once a mesh is bound there’s 2 methods to adjust the weighting…

1. Component editor (numerical values)
2. Painting Weights

 

COMPONENT EDITOR NOTES

Window > General Editors > Component Editor > Smooth Skins (tab)

The numbers in each column are the weights.

If you’ve used interactive blend in the Smooth Bind Options…
Normalise Weights: Change to… Interactive
Then these numbers will always add to one.

The component editor is very good for numerically over riding joint weighting or manually assigning joints to 100% of a single joint.

 
To Show All Joints
In the editor go to the Options Menu at the top
Options > Hide Zero Columns (Off)
 
To Hide Unused Joints
Options > Hide Zero Columns (on)

See the Advanced section on this page for more notes on the Component Editor.

 

PAINT WEIGHT NOTES

Right Click (over the bound object) > Paint Skin Weights Tool

or

1. Select the mesh you wish to modify the weighting on.
2. (Animation Menu) > Skin > Edit Smooth Skin > Paint Skin Weights Tool (options)

This will bring up all the tool options.
 
Right Click in 3d View
You can use a lot of functionality with the right click in the 3d view while over each joint.

 
Colorize
To colorize the joint weights press
– Go to the Gradient section
– click use color ramp

 
Adding Weights
It’s best to try and always add to the weights while painting for each joint.
Replacing by taking away values is prone to error because Maya is automatically reassigning the weights. See advanced section for more on this.

To paint weights
– Select a joint in the Influence section.
– Set Mode to “Paint”
– Set Paint Operation to Add
– Set your opacity to what you like
– Set your value to 1

 
holding Skin Weights
This is a very important step that I don’t have a video for yet. Use the lock and unlock joints functionality in the paint weights window.

By locking all the joints other than the 2-3 joints we are weighting we can be sure weights don’t get reassigned in unwanted places. In the component editor this is the “hold” attribute.

Here’s a page that clearly explains how this works with mayas weighting.

http://www.tokeru.com/t/bin/view/Maya/MayaRigging#Editing_smooth_skins

 
Smoothing weights
Set the Paint operation to “smooth”

 
Deleting Weights
Set the Paint operation to “replace”
Set the Value to 0
Paint on the mesh *Note this can cause unexpected results. Lock all the joints except for the 2-3 joints you’re working with otherwise random verts can be assigned to random joints.

 
Selecting Vertices
Some advanced tools require selecting individual vertices
To Select Vertices

Mode: Select or Paint Select

 

MIRRORING SKIN WEIGHTING

Make sure you’re at the default bind pose, defaults will work well if copying character L to R
(Animation Menu) > Skin > Edit Smooth Skin > Mirror Skin Weights (options)

Default Settings hardly ever work so switch to
Mirror Across: YZ
Direction: Positive
Surface Association: Raycast
Influence Association 1: One To One

 

TRANSFERRING/COPYING SKIN WEIGHTS

(Animation Menu) > Skin > Edit Smooth Skin > Copy Skin Weights

1. Keep the old mesh bound to the joints
2. Bind the new mesh to the joints doesn’t matter what skinning, you’ll have two meshes the old and the new.
3. Select the old mesh (source), then select the new (destination).
4. Open the Copy Skin Weights Tool
(Animation Menu) > Skin > Edit Smooth Skin > Copy Skin Weights (options)

Tweak the settings as desired.

 

SAVING SKIN WEIGHTS TO A FILE

To save the skin weights to a external file based on a UV map…
(Animation Menu) > Skin > Edit Smooth Skin > Export Skin Weights Map (options)

To Import
(Animation Menu) > Skin > Edit Smooth Skin > Import Skin Weights Map

There’s also what seems to be a nice free plugin for copying skin weights here. though I haven’t tested fully.
http://www.braverabbit.de/playground/?p=915

 

ADDING EXTRA JOINTS TO A SKINNED MESH

Select the joints you wish to add and the mesh then

(Animation Menu) > Skin > Edit Smooth Skin > Add influence (options)

Geometry: Change to… Not ticked
Weight Locking: Change to… locked weights ticked on

All other values can be anything because we’re not assigning any default weights. We’ll paint them later.

To assign the weights…
1. Select the mesh only
2. Open the paint weights tool
(Animation Menu) > Skin > Edit Smooth Skin > Paint Weights Skin Tool (options)
3. Unlock the joint
In the tool options window navigate to the joint/s you’ve just added. Click the unlock icon.
4. paint skin weights as you please.

 

TWEAKING JOINT PLACEMENT AFTER SKINNING

You can easily move joints placement after skinning. Simply use the Move Skinned Joints Tool.

Window > General Editors > Component Editor > Move Skinned Joints Tool (options box)

 

TWEAKING JOINT ORIENTATIONS/SCALE AFTER SKINNING

If after skinning you notice some joints have been badly oriented and you need to fix there’s a couple of ways to fix.

1. Unbind those joints, fix them and then rebind. Easy to do but will have to re weight the joints we’re fixing.

Skin > Edit Smooth Skin > Detach the ear joints fix them and rebind them later with Skin > Edit Smooth Skin > add influence. Set the weights to zero when you do and do from scratch.

2. Export all your weight maps. Unbind, fix, rebind and then import all the weight maps back. Can be used with the method above and we must have our objects correctly UV’d.

Skin > Edit Smooth Skin > Export Skin Weight Maps. Unbind and fix the joints, rebind and Skin > Edit Smooth Skin > import skin weight maps. This will only work if UVs are correctly assigned to your mesh.

 

ADVANCED SKINNING

This section was created to supplement the above material.

The component editor is widely used by the pros in skinning but is mentioned rarely in tutorials mostly because it looks too technical. In practice the component editor is extremely helpful when it comes to skinning and riggers may find themselves 70% in the component editor and 30% in the paint weights tool. Used together both these methods can yield great results.

The component editor can look overwhelming but with a few tricks and workflow methods will see how powerful it can be.

 

How Maya Re-assigns Skin Weights

The “interactive” bind method under Smooth Bind Settings means vertex weights will always equal 1. If we take skinning value from our verts weights (replace with low values in the paint weights tool) Maya needs to reassign the values to other joints automatically.

Maya’s not smart when it does this. I’ve found the paint weights tool to give particularly surprising results when reassigning vertices, sometimes reassigning weights to joints that might be at the opposite end of the body.

See this page for more info about this.

The component editor clearly shows how maya automatically reassigns weighting.

 

Detaching Joints from the Skin Binding

While starting our characters it’s wise to remove any joints that aren’t needed. This often includes null joints that sit at the end of chains. Or in the case of a spine with too many segments we can unassign joints that may clutter up our workflow.

To give a visual representation of joints that have been removed from our binding we can make them very small in the attribute editor.

An alternative method is to select the joints you wish to bind leaving out all the joints that aren’t needed. Create a selection set and bind using “selected joints”

 
HANDY WEIGHTING TRICKS
 
 
Pro Tip No 1: Using “Hide Zero Columns” in the Component Editor

 
Pro Tip No 2: Unhide Hidden Columns

 
Pro Tip No 3: Using hold in the Component Editor

 
Pro Tip No 4: Use Edge Loop Select Techniques

 
Pro Tip No 5: Use Grow Selection For Difficult Areas.

 
Pro Tip No 6: Use Extreme Range Of Motion
Use extreme Range Of Motion animation to tweak verts more accurately using the paint weights tool

 
Pro Tip No 7: Isolate Select
Use Isolate Selection to weight hard to reach areas.

 

Weighting Fingers

Here’s a practical example of using the component editor to weight the fingers.

 

VIDEOS TO DO

1. Locking and Unlocking Weights in the Paint Weights Editor
2. Using non = 1 (non interactive methods for skinning)
3. Using Low Res Proxy geo to weight more dense meshes

 

OTHER LINKS

Painting Weights and Skinning: A Straightforward Approach

Instructor

Andrew Silke

Leave a reply