Skip to main content

Bone Weights

After reading this page you will know the two ways to choose the bone to paint, the five brushes and the normalization rules, the name rules for symmetric painting, how to merge a bone's weights, and how to transfer weights from another mesh.

note
SkinnedMeshRenderer only

This tab cannot be used with a plain mesh.

Choose a bone​

The bone list on the Bone Weights tab shows the bone hierarchy as a tree. The radio button on each row is the active bone, the bone you paint now. Click the bone name or its radio button to choose it. The root of the tree is SkinnedMeshRenderer.rootBone when it is set.

If no bone is chosen, the tab tells you that you cannot paint yet.

ToolWhat it does
SearchFilters by name
Expand / CollapseExpands or collapses the whole tree
Show Bones in SceneDraws the bones in the Scene view
Only bones with weightKeeps only the bones that actually have weights. It is on at first and remembers your last choice

You can also choose bones in the Scene view.

  • Ctrl + click a bone: set or clear the active bone.
  • Ctrl+Shift + click a bone: turn the smoothing target check on or off.

Checked bones​

Each row also has a checkbox, separate from the radio button. Checked bones define the scope of Smooth Checked Bones, Merge Bone Weights, and Transfer Weights. The count appears as Checked bones: {n}.

Lock​

Press the L button on a row to lock that bone's weights. Locked bones are left out of painting, normalizing, and transfers. If you try to paint a locked bone, the Scene view tells you why.

Brushes​

BrushKeyWhat it does
Add1Raises the weight of the active bone
Subtract2Lowers the weight of the active bone
Smooth3Evens the weight with its surroundings
Blur4Mixes the weight with its surroundings
Average5Evens out the weight over the brush area

Ctrl reverses Add and Subtract. Shift switches to Smooth only while held.

You can adjust the radius, the strength, and the falloff (Smooth · Sphere · Sharp · Constant). [ and ] change the radius, and , and . change the strength. F and Shift+F open mouse-driven modals.

The deformation updates on every stroke in the current pose. If you paint with the arm bent, you see the result right away.

Heatmap​

Turn on the heatmap to see the weights as vertex colors. The colors run from blue through green to red as the value rises. If bones are checked, the heatmap shows the sum of the checked bones. Otherwise it shows the value of the active bone. You can adjust the display strength, and a legend appears with it.

Auto normalize and maximum bone influences​

  • Auto Normalize: when on, the weight sum of each vertex is set back to 1 after every stroke. It is on by default.
  • Max Influences: limits how many bones one vertex can have.

With auto normalize off, the tool adds and subtracts without normalizing. The sum may then not be 1, so press Normalize All when you finish. Even if you turn it off and save anyway, the tool normalizes any vertex whose sum is not 1 just before Save Mesh, and tells you how many it fixed.

Normalize All (N) normalizes the whole mesh at once. A vertex attached to no bone is attached to the nearest bone, not to the first bone in the list. If no nearby bone is found, it is attached to the root bone.

If a vertex already has four influences and a weak value comes in, that value is skipped. The Scene view shows the reason.

Symmetric painting​

With Symmetric Paint on, painting also paints the matching left and right bone on the opposite vertices. The name of the matching bone is shown.

The name rules are as follows.

FormExample
SuffixArm_L ↔ Arm_R, Arm.L ↔ Arm.R, Arm-L ↔ Arm-R (lowercase _l and _r work the same way)
PrefixL_Arm ↔ R_Arm, L.Arm ↔ R.Arm, L-Arm ↔ R-Arm
WordLeft Arm ↔ Right Arm, left ↔ right, LEFT ↔ RIGHT
Japanese左腕 ↔ 右腕

A pair counts only when the bone generated from the name actually exists. Center bones such as Hips or Spine have no partner, so they are painted as themselves, and the tool tells you so.

caution
The (X) in the label is not a key

The Symmetric Paint label includes (X), but this option is turned on and off only with the checkbox in the window. Pressing X in the Scene view does not toggle it.

Smooth checked bones​

Check several bones, then run a batch smoothing.

  • Iterations: 1 to 20
  • Strength
  • Apply Smooth (Scene view shortcut K)

While you move the slider, the result is recalculated in real time from the reference snapshot. When you release the slider, it is confirmed as one undo step. If no bone is checked, K does nothing.

Merge bone weights​

Move all weights of bone A to bone B. After the move, A has zero weight, so you can safely delete that bone.

ButtonWhat it does
Merge active bone into parent (parent name)Moves the active bone's weights to its parent
Merge N checked bone(s) into the active boneMoves the checked bones' weights to the active bone

The target is either the parent bone or another bone. If the source and the target are the same, or the bone is locked, the merge does not happen.

Use this to clean up stray bones that a garment does not need. → Clothing fit

Transfer weights from another mesh​

If you set a mesh that already has weights as the source, such as an avatar body, the tool copies the weights of the nearest surface point onto the current mesh. This is the basic step of clothing fit.

  1. Put a SkinnedMeshRenderer that already has weights into Source mesh.
  2. Set Max distance.
  3. Choose Scope.
  4. Press Transfer Weights.
ScopeTarget
Whole meshAll vertices
Weights of checked bones onlyOnly the influence of the checked bones
Vertices without weights onlyOnly vertices not attached to any bone yet

The result reports how many vertices were applied, how many were out of range, and how many were skipped. The tool does not transfer when the source mesh has Read/Write turned off or has no weights.

When the spaces do not match​

Weights are bind pose data, so the two meshes must be in the same space for the matching points to line up. If the transforms of the source and target renderers differ, the window warns you. If the result is off, turn on Ignore source transform (match in bind-pose local space) and run it again. This option matches in bind-pose local space instead of world transforms.

How weights are stored​

A painted value is written to every vertex in the same weld group, and the sum is normalized to 1.

Direct painting works within Unity's legacy four-slot range. The bone influences of unpainted vertices beyond five are kept as they are. → Variable bone weights

If the bone influences exceed the slot count, the weakest ones are cut, and the tool tells you how many vertices were affected.