Немного прогресса по проекту
Немного прогресса по проекту. 👇
Пока было немного свободного времени, решил наконец заняться противниками и их "искусственным интеллектом".
Пока это ещё довольно базовая система
1. Навигация
На земле зелёным показана визуализация NavMesh — навигационной сетки Unreal Engine.
По сути, это карта областей, по которым AI может перемещаться. На её основе система навигации понимает, куда можно идти, какие участки доступны, как построить маршрут до нужной точки и т.д.
Без неё меху пришлось бы буквально объяснять каждый шаг. А так достаточно сказать: «Иди вот туда», и система сама построит маршрут.
2. Система восприятия
Меху добавил систему AI Perception — пока используется только зрение.
У него есть поле зрения и дистанция обнаружения игрока. Причём здесь есть интересный момент: я использую две дистанции.
Первая, меньшая — дистанция обнаружения. Если игрок попадает в неё и находится в поле зрения, мех его замечает.
Вторая, большая — дистанция потери цели. То есть после обнаружения мех может продолжать считать игрока своей целью, даже если тот немного отошёл.
Это позволяет избежать ситуации:
«Игрок сделал два шага назад — МЕХ ЗАБЫЛ, КТО ОН И ГДЕ НАХОДИТСЯ».Пока это только зрение, но в дальнейшем сюда можно добавить и другие источники восприятия.
3. Behavior Tree
Следующим слоем стал Behavior Tree — система, через которую удобно описывать логику поведения AI.
Пока дерево довольно простое, но уже позволяет собрать базовый боевой цикл.
Сейчас мех умеет:
3.1. Патрулировать
Ходит по заданной области и ищет игрока.
3.2. Обнаруживать игрока
Как только игрок попадает в условия обнаружения, мех переключается с патрулирования на боевое поведение.
3.3. Занимать позицию для атаки
После обнаружения мех пытается переместиться в нужную позицию, чтобы получить возможность атаковать.
3.4. Наводиться и стрелять
К меху уже подключена пушка. Она наводится на игрока и открывает огонь.
То есть сейчас получилась примерно такая схема:
Патруль → обнаружение игрока → выбор позиции → прицеливание → стрельба.
Для полноценного противника этого, конечно, пока мало. Но самое главное — уже появился рабочий фундамент AI, на который дальше можно навешивать более сложное поведение.
Что дальше?
Следующий этап — наконец сделать так, чтобы от этой пушки был какой-то ощутимый результат 😂
В планах:
система попаданий;
получение урона;
HP;
виджет здоровья;
реакция на попадания;
система смерти противника.
В общем, теперь у меня есть мех, который умеет ходить, видеть игрока и стрелять в него.







