スタークラフトの経路探索を行う方法は?


8

私はスタークラフト2のパスファインディングのようなものを実装する方法を理解しようとしています。群がったり、キューイングなどのすべての洗練された機能を探しているわけではありません。その他。しかし、私はスターファインダー1で使用されているものよりも優れたパスファインダーを求めています。

グーグル検索から私が行ったさまざまな答えは、ナビゲーションメッシュ上のA *と何らかの関係がある、および/またはある種の「可視性グラフ」を扱うことです。しかし、私は何をすべきかについて、いくぶん矛盾するか不明確な答えを得ました。

私が読んだことの1つは、三角形メッシュ(ナビゲーションメッシュ)の頂点に対してA *を実行することに関係しています。そして、どういうわけか私は方法を知らない「道をまっすぐにする」。しかし、それは最適性を保証するものではありませんよね?

私が持っていた別の質問は、スタークラフト2パスファインディングは、ユニットがコーナーを扱うときにポイントではなく、有限の半径を持つディスクであるという事実をどのように扱うのですか?また、アイドルユニットや他の移動ユニットなどの動的な障害に対処する方法。

検索結果でよく見られる一般的な超高レベルの概要ではなく、詳細な説明を探しています。

それが重要である場合、私はすでにパスファインディングに関するアミットのノートを見ました。私は聞いたが、計算幾何学:アルゴリズムとアプリケーションは読んだことがない。また、GDC 2011でのAIナビゲーションプレゼンテーションに関するブログ投稿では、Starcraft 2がnavmeshに制限付きのドロネー三角形分割を使用していると述べています。ブログの投稿ではBoidsステアリングと「地平線分析」について触れていますが、navmeshでコアパスファインディングがどのように行われるかについては正確には触れていません。


他のユニットは邪魔にならないように押し出されます。次のポイントに到達しようとすると、それらが互いにぶつかり、互いに沿ってスライドするのがわかります
ラチェットフリーク

3
右の関連欄をチェックしていただければ、ほとんどの質問にお答えできると思います。たとえば、次のようにgamedev.stackexchange.com/questions/20392/... gamedev.stackexchange.com/questions/54361/... gamedev.stackexchange.com/questions/28041/...。基本的に、もう少し調査すれば、問題が解決するはずです。
MichaelHouse

回答:


10

Starcraft 2がインストールされている場合は、マップエディターを開いてパスファインディングを切り替えます。周りに建物やその他の障害物を配置すると、ナビゲーションメッシュがどのように構築されるかを確認できます。

実際、私はStarcraft 1でユニットが互いに干渉する方法が好きです。しかし、私はスターファインダー1で使用されているものよりも優れたパスファインダーを求めています。

問題はないはずです-Starcraft 1のパスファインディングはばかげていました。プログラマーの一人によるこのブログ投稿はそれについて話します。

私が読んだことの1つは、三角形メッシュ(ナビゲーションメッシュ)の頂点に対してA *を実行することに関係しています。そして、どういうわけか私は方法を知らない「道をまっすぐにする」。しかし、それは最適性を保証するものではありませんよね?

それは、AIを最適以上に馬鹿にしないことです。スムーズ化を少し適用しない場合、ユニットはノード間でジグザグに移動します。

パスの計画を立てるときは、ユニットが目標に到達するためにウォークスルーする必要のあるノードを確認し、次に、パスの途中で必要のない余分なノードを取り出し始める調整段階があります。つまり、静的な衝突なしにBを介してノードAからノードCに直接移動できるため、Bを完全に無視します。

これは、パスをまっすぐにすることになります。

検索結果でよく見られる一般的な超高レベルの概要ではなく、詳細な説明を探しています。

しっかりした説明が必要な場合は、これはすでに本でうまくカバーされています(実際に動作するゲームコードも)。そのため、いくらかお金を払う必要がある場合は、Programming Game AI By Exampleおよび/またはArtificial Intelligence for Gamesを確認してください。どちらも、これらのトピックについて深く掘り下げています。

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