Урок 2 | Unreal Engine 4 Искусственный интеллект - Навигация ИИ / AI Move To
ฝัง
- เผยแพร่เมื่อ 11 ก.พ. 2025
- Это 2 урок из серии Искусственный интеллект в игровом движке Unreal Engine.
В этом уроке мы разберем навигацию для искусственного интеллекта,
А именно функции Move To для перемещения ИИ ботов по навигационной сетке - NavMesh.
Мы разберем автоматическое перемещение к указанной точке Target Point.
Преследование игрока ботом,
Перемещение ИИ между большим количеством точек -патрулирование,
Перемещение ИИ между случайными точками,
RayCasting для искусственного интеллекта.
Функции AI - Navigation которые мы используем в уроке:
Simple move to location
Simple move to actor
Move to location
Move to actor
AI Move To
Move To Location or Actor
Get Random Location in Navigable Radius
Get Random Point in Navigable Radius
Get Random Reachable Point in Radius
Разовый донат new.donatepay....
Patreon - / cyberstars
Google Play - play.google.co...
Facebook - www.facebook.c...
Instagram - www.instagram....
ВКонтакте - cyberst...
Сразу лайк!!!
Ещё и первый)
Кибер, у тебя один из лучших каналов по UE. Позволь поблагодарить тебя за твой труд!
P.S. Пожалуй это лучший канал)
Полностью согласен
присоединяюсь ... и к саундтрекам уже привык потихоньку)))
Второй день смотрю и просто кайфую как все понятно и оформлено! Музыка, голос, изложение. Спасибо!
В начале объявлять чему научишь в этом ролике очень удобно, спасибо
Один из лучших каналов на тему UE. Спасибо!
Шикарная серия. Отличный преподавательский поставленный голос приятно сочетается с несомненным профессиональным опытом. Спасибо огромное и продолжайте пожалуйста дальше!
я влюблён в эту подачу, это просто лучший канал.
Думаю что это не только лучший русскоязычный материал - но и в принципе один из лучших в мире! =) Автор талантище!
Ребята вы лучшие!) Спасибо вам большое, очень помогаете, уроки бесценные просто. Как научусь, а затем выпущу свою игру и заработаю на ней, скину процентик вам, обещаю!)
+100500 очков тебе в карму за то, что всё по делу чётко ясно без воды
Прекраснейшие уроки, я уже это писал, но напишу еще раз!
Move To функции можно присоединять и к Begin Play. но тогда при смене точки назначения Move To придется обновлять.
Разовый донат new.donatepay.ru/@cyberstars
Patreon - www.patreon.com/cyberstars
Очень информативные видео,спасибо за уроки по ue
Спасибо, как в UE4 вырос на твоих видосах.
Хороший урок, я как раз разбирал систему ИИ, с меня лайк, жду следующую видео
Боже я хочу создать свою игру ты очень помог спасибо огромное за такую точную информацию 🥰
Спасибо огромное! Без воды, все понятно! И главное что и зачем, как работает! Спасибо огромное!
Лайк автоматом друг ты крутые уроки делаешь когда 3 урок ,я их сразу скачиваю что бы были вдруг что забуду ))))жду 3 урока
Обычно около недели уходит на создание
@@cyberstars-entertainment Буду ждать дружище
Клавиша "Э". Отладка ИИ. Позволяет наглядно видеть как строится маршрут от бота до цели.
я заждался уже БЛАГОДАРЮ ОТ ДУШИ!
Инкремент не требует повторной записи. Get actor of class не вешают на event tick. Жду следующих уроков )
Дождались. Новая порция знаний подъехала
Вот смотрю какой урок и отзывы. А отзывы прям положительные. Опять всем все понятно. На самом деле клацаеш быстро, что приходиться часто отматывать назад. А те кто пишут положительные отзывы, попробуйте на следующий день повторить урок самостоятельно. Так уверен, 100% хер у кого что получиться.
инкремент и так сохраняет переменную, т.е. не над было после ++ еще сетить переменную (время на ролике 14:44)
а так автор, продолжай в том же духе, очень круто объясняешь
Супер! Хотим следующий урок!
ты лучший ! главное не останавливайся )))
Спасибо очень хорошо сняты уроки!
Спасибо огромное за такие подробные уроки! Держи печеньку🍪
NavLinkProxy - поможет строить путь для навигации. Например чтобы бот мог спрыгивать с рампы, а не бежать обратно к ступеням.
Спасибо за полезный коммент
мы как раз это разберем в следующем уроке
Это не везде полезно, иногда лучше чтобы он не спрыгивал !
@@shoguneiraidenbaal359 но ведь об этом тоже надо знать))
А если по сюжету надо?!@@shoguneiraidenbaal359
Дякую)Крутий урок)
Отличное обьяснение!
Что делать если бот бежит к точке, но бежит без анимации? На UE5. Просто стоя "скользит" к точке.
Если кто столкнется. У Character (нашего AI персонажа) в дереве компонент есть компонента: Character Movement (CharMoveComp).
У неё в Details, в разделе Movement, нужно установить в true флажок Use Acceleration fo Paths.
@@Leurdeil Братишка спасибо , от души )
@@mygalaxy1442 лучший из лучших
Спасибо за урок!
Спасибо за урок Мне кажется тут DoN лишний, код и так вызывается в евент тике, главное следить за индексом точки
Полезно, мне нравится
Пасибо
Коллеги, пробую воспроизвести урок на UE5.1. Бот двигается, но играется IdleAnim вместо анимации движения при MoveToLocation или SimpleMovetoLocation. А если внутри бота применить AddMovementIntput, все нормально играется. Что ему не хватает?
а почему в некоторых случаях - боты не перемещаются, хотя есть волюм для навигации , и один и тот же класс персонажа - но в одном случае при подключении аи контролера, он перемещается, а в другом случае нет?
Спасибо
пасиб
14:45 необязательно "перезаписывать" полученный результат, инкрементируемое значение сразу присваивается переменной
На уровень закидываю NavMeshBoundsVolume и актор с растянутым (на большое расстояние) кубом (поверхностью для передвижения пешек с помощью AI) и
NavMeshBoundsVolume видит этот куб - ноды типа Move to Location работают корректно.
Но если я актор с растянутым кубом не закидываю на уровень, а генерирую в процессе, то NavMeshBoundsVolume не видит этот куб и ноды типа Move to Location не работают...
Как NavMeshBoundsVolume и RecastNavMesh заставить воспринимать заспавненные акторы?
Дело в том, что я в проекте вместо растянутого куба генерирую процедурную карту и закидывать ее на уровень не вариант, т.к. генерация мира все равно будет после создания самого уровня. Да и создание новых акторов будет работать некорректно...
с ходу лайк)
Всё классно, но зачем всё это вешать на EventTick который отрабатывает каждый кадр и 60 раз в секунду заставлять бота искать и перестраивать путь, если весь этот блупринт работает на Event BeginPlay? Вопрос риторический)
Так он же один раз срабатывает и всё, а тут он постоянно подаёт импульс
Скажите пожалуйста а у машины так можно сделать чтобы она сама искала путь и останавливалась в нужной точке я имею ввиду не самому логику блупринтами писать а через готовый блупринт типа АиМувТу? есть ли такие готовые блупринты или это только для кэрэкторов?
Для pawn. Павн любой объект которым можно управлят
Это оч важно. Оч мало уроков. Аи мув ту я знаю, а вот бт с атаками и прочие оч тяжело самому вникать
thx
Друг ты не продаешь уроки допустим мне нужно что то особенное и сколько это стоить будет ,с нпс друзьями связанное
Уроки не продаю. Но тем кто поддержывает меня на patreon я помогаю разобраься с личными проблемами в движке. В рамках своей компитенции
прекрасный видео урок!!! Подскажите как сделать так, чтобы NPC ходил по конкретным Terget Point, а не по всем что есть в сцене. Например у меня два NPC и мне нужно чтобы они ходили по своим маршрутам. А сейчас получается, что они ходят по одним и тем же точкам. ЕСть ли кая-то нода в которой прописываешь по каким точкам им двигаться? Спасибо ещё раз!!!
на каждого перса вешаю свой контроллер и у второго указываю индекс чтобы начинался не с нуля, а с четвёрки например. Получается, что он стартует к нужной мне точке, но потом продолжает двигаться к тем, которым не нужно идти.
Можно точкам теги присвоить
@@cyberstars-entertainment на 16:43 вы показываете какие ноды использовать, чтобы персонаж ходил по конкретным точкам (с помощью тегов). Показываете, что нужно использовать Get All Actor With Tag и Actor Has Tag. Скажите, пожалуйста, в какое место блок схемы логики нужно вставлять эти ноды, чтобы всё заработало. Ни как не могу понять(
разобрался, что Get All Actor With Tag ставим вместо Get All Actor Of Class. Скажите, пожалуйста куда вставляется Actor Has Tag в вашу схему. Спасибо!
Хорошо объясняешь! Инвентарь там вроде тема не раскрыта!
Добрый день. Большое спасибо за уроки. Не могли бы Вы сказать почему Симпл Мув Ту Актор не срабатывает в режиме Симулейт?
скиньте скриншот вашего блупринта,
можете в наш дискорт, тогда будет ясно в чем проблема
👍👍👍
20:47 - У меня нет функции "GetRangomLocationInNavigableRadius". Как это можно обойти?
Видео полезное.
UE 4.18
Тогда берите другую подобную функцию. Просто getRandomPoint....
@@cyberstars-entertainment Спасибо получилось.
22:14 - с функцией GetRangomReachablePointInRadius бот также завис на краю подиума.
22:01 - Не подскажете, что за мелодия тут играет?
Уже так устал. Использую пятую версию движка, но везде уроки по четвертой. Ну, ок. Делаю все один в один по первому уроку и все окей, персонаж передвигается. Но как только по второму уроку приказал двигаться ему к точке или другому персонажу (например к его второй копии), то он стоит и не двигается.
Через Begin Play по урокам иностранного ютубера делал ИИ оленю, чтобы он гулял по травке, убегал от игрока через AI move to, кушал травку, когда голоден, отдыхал, если устал гулять и опять же, все работает, кроме передвижений.
Возможно, у твоего персонажа нет movenment component. Либо используй класс character либо добавь в pawn элемент передвижения. (Не все поддерживают навигационную сетку. Используй FloatingMovenment)
Помогите, что делать если случайно удалил place actor, а в window не могу найти
Привет. Скажи(те), пожалуйста, в unreal engine добавили ли python??? Где-то такая инфа всплыла, а посмотреть в движке нет возможности. Заранее спасибо)
Это не "нативный" язык для ue4 но можно добавить
docs.unrealengine.com/en-US/ProductionPipelines/ScriptingAndAutomation/Python/index.html
@@cyberstars-entertainment но на нем же можно писать?
@@goverbilst252 На нем можно писать аддоны для ue4.
у меня почему-то боты собираются в одной точке, в центре карты, и не реагируют на Target ptr, в нулевые координаты карты прибегают, независимо от логики
Либо выбран target light, либо если через тег, то не в том месте указан. Нужно именно в раздел actor, а не tags
И это посмотрел
Доброго времени суток.
Насколько я знаю, получение ссылки на объект со сцены через GetAllActorsOfClass является плохой практикой. Есть ли какой-то иной способ получения ссылок на объекты со сцены?
Можно создать переменую с нужным объектом (ссылкой)
@@cyberstars-entertainment Да, спасибо. Так и сделаю.
А что за трэк играет 21:00?
у меня почему то не срабатывает анимация ходьбы у бота
Здравствуйте, cyberstars, не хотите ли создать дискорд сервер по ue4, где народ мог бы делится опытом, и задавать вопросы.
Здрасти) Уже есть, так сказать подумал о будущем) Правда он пуст, к тому же у меня нет времени сидеть там и отвечать на вопросы,
Но если вам это нужно , могу заняться этим , тут главное народ чтоб заходил , в противном случае там будет 2-3 человека которые потом уйдут не получив информации которую искали
@@cyberstars-entertainment, можно ссылочку)) Конечно это очень важно.
@@IlyaP-l6k discord.gg/9YMJCKzg
@@cyberstars-entertainment срок истек
Автор, как называется программа для создания игр скажи пожалуйста
Оба программы один для создания и другой для построения
Это точно Unity
Unreal engine
У тебя есть много опыта бро! Я тоже хочу
Весь мой опыт в моих роликах)
Я не понимаю, почему у меня не работает? Помогите пожалуйста
жду срочно урок как заставить бота атаковать игрока рандомными ударами с анимациями
Слелай ии которий будет реиагироввть на звуки
Cyberstars - Как создать игру
ХАХАХАХАХАХ ХАХАХАХАХАХАХАХАА СЛУШАЮ ТВОЙ ВИДОС И ЧЕТО ПОДУМАЛ О РОССИЙКСКИХ ЧИНОВНИКАХ И ТЫ ТУТ ГОВОРИШЬ С 1:12 ДО 1:22 ХАХАХ РЖМ
Киборг
А у меня не Do n
Я 8
Складывается ощущение, что все тупо посмотрели ролик, не попытавшись повторить, у меня нихера не получилось
Провери вашу схему еще раз. Зачастую дьявол кроится в мелочах
какая у тебя проблема?
код рабочий, все примеры проверил.
Уря, очередная доза
Как справочник ты неплох, но программист из тебя нулевой! Не знать, что инкремент уже делает set - это просто финиш и стыд.
Если я ошибся в чем то ,это не значит что я нулевой программист
Еслиб программисты не ошибались то понятие как баг не существовало ,
где вы видели программу без багов!!? - это всё мелкие недочеты которые со временем фиксят,
"Сильное заявление" говорить что кто то ноль в программировании и за повторной перезаписи переменной
Давай братан создай свой канал по ue4 и мы посмотрим какой ты программист
@@cyberstars-entertainment Повторил вашу логику и кажется нашел баг. В вашем примере, персонаж движется довольно быстро, а радиус таргет поинта не большой. Поэтому бот успевает быстро выбежать и все работает. Если же он начнет двигаться медленее, то пока он не выйдет из радиуса таргет поинта, он будет продолжать инкрментить ваш индекс таргет поинта. Короче он побежит после этого к 3, а не к 2.
спасибо
👌👌