Инди
Андрей Торчинский
2729

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.

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

Гейм-дизайнер днём, инди-разработчик ночью.
{ "author_name": "Андрей Торчинский", "author_type": "self", "tags": ["\u0448\u0435\u0439\u0434\u0435\u0440\u044b","\u043e\u043f\u044b\u0442","\u0433\u0435\u0439\u043c\u0434\u0438\u0437\u0430\u0439\u043d","vfx"], "comments": 40, "likes": 187, "favorites": 86, "is_advertisement": false, "subsite_label": "indie", "id": 238054, "is_wide": false, "is_ugc": true, "date": "Sat, 24 Oct 2020 07:23:52 +0300", "is_special": false }
Объявление на DTF Отключить рекламу
0
40 комментариев
Популярные
По порядку
Написать комментарий...
18

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

Ответить
14

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

Ответить
6

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

Ответить
0

Так это классика. Получить урон от врага плюс получить урон от ямы с шипами )

Ответить
1

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

Ответить
5

Я в целом про эту фичу, когда удар персонажа двигает вперед.

Ответить
2

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

Ответить
0

Решением может стать разделение анимации торса и ног. И бленд ног с анимацией локомоушена (ходьбы/бега). Главное не забыть устанавливать скорость для локо при атаке.

Ответить
0

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

Ответить
5

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

Ответить
3

Сразу после эффектов займусь ИИ врагов. Честное-пионерскоее

Ответить
1

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

Ответить
2

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

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

Ответить
5

хайлайт на вертикальном взмахе кажется слишком ярким на фоне темной абилки. На правах критики от рандома, которой никто не просил.

Ответить
1

Мне эффект тоже показался слишком ярким

Ответить
0

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

Ответить
4

Раньше я смотрел на это как просто на ещё одну неплохую поделку, но теперь я и правда хочу поиграть. Сделай интересный мир, как в hollow knight, а то только персонажа показываешь 

Ответить
2

Всё будет, но всему своё время. 

Ответить
3

Жанр не мой, но идея с разными формами персонажа - классная. Здорово!

Ответить
–16

Почему игра выглядит как пародия на Детей против Волшебников?

Ответить
4

Это шутка устарела ещё со времён второго дев-лога. Ты опоздал примерно на год, сорян ¯\_(ツ)_/¯

Ответить
1

Простите, я новенький.

Ответить
2

О, эксперты подъехали!

Ответить
–7

Лучше пиксельная графика, чем нелепо сделанный сел шейдинг.

Ответить
1

Выглядит на удивление хорошо.

Ответить
1

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

Ответить
0

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

Ответить
1

Класс! Просто отвал башки😉

Ответить
1

Слежу за процессом разработки с первых постов. Чем дальше, тем интереснее)) 
 Идею "облагородить" способности эффектами поддерживаю, так как, на мой взгляд, разница между достаточно внешне простыми анимациями способностей (вроде паучих ног или броска), сильно контрастируют с великолепными анимациями смерти и возрождения.

Ответить

Должен цветок

0

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

Не считаете, что нужно замедлить "скорость падения" персонажа, или хотя бы сделать её равноускоренной?
В том же Hollow Knight, по началу, особенно новичку, сложно среагировать из-за слишком быстрой скорости падения, а это основа передвижения, упор сложности на которой делать, думаю - не стоит.

Ответить
2

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

Ответить
0

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

Ответить
2

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

Ответить
0

Спасибо, учту

Ответить
1

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

Ответить
0

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

Ответить
1

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

Ответить
0

У меня такое чувство, будто он бежит по краю ванны

Ответить
0

Пролистал чуть пониже, на экране остался только кусок первой приложенной тобой гифки. Люто обосрался, потому что подумал, что по экрану ползут тараканы. 10\10 true gamer experience.

Ответить

Комментарии

null