パスファインディング:タイルベースのナビゲーションメッシュ


8

タイルベースのリアルタイムRTSを開発しています。これはマップの例です:

地図

このマップは、それぞれ256タイルの4つの領域で構成されています。青いタイルは障害物を表しています。ユニットは標準の8方向に移動できます。ユニットはタイルにバインドされています。1つのタイルで1つのユニットを保持できます。

これらは私が探している理想的な道のいくつかの例です。典型的なA *のもの:

ここに画像の説明を入力してください

私の質問は、ナビゲーションメッシュはタイルベースのRTSに適用可能ですか?私は、ユニットが自由に動き、タイルのグリッドにバインドされていないゲームで使用されるナビゲーションマップだけを見てきました。この特定のマップでは、ナビゲーションメッシュはどのように見えますか?サンプル画像は素晴らしいでしょう。


それだけの価値があるのですが、私がスタークラフトの「奇妙さ」をパスしたのは、2Dからアイソメトリック3Dに切り替えるという遅い決定が原因だったと聞いたことを思い出すようです-すべてのパスコードは2D地形を想定して書かれました!
レイヴンドリーマー

回答:


10

はい、ナビゲーションメッシュはタイルベースのゲームにも適用できます。ただし、これらは主に最適化として使用されます。たとえば、画像の左下をナビゲーションメッシュを使用するように変換しました。

ここに画像の説明を入力してください

この場合、それぞれの緑色の四角がナビゲーションノードになります。ご覧のとおり、これにより、A *が処理する必要のあるノードの数が大幅に減少します。ユニットは、これらの各ノードの中心に単純にパスできます。

これらのノードの生成は別の問題です。ノードの形成方法を決定することは複雑になる可能性があります。あなたがそれをどのように実装したいかについていくつかのアイデアを見つけるかもしれないサイトにいくつかの質問があります:

ポリゴンをさまざまなサイズのボックスに細分割する

2次元配列のクワッドパターンの識別

/programming/20220215/minimum-number-of-rectangles-in-shape-made-from-rectangles

このナビゲーションメッシュは、基本的に「最初のパス」の経路検出としても使用できます。ナビゲーションメッシュを通じてパスが見つかった場合、パスが存在することがわかります。これは、2つのポイントが接続されているかどうかを確認するためのより高速なテストです。


1
これが純粋なA *より優れていることを理解するのに苦労しています。たとえば、navmeshは、元の回答のグリーンパスのパスファインディング計算をどのように最適化しますか?
mario_sunny 2015

4
緑のパスには15個のノードがあり、メッシュパスには5個のノードがあります。これには、そのパスを見つけるときに分析する必要がある行き止まりの数も含まれていません。ナビゲーションメッシュのポイントは、必ずしも最も直接的なルートを作成することではなく、A *が検索する必要のあるノードの量を減らすことであり、A *の速度を劇的に向上させます。直接経路とより少ないノード(たとえば、すべての障害物の各コーナーのノード)の間のバランスを見つけることができる、ナビゲーションメッシュにノードを配置する方法があります。完成したパスで実行できる最適化もあります。
MichaelHouse

私は理解し始めています。グリーンパスはnavmesh最適化で異なって見えますか?あなたは、ユニットが終点に向かう途中で各長方形の中心に移動することを示唆しているようです。A *後の最適化によってパスが短くなることを示唆していますか?
mario_sunny 2015

3
はい、各ノードの中心を使用した場合、パスは異なって見えます。ただし、(各ノードのコーナーを使用できるように)中心以外のものを使用することを決定できます。または、ノードが4つの正方形よりも大きくならないようにすることもできます(ノードの数は少なくなりますが、ノードはジオメトリに近づきます)。または、パスを見つけた後、より直接的になるようにパスを最適化することもできます。nav-meshを最初のパスとして使用し、A *を使用して各ノードをパスすることもできます(ユニットの移動中に「移動しながらパス」できるため、時間の経過とともにパフォーマンスへの影響が広がります)。
MichaelHouse
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.