Skinning character models for correct deformation
Skinning – weight painting: each vertex of mesh assigned influence (0–1) from each skeleton bone. Sounds simple. Practice – one of most labor-intensive and iterative pipeline stages, especially for characters with clothing, hairstyles, anatomically complex joints.
In VR, skinning quality directly impacts presence: when avatar user bends arm and sees deformation artifact – reality conflict immediate.
Where automatic skinning fails
Shoulder. Most complex joint for skinning. When arm raises, shoulder deforms smoothly, without "collapse" of armpit zone. Automatic Weights in Blender or Heat-map skinning in Maya give unacceptable result here: armpit vertices pull with arm, losing volume.
Technique: Volume Preservation via Corrective Blendshapes. Create blendshape for pose "arm raised 90°" with restored shoulder volume, bind through Driver to shoulder bone rotation. On arm raise blendshape automatically activates and compensates volume loss. In Unity realized via SkinnedMeshRenderer.SetBlendShapeWeight().
Fingers. On hands must be minimum 4 bone influence per vertex (Unity settings: Quality Settings → Skin Weights → 4 Bones). Less – angular deformation. Finger joint skinning requires careful gradient: phalanx deforms smoothly, without sharp influence boundary.
Neck on head turn. Common mistake – too-high head bone influence on neck vertices. On abrupt head turn in VR (happens constantly) neck twists unnaturally. Rule: lower third neck vertices should have ≤ 20% Head bone influence.
Practice of skinning for VR-avatar
Start with transferring weights via Data Transfer Modifier (Blender) or Copy Skin Weights (Maya) from reference "naked" mesh to clothing meshes. Accelerates: clothes mostly follow body, only edges need manual correction.
Check deformation on control poses: T-pose → arms down, arm raised, arm behind back, crouch, lean, maximum head turn. Each pose – separate test.
For VR-hands (visible always, in focus) hand skinning done twice: first general, then run all finger positions from Hand Tracking – clenched fist, open palm, pinch, point gesture. Meta Hand Tracking SDK has standard pose set, test against those.
Platform influence on settings. On Quest (mobile VR) recommended limiting Skin Weights to 2 Bones instead of 4 – reduces GPU-load from skinning. But compromise: visible angularity on fingers and shoulders. Solution – use 4 Bones only for hero-characters and player avatar, for second/third-line NPC – 2 Bones.
Normal transfer after skinning – often overlooked step. Clothing mesh normals must be transferred from underlying body mesh, otherwise lighting tears at junctions. Blender – Data Transfer Modifier with Face Corner Data → Custom Normals.
Timeline for skinning: simple prop – 1–3 hours; character without clothing – 4–8 hours; character with multilayer clothing – 2–4 business days. Cost determined after complexity assessment.





