Скиннинг и развесовка вершин (Weight Painting) моделей игр
Скиннинг — процесс назначения каждой вершине меша влияния костей рига. Чем точнее развесовка, тем естественнее деформируется модель при анимации. Никакой алгоритм не заменяет ручную правку в критичных зонах: суставы, складки одежды, область шеи — всё это требует внимания и понимания того, как деформируется живая форма.
Automatic Weights как стартовая точка, не финал
Automatic Weights в Blender работает алгоритмом Heat Diffusion — каждый vertex получает вес пропорционально тепловому влиянию ближайших костей. Результат приемлем на 60–70% меша. Остаток — суставы, края, зоны пересечения геометрии — требует ручной правки.
В Maya Smooth Bind с Closest in Hierarchy даёт немного чище стартовый результат для анатомически правильных мешей. Но на нестандартной геометрии (существа, механизмы) — та же история.
Первое, что делаем после Automatic Weights: тест в pose mode по каждому суставу. Сгибаем локоть на 90°, колено на 90°, поднимаем плечо, поворачиваем шею. Фиксируем все проблемы до начала ручной правки — переделывать по одной проблеме за раз быстрее, чем после накопления нескольких.
Критичные зоны: где автовеса ломаются всегда
Плечо. Между Shoulder-костью и Spine/Chest — зона, где геометрия подмышки принадлежит обеим. Автовеса дают размытый переход через 3–4 кости, что при подъёме руки создаёт эффект «провала» ткани. Нужно: вершины внутренней стороны плеча — только UpperArm, вершины торса в зоне подмышки — только Chest. Переход — по чёткой линии, не по плавному градиенту.
Запястье и пронация. Вращение кисти передаётся через Forearm-кость. Без Twist-кости предплечья меш «скручивается» в средней точке как верёвка. С Twist-костью: половина веса предплечья перераспределяется на Twist, gradient от 0 (у локтя) до 0.5 (середина) до 0 (у запястья). Это даёт плавное раскручивание по длине.
Колено. Ошибка: слишком большая зона смешивания между UpperLeg и LowerLeg. При сгибании 90° возникает «пережим» — кожа на передней части колена теряет объём. Решение: жёсткое разделение по оси сустава. Вершины выше — только UpperLeg, ниже — только LowerLeg. На самом суставе — равный вес (0.5/0.5) только для 2–3 edge loop непосредственно в месте сгиба.
Шея. Проблема обратная — слишком жёсткое разделение. Вершины сзади шеи должны плавно переходить от Spine2 к Neck с небольшим вкладом Chest, иначе при наклоне головы назад появляется «разрыв» геометрии сзади.
Инструменты и техники Weight Painting
В Blender режим Weight Paint — основной. Важные нюансы:
Normalize All перед финализацией: каждая вершина должна иметь суммарный вес 1.0. Без нормализации вершины с весом 0.3 + 0.3 = 0.6 дадут неполное влияние костей и меш «провиснет».
Limit Total с Max Influences = 4: стандарт для Unity. GPU skinning с 4 костями на вершину — оптимальный баланс качества и производительности. На мобайле иногда снижают до 2–3.
Smooth кисть с низкими значениями Strength (0.3–0.5) — для сглаживания краёв зон влияния. Не использовать на суставах, только на плавных переходах.
Vertex Group Lock — блокировка групп, которые уже готовы. Предотвращает случайное изменение при работе с соседними зонами. В Maya эквивалент — Lock Influence через Paint Skin Weights Tool → Lock.
В Maya Component Editor даёт прямой числовой доступ к весам выбранных вершин — незаменим для точечной правки. Выделяем проблемные вершины в Vertex Mode, открываем Component Editor, находим нужные Joint-столбцы, вводим значения вручную.
Веса для одежды и отдельных мешей
Персонаж с отдельными мешами одежды требует скиннинга каждого меша независимо. Принцип: одежда повторяет скиннинг тела под ней, но с поправкой на ткань. Рубашка на торсе — те же кости, что и торс, но с меньшим влиянием конечных суставов (кисти не влияют на рукав у плеча). Плащ добавляет кости самого плаща с вторичной динамикой.
Transfer Weights в Blender (Data Transfer Modifier) — быстрый перенос весов с тела на одежду. Работает корректно, если меши примерно совпадают по форме. После переноса — ручная правка на краях одежды, где геометрия расходится с телом.
Финальная проверка перед экспортом
Checklist:
- Суммарный вес каждой вершины = 1.0 (Normalize All)
- Максимум 4 инфлуенса на вершину (Limit Total)
- Нет вершин без весов (Select → All by Trait → Without a Group)
- Тест-позы: T-Pose, A-Pose, сгиб всех суставов на 90°, крайние позы для боёвки
Сроки
| Меш | Ориентировочный срок |
|---|---|
| Простой NPC без пальцев | от 3 до 6 часов |
| Полный humanoid с пальцами | от 1 до 2 дней |
| Персонаж с одеждой (3–5 отдельных мешей) | от 2 до 3 дней |
| Существо с нестандартной анатомией | от 2 до 4 дней |
Стоимость определяется после осмотра меша, количества отдельных объектов и требований по платформе к максимальному числу инфлуенсов.





