[Из песочницы] Скелетная 2D-анимация в Unity с помощью плагина Puppet2D

Пожалуй, все начинающие «игроделы» в разработке игр сталкивались с анимированием своих персонажей. Перед нами стоит выбор спрайтовой или скелетной анимации. В этой статье я рассмотрю основные принципы работы с плагином Puppet2D для скелетной анимации.

1. Установка


Итак, работа начинается с покупки и установки самого плагина с Asset Store:

image
Далее добавляем плагин в рабочую область: Window >> Puppet2D

01dd05800c43403e8b0894d64945cbc1.png

2.Создание скелета. Подготовка


Перед созданием скелета, выстраиваем спрайты на сцене и создаем Layer для персонажа (куда поместим спрайты, я назвала его «Player»):

27459201d6544300bcd54a1b3d218118.jpg

e75771a887da4b56b68cadee6d7747ef.jpg

и Sorting Layer для костей и контроллеров (тут «Bones» и «Controllers»). Попутно выставляем слоя для костей и контроллеров в самом Puppet:

91c72c9779a24d69b616d6118efc997f.jpg

3.Создание скелета


Переходим, непосредственно, к созданию самого скелета. Для удобства, чтобы спрайты не мешались и не выделялись, заблокируем их слой:

d6f6d572a93b4e8f9be96b503305239f.png

Создание начинается с кнопки «Create Bone Tool» (1)

cf49482ce17841c98e5dcbe4f637af33.jpg

Нажимаем ЛКМ на нужных местах, по окончании — ПКМ или «Finish Bone» (2). Если сначала нажмем на уже существующую кость и создадим от нее еще одну, то та станет костью-родителем.

75a1a5347fe44f97b6246b10b5ed3b0f.jpg

Для хребтов людей и животных существует кнопка «Create Spline Tool»(3). Помечаем начальную и конечную точку, а показатель (4) — количество костей между данными точками. На концах этих точек автоматически появятся контроллеры. Завершаем сплайн кнопкой «Finish Spline»(5).

8ad2c900b20842578e3a33760b7241f4.jpg

В итоге должен получится примерно такой скелет:

dd42d40eddd0404898583fac76af992a.jpg

4.Создание скелета. Вешаем контроллы


Далее все просто — на конечности вешаем контроллы:

588eb3000e24427bb661288f3a41702e.jpg

(1) — Контроллер для конечностей (рук, ног)
(2) — Контроллер-родитель
(3) — Контроллер только для поворотов (например, головы)

5.Создание скелета. Привязка спрайтов к скелету

Существует 2 способа привязки:

  • если одному спрайту соответствует одна кость;
  • если одному спрайту соответствуют 2 и больше костей.


В первом случае все очень просто: выбираем нужные кости, выбираем нужный спрайт и жмем кнопку «Parent Object To Bones»:

7715ea0c48344186919e82001f537a5e.jpg

Во втором придется немного заморочится, ибо нужно конвертнуть спрайт в мэш. Выбираем спрайт и жмем кнопку «Convert Sprite To Mesh»:

8ac4ec514ad74d1985c8fbdaaf0fb62f.jpg

Показатель «Type of Mesh»(1) (От 0 до 4) указывает на количество треугольников в полигоне. Чем выше тип, тем их больше.

Следующим шагом будет привязка этого мэша к костям. Выбираем его, выбираем кости и жмем «Bind Smoth Skin»:

a5811c3fac1b43bfb51a150f1ffbee1e.jpg

Но так как все автоматизированное не всегда на практике оказывается красивым, и рука вашего героя вдруг будет гнуться посредине кости, переходим к заключительному пункту построения скелета:

6. Создание скелета. Корректировка весов


Если объяснить упрощенно, то веса показывают, какая кость гнет какой мэш. Выбираем нужный мэш, затем редактируем, начиная с кнопки «Paint Weights»:

b70c3a36d04a44a986082499e5bb1668.jpg

Выбираем нужную кость и там где белый цвет — кость гнет мэш, там где черный — нет:

fee1e98e767c4c6d81699eec34520333.jpg

Выбираем толщину и жесткость кисти и закрашиваем веса с помощью ЛКМ:

f7a4dd484c9b4b5fa79043b5a93a3675.jpg

Shift + ЛКМ = Смяхчение переломов
Ctrl+ ЛКМ = Стирание весов

Заканчиваем редактирование кнопкой «Finish Edit Skin Weights».

7. Анимация


Заключитальным этапом конечно же будет анимация. Тут уже ваша фантазия неограничена. Двигаем контроллы, выставляем позы и, вуаля, вот наш скелетик уже бегает:

5499b4d865894e22b1638e53e98c7f9c.gif

Напоследок добавлю туториал с оффициального YouTube-канала Puppet2D:

© Habrahabr.ru