Bagaimana cara kerja penemuan jalur Navigasi Mesh?


27

Saya ingin memahami cara kerja navmeshes, cara mengimplementasikannya, dan mengapa lebih baik daripada jenis sistem jalur lainnya.


Ini muncul dalam perjalanan internet pagi saya: aigamedev.com/open/reviews/alienswarm-node-graph Mungkin patut dibaca :-)
coderanger

Tutorial ini mungkin berguna untuk pengguna Unity yang menemukan posting ini: binpress.com/tutorial/unity3d-ai-navmesh-navigation/119
MichaelHouse

Jawaban:


6

Ini sama dengan waypoint pathfinding, hanya alih-alih way-points Anda memiliki way-poligon dan Anda dapat menyimpulkan beberapa hal tentang navimesh darinya:

  • way-polygon adalah area tempat entitas dapat berjalan dengan aman
    • daerah lain mungkin tidak harus dipertimbangkan
    • titik-jalan perlu melakukan lompatan iman ke ruang di antara mereka; ingat NPC berhenti di dinding? Itu di tempat-tempat di mana dua titik arah tidak terhubung langsung.
  • Kemungkinan ada lebih sedikit node (karena poligon lebih besar)
    • Karena itu kemungkinan besar lebih cepat
    • Karena itu memiliki persyaratan memori yang berpotensi lebih kecil
  • Ini lebih realistis (karena area poligon berisi teori dalam jumlah tak terbatas poin)
    • Di poligon, Anda mungkin melakukan beberapa perilaku berkelompok untuk menghindari tabrakan antara NPC

2

Umumnya mereka digunakan dengan semacam algoritma A * yang ditingkatkan (memperhitungkan lompatan akun atau tautan terbang untuk penelusuran jalur 3D). Dengan cara itu sebenarnya bukan sistem yang berbeda dari yang lain, ini lebih merupakan cara untuk menghasilkan jaringan normal pathfinding langsung dari lingkungan atau medan yang tinggi-poli (well, relatif berbicara). Untuk alasan apa pun kami menyebutnya suar di sini, tetapi idenya sama, beberapa jenis proses otomatis berjalan pada setiap peta dan menghasilkan serangkaian koneksi sederhana yang dapat membuat A * berjalan di dalamnya dalam kerangka waktu yang wajar. Jika Anda mencoba mencari data yang mendasari mentah itu akan terlalu lambat untuk permainan karena kepadatan mesh.


Bukankah ini grafik waypoint kecuali dilakukan pada mesh yang disederhanakan? Saya pikir navmeshes memungkinkan Anda untuk melakukan pathing pada poligon.
Api

Grafik yang disederhanakan memungkinkan Anda melakukan jalur jarak jauh, jarak dekat biasanya ditangani dengan cara lain. Sepertinya sistem Valve menggunakan data mesh untuk keduanya, hanya dengan cara yang berbeda (supernode routing vs kendala lokal).
coderanger

Satu set koneksi sederhana bukan navmesh kan? Saya pikir itu disebut navmesh karena Anda melakukan jalur pada poligon.
Api

Saya tidak berpikir navigasi lokal versus global relevan di sini.
Api

1
Satu set poligon tetangga masih berupa grafik seperti set waypoint dan Anda dapat melakukan A * di atasnya dengan cara yang sama. Satu-satunya perbedaan adalah sekali Anda tahu poligon mana yang akan Anda pakai untuk menggambar garis secara berbeda.
coderanger

0

Ada banyak cara untuk melakukannya. A * dan itu adalah pilihan yang baik, tetapi kurang dalam dokumentasi. Anda dapat melakukan sesuatu seperti menempatkan node secara acak di sekitar peta dan memeriksa node mana yang dapat saling melihat dan membangun sedikit web node. Bukan yang paling optimal tetapi mudah dimengerti.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.