RUS
July 9, 2023

Рожден чтобы умереть

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

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

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

В основном встречаются 2 модели появления вражеских мобов.

  • Патрулирующие. Одни уже есть в энкаунтере, ходят бродят себе пока не встретят нашего героя, на которого нападут при первом же контакте.
  • Спавняшиеся. Вторые же появляются при заходе Нашего героя в энкаунтер (боевую комнатку). Или появляются во время боя.

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

Как выглядит жизненный цикл рядового моба?

Родиться, напасть и умереть смертью храбрых?

И вроде ничего же сложного сделать такого вот моба и даже вот тзшка от геймдизайнеров. Но все ли так просто? Конечно же нет и любое хорошее пушечное мясо должно прожить славную пусть и короткую жизнь. Что происходит когда появляется моб в игре? Что надо понимать артдиректору и техартистам?

Моб патруль

Моба можно атаковать на всех этапах если это не запрещено геймплеем (абилки, неуязвимость и тп.)

  1. Моб тоже спавниться, но за пределами экрана и для этого события не нужно никаких эффектов и анимаций. Он просто появился в момент и начал свою жизнь. Игрок этого не видит, значит и прорабатывать это не нужно.
  2. Запустилась анимация патрулирования - передвижение моба по заданной или генерируемой траектории. Базовая анимация. Тут у него задействован набор анимаций для передвижения . Моб ходит по траектории, поворачивается. Если есть бюджет, то ему еще кучу прикольного поведения приделать можно. Которое раскроет его характер, особенности, но как правило это делают только если есть необходимость или просто могут).
  3. Обнаружение врага (нашего героя например). Моб шел себе и тут унюхал врага. И у него запускается анимация проявления агрессии, моб может громко зарычать, взмахнуть руками, ударить себя в грудь, обнажить меч. Анимация должна быть короткой и заметной. Лучше делать несколько для разнообразия, так как она акцентная и одна и таже будет резать глаз. Часто к этой анимации добавляют ui элемент в виде восклицательного знака или рычащих зубов, кто как придумает. Анимация запускается когда враг попадает в радиус обнаружения и дает понимание игроку, что его обнаружили и сейчас начнётся. Эта анимация не всегда агрессивная, не всегда после нее последует немедленная атака. Как правило в простых проектах это состояние игнорируется. Потому как разработчики о нем не знают или умышленно избегают для экономии времени и ресурсов на реализацию. Или у них очень динамичная игра и важно игрока засыпать волнами мобов и ему попросту некогда увидеть что на него кто-то там сагрился.
  4. Ожидание Атаки или боевой айдл - нюансная анимация, нужна для того, чтоб отсрочить нападение на него после обнаружения. Проще всего ее описать как "Бык бьет копытом несколько раз" прежде чем побежит на врага. Моб начинает хлестать себя для пущей ярости, пыхтеть, исполнять бешенный танец или нарезать на себе кровавые татуировки. Во время этой этапа саммонеры могут вызывать своих приспешников. Тут могут быть и более прозаичные анимации. Моб просто будет разворачиваться к врагу, просыпаться, слезать или залезать на коня.

    Отлично подойдет метафора: сработал будильник - это обнаружение, нужно подняться с кровати и прийти в себя - это ожидание атаки и у каждого оно свое по времени, ринуться в бой.

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

    НЕ то что в простых, в сложных проектах ее могут упустить и будут пытаться накостылить так иногда нужную задержку атаки после обнаружения врага. Представьте, что герой зашел в комнату и мобы не успев развернуться все ринулись в бой, без подготовки. Это выглядит достаточно грубо и оправдано только при высокой динамике игры, когда игроку некогда считать происходящее, ему на скилле надо уничтожать полчища.
  5. Передвижение к цели атаки - как правило, это тоже анимация передвижения, но возможно ускоренная. Вероятно тут могут быть задействована специальная анимация в виде рывков, прыжков, телепортов. Анимация базовая.
  6. Атака - Базовая анимация, Моб наносит удары по жертве. Стоит делать несколько, так как сильно разнообразит игровой процесс. Но часто разработчики экономят именно на их количестве.
  7. Реакция на урон - Я бы назвал анимацию базовой, так как именно она показывает игроку, что по мобу проходит урон. В комплексе с эффектами создает основную награду игроку при молочении мобов. Важная анимация, хоть и не сильно заметная. На критические удары можно сделать более заметную, чтоб игрок чувствовал вклад от своих действий. Разработчики не всегда делают анимацию для этого состояния, так как часто ее надо смешивать с анимацией атак и перемещения, так как между ними бывают конфликтные ситуации. Но часто делают эффекты на мобах, которые показывают прохождение по ним урона, пресловутое блыманье красным или белым в шейдере моба.
  8. Смерть - все, случилось то ради чего этот моб вообще жил. По идее должна быть самая эффектная анимация. Должна быть наградой игроку за старания, так что не скупитесь на ее зрелищность. Анимация +эффекты обязательно. Так как анимация базовая ее обычно делают все... Но вот в плане зрелищности - экономят, хоть и напрасно.
  9. Прах - После того как моб погиб и отыграла анимация смерти с его телом иногда могут происходить разные вещи, где-то тело исчезает сразу после анимации смерти, где-то валяется брошенным в раскуроченной позе. Тут вариации сценариев могут быть разные. Обычно для этого этапа анимацию не делают, только эффекты.
Демонстрация таймлайна жизненного цикла патрулирующего моба. Цветные блоки без стрелочек фиксированные по времени анимации, не цикляться, со стрелками могут циклиться или совмещать в себе несколько фиксированных циклов (например атака). Хит реакт например может отработать в любое время поверх любой анимации если по мобу прошел урон.

Спавнящийся моб

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

  1. Обнаружение врага. Важно, то что есть причина по которой определился враг, это может быть появления героя в комнате или срабатывание триггера, это может быть радиус в который попал герой. В этот момент могут начать подсвечиваться места эффектами, UI элементами (как придумает Артдир или тот кто его замещает) в которых должны появится мобы. Система готова, чтоб запустить появление мобов. Саммонеры могут стартануть этот же триггер на своих приспешниках начав кастовать в режиме "ожидания атаки".

    Иногда разработчики решают не показывать места спавна из-за геймплейных соображений.
  2. Спавн - вот тут может происходить что угодно, разработчики как правило выбирают простые реализации в виде вылазящих из под земли чудищ или падающих сверху зверюг. Как правило в это время мобов атаковать нельзя,(если это необходимо, то анимация спавна происходит в следующем этапе). Если позволяет бюджет, то прорабатываются дополнительные анимации в виде лазящих по стенам, вылазящих из щелей и кувшинов мобов, что очень зрелищно, но дорого. Так как помимо анимаций требует еще кучу механики.
  3. Ожидание Атаки или боевой айдл - Все таже задержка между обнаружением и атакой. для этого типа мобов очень важна, так как тут может быть реализован спавн мобов во время которого их можно уничтожать. Вылазит значит зверюга из под полы, а ты ей хрясь по морде, пока оно не успело вылезти.. чудесно же!. Ключевой момент, моб пока в этом состоянии атаковать не может, но может получать урон (актуально и для патруля).

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

    Этот же этап можно использовать как визуализацию "обнаружение врага" просто создав соответствующую короткую анимацию, но это зависит от сюжета и характера моба. Например отыграла анимация спавна - Скелет вылез из пола. Следом запускается этап Ожидания с анимацией обнаружения - он Рычит, поднимает руки. Следом анимация движения и скелет несется в бой.

Далее по описанному выше примеру: Передвижение - Атака - Реакция на урон - Смерть - Прах.

Демонстрация таймлайна жизненного цикла спавняшегося моба.

Вот такие есть логические этапы у мобов... Не у всех конечно, а у типичных для мобилок. Да, разработчики могут сильно усложнить систему, чтоб добиться уникальных сочетаний механик, например для Боссов. Также могут объединить некоторые этапы, тут зависит от архитектуры проекта. НО структура останется схожая. Упростить ее тоже можно, убрав вариации анимаций, смешав некоторые из этапов, убрав некоторые этапы. Играть после этого будет можно и для не требовательной аудитории это даже и прокатит.

Разработчики могут разработать и свою уникальную структуру и это тоже будет работать. Но возможно информация поданная тут будет вам полезна и вы сэкономите себе чуть-чуть времени на подготовке к запуску проекта.

https://t.me/ArtsFactory
#solutions #cases #experience