複数のマップ間の経路探索


7

複数のマップ間の経路探索に興味があります。屋内/屋外マップ、建物内の異なるレベルなどが考えられますが、主な制約は、異なるマップ間に1つ(または複数)の入口/出口ポイントがあることです。私は探しましたが、良い解決策を見つけることができませんでしたが、同様のシステムを使用するいくつかのゲームを知っています。

私はこのペーパーを見つけました- 同様の問題に対処しているように思われる車椅子ユーザーのためのルート計画に適用された階層的最短経路発見は、それは純粋に理論的です。

誰かが共有できるいくつかの経験、またはいくつかのヒントで同様のことをしましたか?


このステートメントを投機的にするようなケースを実装する必要がなかったので、答えはしませんが、マップのノードでさえもロードする必要があるという明白なもの以外に解決策があるとは思えませんはまだロードされていません(ウェイポイントまたはナビゲーションメッシュデータは、大きなマップでも数キロバイトになるため、問題ありません)。ノードがなければ、アルゴリズムが使用できる情報はありません。それ以外は、それはかなり単純なはずです-すべてのグラフを読み込み、それらを交差点(ドアなど)に接続します。編集:ああ、+ 1
TravisG '12 / 08/12

それについては同意します-ノードのロードが問題であるとは思いません-異なるマップがどのようにつながっているのかについてはもう少しインテリジェントです。あなたが言うように、多分それは標準アルゴリズム(A *?)を使用して、問題のすべてのマップをロードしてから、人工的にマップを接続する単純なケースでしょう。2つ以上の複数のレベルがあった場合、おそらくパス全体を必要としないので、2セットのパス検索を使用する必要があります-現在のマップからのパスのみ?
Martyn 2011

丁度。AIが実際にその前に立つまで「マップ」(建物またはA *が実行する必要のあるもの)を1つの大きなノードとして表す場合、おそらく最速です。その大きなノードへの最短経路を見つけ、そのサブマップのグラフ全体をロードして、より正確なパスを計算します。最初に一度にすべてを計算することは無駄なことです。なぜなら、その計算とそこで移動するAIの間には多くのことが起こり得るからです。
TravisG 2011

回答:


5

数年前に、超高層ビルで埋め尽くされた大きな地図があるはずのサイバーパンクをテーマにした「Jagged Alliance」クローンのモックアップデモについて、似たようなことをしました。それは愚かな考えでした、明らかに戦術的な戦闘のための地図は整然としていて簡単に理解できるはずです:)

より迅速なパスファインディングを実現するために、1つのグローバルマップがいくつかの個別の正方形の領域に分割されました。エリアの基準が決まったら、次に、隣接するエリアの各ペア間の「入り口」を見つけます。「入口」は、このエージェントがこのエリアにこのエリアに入ることができることを示す遷移ポイントです。

複数のフロアの建物の例では、各フロアは、フロア、天井、外壁によって境界が定義されたエリアになります。壁や床にある様々な穴、またははしごが入り口になるでしょう、それらがたくさんあるかもしれません。したがって、入口は基本的に、1つの領域から別の領域のパスノードにパスノードをリンクします。

入口を特定したら、各エリアを横断するすべての可能な方法を見つける必要があります。その結果、「エリアの入口と隣接するエリアの入口のマップ」が作成され、入口間のエッジがこのエリアを通る経路の長さを示します。

すべてがうまくいけば、1階に立っているエージェントは4階のその特別なボックスに行く道をすばやく見つけることができます。たぶん、複数のマップの問題で似たようなものが使用される可能性があるので、それが役に立てば幸いです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.