Unreal Engine 4
https://uengine.ru/forum/

как спавнить много AI при смерти последнего.
https://uengine.ru/forum/viewtopic.php?f=3&t=40571
Страница 1 из 1

Автор:  Totaljerkdace [ 19 авг 2019, 07:39 ]
Заголовок сообщения:  как спавнить много AI при смерти последнего.

Что имеем:
Есть арена, на арене есть герой (он же ГГ). Через некоторое время после старта уровня появляется волна противников. После убийства последнего противника должна спавниться следующая волна. Есть MainCharacter и AIcharacter. На данный момент разместил одного AIcharacter на поле для тестов.

Собственно что хотелось бы получить в ответ:
- как спавнить, к примеру, 10 персонажей из одного AIcharacter;
- как спавнить AIcharacter после смерти последнего на поле.

Буду благодарен вам за объяснение, а не отправку в "ссылку" (если только не с объяснением). Я как демку доделаю покажу тут результат своих трудов.

Автор:  Agny [ 19 авг 2019, 17:47 ]
Заголовок сообщения: 

Сначала должен вроде спавнится AIController, потом Character.
Два персонажа не может управляться одним AIController.

Изображение

Вроде так.

Ну можно проверку сделать есть ли на карте персонаж или нет с помощью ноды Is Valid, например.

Или можно использовать ноду Get All Actors With Tag. Врагов обозначить тэгом.
Нода будет выдавать массив. По длине массива можно будет определить сколько акторов с таким тэгом на карте.

Автор:  Totaljerkdace [ 29 авг 2019, 02:47 ]
Заголовок сообщения: 

разобрался со своей проблемой. делаю спавн врагов через кнопку на сцене. сперва ИИ не делал ничего, кроме ожидания. решение нашел в pawn класса character своего ии.

нужно было установить в графе "auto posses AI" значение "placed in world or spawned".
работать ии может и от одного контроллера, если это ии одного класса (из наблюдений)

Автор:  Totaljerkdace [ 29 авг 2019, 03:04 ]
Заголовок сообщения: 

может кому понадобится действия ИИ в БП, оставлю здесь.


Ai State - переменная типа Enum, в моем случае я назвал свой Enum "EAIstates". тут указывал состояния ИИ: Default, roam, chasing player, patrol.

RadiusRoamMove - добавил для изменения радиуса возможного движения врага в случайном направлении.

изменял скорость патрулирования и преследования: 150 и 450 соответственно (ЗЫ: скорость моего персонажа 600)

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/