タグ付けされた質問 「path-finding」

ある地点から別の地点への移動経路を計画するために使用される方法。通常、障害物を回避します。

6
物理モデルを備えた船のAIコントロール
2D空間でフォローを実装する方法のアイデアを探しています。残念ながら、AI /パスの検索/自律制御についてはまだあまり知りません。 この船は自由に移動できるが、質量と勢いがあるとしましょう。また、外力がそれに影響を及ぼす可能性があります(爆発など)。プレイヤーはいつでも船の目標を設定でき、その場所に到達して停止するはずです。 物理学がなければ、これは簡単で、ただ方向を指して進むだけです。しかし、既存の勢いに対処し、その場で停止する方法は?船の配置を直接変更したくありません。 編集:明確にするために、船自体の物理学関連の数学は問題ではありません。

7
A *エージェントに他のエージェントを回避させるにはどうすればよいですか?
タイルマップにマルチエージェントA *アルゴリズムを実装しています。エージェントはX軸とY軸でのみ移動します。パスを計算するときに他の場所がどこにあるかをチェックすることで、それらの間の衝突を回避します。 エージェントが異なる方向から同じタイルを渡す必要がある場合を除いて、問題なく機能します。このような状況では、最適な解決策は、一方のエージェントが他方のエージェントの通過を待つことです。 また、北の回廊がない場合、経路探索は失敗します。 そのようなアルゴリズムをどのように実装できますか?

3
リアルタイムの動的経路探索?
現在、いくつかの経路探索の研究を行っています。シミュレーションは次のとおりです。開始点と終了点が表示された3Dシーンがあり、経路探索を支援するナビゲーションメッシュ、ウェイポイント、およびポリゴンを作成できます。 A *アルゴリズムとそのバリアントのいくつかを試しましたが、完全に機能します。しかし、今では「動的な」経路探索にもっと興味があります。たとえば、ポイントAからポイントBへのパスを見つけているときに、新しい障害物が突然現れた場合、アルゴリズムがすぐにパスを再計画できるようにして、最初から検索を開始しないようにします。 私はD *アルゴリズムを読んで、これが必要なものに適しているのか、それともやり過ぎだと思わないのか疑問に思っています。 したがって、私の質問は基本的に次のとおりです。リアルタイムダイナミックパスファインディングに最適なアルゴリズムは何でしょうか。または、代わりにどのような技術の組み合わせを使用できますか?


7
パーリンノイズによって作られた世界のスポーンユニット?
Perlinノイズベースのゲームで出会ったいくつかの問題があります。以下の添付のスクリーンショットをご覧ください。 あなたが見る白い領域は壁であり、黒い領域は歩行可能です。中央の三角形がプレーヤーです。 このゲームでは、物理学を実装して、テクスチャ(白または黒のピクセル)に描画し、それをCPUから取得します。 しかし、今は別の問題に直面しています。画面の端で、ユニット(またはクリープと呼びます)が常に出現するようにします。ここでのポイントは、最終的なゲームでは、プレイヤーがそこまで見ることができない「戦争の霧」があるということです。 画面の端のピクセルをスキャンして、その物理テクスチャが黒かどうかを確認し、そこにランダムに物を生成できると考えました。ただし、スクリーンショットをもう一度見ると、(左上隅に)クリープが生成されないようにする例があります(そこからプレイヤーに到達できないため) 。 どういうわけかGPUにこれらのスポーンスポットを決定させることは可能ですか、それとも別の方法ですか?画面の端にある提案されたポイントとプレイヤーの間にベクトルを作成し、10ボクセルごとにそれをたどって、そこにユニットをスポーンする前に壁が衝突するかどうかを確認することを考えました。 ただし、上記の提案されたソリューションは、CPUに負荷がかかりすぎる可能性があります。 この問題に関する提案はありますか? 注1 スポーンされるユニットについては、これらのユニットがプレイヤーに向かって走る際の壁の衝突を避けるために、いかなる形態の経路探索も使用したくありません。したがって、ユニットは画面の端に、プレイヤーに向かって直線的に歩いても壁と衝突しない場所に出現する必要があります。
16 xna  path-finding  hlsl  gpgpu 

2
部分的に観察可能なゲームマップ— A *は適切ですか?
私はゲーム開発についてほとんど知らないので、経路探索アルゴリズムに頭を悩ませようとしています。 この設定を検討してください:エージェントは2Dマップ上にあり、グローバルに認識されているオブジェクトへの最短パスを見つける必要がありますが、ローカルビジョンスコープ内の障害物に関する情報のみが必要です(つまり、直接の障害物のみが知られ、マップの一般的なレイアウトは不明です) )。 また、隣接する正方形への移動はすべて高価であり、経路探索アルゴリズムは移動の数を最小限に抑える必要があります。 計算効率も最も重要であり、精度よりも重要です。 A *はこのユースケースに適していますか?

1
不均一な惑星表面での経路探索
私の質問は、不均一な惑星表面での経路探索への最良のアプローチは何でしょうか? 背景情報 私は、6つの球体投影面の変位マッピングから惑星を作成しました。平面は、球形に投影される前に最初に立方体を形成しました。 各「球体投影立方体面」をグリッドとして使用し、簡単なA *アルゴリズムを使用して最適なルートを見つけることができるかどうか疑問に思っています。また、パスが登らないように変位の高さを考慮したいです。山など(これはA *アルゴリズム内の単なるヒューリスティックだと思います)別の考慮事項は、Unity3dの物理エンジンを活用して惑星の動きを実現し、重力を惑星の中心に向けることです。私の提案するソリューションでは、重力物理学とは独立してエージェントの動きを制御する必要がありますか? 私の質問をより明確にするために、これは私の現在の惑星体です。

6
AIが互いに異なるパスを取るようにする
AIがマップの端にスポーンし、中央に向かって走るトップダウン2Dゲームがあります。 A *とノードメッシュを使用してパス検索を実行しています。 現在、AIはマップの端のポイントでスポーンし、すべて同じパスをたどります。これは中心への最短ルートです。 今、私は彼らをもっと驚くほど面白く、お互いに異なる道を歩んでほしいと思っています。 私はすぐにこれを行うための2つのアイデアを考えることができますが、人々が頻繁に使用する他の方法またはより良い方法があるかどうかを知りたいですか? 1人の敵がスポーンして中心へのパスを生成したら、そのパス上のすべてのノードのコストを一時的に増やし、その後時間をかけてゆっくりと減らします。その後、後で出現する敵AIは、より広い道を歩むことを余儀なくされます。 上記のアプローチは、AIがますます幅広い道を歩むことにつながり、それでも非常に予測可能です。それで、地図の周りにいくつかの中間目標ノードも導入すると思いました。AIがスポーンすると、中間ゴールの1つをランダムに選択し、最初にそこに向かってからマップの中心に向かいます。これを上記のコスト増加のアプローチと組み合わせると、かなり良いように見えるでしょうか? AIがとる道を変え、説得力があり驚きに見えるようにするために、人々がどのアプローチが最も効果的であると感じましたか?

9
タワーディフェンスゲームのダイナミックパスアルゴリズム
私はタワーディフェンスを作っていますが、それには良いパスアルゴリズムが必要です。 私はダイクストラについて考えましたが、ダイナミックなものが必要です。1つのエッジが完全に再計算されずに削除または追加されたときに、それ自体を更新できる必要があります。 役立つ場合は、C#でコーディングしています。

4
A *戦術RPGのアルゴリズム?
私はC ++で非常に貧弱な戦術RPGを書くことに手を出しました。これまでのところ、2Dタイルマップがあり、ウィキペディアの擬似コードに基づいて機能するA *アルゴリズムを取得しました。 しかし、実際の戦術RPGは、平面上で最適なパスを見つけてそこに移動するだけではありません。通常、移動範囲は限られているため、登り降りする必要があります。Final Fantasy Tacticsをプレイしたことがある場合、これらはMoveとJumpの統計の影響を受けます。これは私が迷子になる場所です。ターゲットへの最適なパスを見つけるようにA *アルゴリズムを変更する方法はありますが、パスは非常に多くのタイルだけです。高さの違いを考慮して統計をジャンプするにはどうすればよいですか?ギャップを飛び越える方法を実装するにはどうすればよいですか? 役立つ場合は、現在、私のマップはタイルオブジェクトのベクターで表されています。各タイルには、北、南、東、および西のタイルへのポインターがあり、マップの端に沿ってタイルが存在しない場合、またはタイルが非通過可能に設定されている場合、nullptrに設定されます。

6
パス(座標のリスト)を歩いているときにキャラクターを滑らかにする方法は?
座標(A *アルゴリズムからの出力)のリストがあり、キャラクターが回転しながらこのパスをスムーズにたどるようにしたいと思います。 だから私はAのようなものを持っており、Cを取得したい これどうやってするの ? 編集 自分をもう少し明確にするために: あるノードから別のノードへの移動方法を既に知っているので、スムーズな方向転換にもっと興味があります。 編集 多くの人々は、この(私も)私は彼がゲームAI(物理学)の多くを論じダニエル・シフマンの「コードの自然」へのリンクを掲載しています便利な問題例えばステアリング行動見つけたようhttp://natureofcode.com/book/chapter- 6-自律エージェント/#chapter06_section8
15 c#  unity  path-finding 

1
A *ナビゲーションメッシュパス検出
だから私は、Greenfootと呼ばれるこのフレームワークでこのトップダウン2D Javaゲームを作り、あなたが戦うつもりの人のためにAIに取り組んでいます。彼らが世界を現実的に動き回ることができるようにしたいので、すぐに、他のいくつかのことの中で、何らかの経路探索が必要になることに気付きました。 2つのA *プロトタイプを作成しました。1つはグリッドベースで、ウェイポイントで動作するものを作成したので、障害物/建物の2D「マップ」からパスを作成できるノードのグラフに到達する方法を考え出す必要があります。実際の経路探索はうまくいくように見えます。私の開いたリストと閉じたリストだけがより効率的なデータ構造を使用できますが、必要に応じて必要なときにそれを取得します。 ai-blog.netのこの投稿に記載されているすべての理由で、ナビゲーションメッシュを使用する予定です。しかし、私が直面した問題は、ノードの任意の部分を移動する場合、A *がポリゴンの中心/エッジからの最短経路であると考えるものが必ずしも最短経路ではないことです。より良いアイデアを得るために、私はstackoverflowで私が尋ねた質問を見ることができます。 可視性グラフに関する良い答えを得ました。それ以来、私はこの本(Computational Geometry:Algorithms and Applications)を購入し、このトピックをさらに読みましたが、ナビゲーションメッシュの方が好きです(AmitのPath-Findingに関する注意の「複雑さの管理」を参照)。(補足として、最初と最後が隠されていない場合、Theta *を使用して複数のウェイポイントを1つの直線に変換できます。または、最後の前のウェイポイントにチェックを戻すたびに、直進できるかどうかを確認しますこれに) 基本的に私が欲しいのは、一度ファンネルアルゴリズムを通過させたナビゲーションメッシュです(たとえば、Digesting Duckのこのメッシュ)、ノードからノードのみに続く最短パスであるものではなく、真の最短パスを取得します。ただし、一部のポリゴンを通過してノード/エッジをスキップできる場合、実際の最短ではありません。 また、ポリゴンに関する情報を保存することをどのように提案するかも知りたいです。作成したウェイポイントプロトタイプの例では、各ノードをオブジェクトとして使用し、そのノードから移動できる他のすべてのノードのリストを保存しました。ポリゴンでは機能しないと思いますか?そして、ポリゴンがオープン/トラバース可能かどうか、またはソリッドオブジェクトかどうかを確認するにはどうすればよいですか?ポリゴンを構成するノードを保存するにはどうすればよいですか? 最後に、記録のために:既に他のソリューションが利用可能であり、このゲーム以外でこのコードを使用するつもりはないので、私はこれをゼロから自分でプログラムしたいと思います。必然的に品質が低下します。


3
六角形グリッド上の最短経路を見つける
私はいくつかのシミュレーション要素を持つターンベースのゲームを書いています。現在私がやっていることの1つは、パス検索です。私がやりたいのは、AI冒険者を1ターンごとに、現在のx、yとターゲットx、yを使用して、ターゲットに1タイルずつ近づけることです。 自分でこれを理解しようとすると、4つの方向を問題なく決定できます dx = currentX - targetY dy = currentY - targetY しかし、6つの方向のどれが実際に「最良」または「最短」ルートであるかを判断する方法がわかりません。 たとえば、現在の設定方法では、東、西、NE、NW、SE、SWを使用していますが、NEタイルに到達するには、NWを移動するだけでなく、Eastを移動してからNWを移動します。 私はこれがすべてとりとめのないことを願っています。リンクを1つまたは2つでも使用して、開始できます。私が見つけた情報のほとんどは、グリッドの描画と必要な奇妙な座標系の探索に関するものです。

2
3D RTSでグループ形成を実装するにはどうすればよいですか?
私は単一のユニットのパスファインディングの仕事を得ることができ、エージェントとエージェントの衝突を回避することができましたが、エージェントのグループをある場所に送信できるようにする必要があります。 これはこれまでの私のセットアップです: ウェイポイントパスファインディング 2つのノード間の最小距離は、エージェントに許可されている最大の境界球半径よりも少し大きいです。 エージェントは、clearpathに基づいてステアリング動作を行うことにより、他のエージェントとの衝突を回避します。 そのため、エージェントをグループ内のどこかに送る必要があります。グループリーダーを作成し、他のユニットに彼の位置にオフセットを与えることだと言っているいくつかの投稿を読みました。 しかし、問題は、グループ形成が達成できない場合はどうでしょうか?たとえば、長方形を形成したいが、ターゲットの位置に長方形のセットアップを作成できない構造が近くにあります。
14 path-finding  rts 

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