Найти в Дзене
Мастерская Wood’Zap

Моя первая игра. Главный слой уровня. Вторая часть. Создание анимации

Первая часть <=

Как я и обещал, добавим анимацию нашему герою.

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

Создадим для этого два новых объекта.

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

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

bottom, невидимый при старте
bottom, невидимый при старте
Trigger zemlya, невидимый при старте
Trigger zemlya, невидимый при старте

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

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

Теперь о самих условиях в редакторе событий.

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

Новое событие > Hero 2 > movement > compare speed of hero 2 to a value > equal 0
Новое событие > Hero 2 > movement > compare speed of hero 2 to a value > equal 0

А в условиях нашего Hero задаём анимацию stopped. Это условие будет менять любую анимацию на анимацию покоя при каждой остановке героя.

Следующие два условия у нас будут для ходьбы или бега.

Hero 2 > Direction > compare direction of hero 2               bottom > collision > overlapping another object > trigger zemlya
Hero 2 > Direction > compare direction of hero 2 bottom > collision > overlapping another object > trigger zemlya

Hero > Direction > set direction to

Анимацию теперь задаём ходьбы или бега, я выбрал бег.

Отдельно создаём события для каждого направления. Крест возле условия stopped означает, что это условие срабатывает только в момент движения главного героя. Делается это через клик правой кнопкой мыши по нему и выбором пункта Negate.

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

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

-5

Не буду ещё раз описывать все действия, скажу лишь о разнице.

Теперь добавляем Negate ещё и в условие пересечения жёлтого и красного прямоугольника, то есть наш герой не стоит движется и находится в воздухе.

Теперь выбираем анимацию прыжка.

Ах да! Чуть не забыл про самое главное.

-6

В строку Always добавляем привязку жёлтого прямоугольника bottom к hero 2.

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

В каком-то стороннем уроке я видел, что у человека анимация падения автоматически включалась при этих условиях. Я этого добиться не смог, так что пришлось создать дополнительные условия. О них, так же как и о создании анимации и механики подъёма по лиане я расскажу в следующем посте из этой серии.