Быстрый способ сделать AI врага в UE5

Чтобы создать базовый вражеский искусственный интеллект создаем новый блюпринт - Character, с названием AI_BP.

Picture3.png

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

Picture4.png

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

2023-08-18_12-00-12.png

Добавляем PawnSensing Comonent

2023-08-18_12-12-03.png

Меняем угол обзора на 60, например

2023-08-18_12-13-53.png

Добавляем ивент на то, когда в угол зрения попадает актор Pawn

2023-08-18_12-15-31.png

Добавляем булевую переменную IsSeePlayer и на ивент OnSeePawn ставим ей значение True

2023-08-18_12-18-34.png

Создаем новый кастомный ивент FollowPlayer и запускаем его после установки переменной IsSeePlayer

2023-08-18_12-21-27.png

На ивент FollowPlayer нам нужно прикрепить возможность данного блюпринта двигаться за игроком. Добавляем ноду Branch для проверки переменной IsSeePlayer, если она верна - запускаем ноду AI MoveTo

2023-08-18_12-23-57.png

В ноду AI MoveTo надо подать два входа. Ссылку на себя на плюпринт BP_AI, через функцию self. И TargetActor - на блюпринт игрока. Это можно сделать двумя способами - взяв значение из ноды OnSeePawn или через GetPlayerCharacter

2023-08-18_12-28-21.png

Добавляем в сцену BP_AI и NavMeshBounds Volume, увеличив его по размеру сцены.

2023-08-18_12-36-14.png


Для того, чтобы подключить анимации к перемещению BP_AI нам понадобится BlendSpace1D и AnimBlueprint. Назовем их ABP_AI и BS_LocoAI

2023-08-18_12-48-58.png

2023-08-18_12-53-47.png

Блендспейс позволит нам переключаться между тремя анимациями Idle, Walk и Run.

Параметр, который будет управлять блендингом - Speed. Поэтому задаем Name для Horizontal Axis - Speed. Максимальное значение этого параметра будет 600, такое же как Max Walk Speed в CharacterMovement компоненте BP_AI. Выбираем три анимации для вашего персонажного скелета - Idle, Walk и Run. Удерживая Ctrl вы можете блендить анимации на графе превью.

В AnimGraph недавно созданного ABP_AI вытаскиваем наш блендспейс и подключаем в Output Pose

2023-08-18_13-34-15.png

Для того чтобы управлять параметром Speed в аним блюпринте, делаем Promote to variable и получаем переменную Speed

2023-08-18_13-35-48.png

Переходим в EventGraph и кастуем к BP_AI из TryGetPawnOwner. Берем CharacterMovement компонент, получаем из него Velocity и преобразуем вектор в флоат, через фукцию Length. Это значение подаем в переменную Speed.

2023-08-18_13-41-47.png

Переходим BP_AI и назначаем компоненту Mesh - AnimClass - ABP_AI

2023-08-18_13-46-12.png

Теперь если вы нажмете Play персонаж будет бегать за игроком, когда он попадает в поле его зрения. Хорошо давайте добавим ему атаку.

В BP_AI создаем новую булевую переменную CanAttack. Делаем бранч из MoveAI и если переменная CanAttack true, то ставим ей значение False, дабы избежать повторных атак, до завершения анимации атаки, которую мы выберем.

2023-08-18_14-28-28.png

Так же активируем CanAttack в ивенте OnSeePawn

2023-08-18_15-00-07.png

Для того, чтобы проигрывать анимационные монтажи, в ABP_AI в AnimGraph нужно добавить DefaultSlot

2023-08-18_15-02-15.png

Возвращаемся в BP_AI. После того как мы установили в ивенте FollowPlayer значение CanAttack на false, запускаем Delay на 0,1 секунду и после подключаем ноду Play Anim Montage, в ней выбираем монтаж с нужной нам анимацией.

2023-08-18_15-07-36.png


538 0 850 3
0
RENDER.RU