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

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

2
AStarを調整して到達不能な宛先に最も近い場所を見つける
私はJavaでAStarを実装しましたが、選択した目的地に到達できる障害物があるエリアでも問題なく動作します。 ただし、目的地に到達できない場合、計算された「パス」は、最も近い場所(到達できない場所)への経路ではなく、ランダムパスになります。 AStarを調整して、到達不可能な目的地に最も近い場所へのパスを見つける実行可能な方法はありますか?

5
パスファインディングにおける状況認識
たとえば、ロックされたドアや鍵など、特定のアイテムが収集された後にのみ特定の通路が開かれるダンジョンを通る最短の道を見つけなければならなかったとします。 「最短経路」という言葉に対する通常の腸の反応は明らかにA *です。しかし、A *はこのような環境では失敗します。信頼できるヒューリスティックを定義する多くの問題があり、さらに、ノードに複数回アクセスする必要がある可能性が高いためです。これは、従来のA *では不可能であり、ヒューリスティックを困難にします。 私が考えたのは、ダンジョンの始まりから終わりまでの道を探すことだけで、ブロックされたドアは無視されます。このパスが見つかると、道を塞いでいるドアごとに、適切なキーを探してドアに戻る追加のパスが検索され、ドアに到達する前に通過します。ドアを開くために必要なキーへのパスが、最初に開く必要がある別のドアによって再びブロックされる状況を処理するために、まったく同じシステムが使用されます。 私の解決策で私が見る大きな問題は、アイテム取得のパスを含むすべてのパスが見つかった後、目標から遠い他のブロックされたドアが存在する可能性があるため、エージェントが移動した総距離が可能な限り最小ではない可能性があることですしかし、適切なキーをはるかに簡単に利用できます。A *は、ブロックされたドアが単に無視される最初のパスでこれらのドアを無視します。 私はこれを解決しようとする最初のものではないと私は確信しています。問題についてのいくつかの入力をいただければ幸いです。
11 ai  path-finding 

2
遮断のベクトルを計算する方法は?
2次元空間と1つの友好的な宇宙船が静止していて、1人の敵が実際の位置、速度、方向がわかっている友好的な船に直接移動していません。 友好的な船は、敵と戦うために射程内にそれ自体を入れたいと思っています。 実際には、実際の位置を移動する船に直接ベクトルを設定し、フレームごとに再計算して、ある種の「丸い」飛行経路を作成しています。 私が欲しいのは、敵がそれまでのコースを変更しないと仮定して、射程距離に到達したときに敵が(おそらく)持つであろう位置に直接直線のパスを設定することです。 最初の「単純な」実装として、友人がすぐに0から最大にスピードアップできると想定すれば十分です。 優先される実装は、友人の加速機能を考慮したものであり、速度のためにインターセプトが不可能である場合を知っています。静止状態からだけでなく、あらゆる始動速度で機能するはずです。プラスは、それがブレーキングさえ考慮している場合です(光速での戦いは、与えられた宇宙では非常にエネルギー効率が悪いです)

1
三角測量A *(TA *)パスファインディングアルゴリズム
Demyenが彼の論文Efficient Triangulation-Based Pathfinding(p 。 彼は、通常のA *アルゴリズムを三角測量に適応させ、最終ノードに到達/拡張した後でも、他のより最適なパスを検索する方法を説明しています。通常のA *は、最後のノードが展開されると停止しますが、三角グラフで使用される場合、これが常に最適なパスであるとは限りません。これはまさに私が抱えている問題です。 この問題は、78ページの図5.4に示されています。 論文(80ページ)に記載されているgおよびh値の計算方法を理解しています。 そして、検索停止条件は次のとおりです。 if (currentNode.fCost > shortestDistanceFound) { // stop break; } ここで、currentNodeは、開いているリスト(優先度キュー)からポップされた検索ノードであり、fスコアが最も低くなります。shortestDistanceFoundは、これまでに見つかった最短経路の実際の距離です。 しかし、以前に見つかったパスを今後の検索から除外するにはどうすればよいですか?もう一度検索すると、明らかに同じパスが見つかるからです。クローズリストをリセットしますか?何かを変更する必要がありますが、何を変更する必要があるのか​​わかりません。この論文には疑似コードが欠けているため、参考になります。

2
携帯電話を別の方向に移動させるために、どのようなステアリング動作またはロジックを使用できますか?
ゲームでパスファインディングを使用して、暴徒を別のプレーヤーに誘導しています(追跡するため)。これはそれらをプレーヤーの上に乗せるために機能しますが、目的地の少し前に停止させたいので(最後から2番目のノードを選択しても問題ありません)。 ただし、複数のMobがモバイルを追跡している場合、「互いの上に積み重なる」ことがあります。これを回避する最良の方法は何ですか?モブを不透明でブロックされたものとして扱いたいわけではありません(そうでないため、ウォークスルーすることができます)が、モブに構造的な感覚を持たせたいです。 例: それぞれのヘビが私を案内し、「セツナ」を囲んでいると想像してください。両方のヘビが私を突き刺すことをどのように選んだかに注意してください?これは厳密な要件ではありません。少しずれていても大丈夫です。しかし、彼らはセツナを「取り囲む」べきです。

3
2Dタイルゲームでエンティティの可能な動きを見つける
このための特定の検索用語を思い付くのに問題がありますが、2Dターンベースの戦略ゲーム(FF:Tactics、Fire Emblem、Advance Wars)で可能な動きを見つけるにはどうすればよいでしょうか。 現時点では、地形(または衝突)についてはあまり考えていません。Xエンティティが5つのタイルを移動し、それよりもさらに2つのタイルを攻撃できることを理解するためにどのようなアルゴリズムを使用できるのか疑問に思っています。 私は、ダイクストラのようなものを使用して2点間の距離を見つけることができることを知っています。可能な実装の1つは、プレーヤーの場所から開始し、ダイクストラによって返される距離が移動カウントよりも大きくなるまでそこから分岐します。 誰かが私を正しい方向に向けることができるかどうか疑問に思っています(つまり、アルゴリズムの名前、テクニック、記事など)。

2
2Dパスファインディング-滑らかなパスを見つける
単純なパスファインディングを実装しようとしましたが、結果は、私が達成しようとしたものよりも満足できるものではありません。スタークラフト2のようなゲームのユニットはすべての方向に移動しますが、私の場合、ユニットは最大8方向(ウォークラフト1スタイル)にしか移動しません。 。Starcraft 2のように結果を得るにはどうすればよいですか?タイルサイズを縮小しますか? 写真では、障害物である岩のタイルの水平線と、緑のタイルとしてマークされた検出されたパスを確認できます。赤い線は私が達成したい道です。

3
障害物をパスファインディングするにはどうすればよいですか?
次の状況を最もよく表す方法-エージェント(@)は目標($)に到達する必要があります。パスは堀(~~~)によってブロックされています。障害物を横切ることを可能にするレーキ(または水上ウォーキングブーツのような他のデバイス)が利用可能です。 .....~~~... . ground ...=.~~~... = rake .....~~~.$. ~ water .@...~~~... @ agent .....~~~... $ goal 適切からpathfindする方法@に$何らすぐに利用できるパスがない?提供 私の道はコストだけでなく前提条件も持っているべきですか? UPD:問題は、目標にアクセスできず、レーキがマップ上の多くの可能なオブジェクトの1つにすぎないことです。次に質問は、「すくいが必要であることをエージェントに理解させるにはどうすればよいか」です。
10 ai  path-finding 

2
Warcraft 3のようなゲームで障害物をパスファインディング
タイルベースのマップでのA *検索を検討してください。単純明快なコードは次のようになります。そのセル内にユニットがある場合、そのユニットに到達できなくても問題ありません。 しかし、マップの解像度の問題があります。Warcraft 3を見ると、モンスターと構造には異なる半径があり、非常に近くを歩くことができます。これは、ベクターベースに似ていますが、これはどのように実装されましたか? また、Warcraft 3のように、移動障害物衝突検出を経路探索アルゴリズムに組み込むための標準ソリューションは何ですか?

7
A *をどのように再計画する必要がありますか?
A *アルゴリズムを使用してプレイヤーを探すパスファインディングボスの敵がいます。これはかなり複雑な環境で、Flashで実行しているため、長距離を検索しているときに検索が少し遅くなる可能性があります。プレイヤーが静止している場合は、一度だけ検索できますが、現時点ではすべてのフレームを検索しています。これには、フレームレートが低下するほど時間がかかります。 これに対する通常の解決策は何ですか?検索全体をやり直さずにA *を「再計画」する方法はありますか?少し頻度を下げて(0.5秒または1秒ごと)、パスに少し不正確さが生じることを受け入れる必要がありますか?

5
ローグライク迷路生成のための最長経路アルゴリズム
次のように、部屋で構成されたシンプルなグリッドベースのマップがあります(A =入り口、B =出口): 0 1 2 3 ######### 0#B###### ######### 1##### ######### 2### ### 3### ######### 4##### ######### 5 ### A# #### 6 #### ######### そして、プレイヤーが出口を見つける前にマップの大部分を探索しなければならないような方法で、部屋の間にドアのパスを作成するための適切なアルゴリズムを作成しようとするのに行き詰まっています。 つまり、AからBへの可能な最長のパスを見つけようとしています。 (この問題は非循環グラフでも解決できることは承知していますが、この場合は循環が発生する可能性があります。) 編集:塗りつぶしを使用して部屋が接続され、出口が入口から最も遠い部屋として選択されている別の例: 0 1 2 3 ######### 0#B## ##-##### 1#| ## ##### 2 ##### ###-#-### 3#| ### #-####### 4 #A | # ### …

4
NPCパスファインディングを信頼できるようにするにはどうすればよいですか?
NPCがマップ上をランダムに歩く「信じられないほどの」方法はありますか? 明らかなシナリオは、地下室を歩き回って警備している武装警備員です。「信じられる」パスを設定するのは非常に簡単です。 私が探しているのは、実際には小さな町の群集をシミュレーションする方法です。彼らが無目的のロボットではないように彼らの動きをどのように見せることができますか?


1
すべての通常の経路がブロックされているときに障害物を通る最短経路を見つけます
タワーディフェンスを作成していて、基本的なパスファインディングが機能していますが、問題が発生しました。 パスをブロック可能にしたいと思います。ブロックが発生すると、ランナーはブロックタワーを攻撃します。 だから私が必要なのは、最も重要なのは、塔の数が最も少ない最短経路を見つける方法です。 それ、どうやったら出来るの?

4
経路探索アルゴリズムを制限された動きに適応させる方法は?
エンティティがダイムをオンにできない車のような動きを想像してみてください。話し合いのために、速度が上がると毎秒90度回転できるとしましょう。これにより、多くの場合、最適パスが変更され、したがってパスファインディングが変更されます。「通常の」パスを通過することがまったく不可能になることさえあります。 これを覚えておくことができるパスファインディングアルゴリズムや移動計画アルゴリズムはありますか、または人気のアルゴリズムを適応させる簡単な方法はありますか?
10 path-finding  car 

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