Почему персонажа ломает: Cкиннинг на примере зомби-плевуна

Почему персонажа ломает: Cкиннинг на примере зомби-плевуна

Когда персонажа “корёжит” и он выглядит поломанно

— чаще всего виноваты не анимации, а скиннинг: где-то поехали веса, и кости начинают влиять не на те части тела, на которые должны. На примере зомби-плевуна разберу, что такое скиннинг, базовые инструменты для правки весов и как быстро проверять, что скин “живой”, а не разваливается.

Скиннинг — это привязка меша персонажа к скелету: мы задаём веса влияния костей (weights) для вершин меша, чтобы при движении костей модель деформировалась правильно..

Пример с подправленным скиннингом

Показывать буду в Maya, однако аналогичные инструменты есть и в других программах.

Инструменты :

BindSkin отвечает за привязывание меша к выделенным костям

Почему персонажа ломает: Cкиннинг на примере зомби-плевуна

Paint Skin Weights — инструмент в Maya для правки скиннинга: кистью рисуешь веса влияния выбранной кости на вершины меша (добавляешь/убираешь, сглаживаешь), чтобы исправить деформации.

Почему персонажа ломает: Cкиннинг на примере зомби-плевуна
Почему персонажа ломает: Cкиннинг на примере зомби-плевуна

Как видите из скриншота кость живота влияет на часть меша головы и рук и если ее подвигать будет вот это)

Инструменты Paint Skin Weights

  1. Paint operation: Replace — режим рисования весов: кисть замещает вес выбранной кости, стараясь привести его к значению Value (с учётом настроенного /Opacity).
  1. Profile (иконки кисти) — профиль кисти: насколько жёсткий или мягкий край у мазка (как вес распределяется от центра кисти к краям).
  1. Smooth —, а сглаживает веса (усредняет с соседними вершинами), убирая резкие переходы/ступеньки.
  1. Opacity — сила мазка (интенсивность): чем меньше, тем слабее изменения и тем больше нужно проходов; чем больше — тем быстрее “заливает” к нужному значению.
  2. Горячая клавиша, чтобы убирать веса, а не добавлять — зажать Ctrl при рисовании.

Работа выглядит примерно так

Красный цвет обозначает сильное влияние - кости на выбранную область , синий около нулевое или близкое к нему .

Также, чтобы видеть влияние кости на меш не в чёрно-белом виде, а в цветной карте весов, нужно включить вот эту галочку.

Почему персонажа ломает: Cкиннинг на примере зомби-плевуна

Второй способ распределять веса по мешу — выделить нужные вершины и вручную задать, какой вес будет у каждой кости. Для этого я использую бесплатный скрипт Comet Skin Weights.

Почему персонажа ломает: Cкиннинг на примере зомби-плевуна

Prune Small Weights удаляет слишком маленькие веса (ниже заданного порога) у вершин, чтобы очистить скиннинг от “мусора” и уменьшить число влияний на вершину.

Это бывает ползено когда скажем у вас голова чуть чуть влияет на пятку - и этим инструментом можно в 1 клик пофиксит проблему

Переходим к типичным проблемам

“Тянет не та кость” — у вершин случайные веса на соседние/лишние джойнты.

Решение - убрать влияние кости

Резкие переходы весов — ступеньки/заломы на сгибах из-за отсуствия плавного распределения весов

Почему персонажа ломает: Cкиннинг на примере зомби-плевуна

Решение - выбрать режим Replace и чуть чуть добавить весов на соседние вертекссы

примерный результат

Плохие деформации на суставах (локоть/колено/плечо) — провалы, сильная потеря обьема или формы

Почему персонажа ломает: Cкиннинг на примере зомби-плевуна
Почему персонажа ломает: Cкиннинг на примере зомби-плевуна

Решение распределить веса по другому что бы деформаци была более корректна

Почему персонажа ломает: Cкиннинг на примере зомби-плевуна

Также на деформацию сильно влияет качество сетки персонажа — но об этом в другой раз (спойлер: у зомби она плохая).

Простой способ проверить скиннинг — поставить персонажа в разные позы.Или делаем зарядку для зомби

Мой телеграмм канал посвященный анимаци ,unreal engine и разработке игр

7
5
1
Начать дискуссию