Enemy and eyezone (ru)
Last updated
Last updated
Перейдите в папку AI/ и перетащите файл ai_enemy.tscn на сцену или просто включите параметр is_hostile у нашего дружелюбного NPC.
Затем дайте ему новый идентификатор профиля, который можно найти в assets/creatures/enemy.json. Это может быть bandit, stalker, soldier, mercenary. Давайте поставим "bandit".
Установим стартовую анимацию, если удерживать мышь на этом параметре, мы получим всплывающую подсказку с анимацией. Поставим shoot_sit_start, эту анимацию я использовал, когда враги прятались за ящиком или другими низкими препятствиями.
Далее наведите курсор на поле "Attack Animations" и получите всплывающую подсказку о доступных анимациях.
Для "встать - стрелять - прятаться" мы можем использовать только одну анимацию - "shoot_sit_up", но если нам нужны разные типы атак в зависимости от препятствий, например, "выглянуть влево сидя - стрелять - прятаться", а затем "встать вправо - стрелять - прятаться", то можно добавить "shoot_sit_left" и "shoot_sit_up_right".
Но пока мы просто используем "shoot_sit_up".
Давайте создадим ID зрительной зоны для нашего врага, чтобы, когда игрок окажется внутри области с таким же ID, враг с этим ID атаковал игрока.
Перейдите в папку ZONES/ и перетащите файл hostile_eyezone.tscn на сцену. Поместите зрительную область так, чтобы игрок оказался внутри нее.
В инспекторе укажите тот же ID, который вы создали для вражеского NPC. Это "test_eyezone".
Теперь, когда мы начнем играть, враждебный npc сменит скин на свой профиль и начнет атаковать игрока, пока тот находится в этой зрительной зоне.
Это может быть любое количество ИИ, использующих один и тот же идентификатор зрительной зоны. Они будут случайным образом атаковать игрока.
Пожалуйста, не дублируйте NPC и врагов (Ctrl+D), потому что эта функция забагована и приводит к поломке ИИ. Всегда перетаскивайте префабы на сцену! Все настройки можно редактировать сразу у многих выбранных NPC одновременно!