Настройка меш-деформаций 2D-графики в Spine
Меш-деформация в Spine — это разница между «нарисованная кукла» и «живой персонаж». Без деформации одежда движется как жёсткая пластина, волосы не колышутся, плащ не реагирует на бег. С правильно настроенными мешами тот же набор спрайтов начинает вести себя органично — через деформацию вершин, привязанных к костям с плавными весами.
Настройка мешей — самая трудоёмкая техническая часть работы в Spine, и именно здесь делается большинство ошибок при работе с инструментом.
Типы деформации и когда они нужны
Skinned mesh (привязка к костям). Меш вершин привязывается к одной или нескольким костям через веса. При движении кости вершины следуют за ней пропорционально весу. Используется для: одежды, волос, хвостов, плащей, любых мягких элементов тела.
Free-form mesh deformation (FFD). Деформация непосредственно ключевыми кадрами — вершины меша перемещаются в анимации без привязки к костям. Используется для: лица (мимика через морф-таргеты), нестандартных форм деформации, которые кости не воспроизведут.
Combination. Большинство сложных персонажей используют оба типа: скелет управляет движением конечностей, FFD — мимикой и дополнительной органикой.
Плотность меша и производительность
Главная ошибка при создании мешей — избыточная плотность. Чем больше вершин, тем выше CPU-нагрузка в runtime (Spine Runtime пересчитывает позиции всех вершин каждый кадр). На мобильных устройствах это ощущается.
Практические ориентиры по плотности:
- Простая деформация (одежда без складок, базовое колыхание): 4–8 вершин достаточно
- Средняя деформация (плащ с несколькими складками, органичные конечности): 12–20 вершин
- Детальная деформация (лицо, сложная одежда): 30–50 вершин максимум
Меши с 100+ вершинами на один элемент — почти всегда избыточны для игры. Такая плотность оправдана в prerendered анимации, но не в игровом runtime.
Triangulation. Spine автоматически триангулирует меш из набора вершин. Автоматическая триангуляция не всегда оптимальна: длинные тонкие треугольники дают артефакты деформации. Ручная расстановка вершин с равномерной триангуляцией — лучший результат. Spine позволяет добавлять внутренние рёбра для контроля триангуляции.
Настройка весов
Вес (weight) каждой вершины показывает, насколько сильно она следует за конкретной костью. Сумма всех весов вершины = 1.0. Вершина с weight 1.0 к bone_A движется строго с этой костью. Вершина с 0.5/bone_A + 0.5/bone_B — ровно посередине между ними.
Кисть весов в Spine. Инструмент работает как в Blender — выбор кости, рисование влияния на меш с настройкой radius и strength. Для органичных переходов (суставы, шея, талия) веса должны плавно убывать от центра влияния кости к периферии.
Типичная ошибка: все вершины плаща привязаны с weight 1.0 к одной кости. Плащ движется как монолитная пластина, не деформируется. Правильно: верхняя часть привязана к кости спины, нижняя — к дополнительной кости-tip с собственной анимацией, переход — плавный градиент весов.
Path constraint для волос и плащей. Для длинных свисающих элементов (хвост, волосы, плащ с несколькими секциями) цепочка костей с Path Constraint создаёт нужную динамику. Path Constraint заставляет кости следовать вдоль кривой (Spine Path), которая анимируется через контрольные точки. Результат — органичное колыхание без физики, с полным контролем аниматора.
Inherit Transform и проблема двойного трансформа
Spine позволяет настроить Inherit Transform для каждой кости: наследовать ли rotation и scale от родителя. Для костей плаща или волос часто нужно inherit_rotation = false — чтобы при повороте тела плащ не поворачивался жёстко вместе с ним, а оставался ориентированным по гравитации, реагируя только через Path Constraint или анимацию.
Неправильная настройка Inherit Transform — причина «двойного трансформа»: кость поворачивается дважды, один раз через родителя и ещё раз через собственную анимацию. Результат — хаотичное движение, которое выглядит как баг, хотя это просто неверная настройка одного чекбокса.
Этапы настройки меш-деформаций
- Анализ ассетов — какие части требуют деформации, тип деформации.
- Создание мешей — ручная расстановка вершин с нужной плотностью.
- Привязка к костям — создание дополнительных костей под деформацию (если нужны).
- Покраска весов — плавные градиенты, тест движения.
- Path Constraints — для динамических элементов.
- Тест в runtime — проверка производительности, корректности в движке.
| Масштаб | Срок |
|---|---|
| Меш-деформация простого персонажа (2–3 деформируемых элемента) | 2–4 дня |
| Полная настройка мешей персонажа со сложной одеждой | 1–2 недели |
| Настройка мешей + анимация деформаций для всего персонажа | 3–5 недель |
Стоимость определяется количеством деформируемых элементов и сложностью персонажа.





