7.99M

Unity M1 L8

1.

Повтор

2.

Повтор
На прошлом уроке у нас была
сложная тема: мы создали два
скрипта для урона и здоровья
Это было больно.
Вы же сделали
для меня аптечку?

3.

Повтор
На прошлом уроке у нас была
сложная тема: мы создали два
скрипта для урона и здоровья
Чуть позже мы научим нашего
игрока дать отпор врагам, но
перед этим нам нужно
научится создавать анимацию!
Поскорее бы

4.

Виды анимации
Существует несколько типов
анимации. Основными из них
являются покадровая анимация
и скелетная анимация
Интересненько

5.

Виды анимации
Покадровая анимация состоит
из последовательности
изображений. При смене
картинок с большой скоростью
создаётся иллюзия движения.
Анимация
Последовательность изображений

6.

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

7.

Виды анимации
Костная (скелетная) анимация
состоит из частей тела
персонажа, которые
объединяются с помощью костей
в скелет, которым можно
манипулировать
Анимация
Части тела

8.

Виды анимации
Костная (скелетная) анимация
состоит из частей тела
персонажа, которые
объединяются с помощью костей
в скелет, которым можно
манипулировать
Анимация
Таким же способом снимают
уже современные мультики,
правда используют они 3D
модели, а не 2D
Части тела

9.

Виды анимации
Покадровая анимация
выглядит более живой, за
счет отрисовки каждого
кадра вручную. Однако
художник потратит много
сил и времени на
отрисовку каждого кадра
Анимация
VS
Костная анимация
выглядит менее
натуральной, но требует
меньше усилий и времени
от художника/аниматора
Анимация

10.

Виды анимации
Покадровая анимация
выглядит более живой, за
счет отрисовки каждого
кадра вручную. Однако
она сложнее в
реализации, нежели
костная анимация
Анимация
VS
Костная анимация
выглядит менее
натуральной, но требует
меньше усилий и времени
Мы с вами будем
использовать
покадровую анимацию
Анимация

11.

Виды анимации
Для начала, убедитесь, что для
вашего игрока есть картинки с
для покадровой анимации
Если у вас есть «сшитые»
картинки (вспоминаем урок про
спрайты), то обязательно
разделите их!

12.

Виды анимации
Нам нужны следующие
анимации:
⮚ Idle – так называется анимация
покоя, когда персонаж стоит
на месте
⮚ Run/Walk – анимация бега
⮚ Jump – анимация прыжка

13.

Для начала создайте
новую папку, в которой мы
будем хранить анимации
Назовите её Animations

14.

В новой папке Animations
нам нужно создать ещё
одну папку Player, в
которой мы будем хранить
анимации нашего игрока

15.

Далее мы создаём
Animator Controller
И переименовываем его
так же в Player

16.

Анимация
Animator Controller, или просто
Animator, позволяет руководить
множеством анимации и решать,
какая анимация должна
воспроизводится в тот, или иной
момент
Иконка
Animator
Idle
Бег
Прыжок

17.

Переместите Animator в
нашего персонажа,
перетащив скрипт на
надпись Add Component

18.

Для создания анимаций,
нам понадобится окно
Animation, в котором мы и
будем создавать анимации
Нажмите три точки в
левой верхней части окна
и создайте окно Animation

19.

У вас откроется новое
окно Animation для
создания анимации

20.

Выделите нашего игрока и
если у него будет
аниматор, но у нас
появится кнопка Create
для создания анимации

21.

Место, куда мы
сохраним
анимацию,
проверьте
Название для
анимации
Назовите первую
анимацию Idle
Убедитесь, что
анимация
создаётся в
правильной
папке, а так же
что вы дали
правильное
название для
анимации!

22.

Далее наше окно
анимации
преобразится
Для полноценного изучения
этого окна понадобится много
времени, так что мы ещё к нему
вернёмся

23.

Далее наше окно
анимации изменится
Для полноценного изучения
этого окна понадобится много
времени, так что мы ещё к нему
вернёмся

24.

Для удобной работы
переместите окно
Проекта в область по
центру (просто зажмите
название и перетащите)

25.

Для того, чтобы выделить
несколько кадров,
выделите первый,
зажмите Shift и кликните
на последний кадр
Далее, откройте папку с
анимацией Idle,
выделите все кадры и
переместите их в область
анимации

26.

Теперь, достаточно
открыть окно сцены, и
запустить тест анимации
Если вам кажется, что анимация
слишком быстрая, можете
уменьшить кол-во кадров в
секунду для этой анимации, к
примеру, до 24 кадров
Тест анимации
Кадры в сек

27.

Анимация
Настроили нужную скорость
анимации?
Теперь самостоятельно
создайте ещё одну анимацию
для бега персонажа
Не забудьте удостовериться,
что создаёте анимацию в
нужной папке!
Создание новой
анимации

28.

Теперь, когда у нас есть
все нужные анимации,
самое время поработать
с нашим аниматором
Созданные
анимации

29.

Верните на место окно
Проекта, откройте папку
с анимациями игрока и
откройте наш аниматор
(Player)
Откройте

30.

Новое окно
После открытия у вас
появится новое окно
аниматора – Animator.
В нём мы будем настраивать
смену анимации нашего
персонажа

31.

Зажмите колёсико
мыши, чтобы
перемещать камеру в
окне аниматора
В нём уже появились наши
созданные анимации в виде
блоков, и даже есть какие-то
настройки
Вы можете переставить
анимации для удобства

32.

Стрелки между блоками
указывают на возможный
переход из одной
анимации в другую
Любая анимация
начинается с блока Entry и
переходит к первой
созданной анимации, в
нашем случае Idle
Анимация Run в данный
момент не связана ни с
одним блоком и не может
быть проиграна

33.

Как вы думаете, возможен
ли переход из анимации
Idle в анимацию Run?

34.

Конечно возможен!
Если наш персонаж
стоит на месте и
вдруг, начнет
движение, мы должны
будем начать
анимацию Run
Как вы думаете, возможен
ли переход из анимации
Idle в анимацию Run?

35.

Щёлкните ПКМ по
блоку Idle, выберите
пункт “Make Transition”
(создать переход) и затем
нажмите по блоку Run

36.

А возможен ли обратный
переход, из анимации Run
в анимацию Idle?

37.

Конечно возможен!
Если персонаж
находясь в движении
остановится, нам
нужно будет начать
анимацию Idle
Создайте нужный
переход между
блоками
А возможен ли обратный
переход, из анимации Run
в анимацию Idle?

38.

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

39.

Аниматор
Нам нужен рычаг, который
будет активировать ту, или
иную анимацию
В этом нам поможет
переменная bool, помните её?
Idle
Run

40.

Аниматор
Нам нужен рычаг, который
будет активировать ту, или
иную анимацию
В этом нам поможет
переменная bool, помните её?
Она может принимать
значения True & False, что даст
программе понять, какую
анимацию включать
False
Idle
Run
True

41.

Аниматор
Этот рычаг мы будем менять
при помощи нашего
компонента Move.
False
Idle
Run
True
Move

42.

Аниматор
Этот рычаг мы будем менять
при помощи нашего
компонента Move
Наш скрипт будет передавать
в аниматор информацию:
бежим ли мы, или нет
False
Idle
Run
True
Move

43.

Аниматор
Этот рычаг мы будем менять
при помощи нашего
компонента Move
Наш скрипт будет передавать
в аниматор информацию:
бежим ли мы, или нет
False
Idle
Run
True
Реализовать эту систему будет
не очень сложно,
постарайтесь запомнить!
Move

44.

Аниматор
Для начала создадим
наш рычаг. В
аниматоре он
называется
параметром / Parametr
Следуя инструкции
создайте один
параметр, под
названием Running

45.

Аниматор
Далее, установите этот
параметр обоим
переходам из
анимации Idle в Run и
наоборот
Следуйте логике!

46.

Аниматор
Первую часть плана по
подключению анимации мы
реализовали.
Выполнено!
False
Idle
Run
True
Move

47.

Аниматор
Первую часть плана по
подключению анимации мы
реализовали.
Теперь нам осталось
подключить к скрипту Move
наш аниматор!
Выполнено!
False
Idle
Run
True
Move
В процессе

48.

Наш скрипт сейчас должен
выглядеть примерно
следующим способом

49.

Создаём переменную, в
которой будем хранить доступ
к Аниматору

50.

Далее в функции Update() в
самом начале устанавливаем наш
параметр «Running» на ложь
Это делается для того, чтобы по умолчанию
программа думала, что наш персонаж стоит
на месте
Не запутайтесь в
скобках!

51.

Схожую запись мы оставляем уже
в условии, по движению влево,
однако при движении влево мы
изменяем параметр на true
Пусть изначально параметр Running
установлен на False, позже он изменится на
True, если игрок двинется влево
То же самое делаем и с
движением вправо!

52.

Проверка
Всё сделали? Запускайте игру
и проверяйте итог!
Не забудьте дать значение
нашей новой переменной
anim в юнити
?

53.

Проверка
Даже если вы всё сделали
правильно, нас ждёт ещё одна
проблема: анимация
запускается с задержкой

54.

Проблема кроется в
наших переходах между
анимациями
Выделите одну из них и
нажмите стрелкочку у
Settings в инспекторе
Скрытые настройки
перехода анимации

55.

При создании
переходов между
анимациями, Unity
автоматически
устанавливает
небольшую задержку
между анимациями
Настройки задержки
анимации

56.

Для решения проблемы
просто уберите все
галочки, а так же
установите все
значения на 0
Настройки задержки
анимации

57.

Проверка
Закончили? Тогда наш
персонаж должен бегать с
правильно настроенной
анимацией без задержки
А если что-то идёт не так, то
спрашивайте!
Нажмите, чтобы показать
распространённые ошибки

58.

Распространённые ошибки
Проблема с воспроизведением Проблема со скриптом:
⮚ Перепроверьте запись
анимации:
⮚ Проверьте, поставили ли вы
скрипта:
условия на всех переходах
между блоками анимации в
аниматоре
⮚ Проверьте, убрали ли вы
задержку со всех переходов
между блоками анимации
⮚ Проверьте, правильные ли
значения вы установили в
скрипте Move, с функциями
anim.SetBool()

59.

Дополнительное задание
Сегодня мы проделали очень
большую работу, можете
гордиться собой!
Обязательно повторите, весь
процесс создания анимации
дома, иначе всё забудете!
Стройте всё больше и больше
игровых уровней!
English     Русский Правила