b733e4
Научим создавать свои игры, сайты и приложения
Начать учиться
Modal window id: popup-initschool

3D-анимация в Unity

3D-анимация в Unity
10.1K

«Движение — это жизнь», — сказал когда-то Аристотель. Сегодня мы научимся оживлять объекты и персонажей в Unity, используя анимацию.

Что такое анимация

Анимация — это метод, с помощью которого неподвижные фигуры обрабатываются для отображения в виде движущихся фигур.

С помощью анимации можно визуально оживить любой объект, персонажей, задний фон в игре и т. д. Анимация используется повсеместно: в рекламе, кино, играх, на телевидении. В зависимости от целей и вида анимации, для ее создания применяют множество разнообразных программ. Мы будем использовать Unity.

Откуда берется анимация в Unity

2D-анимация

2D-анимация спрайтов — это просто набор картинок, на которых объект находится в разных состояниях. Быстрая смена этих картинок даёт анимацию.

Исходный набор картинок

Исходный набор картинок

Итоговая анимация

Итоговая анимация

Картинки можно нарисовать самостоятельно в Photoshop, Illustrator или любой другой программе для работы с изображениями. Далее всё это можно быстро настроить инструментами Unity и превратить в анимацию.

В этой статье речь пойдет о 3D-анимации, и с ней всё немного сложнее — это не просто картинки.

3D-анимация

Анимацию объектов (перемещение, вращение, изменение размера, смена цвета) можно легко сделать самостоятельно в самом Unity, используя окно Animation.

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

Риг персонажа

Уроков по риггингу и созданию своих 3D-моделей в интернете предостаточно, нужно лишь ваше время и желание. Я предпочитаю брать уже готовые модели с подготовленным риггом и анимацией под них.

Обычно анимации под 3D-модели создаются в той же программе, в которой эту модель и делали, например Maya или Blender.

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

Если вы всё-таки решите сделать анимацию персонажа вручную, то советую использовать Cascadeur — это удобная бесплатная программа для создания физически корректных анимаций. Потребуется только компьютер, руки и время.

Я предпочитаю использовать готовую анимацию, а если не нашел ничего подходящего, то заказываю её изготовление у профессионалов по анимированию. Если же анимация несложная, то создаю ее сам прямо в Unity.

Готовые ассеты 2D-анимаций и 3D-персонажей можно найти на многих интернет-ресурсах, например, в Unity Asset Store или Mixamo.

Сегодня мы создадим свою анимацию 3D-объекта, а также научимся использовать готовые анимации для анимирования персонажа.

Получи больше пользы от Skysmart:

Как сделать анимацию в Unity для 3D-моделей

В Unity для анимации мы будем использовать Animation и Animator.

  • Animation. Это окно представляет из себя таймлайн (временную шкалу), на котором вы можете анимировать любые объекты, используя ключевые кадры. Ключевыми кадрами или ключами называются кадры, в которых происходят изменения.

  • Animator. Это система, которая управляет анимациями. Animator воспроизводит файлы анимации, как плеер — музыку. Он позволяет гибко выстроить дерево из анимаций со всевозможными ветвлениями. Эта система анимации в Unity называется Mecanim.

Теперь, когда мы разобрались с инструментами, приступим к созданию простой анимации 3D-модели в Unity. К примеру, у нас в игре есть собираемый объект, и мы хотим, чтобы он вращался. Мы можем сделать эту анимацию двумя вариантами — через Animation или через код. Посмотрим, как ее реализовать через Animation.

  1. Создадим пустой объект, сбросим его Transform (позиция и поворот на ноль).

    Как сделать анимацию в Unity для 3D-моделей. Шаг 1

  2. Добавим в этот пустой объект наш объект для анимации и тоже сбросим в ноль.

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

  3. Откроем окно Animation. Оно включается через Window → Animation → Animation (Ctrl + 6).

    Как сделать анимацию в Unity для 3D-моделей. Шаг 3

  4. Выберем объект для анимации и нажмем Create в окне Animation. Создадим папку для хранения анимаций, дадим название нашей анимации и сохраним ее в этой папке.

    Как сделать анимацию в Unity для 3D-моделей. Шаг 4

  5. В окне Animation есть пульт управления.

    Как сделать анимацию в Unity для 3D-моделей. Шаг 5, рисунок 1

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

    Как сделать анимацию в Unity для 3D-моделей. Шаг 5, рисунок 2

    Следующие кнопки — стандартные: перейти в начало анимации, перейти на предыдущий ключ, проиграть анимацию. Маленькое окошко справа показывает, в каком кадре вы сейчас находитесь.

  6. Нажмём AddProperty и выберем Rotation.

    Как сделать анимацию в Unity для 3D-моделей. Шаг 6

    На таймлайне появятся ключевые кадры (ромбики) в начале и в конце анимации. Нажимая на линейку над таймлайном, можно перемещаться по нему.

  7. Перейдем к первым кадрам. Развернем Rotation в левом меню, там должны быть все оси на 0.

    Как сделать анимацию в Unity для 3D-моделей. Шаг 7

  8. Перейдём в последние ключи и выставим там ось Y на 360. Таким образом наш объект сделает один полный оборот за всю анимацию.

    Как сделать анимацию в Unity для 3D-моделей. Шаг 8

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

  9. Проигрываем анимацию, нажав на воспроизведение в левом меню. В данный момент наша анимация плавно стартует и плавно останавливается. Наша задача — сделать анимацию равномерной.

    Как сделать анимацию в Unity для 3D-моделей. Шаг 9

  10. Нажмём на самом первом, верхнем ключевом кадре ПКМ и выберем пункт меню Both Tangents → Linear, таким образом задав линейную скорость.

    Как сделать анимацию в Unity для 3D-моделей. Шаг 10

    То же самое сделаем и для последних кадров. Теперь наша анимация проигрывается с одинаковой скоростью.

  11. Дополним анимацию движением печеньки вверх-вниз. Для этого нажмем Add Property → Position. В начале все оси Position со значением 0, в конце 0. Перехожу в середину анимации и ставлю новый ключ, выставляю позицию по Y на 1. Поставить дополнительный ключ можно, нажав под пультом на ромбик с плюсом.

    Как сделать анимацию в Unity для 3D-моделей. Шаг 11, рисунок 1

    Теперь наша печенька анимирована по двум свойствам.

    Как сделать анимацию в Unity для 3D-моделей. Шаг 11, рисунок 2

  12. Если выбрать печеньку в иерархии, то в окне Inspector можно заметить, что добавился компонент Animator. Он и воспроизводит нашу анимацию. Более подробно мы рассмотрим его чуть позже.

    Как сделать анимацию в Unity для 3D-моделей. Шаг 12, рисунок 1

    Но если два раза кликнуть на Controller, вы попадете в окно Animator.

    Как сделать анимацию в Unity для 3D-моделей. Шаг 12, рисунок 2

  13. В папке, в которой вы создавали анимацию, появился вот такой файл с ней.

    Как сделать анимацию в Unity для 3D-моделей. Шаг 13

Теперь примерно то же самое через код:

Как сделать анимацию в Unity для 3D-моделей через код

Этот скрипт нужно просто кинуть на анимируемый объект, чтобы анимация заработала.