King, Witch and Dragon. DevLog #9

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

Пришло время заняться боевой системой.

Подчищаем хвосты

Я начал продумывать, какую именно логику мне нужно реализовать и что мне для этого нужно.

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

О том как создавались эффекты для этих анимаций я написал отдельную статью.

Но тут я осознал, что у меня нет анимаций для получения урона. Я решил исправить это досадное недоразумение.

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

В итоге я сделал 2 анимации:

  • получение урона спереди
  • получение урона со спины

Белое мигание показывает время неуязвимости персонажа. Сейчас при получении урона игрок теряет контроль над персонажем на пол-секунды, но персонаж остаётся неуязвимым полторы секунды. Это позволяет игроку не попадать в ситуацуации, когда несколько врагов или прожектайлов держат игрока в хит-стане до самой смерти.

Логика атаки

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

Так как моя игра не подразумевает реализм, а делает упор на резкое, отзывчивое управление, я решил остановиться на методе с hit scan'ами.

Хорошей отправной точкой для тех, кто хочет погрузиться в эту тему, может стать видео Brackeys:

В видео показана самая простая реализация с одним хит-сканом и встроенной 2D-физикой Unity.

Для себя я сделал чуть более сложный вариант этой системы:

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

В итоге хит-сканы персонажа выглядят вот так:

Наводим красоту

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

  • Он придаёт сочности атаки и лучше читается при резком движении.
  • Он более чётко обозначает зону поражения.
  • Треил может быть визуально длиннее меча и тем самым увеличивать зону поражения (расположение и размер хит-сканов), не влияя при этом на размер и пропорции меча и персонажа.

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

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

В данном случае такой точкой послужило видео Hovl Studio о создании эффекта трейла.

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

Главная моя претензия к эффекту из видео, это то, что там на каждый чих используется текстура. Вливать 4 тектстуры в трейл для меня непозволительная роскошь, поэтому я переделал шейдер, чтобы он вообще не использовал текстур. Вместо этого используется 2 слоя voronoi noise и dissolve с жесткими краями для темной части и с мягкими границами для свечения.

Также, в качестве follow-up частиц я использовал вороньи перья, которые разлетаются и плавно опадают при каждом взмахе. Те, кто следит за разработкой с самого начала должны помнить, что меч персонажа получен от ведьмы и называется "Коготь". Меч декорирован вороньими перьями. Отсюда и такие частицы.

В целом, видео от Hovl Studio всё равно оказалось достаточно полезным и я почерпнул оттуда много интересного. В русскоязычном сегменте это один из лучших каналов по игровым VFX, так что всем, кто интересуется этой темой, советую подписаться.

Области применение атаки

Враги

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

Прожектайлы

Гораздо интереснее история обстоит с прожектайлами.

Я решил сделать механику отражения прожектайлов, с помощью оружия (с помощью атаки). Чтобы разнообразить систему, я сделал несколько типов прожектайлов, которые по-разному реагируют на атаку игрока:

  • Никак. Эти прожектайлы полностью игнорируют атаки игрока.
  • Уничтожаются. Такой прожектайл можно "убить" любой атакой (включая способность "бросок змеи").
  • Зеркальное отражение. Прожектайл отражается и летит в противоположном направлении, зачастую в того, кто этот прожектайл запустил.
  • Перенаправление в сторону атаки. Прожектайл меняет направление движения в зависимости от того, какой атакой он был отражён. Например, если атака была направлена вверх, он полетит вверх.

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

Зеркальное отражение

Перенаправление

С помощью таких механик можно создавать головоломки, связанные с окружением и также использовать в босс-файтах. Аналогичный подход используется в Ori со способностью Bash и многие считают это одной из лучших механик в этой игре.

Окружение

Помимо банального разбивания некоторых препятствий я реализовал ещё и pogo-jump (Shovel Knight, Hollow Knight), который позволяет с помощью атаки, направленной вниз, отскакивать от шипов, врагов, прожектайлов и прочих опасностей. В Hollow Knight при этом ещё проиходит ресет способностей и их можно использовать повторно, не приземляясь. Это тоже у меня реализовано.

Что дальше?

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

Пока есть запал, я бы хотел уделить этой теме ещё какое-то время и сделать FX'ы для всех способностей персонажа, чтобы они были такими же сочными, красочными и зрелищными. Всё таки это то, чем игрок будет пользоваться очень часто по ходу игры.

Так что следующий пост будет полностью посвящён стилизованным визуальным эффектам и процессу их создания.

Чтобы поддержать разработку игры, добавляйте King, Witch and Dragon в вишлист на Steam, это важно не только для моей мотивации, но и для алгоритмов Steam. Чтобы принять участие в обсуждении, вступайте в группу ВК, а также подписывайтесь на меня в Twitter и Instagram.

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

3535 показов
3.5K3.5K открытий
40 комментариев

Что визуально, что по механикам очень круто сделано. Удачи в дальнейшей работе!

Ответить

Спасибо!

Ответить

Че за хуйня? Чего его вперед толкает? Он даже ногами не шевелит.

Ответить

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

Ответить

думаю ноги просто еще не анимированы и тут демонстрируется только сам эффект  

Ответить

Мне кажется логичным. Предполагается, что удар нанесен с большой силой или чем-то тяжелым. Если представить, что этот шарик весит 20 кг, то всё выглядит именно так, как должно быть.

Ответить

Круто!
Всё-таки дальше хотелось бы посмотреть на врагов и их поведение.
Потому что на одних эффектах далеко не уедешь :)

Ответить