[Из песочницы] Скелетная 2D-анимация в Unity с помощью плагина Puppet2D
Пожалуй, все начинающие «игроделы» в разработке игр сталкивались с анимированием своих персонажей. Перед нами стоит выбор спрайтовой или скелетной анимации. В этой статье я рассмотрю основные принципы работы с плагином Puppet2D для скелетной анимации.
1. Установка
Итак, работа начинается с покупки и установки самого плагина с Asset Store:
Далее добавляем плагин в рабочую область: Window >> Puppet2D
2.Создание скелета. Подготовка
Перед созданием скелета, выстраиваем спрайты на сцене и создаем Layer для персонажа (куда поместим спрайты, я назвала его «Player»):
и Sorting Layer для костей и контроллеров (тут «Bones» и «Controllers»). Попутно выставляем слоя для костей и контроллеров в самом Puppet:
3.Создание скелета
Переходим, непосредственно, к созданию самого скелета. Для удобства, чтобы спрайты не мешались и не выделялись, заблокируем их слой:
Создание начинается с кнопки «Create Bone Tool» (1)
Нажимаем ЛКМ на нужных местах, по окончании — ПКМ или «Finish Bone» (2). Если сначала нажмем на уже существующую кость и создадим от нее еще одну, то та станет костью-родителем.
Для хребтов людей и животных существует кнопка «Create Spline Tool»(3). Помечаем начальную и конечную точку, а показатель (4) — количество костей между данными точками. На концах этих точек автоматически появятся контроллеры. Завершаем сплайн кнопкой «Finish Spline»(5).
В итоге должен получится примерно такой скелет:
4.Создание скелета. Вешаем контроллы
Далее все просто — на конечности вешаем контроллы:
(1) — Контроллер для конечностей (рук, ног)
(2) — Контроллер-родитель
(3) — Контроллер только для поворотов (например, головы)
5.Создание скелета. Привязка спрайтов к скелету
Существует 2 способа привязки:
- если одному спрайту соответствует одна кость;
- если одному спрайту соответствуют 2 и больше костей.
В первом случае все очень просто: выбираем нужные кости, выбираем нужный спрайт и жмем кнопку «Parent Object To Bones»:
Во втором придется немного заморочится, ибо нужно конвертнуть спрайт в мэш. Выбираем спрайт и жмем кнопку «Convert Sprite To Mesh»:
Показатель «Type of Mesh»(1) (От 0 до 4) указывает на количество треугольников в полигоне. Чем выше тип, тем их больше.
Следующим шагом будет привязка этого мэша к костям. Выбираем его, выбираем кости и жмем «Bind Smoth Skin»:
Но так как все автоматизированное не всегда на практике оказывается красивым, и рука вашего героя вдруг будет гнуться посредине кости, переходим к заключительному пункту построения скелета:
6. Создание скелета. Корректировка весов
Если объяснить упрощенно, то веса показывают, какая кость гнет какой мэш. Выбираем нужный мэш, затем редактируем, начиная с кнопки «Paint Weights»:
Выбираем нужную кость и там где белый цвет — кость гнет мэш, там где черный — нет:
Выбираем толщину и жесткость кисти и закрашиваем веса с помощью ЛКМ:
Shift + ЛКМ = Смяхчение переломов
Ctrl+ ЛКМ = Стирание весов
Заканчиваем редактирование кнопкой «Finish Edit Skin Weights».
7. Анимация
Заключитальным этапом конечно же будет анимация. Тут уже ваша фантазия неограничена. Двигаем контроллы, выставляем позы и, вуаля, вот наш скелетик уже бегает:
Напоследок добавлю туториал с оффициального YouTube-канала Puppet2D: