Риггинг скелетной структуры персонажей игр
Скелет персонажа — не просто набор костей для анимации. Это архитектурное решение, которое определяет, сколько будет стоить каждая анимация в проекте и насколько просто аниматор сможет работать без постоянных переделок. Плохо настроенный риг выявляется не сразу — на этапе, когда уже записано двадцать анимаций и что-то пошло не так с ногами при переходе между состояниями.
Unity Humanoid против Generic — и когда это реально важно
В Unity выбор типа Avatar — Humanoid или Generic — определяется не личными предпочтениями, а требованиями пайплайна. Humanoid открывает доступ к Avatar Mask, Animator Controller с ретаргетингом и Animation Rigging пакету. Цена — принудительная привязка к 15 обязательным костям, ограничения на вращения, и проблемы с нестандартными пропорциями (четырёхрукие персонажи, существа с хвостом как частью тела).
Generic риг в этих случаях гибче: нет требований к иерархии, произвольная топология скелета, можно анимировать любую кость напрямую. Но теряется ретаргетинг. Для персонажей со схожими пропорциями это некритично, для проекта с 50+ уникальными существами — ощутимая потеря.
На практике: humanoid для основных игровых персонажей (игрок, НПС-гуманоиды), generic для монстров, транспорта, механизмов.
Что закладывается в скелет до первой анимации
Количество костей — не тот параметр, который стоит максимизировать. Мобильный тайтл с GPU skinning держит 75 костей на персонажа без просадок. На PC с compute skinning — больше. Но каждая лишняя кость в хвосте или плаще — это кость, которую аниматор обязан учитывать при создании каждой анимации. Либо Physics Bone в Unity (через Animation Rigging + Bone Renderer), либо вторичная динамика через Jiggle — но это отдельные системы поверх основного рига.
Ориентир для humanoid-персонажа среднего качества: spine 3–5 костей, шея 1–2, пальцы по 3 фаланги если нужна анимация захвата, иначе можно обойтись одной. Пальцы ног — только если есть анимация боса или ходьба по неровной поверхности с IK.
Имена костей — стандарт с первого дня. Unity Humanoid автоматически маппит кости по имени. Несоответствие именования (Bip001_L_Thigh вместо LeftUpLeg) ломает авто-маппинг и каждый раз требует ручной правки в Avatar Configuration. Если в проекте используется Mixamo, его именование берут за основу как де-факто стандарт.
Ориентация осей и rest pose
Самая неочевидная часть для начинающих: ориентация осей костей в bind pose. В Blender кость направлена по Y-оси локального пространства. В Maya — X-ось. В Unity runtime оси читаются иначе. Ошибка в ориентации выявляется при первой попытке поставить IK-цель: рука тянется не туда, или колено сгибается в обратную сторону.
Правило: все кости конечностей ориентируются так, чтобы основная ось (обычно X в Maya, Y в Blender) смотрела вдоль кости от корня к кончику. Ось изгиба (pole axis) перпендикулярна плоскости конечности. Если pole axis задана неправильно, IK-решатель выбирает произвольное направление изгиба колена — и это невозможно исправить без переориентации скелета.
T-Pose vs A-Pose для bind pose: T-Pose даёт чистый маппинг в Unity Humanoid Avatar. A-Pose естественнее для скиннинга — меньше растяжения весов в области подмышки. Компромисс: T-Pose для автоматического маппинга, потом Reset Pose на A-Pose через Avatar Configuration.
Процесс работы
Начинаем с технического задания и референсов. Нужно понять тип аватара, платформу, количество персонажей, наличие ретаргетинга и требования к динамическим элементам.
| Масштаб задачи | Ориентировочный срок |
|---|---|
| Базовый humanoid риг без пальцев | от 4 до 8 часов |
| Полный humanoid с пальцами и IK-setup | от 1 до 2 дней |
| Нестандартный персонаж (квадрупед, существо) | от 2 до 4 дней |
| Риг с вторичной динамикой (плащ, хвост) | от 3 до 5 дней |
После сборки скелета — тест-анимация: простой walk cycle руками в Blender или Maya, чтобы проверить деформации до скиннинга. Экспорт в FBX с настройками под Unity: Smoothing Groups, Tangents, Scale Factor 0.01 если работаем в сантиметрах.
Финальная проверка — импорт в Unity, Avatar Configuration, тест с любым Humanoid Motion Clip из стандартных ассетов. Если Avatar зелёный и нет предупреждений — скелет готов к скиннингу.
Стоимость работы по ригу рассчитывается индивидуально: влияет количество персонажей, наличие общего пайплайна и требования к ретаргетингу.





