Друзья, есть вопрос по созданию ИИ на принтах. А точнее по одному аспекту ИИ: обход препятствий без NavMesh'а. Как реализовать поиск кратчайшего пути обхода объекта в 3-ех мерном пространстве То есть на привычном лендскейпе мы польщуемся навигацией из специального компонента. А вот как сделать это все без использования сего чуда?
Расклад такой: есть космическое пррстранство, есть корабль, который бороздит это самое пространство. И вот на пути корабля встает астероид. А кораблику позарез нужно в пункт назначения! Как научить сей кораблик облетать астероид? И не просто облетать, а облетать по кратчайшему маршруту!
Использовать A* но 3д вариант, где учитываются все соседи, в т.ч. сверху и снизу. В 2д просмотр идет только 8шт соседей, в 3д их будет 26.
_________________ https://www.facebook.com/groups/uejob/
Использовать A* но 3д вариант, где учитываются все соседи, в т.ч. сверху и снизу. В 2д просмотр идет только 8шт соседей, в 3д их будет 26.
Чет я как не старался 16 насчитал. 8)
Это смотря в какой системе счисления считать =))
Ну как. Проверил по х потом перенес проверил по зеду, после пустил трейс в точку, если нет препятствий значь по прямой, если есть значит х в счёт берём. А квадратность хоть так хоть так видно будет при а*. 8) Нужно чет другое или строить путь со сплайна. Мм мм. Навмешь анриловский ведь можно юзать в две плоскости(дублировать квадратики на него). Это так.
я тоже соседних 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
я тоже соседних 26 вокселей насчитал... как 16 может получиться?
Ну как xy,zy(или x) 2 плоскости. Проверил горизонтально, разок вертикально, вот и 3д аи навигация. Их две ведь хватит чтоб сделать движение такое же как и у 26? Только управлять наверное удобней будет этим делом. П.с. Нужна диагональ сложи их.
Цитата:
А можно подробнее про проверку стандартными навмешами в анриле?
единственное A* в чистом виде может не подойти для космокорабля который курс должен менять зараннее а не облетать препядствие впритык, но его можно модифицировать. при чем если препятствие единичное , то можно проще способы придумать. Например: трейс по курсу корабля при попадание в препятствие трейсим по 90 градсов на минимальное облетаемое растояние а потом из этой точки в точку назначения, если все опять в препятсятвие упираются, удлиняем первый трейс на 2 потом на 3 и тд. для облета одиночных препятствий в незамкнутом пространстве будет довольно еффективно, и не тяжело. Но не универсально конечно.
В любом случае одними трейсами или а* не отделаться, если чет более-мение симпатичное нужно. 8)