Наша команда берётся за риггинг и анимацию персонажей, когда художник сдаёт финальный арт. Слои в PSD аккуратно разбиты: торс, голова, левая рука, правая рука, ноги. Открываешь Spine 2D — и начинается настоящая работа: правильно расставить иерархию костей так, чтобы при blend между run и attack не вывернуло плечо наизнанку, а mesh деформация на одежде не давала артефактов на граничных пикселях. Опыт показывает: без грамотной иерархии даже простой персонаж превращается в хаос. Мы выполняем весь процесс риггинга — от скелетной анимации до оптимизации атласа, обеспечивая деформацию mesh без просадок производительности. Это экономит бюджет на исправление ошибок и ускоряет интеграцию в движок.
Почему правильная иерархия костей критична для мобильной анимации?
Новички в риггинге делают плоскую иерархию: все кости от root. Результат — при повороте бедра нога не тянется, приходится анимировать каждую кость отдельно. Правильная цепочка: root → pelvis → spine → chest → shoulder_l → arm_l → forearm_l → hand_l. Тогда поворот chest тянет всё выше, и аниматор управляет позой через несколько ключевых костей, а не двадцать.
Weights painting — место, где теряется неделя. Для мобильных персонажей используем максимум 2–3 influences на вертекс (в Spine это Max Bones Per Vertex в настройках mesh). Больше — GPU skinning на мобиле начинает просаживаться. На Mali-G57 разница между 2 и 4 influences при 10 персонажах на экране — около 3 мс на кадр. Немного, но при 30 FPS бюджет — 33 мс, и их мало. Как отмечает Spine Runtime Documentation, оптимальное количество influences — не более 4 для сохранения производительности.
IK против FK — принципиальный выбор для каждой конечности. Ноги персонажа, который ходит по ровной поверхности, — FK, проще и предсказуемее. Ноги персонажа, который адаптируется к неровному рельефу — IK через IK Constraint в Spine с Bend Direction по ситуации. Руки в атаке — FK (нужен контроль дуги). Рука, которая держится за поверхность — IK.
| Критерий | Spine 2D | Unity 2D Animation |
|---|---|---|
| Сложность риггинга | Высокая, подходит для сложных персонажей | Средняя, для простых |
| Качество деформации | Высокое, mesh с несколькими influences | Базовое |
| Интеграция с движком | Требуется отдельный runtime | Встроен в Unity |
| Производительность на мобильных | Отличная при оптимизации | Хорошая |
| Стоимость лицензии | Платная | Бесплатно в составе Unity |
Для простых персонажей с 5–8 костями — Unity 2D Animation Package (com.unity.2d.animation) достаточен. PSD Importer читает Photoshop файл напрямую, слои становятся спрайтами, Sprite Skin добавляет деформацию. Анимируем через стандартный Unity Animator. Blend Tree для run/walk/sprint по скорости. Animation Rigging package — если нужен runtime IK для ног.
Плюс подхода: нет внешнего runtime, меньше зависимостей, стандартные Unity tools. Минус: mesh deformation слабее, чем в Spine, и нет такого мощного смешивания через tracks.
Как оптимизация атласа влияет на производительность?
Оптимизация атласа напрямую влияет на производительность. Чем меньше размер атласа, тем меньше memory footprint и загрузка GPU. Для mid-range устройств используем 1024×1024, для флагманов — до 2048×2048. Включаем Bleed чтобы не было артефактов сжатия. Формат ASTC/ETC2 даёт лучшее соотношение качество/размер. Экономия на объединении спрайтов в один атлас может снизить draw calls до 1 на персонажа, что критично для мобильных игр. Это позволяет нашим клиентам получать лучшую стоимость в пересчёте на качество анимации.
Типичные ошибки при риггинге
- Плоская иерархия костей — усложняет анимацию.
- Слишком много influences на вертекс — просадка GPU.
- Использование mesh для жёстких элементов — лишние вертексы.
- Неоптимизированный атлас — высокий memory footprint.
- Игнорирование Blend Tree — неэффективное смешивание анимаций.
Как мы работаем в Spine 2D: пошаговая инструкция
- Анализ ТЗ и артов. Определяем список состояний персонажа, требования к IK, целевые устройства и ограничения по draw calls.
- Разбивка PSD. Используем Photoshop скрипт или Aseprite для экспорта отдельных PNG.
-
Создание скелета. В Spine импортируем изображения как slots, расставляем кости строго по иерархии, начиная с
rootв центре масс. - Скиннинг и mesh. Mesh создаём только там, где нужна деформация: одежда, волосы, плащи. Жёсткие элементы — без mesh, просто attachment. Меньше вертексов — меньше работа GPU.
- Анимация.
AnimationStateв Spine Runtime позволяет микшировать анимации через tracks: track 0 — базовая анимация тела (idle/run/jump), track 1 — анимация рук (attack/block/reload). Mix Duration 0.15–0.2 секунды для плавного перехода. - Оптимизация атласа. Упаковываем текстуры через Spine's Atlas Packager. Максимальный размер атласа — 2048×2048, лучше 1024×1024 для mid-range.
Bleedвключён для устранения артефактов. Формат PNG → конвертим в ASTC/ETC2 при импорте в Unity. - Интеграция и профилирование. В Unity используем
SkeletonAnimationкомпонент из Spine Unity Runtime. Пул объектов обязателен для переиспользования врагов.
| Этап | Срок | Результат |
|---|---|---|
| Анализ ТЗ | 1–2 дня | Техническое задание |
| Риггинг | 3–7 дней | Скелет с weights |
| Анимация базовых состояний | 5–10 дней | Idle, run, jump |
| Интеграция и тест | 2–3 дня | Финальный prefab |
Что входит в работу
- Документация по риггингу: описание иерархии костей, весовых карт и конфигов анимаций.
- Исходники проекта Spine (.spine) или Unity (.prefab) с настроенными атласами.
- Настроенные конфиги для атласа (максимальный размер, фильтрация, формат сжатия).
- Обучение команды аниматоров работе с риггом (опционально).
- Поддержка на этапе интеграции в движок и профилирования производительности.
Наш опыт: более 5 лет в индустрии, 40+ реализованных проектов для мобильных игр. Гарантируем оптимизацию под конкретные устройства и соблюдение гайдов App Store и Google Play. Свяжитесь с нами, чтобы обсудить риггинг вашего персонажа — оценим проект и предложим оптимальное решение под ключ. Получите консультацию по вашему проекту уже сегодня.







