Per aspera ad astra или RoadMap по вашей будущей игре. Godot 4 C# Часть 11 "Анимация".

И вот наш меш готов. Что же дальше? Как заставить персонажа двигаться в игре?

Кости

Движение персонажа основано на системе костей. Нам понадобится создать и добавить к нашему мешу эту систему. Причём желательно, чтобы она работала с помощью инверсной кинематики (процесс, когда кости ведут себя как реальные: например, двигая руку за кисть, должны двигаться и локоть, и частично плечо).

Per aspera ad astra или RoadMap по вашей будущей игре. Godot 4 C# Часть 11 "Анимация".

Для работы я использовал Blender, он позволяет создать персонажа под ключ. В нем есть все необходимое для всех этапов.

Чтобы система костей начала влиять на ваш меш, необходимо провести развесовку (ригинг). Этот процесс позволяет задать участки меша, привязанные к определённой кости.

Per aspera ad astra или RoadMap по вашей будущей игре. Godot 4 C# Часть 11 "Анимация".

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

Когда вы добьётесь приближённого к реальному поведению персонажа (и движения не будут заламывать части меша в неестественные формы), можно приступать к анимации.

Анимация персонажа выстраивается покадрово: вы определяете, сколько кадров вам нужно (насколько детализированной будет анимация), и создаёте движение кадр за кадром.

Инверсная кинематика значительно упрощает этот процесс. Кроме того, программа может самостоятельно просчитывать положение костей между кадрами — этот процесс называется интерполяцией.

Благодаря интерполяции создание анимации становится проще: сначала вы задаёте основные кадры, а затем добавляете промежуточные, улучшая качество движений.

В итоге вы получите полноценного 3D-персонажа, анимированного и готового к загрузке в движок.

Форматы 3D, которые принимает движок:

  • glTF 2.0 (рекомендовано)
  • DAE
  • OBJ
  • FBX поддерживается библиотекой ufbx.

Что касательно 2D-анимации — это классическое покадровое воспроизведение изображений. Вы рисуете каждый кадр движения, а затем с помощью специального инструмента воспроизводите их с заданной скоростью.

Такая анимация проще в исполнении и позволяет быстро создавать игровую графику (если есть навыки рисования).

За работу с 2D анимацией отвечают сразу несколько узлов. Самый простой способ — это с помощью AnimationSprite2D (устанавливаем кадры и настраиваем их частоту).

Второй узел — это Sceleton2D. Для работы с этим узлом понадобится создать составного персонажа. Персонаж собирается из различных частей тела в виде Sprite2D.

Далее мы накидываем кости Bone2D внутри Sceleton2D и привязываем их к соответствующим спрайтам.

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

Перенос в движок

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

В сцене персонажа необходимо будет создать структуру определенных узлов. За работу с костями и мешем отвечает узел Sceleton3D. Для анимации понадобится узел AnimationPlayer. Для миксования анимации нужно будет настраивать узел AnimationTree.

Иногда может понадобиться связать кости с предложенной движком архитектурой (Это необходимо, для понимания движком структуры костей. Такое может произойти, если костей недостаточно или их имена заданы некорректно).

Per aspera ad astra или RoadMap по вашей будущей игре. Godot 4 C# Часть 11 "Анимация".

Что бы полностью перенести персонажа в Godot 4 прямо из Mixamo придется предварительно использовать Blender для подготовки ( glb формат ).

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

Я пробовал самостоятельно записывать уроки, но пока что нет на это времени.

Автоматизация процессов

Существует множество программ, упрощающих некоторые этапы работы. Например, в Blender можно использовать плагины авторига, которые значительно ускоряют развесовку и привязку костей к персонажу.

Если есть желание создать анимации самостоятельно, то есть одна интересная программа, которая позволяет создавать анимацию на основе физически корректных процессов. Называется эта программа Cascadeur. Очень сильно упрощает сложную анимацию персонажей. Опыт анимации там достаточно интересный.

Для разработки blockout вашего проекта отлично подойдут готовые персонажи. Есть сайт Mixamo, где можно бесплатно скачать готовых персонажей и анимации для них, а благодаря ретаргетингу, можно переносить движения с этих персонажей на ваши модели.

Использование готовых персонажей упростит процесс разработки прототипа и позволит проверить, насколько интересны те или иные игровые механики.

Что касается 2D анимации, есть специализированные программы, обладающие слоями для рисования и другими инструментами, упрощающими работу с раскадровкой.

Эти программы устраняют необходимость рисовать кадр персонажа полностью раз за разом, и вы сможете отрисовывать только изменяющиеся конечности.

Вот небольшой список некоторых из них:

  • Adobe Illustrator
  • Adobe Photoshop
  • CorelDraw
  • Procreate

Спасибо за внимание!

6
2
2 комментария