Skinning & Weight Painting
What the parent explanation assumed you knew:
You understand that MetaHuman has a skeleton of bones that deform the mesh, but not how the mesh 'knows' which bones to follow.
What this page explains:
How skinning weights define the relationship between bones and mesh vertices, enabling smooth deformation when bones move.
The Explanation
Skinning is the process of attaching a mesh (the 'skin') to a skeleton so that when bones move, the mesh deforms naturally. The key is weight painting - defining how strongly each vertex follows each bone.
The Core Concept:
Every vertex in the mesh has a list of bones that influence it, each with a weight from 0.0 to 1.0. Weights must sum to 1.0 per vertex.
vertex_position = Σ (bone_transform × original_position × weight)Example: Elbow Joint
Consider a vertex at the inner elbow:
- •Upper arm bone weight: 0.4
- •Forearm bone weight: 0.6
- •All other bones: 0.0
When you bend your elbow:
- •The vertex follows 40% of the upper arm's rotation
- •And 60% of the forearm's rotation
- •Creating smooth deformation instead of sharp folding
Linear Blend Skinning (LBS):
The most common algorithm, used by most game engines:
v' = Σᵢ wᵢ × Mᵢ × vwhere:
v = original vertex position
v' = deformed vertex position
wᵢ = weight for bone i
Mᵢ = transformation matrix for bone i
`
Problems with LBS:
1. Volume Loss - When joints bend 90°+, vertices collapse inward (the 'candy wrapper' effect) 2. Collapsing Elbows - Sharp bends cause mesh intersection 3. Unnatural Creasing - Skin doesn't behave like weighted interpolation
Solutions:
1. Dual Quaternion Skinning - Preserves volume better 2. Corrective Blendshapes - Add sculpted fixes for extreme poses 3. Muscle Systems - Simulate underlying muscle bulge
MetaHuman's Approach:
MetaHuman uses a hybrid system:
- •LBS as the base deformation
- •700+ bones for fine control (especially in the face)
- •Corrective morphs for problem poses
- •RigLogic for optimized evaluation
Weight Painting in Practice:
Artists manually paint weights using tools that visualize influence:
- •Red = full influence (1.0)
- •Blue = no influence (0.0)
- •Gradient between = partial influence
Good weights require understanding anatomy - where does skin stretch vs. compress? Where do bones have exclusive control vs. shared influence?
Visual Aid
See how weight values affect vertex deformation. Adjust bone weights and watch the mesh respond to rotation.
Open interactive demo →The "Aha" Moment
Skinning weights answer the question: 'When this bone moves, how much should each nearby vertex care?' - and the answer creates the difference between robotic and organic movement.
Go Even Deeper
This explanation assumes you understand these fundamentals. Click to learn more:
transformation matrices
Level 1 fundamental
vertex mesh basics
Level 1 fundamental