Як працює пошук маршрутів навігаційної сітки?


27

Я хочу зрозуміти, як працюють навмеші, як їх реалізувати і чому це краще, ніж інші типи систем маршрутизації.


Це з’явилося в ході моїх ранкових Інтернет-поневірянь: aigamedev.com/open/reviews/alienswarm-node-graph Можливо, варто прочитати :-)
coderanger

Цей підручник може бути корисним для користувачів Unity, які натрапили на цю публікацію: binpress.com/tutorial/unity3d-ai-navmesh-navigation/119
MichaelHouse

Відповіді:


6

Це так само, як ідентифікація маршруту в шляху, тільки замість точок шляху у вас є багатокутники, і ви можете зробити з нього кілька речей про навимеш:

  • Шлях-багатокутники - це ділянки, по яких особи можуть спокійно ходити
    • інші області, ймовірно, не повинні враховуватися
    • Точкові точки повинні робити стрибок віри в простір між ними; пам'ятаєте, що NPC застрягли в стінах? Це було в тих місцях, де дві шляхові точки були безпосередньо не пов’язані.
  • Там потенційно менше вузлів (оскільки багатокутники більші)
    • Тому це, швидше за все, швидше
    • Тому у нього потенційно менші потреби в пам'яті
  • Він більш реалістичний (тому що площа полігону теоретично містить нескінченну кількість точок)
    • На полігонах Ви можете виконати певну поведінку, щоб уникнути зіткнень між NPC

2

Як правило, вони використовуються з деяким вдосконаленим алгоритмом A * (враховує посилання для стрибків або переходів для 3D-маршрутизації). Таким чином, це насправді не інша система, ніж будь-що інше, це більше спосіб генерування нормальної мережі прокладання маршрутів безпосередньо з високополісичного (ну, відносно кажучи) середовища або місцевості. З будь-якої причини ми називаємо їх маяками тут, але ідея така ж, якийсь автоматизований процес працює на кожній карті і створює простий набір з'єднань, завдяки якому A * може працювати на них у розумні часові рамки. Якщо ви спробуєте простежувати доріжку на основі необроблених базових даних, це буде занадто повільним для гри через щільність сітки.


Хіба це не графік маршрутної точки, окрім зробленого на спрощеній сітці? Я думав, що навмеші дозволяють вам проходити шлях по багатокутнику.
Вогонь

Спрощений графік дозволяє робити шлях на далекі відстані, як правило, короткий діапазон обробляється іншим способом. Схоже, система Valve використовує сітчасті дані для обох, просто різними способами (маршрутизація супернодів проти локальних обмежень).
кодерангер

Простий набір з'єднань - це не навмеш? Я думав, що це називається навмеш, тому що ти робиш шлях по багатокутниках.
Пожежа

Я не думаю, що локальна та глобальна навігація тут є актуальною.
Пожежа

1
Набір сусідніх многокутників все ще є графіком так само, як і задані точкові точки, і ви можете робити A * на ньому таким же чином. Єдина відмінність полягає в тому, що коли ви знаєте, через які багатокутники ви збираєтеся рухатись, ви намалюєте лінії по-різному.
кодерангер

0

Є багато способів зробити це. A * і таке - хороший варіант, але бракує документації. Ви можете зробити щось на зразок розміщення вузлів квазі-випадковим чином навколо карти та перевірити, які вузли можуть бачити один одного та побудувати невелику мережу вузлів. Не найоптимальніший, але легкий для розуміння.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.