Полезное

Мы Вконтакте

Discord канал

#
Пред.
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 102
Друзья, есть вопрос по созданию ИИ на принтах. А точнее по одному аспекту ИИ: обход препятствий без NavMesh'а.
Как реализовать поиск кратчайшего пути обхода объекта в 3-ех мерном пространстве
То есть на привычном лендскейпе мы польщуемся навигацией из специального компонента. А вот как сделать это все без использования сего чуда?

Расклад такой: есть космическое пррстранство, есть корабль, который бороздит это самое пространство. И вот на пути корабля встает астероид. А кораблику позарез нужно в пункт назначения!
Как научить сей кораблик облетать астероид? И не просто облетать, а облетать по кратчайшему маршруту!

Премного благодарен за внимание и очень надеюсь на помощь.
https://cloud.mail.ru/public/Fw1P/QAg96Enq6
Аватара пользователя
Пользователь
Сообщения: 860
Использовать A* но 3д вариант, где учитываются все соседи, в т.ч. сверху и снизу. В 2д просмотр идет только 8шт соседей, в 3д их будет 26.
_________________
https://www.facebook.com/groups/uejob/
Аватара пользователя
Пользователь
Сообщения: 995
Andy_rst писал(а):
Использовать A* но 3д вариант, где учитываются все соседи, в т.ч. сверху и снизу. В 2д просмотр идет только 8шт соседей, в 3д их будет 26.

Чет я как не старался 16 насчитал. 8)
Аватара пользователя
Пользователь
Сообщения: 860
Vladimir488 писал(а):
Andy_rst писал(а):
Использовать A* но 3д вариант, где учитываются все соседи, в т.ч. сверху и снизу. В 2д просмотр идет только 8шт соседей, в 3д их будет 26.

Чет я как не старался 16 насчитал. 8)


Это смотря в какой системе счисления считать =))
_________________
https://www.facebook.com/groups/uejob/
Аватара пользователя
Пользователь
Сообщения: 995
Andy_rst писал(а):
Vladimir488 писал(а):
Andy_rst писал(а):
Использовать A* но 3д вариант, где учитываются все соседи, в т.ч. сверху и снизу. В 2д просмотр идет только 8шт соседей, в 3д их будет 26.

Чет я как не старался 16 насчитал. 8)


Это смотря в какой системе счисления считать =))

Ну как. Проверил по х потом перенес проверил по зеду, после пустил трейс в точку, если нет препятствий значь по прямой, если есть значит х в счёт берём. А квадратность хоть так хоть так видно будет при а*. 8) Нужно чет другое или строить путь со сплайна. Мм мм.
Навмешь анриловский ведь можно юзать в две плоскости(дублировать квадратики на него). Это так.
Аватара пользователя
Пользователь
Сообщения: 102
А можно подробнее про проверку стандартными навмешами в анриле?
Аватара пользователя
Пользователь
Сообщения: 2319
Цитата:
3д их будет 26.
я тоже соседних 26 вокселей насчитал... как 16 может получиться? https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_A*
единственное A* в чистом виде может не подойти для космокорабля который курс должен менять зараннее а не облетать препядствие впритык, но его можно модифицировать.
при чем если препятствие единичное , то можно проще способы придумать.
Например: трейс по курсу корабля при попадание в препятствие трейсим по 90 градсов на минимальное облетаемое растояние а потом из этой точки в точку назначения, если все опять в препятсятвие упираются, удлиняем первый трейс на 2 потом на 3 и тд.
Изображение
для облета одиночных препятствий в незамкнутом пространстве будет довольно еффективно, и не тяжело. Но не универсально конечно.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 995
Цитата:
я тоже соседних 26 вокселей насчитал... как 16 может получиться?

Ну как xy,zy(или x) 2 плоскости. Проверил горизонтально, разок вертикально, вот и 3д аи навигация. Их две ведь хватит чтоб сделать движение такое же как и у 26? Только управлять наверное удобней будет этим делом.
П.с. Нужна диагональ сложи их.


Цитата:
А можно подробнее про проверку стандартными навмешами в анриле?

Можно вот на столько. dynamic mesh ue4 8)
Аватара пользователя
Пользователь
Сообщения: 995
Snake писал(а):
единственное A* в чистом виде может не подойти для космокорабля который курс должен менять зараннее а не облетать препядствие впритык, но его можно модифицировать.
при чем если препятствие единичное , то можно проще способы придумать.
Например: трейс по курсу корабля при попадание в препятствие трейсим по 90 градсов на минимальное облетаемое растояние а потом из этой точки в точку назначения, если все опять в препятсятвие упираются, удлиняем первый трейс на 2 потом на 3 и тд.
для облета одиночных препятствий в незамкнутом пространстве будет довольно еффективно, и не тяжело. Но не универсально конечно.

В любом случае одними трейсами или а* не отделаться, если чет более-мение симпатичное нужно. 8)


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница