Como funciona a localização de caminhos do Navigation Mesh?

27

Quero entender como os navmeshes funcionam, como implementá-los e por que é melhor do que outros tipos de sistemas de caminhos.

Fogo
fonte
Esta transformou-se no curso de minha manhã andanças internet: aigamedev.com/open/reviews/alienswarm-node-graph Talvez valesse a pena a leitura :-)
coderanger
Este tutorial pode ser útil para usuários do Unity que se deparam com esta postagem: binpress.com/tutorial/unity3d-ai-navmesh-navigation/119
MichaelHouse

Respostas:

6

É o mesmo que o waypoint, apenas em vez dos waypoints você tem polígonos e você pode deduzir algumas coisas sobre o navimesh:

  • polígonos-maneira são áreas em que as entidades podem caminhar com segurança
    • outras áreas provavelmente não devem ser consideradas
    • os pontos de referência precisam dar um salto de fé no espaço entre eles; Lembra dos NPCs presos nas paredes? Foi em lugares onde dois waypoints não estavam diretamente conectados.
  • Há potencialmente menos nós (porque os polígonos são maiores)
    • Portanto, provavelmente é mais rápido
    • Portanto, possui requisitos de memória potencialmente menores
  • É mais realista (porque a área do polígono contém, teoricamente, uma quantidade infinita de pontos)
user712092
fonte
2

Geralmente, eles são usados ​​com algum tipo de algoritmo A * aprimorado (leva em consideração os links de salto ou voo para busca de caminhos em 3D). Dessa forma, não é realmente um sistema diferente do que qualquer outra coisa, é mais uma maneira de gerar uma rede normal de busca de caminhos diretamente de um ambiente ou terreno com alto grau de poli (bem, relativamente falando). Por qualquer motivo, nós os chamamos de beacons aqui, mas a idéia é a mesma: algum tipo de processo automatizado é executado em cada mapa e produz um conjunto simples de conexões que podem ter o A * executado neles em prazos razoáveis. Se você tentasse encontrar os dados subjacentes brutos, seria muito lento para um jogo devido à densidade da malha.

coderanger
fonte
Este não é um gráfico de waypoint, exceto feito em uma malha simplificada? Eu pensei que navmeshes permitem que você percorra o polígono.
Fogo
O gráfico simplificado permite realizar percursos de longa distância; o curto alcance geralmente é tratado de outra maneira. Parece que o sistema da Valve usa os dados de malha para ambos, apenas de maneiras diferentes (roteamento de supernós x restrições locais).
coderanger
Um conjunto simples de conexões não é uma navmesh, é? Eu pensei que era chamado navmesh porque você usa polígonos.
Fogo
Não acho que a navegação local versus global seja relevante aqui.
Fogo
11
Um conjunto de polígonos vizinhos ainda é um gráfico, assim como os pontos de referência definidos, e você pode fazer A * da mesma maneira. A única diferença é que, depois de saber quais polígonos você irá percorrer, desenhe as linhas de maneira diferente.
Coderanger
0

Existem várias maneiras de fazer isso. A * e essa são uma boa opção, mas faltam na documentação. Você pode fazer algo como colocar nós quase aleatoriamente ao redor do mapa e verificar quais nós podem se ver e criar uma pequena teia de nós. Não é o mais ideal, mas fácil de entender.


fonte