3D-моделирование: от костей до анимации
Вы наконец-то настроили риг для своего персонажа. Скелет сгибается правильно, контроллеры реагируют, а затем вращается плечо. Сетка сжимается в острый сгиб, предплечье скручивается, как обернутая конфета, или локоть растягивается, пока остальная часть руки остается позади. Модель выглядела нормально в позе привязки, поэтому проблема кажется загадочной.
Это не загадка. 3D-скиннинг моделей — это система, которая указывает полигональной поверхности, как следовать за внутренним скелетом. Как только вы поймете, что от сетки требуется, раскраска весов, матрицы привязки и альтернативные алгоритмы перестанут казаться несвязанными техническими задачами. Они станут разными ответами на один и тот же практический вопрос: как должна двигаться каждая часть поверхности, когда близлежащие кости меняют положение?
Содержание
- Почему ваша модель персонажа схлопывается без скиннинга
- Скелет, поза привязки и скин
- Как на самом деле работают веса костей и линейное смешивание
- Dual Quaternion Skinning и проблема «обертки конфеты»
- Практический рабочий процесс раскраски весов и оболочек
- Когда автоматический и ИИ-ассистированный скиннинг заслуживают своего места
- Выбор правильной настройки скиннинга для вашего проекта
- Вопросы по скиннингу, которые вы задаете только после первой попытки
Почему ваша модель персонажа схлопывается без скиннинга
Статическая сетка персонажа знает только положение своих вершин. Скелет знает только расположение своих суставов. Поместите их в одну сцену, и они все равно не будут автоматически вести себя как живой персонаж. Без связи скиннинга вращение кости верхней части руки изменяет кость, а не вершины, образующие плечо, рукав или грудь.
Скиннинг создает эту связь. Он дает каждой вершине инструкции о том, какие кости на нее влияют и с какой силой. Затем персонаж может двигаться так, как будто гибкая кожа натянута на жесткую внутреннюю структуру, даже если компьютер рассчитывает результат вершина за вершиной.
Частая первая неудача происходит в плече. Вершины верхней части руки слишком сильно следуют за костью руки, вершины груди остаются неподвижными, а переход между ними проваливается внутрь. Подобная проблема возникает на запястье, когда рука вращается, но предплечье не имеет плавного перехода. Результат технически анимирован, но визуально он ведет себя как твердая оболочка с прикрепленными несколькими частями.
Практическое правило: Хорошая поза привязки не гарантирует хорошую деформацию. Она лишь дает программному обеспечению чистую точку отсчета для расчета последующего движения.
Сама сетка имеет значение еще до того, как вы откроете инструмент раскраски весов. Чистый поток ребер дает деформации пространство для перемещения вокруг суставов, в то время как нерегулярная топология может заставить один полигон нести движение, для которого он не был сформирован. Просмотрите основы топологии персонажей, прежде чем винить риг.

Цель — не заставить двигаться каждую вершину. Цель — заставить каждую вершину двигаться так, чтобы поддерживать окружающую форму. Это различие объясняет, почему скиннинг находится между моделированием, риггингом, анимацией и экспортом. Плохой результат может быть связан с весами, положением суставов, топологией или самим методом деформации.
Скелет, поза привязки и скин
Представьте себе деревянный манекен, покрытый тонким слоем глины. Колышки и сегменты манекена — это скелет, глина — это скин, а момент, когда вы прижимаете глину к манекену в нейтральной позе, — это поза привязки.
Скелет — это иерархия суставов. Плечо принадлежит туловищу, локоть — верхней части руки, а запястье — предплечью. Эта родительско-дочерняя структура позволяет вращению проходить через персонажа. Если плечо движется, локоть и запястье наследуют часть этого движения через иерархию.
Поза привязки — это эталонная конфигурация. Это может быть T-поза, A-поза или другая нейтральная поза, но она должна быть преднамеренной. Программное обеспечение записывает, как сетка располагается относительно каждого сустава в этот момент. Позже оно сравнивает текущую позу с этой эталонной и применяет разницу к привязанным вершинам.
Три части, которые должны совпадать
- Скелет: Суставы определяют доступное движение и его иерархию. Неправильно расположенный сустав локтя может привести к плохому сгибу, даже если веса тщательно раскрашены.
- Поза привязки: Нейтральная поза устанавливает систему отсчета. Если сетка и скелет не выровнены при их привязке, последующие преобразования начинаются с неправильной связи.
- Скин: Полигональная поверхность несет позиции вершин, нормали, UV и данные влияния, которые позволяют ей деформироваться.

Аналогия с оригами поможет понять следующую идею. Отметьте точку на сложенной бумажной фигуре, затем измените складки. Отмеченная точка не выбирает одну складку изолированно. Ее конечное положение зависит от окружающей структуры и того, как бумага соединяется через складки. Скиннингованная вершина работает аналогично, только программное обеспечение хранит явные значения влияния вместо того, чтобы полагаться на физическую бумагу.
Перед привязкой проверьте преобразования персонажа, масштаб, ориентацию суставов и нейтральную позу. Примените исправления перед генерацией весов. Если вы измените пропорции сетки или переместите основные суставы после привязки, вам может потребоваться перестроить или тщательно исправить связь, а не просто закрашивать каждый симптом.
Поза привязки также дает вам точку отладки. Возвращайтесь к ней всякий раз, когда деформация выглядит неправильно. Если сетка уже смещена, повернута или масштабирована неправильно, проблема не в тонком переходе весов. Это ошибка настройки, которую следует исправить на фундаменте.
Как на самом деле работают веса костей и линейное смешивание
Персонаж сгибается в локте, но вершины между верхней частью руки и предплечьем не могут чисто следовать за одним суставом. Им нужен рассчитанный переход. Веса костей обеспечивают этот переход, назначая каждой вершине нормализованный вклад от влияющих на нее суставов.
Линейное смешивание скинов, также известное как скелетная деформация подпространства, скиннинг с палитрой матриц или вершинное смешивание, позволяет одной вершине реагировать на несколько суставов. Каждое влияние имеет неотрицательный вес, и все веса для этой вершины в сумме дают 1, как объясняется в этой лекции по линейному смешиванию скинов. Вершина рядом с верхней частью руки может получать сильный вклад от этой кости, меньший — от предплечья и небольшой или нулевой — от удаленных суставов.
Результат работает как простыня, которую держат несколько человек. Каждый человек двигает разную часть, а ткань оседает в зависимости от того, насколько сильно тянет каждая рука. Скиннингованная вершина — это одна точка в этой ткани. Ее конечное положение зависит от комбинированных движений суставов, а не от выбора результата одной костью.
Расчет простыми словами
Для вершины в позе привязки движок обычно следует этой последовательности:
- Он начинает с исходного положения вершины.
- Он использует обратную матрицу привязки, чтобы выразить это положение в координатной связи, связанной с суставом.
- Он применяет текущее преобразование позы сустава.
- Он умножает это преобразованное положение на вес вершины.
- Он добавляет взвешенный результат к вкладам от других влияющих суставов.
В компактной нотации:
v' = Σ wi Mi v
Здесь v — вершина в позе привязки, v' — ее деформированное положение, wi — вес влияния, а Mi представляет собой текущее преобразование сустава, объединенное с его обратной связью привязки. Часть обратной привязки важна, потому что движок должен сначала учесть, где находилась вершина изначально. Без этой ссылки вполне разумное преобразование позы может переместить сетку из неправильной исходной связи.

Нормализация позволяет контролировать общее влияние. Если значения суммируются слишком много или слишком мало, вершины могут дрейфовать, сжиматься или расширяться, делая проблему весов похожей на ошибку моделирования. Нормализованные веса не гарантируют привлекательную деформацию. Они лишь дают смешиванию стабильную математическую отправную точку.
Почему линейное смешивание стало стандартом
Линейное смешивание скинов компактно, эффективно для оборудования и практично для рендеринга в реальном времени. Игра может непрерывно обновлять множество вершин, сохраняя расчет относительно управляемым. Этот баланс помог утвердить его как распространенный универсальный метод для анимированных персонажей.
Его история также следует за общим развитием полигональной 3D-графики, а формальное рассмотрение как именованной техники стало важной вехой в начале 2000-х годов. Академический обзор методов скиннинга предоставляет исторический контекст для этой области.
Ограничение проявляется, когда соседние суставы вращаются друг против друга. Взвешенное среднее преобразований может быть математически гладким, но при этом давать неправильную физическую форму. Вокруг скручивающегося предплечья сетка может терять объем и сжиматься к центру, даже если каждая вершина имеет правильно нормализованные веса. Эта разница важна при устранении неполадок. Значения весов контролируют, как суставы разделяют влияние, в то время как метод смешивания контролирует, как эти преобразования комбинируются.
Dual Quaternion Skinning и проблема «обертки конфеты»
Поверните предплечье, наблюдая за локтем и запястьем. Если середина резко сужается, а поверхность спирально заворачивается внутрь, вы видите проблему «обертки конфеты». Линейное смешивание производит этот артефакт, потому что оно усредняет матрицы преобразований таким образом, что не сохраняет жесткую природу вращения вокруг скручивающейся конечности.
Проблема не в том, что веса обязательно неправильные. У вас может быть тщательно нормализованный набор влияний, и вы все равно получите потерю объема при вращении соседних костей друг против друга. Это различие экономит время. Прежде чем перекрашивать всю руку, проверьте, следует ли артефакт за методом деформации.
Dual quaternion skinning, или DQS, предлагает почти прямую замену. Вместо прямого смешивания матриц преобразований он смешивает единичные двойные кватернионы и нормализует объединенный результат перед преобразованием вершины. Метод более эффективно сохраняет жесткие преобразования и улучшает сохранение объема, как описано в этом техническом обсуждении dual quaternion skinning.
| Критерий | Линейное смешивание скинов | Dual Quaternion Skinning |
|---|---|---|
| Основная операция | Смешивает преобразования на основе матриц | Смешивает единичные двойные кватернионы, затем нормализует |
| Скручивающиеся конечности | Может вызвать схлопывание «обертки конфеты» | Лучше сохраняет жесткое вращательное поведение |
| Объем | Может терять объем при сильных скручиваниях | В целом лучше сохраняет объем конечностей |
| Профиль времени выполнения | Компактный и удобный для оборудования | Сообщается, что почти так же быстр, как LBS |
| Общая проблема | Защемление и сплющивание | Возможное вздутие вблизи плохо выровненных суставов |
Практический выбор обычно прост. Используйте LBS, когда целевой движок, стиль персонажа или установленный конвейер этого требуют. Тестируйте DQS, когда плечи, предплечья, бедра или хвосты заметно схлопываются, а движок поддерживает эту опцию.
DQS — не волшебство. Если оси суставов плохо выровнены или веса слишком широко охватывают сустав, поверхность может вздуться вместо того, чтобы сжиматься. Сначала исправьте скелет и зоны влияния. Затем сравните оба метода, используя одни и те же позы, особенно нейтральный изгиб, сильное скручивание и крайнее вытягивание.
Используйте алгоритм для решения фактической проблемы. Переключение на DQS не исправит неправильно расположенный сустав, сломанную топологию или вершину, назначенную неправильной кости.
Практический рабочий процесс раскраски весов и оболочек
Начните с автоматизации, но относитесь к результату как к черновику. Автоматический метод может оценить влияния на основе расстояния до кости, окружающей геометрии или расчета в стиле тепловой карты. Он быстро приведет вас к рабочему первому проходу, в то время как окончательное качество по-прежнему будет зависеть от тестирования и исправления.
Создайте первый проход
- Подготовьте сцену. Убедитесь, что сетка находится в предполагаемой позе привязки, а скелет расположен внутри персонажа. Проверьте, что части персонажа случайно не разделены, не скрыты или не имеют неожиданных преобразований.
- Сгенерируйте начальные веса. Используйте автоматическое назначение или оболочки для создания карты влияния. Оболочки дают каждой кости радиус влияния, эффект которого затухает до нуля по мере удаления вершин из этой области.
- Примите позу перед полировкой. Протестируйте плечи, локти, запястья, бедра, колени, шею и пальцы. Нейтральная поза скрывает плохие переходы, а движение немедленно их выявляет.
- Раскрашивайте проблему, а не всего персонажа. Добавьте влияние там, где форма должна следовать за суставом, вычтите его там, где соседняя область тянется, и сохраните постепенный переход через изгиб.
- Зеркалируйте с осторожностью. Симметрия ускоряет первый проход, но временно отключите или выключите зеркалирование перед внесением специфических для стороны исправлений. В противном случае исправление может появиться на противоположной стороне.

Плечо, которое деформируется как ириска, часто имеет слишком большое влияние руки, распространяющееся на грудь, или недостаточное влияние туловища, достигающее плечевого сустава. Локоть, который резко сгибается, может потребовать больше поддерживающих петель, более плавного градиента весов или сустава, расположенного ближе к фактическому изгибу. Изолированное яркое пятно на дисплее весов часто указывает на перегруженную вершину или случайное назначение.
Проверьте результат с разных ракурсов
Не оценивайте карту весов только в стандартной позе в окне просмотра. Вращайте персонажа, медленно сгибайте сустав и осматривайте силуэт спереди, сбоку и с трех четвертей. Следите за нормалями и затенением, а также за контуром, поскольку поверхность может сохранять свой силуэт, но при этом создавать нежелательный излом.
Используйте этот встроенный справочник по рабочему процессу при тестировании собственной настройки:
Завершите проверку на наличие неназначенных вершин, резких границ цветов и влияний, которые перескакивают через несвязанные части тела. Рука не должна тянуть предплечье только потому, что вершины близки в объектном пространстве, а для свободной куртки может потребоваться другая стратегия, чем для тела под ней.
Когда автоматический и ИИ-ассистированный скиннинг заслуживают своего места
Персонаж может выглядеть приемлемо после автоматической привязки в расслабленной позе, а затем схлопнуться при первом же подъеме плеча. Алгоритм не оценивает дизайн. Он распределяет влияние по получаемой геометрии, поэтому низкополигональная сетка, неравномерный поток ребер, несвязанные поверхности или плохо расположенные суставы дают ему слабые доказательства.
Оболочки остаются полезными для быстрого первого прохода, поскольку их границы видны и их легко настроить. Они менее точны для форм, специфичных для дизайна. Плечевой сустав должен сохранять свою предполагаемую объемность, в то время как пальто может двигаться иначе, чем туловище под ним. Установите оболочку как грубую границу, затем уточните вершины, которые контролируют силуэт и изгиб сустава.
Инструменты на базе ИИ расширяют этот процесс, предсказывая веса на основе геометрических паттернов и ранее настроенных примеров. Они могут сократить повторяющуюся работу по настройке для похожих персонажей, но результат по-прежнему является предложением. Тестируйте позы, осматривайте затенение и вручную исправляйте выразительные суставы.
Несколько подходов к скиннингу остаются в активном использовании, включая прямой скиннинг, автоматический скиннинг, деформацию на основе примеров и прямой дельта-скиннинг. Каждый по-разному балансирует авторский контроль, автоматизацию, качество деформации и поведение во время выполнения. Выбор — это технический и художественный компромисс, а не кнопка, которая заставляет каждую сетку хорошо деформироваться.
Для младшего художника используйте автоматизацию для повторения, а не для оценки. Позвольте программному обеспечению создать карту влияния, затем проверьте, сохраняет ли плечо свою форму, локоть сжимается естественно, и требует ли дизайн персонажа жесткого или мягкого движения. Чистый ручной проход часто быстрее, чем исправление автоматической привязки, которая никогда не тестировалась.
Выбор правильной настройки скиннинга для вашего проекта
Выберите настройку, ответив на три вопроса.
Где будет работать персонаж? Начните с требований целевого движка и формата экспорта. Персонаж для игры в реальном времени часто предпочитает компактную настройку LBS с контролируемым списком влияний на вершину, в то время как риг для кинематографа может отдавать приоритет качеству деформации и корректирующим системам.
Насколько экстремально движение? Стилизованный персонаж с ограниченными позами может отлично выглядеть с LBS. Существо с глубокими скручиваниями, длинными хвостами или высокоартикулированными конечностями заслуживает прямого сравнения с DQS и тщательно проработанных коррекций.
Сколько геометрии вы можете поддерживать? Больше топологии может дать суставу дополнительное пространство для сгибания, но дополнительные полигоны не спасут плохое положение сустава или запутанные веса. Чистая геометрия более ценна, чем плотность, добавленная без плана деформации.
Сетки, сгенерированные ИИ, требуют такой же дисциплины. Ремешинг и ретопология могут превратить неровную поверхность в более чистую сетку из четырехугольников или готовую для игры сетку перед привязкой. Если ваш рабочий процесс включает преобразование форматов, проверьте персонажа через рабочий процесс DAE в FBX и убедитесь, что суставы, веса, преобразования и назначения материалов переживают передачу.
Лучший порядок операций: Исправьте сетку, расположите суставы, установите позу привязки, сгенерируйте веса, протестируйте движение, затем выберите метод смешивания.
Этот порядок не позволит вам использовать сложный алгоритм деформации для сокрытия ошибки базовой настройки.
Вопросы по скиннингу, которые вы задаете только после первой попытки
| Симптом | Вероятная причина | Быстрое исправление |
|---|---|---|
| Сустав схлопывается при сгибании | Плохая топология, веса или положение сустава | Проверьте поток ребер, перекрасьте переход и протестируйте положение сустава |
| Сетка, сгенерированная ИИ, раскрашивается неравномерно | Нерегулярная или растянутая топология | Выполните ремешинг или ретопологию перед привязкой |
| Экспорт теряет деформацию | Неподдерживаемые данные скина, преобразования или настройки преобразования | Протестируйте экспортированный файл в целевом движке и проверьте скелет и веса |
| Скручивание сжимается внутрь | Потеря объема при линейном смешивании | Сравните DQS, затем проверьте оси суставов и диапазоны влияния |
Стоит ли сразу привязывать персонажа, сгенерированного ИИ? Обычно нет. Очистите топологию, подтвердите масштаб и ориентацию, расположите суставы и сначала создайте преднамеренную позу привязки.
Что делать, если один сустав всегда схлопывается? Изолируйте позу, проверьте веса в тепловой карте и определите, следует ли сбой сетке, скелету или методу смешивания. Ограничения суставов или корректирующие формы могут решить экстремальную конструкцию более чисто, чем бесконечная перекраска.
Как подготовиться к Unity или Unreal? Сначала экспортируйте небольшого тестового персонажа. Убедитесь, что движок считывает иерархию скелета, позу привязки, влияния вершин, нормали и данные материалов, прежде чем приступать к полному рабочему ассету.
Что делать с неравномерной сгенерированной геометрией? Используйте проход ремешинга или ретопологии для создания поверхностей, которые поддерживают предполагаемые изгибы. Скиннинг может распределять влияние, но он не может создавать полезный поток ребер там, где у сетки его нет.
Sculpty объединяет генерацию 3D-моделей из текста и изображений с инструментами для ремешинга, ретопологии, текстурирования PBR, рендеринга и экспорта, чтобы вы могли подготовить более чистый ассет перед его привязкой к ригу. Посетите Sculpty, чтобы сгенерировать или улучшить модель персонажа, проверить ее топологию и переместить более готовую к скиннингу модель в ваш рабочий процесс анимации.