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

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

3
加速度が制限されているオブジェクトのパスを計算するにはどうすればよいですか?
たとえば、車があり、車に特定の最小回転半径があり、その車を点aから点bまで運転したいが、車が点bに向いていないとします。ポイントbへのパスを計算するにはどうすればよいですか?ポイントbで方向を指定できることも良いでしょう(たとえば、私道に車を運転してからガレージに車を引き込みたいとします-芝生の上をドライブして車道に着いたとしても、あまり役に立ちません。横向きです:) ドキュメントへのポインタ(または名前だけでも)は完全に問題ありません-私は何も見つけることができません。 私の試みでは、それらは単純なケースで機能しますが、ポイントbが最小回転半径よりもaに近い場合などの状況では無残に失敗します。 たとえば、次のようなパス(太字のパス)をどのように決定しますか。 編集:私の実際の問題では、いくつかの単純なパスの制約がありますが、私はすでに機能しているA *アルゴリズムを用意していますが、それは瞬間的な方向変更を可能にするので、車が突然90°回転するのを見るのはばかげているように見えます彼らが転換点に到達したとき、ダイムで。

2
ナビゲーションメッシュ全体の「見通し線」の経路
ナビゲーションメッシュの視線を計算したい。 下の画像を見てください。黄色の線はA *のみの結果であり、赤い線は黄色の線を入力として使用する見通し線アルゴリズムの結果です。これで、ユニットは「ジグザグ」することなく直接移動できます。 その「視線」を計算するアルゴリズムは何ですか?

2
ドローンターゲティング
「ドローン」と2D平面上のターゲットポイントを想像してください。8つのパラメーターがあります。 P = my position Q = target position V = my velocity I = my moment of inertia w = my angular velocity s = my angular position T = max thrust U = max torque (ターゲットは静止しているとだけ言います) ドローンの仕事は、最大トルクと最大推力に従って、できるだけ早く目標に到達することです。これは2D平面のみであるため、トルクを適用する方法は2つしかありません。推力は、機体の向きに対して一方向にのみ進むように制限されており、ドローンを回転させずに狙うことはできません。抵抗を無視して、2Dの宇宙空間に漂っているように見せかけることができます。ドローンが時間間隔t(おそらく0.01秒ごとなど)で方程式をチェックし、パラメータを接続して、それに応じてトルクと推力を調整するとします。推力とトルクの方程式はどうあるべきですか?

2
GOAPシステムでのコストの見積もり
現在、JavaでGOAPシステムを開発しています。GOAPの説明はhttp://web.media.mit.edu/~jorkin/goap.htmlにあります。基本的に、A *を使用して、世界の状態を変化させるアクション間をプロットします。 すべてのアクションと目標を実行するための公正な機会を提供するために、私はヒューリスティック関数を使用して何かを行うコストを見積もります。他のすべてのコストと比較できるように、このコストを見積もる最良の方法は何ですか? 例として、敵から逃げるコストとそれを攻撃するコストの見積もり-コストを比較できるように計算するにはどうすればよいですか?
9 java  ai  path-finding 

3
実行時に動的環境で2Dナビゲーションメッシュを生成するにはどうすればよいですか?
A *をパスファインディングに使用する方法を理解したので、グリッドで使用できます。しかし、私のゲームの世界は巨大で、多くの敵がプレイヤーの方に向かって動いています。これは移動するターゲットであるため、グリッドシステムはパスを見つけるには遅すぎます。ナビゲーションメッシュを使用してノードグラフを簡略化する必要があります。 メッシュの「しくみ」の概念(頂点のノードやポリゴンのエッジの中心、あるいはその両方を通るパスを見つける)の概念を理解しています。 私のゲームは、実行時に手続き的に生成される動的な障害物を使用しています。 次の図のように、複数の障害物がある平面を取り、プログラムで歩行可能領域をナビゲーションメッシュのポリゴンに分割する方法に頭を悩ませることはできません。 どこから始めますか?アルゴリズムがマップを「ウォーク」するときに、以前に定義されたウォークアブルエリアをさらに分割する必要があると気付いたときに、ウォークアブルエリアのセグメントがすでに定義されているとき、またはさらに悪いことに、どうすればわかりますか? 必要に応じて、nodejsでJavaScriptを使用しています。

7
ウィキペディアA *パスファインディングアルゴリズムには時間がかかる
C#でA *パ​​スファインディングを正常に実装しましたが、速度が非常に遅く、理由がわかりません。私はopenNodesリストをソートしないように試みましたが、それでも同じです。 マップは80x80で、ノードは10〜11です。 ここからウィキペディアの疑似コードを取り出しました そして、これは私の実装です: public static List<PGNode> Pathfind(PGMap mMap, PGNode mStart, PGNode mEnd) { mMap.ClearNodes(); mMap.GetTile(mStart.X, mStart.Y).Value = 0; mMap.GetTile(mEnd.X, mEnd.Y).Value = 0; List<PGNode> openNodes = new List<PGNode>(); List<PGNode> closedNodes = new List<PGNode>(); List<PGNode> solutionNodes = new List<PGNode>(); mStart.G = 0; mStart.H = GetManhattanHeuristic(mStart, mEnd); solutionNodes.Add(mStart); solutionNodes.Add(mEnd); openNodes.Add(mStart); // …

5
タワーディフェンスゲームのA *実装でのパフォーマンスが遅い
定義済みのパスを使用せずに、タワーディフェンスゲームをFlashで作成しています。 私のグリッドは40x40(小さい?)ですが、A *は毎回再計算するときに苦労しています。そのため、再計算を簡単にするために独自の変更を加えたため、タッチされたセルの数は約900に減少しました(ルートの近くで変更した場合)。新しいタワーが設置されると、非常に短時間ですが検出可能な時間はフリーズします。 これは実装の問題ですか、それとも40x40が多すぎますか? 編集: 私のコードの構造: すべてのデータは、セルの2D配列に保存されます。 各セルには、パス方向の親(時計回りに1〜8)と、パス内の子のビットごとにエンコードされた配列(すべてのビットが子を表す)が含まれます。 検索は、ユークリッド距離の推定値を使用してA *によって実行されます。

3
次の最適な方向に向けたパックマンキャラクターAIの提案
まず、これはPacManのAIであり、ゴーストではありません。 アイコンの周りでPacManを再生するAndroidライブ壁紙を書いています。画面タッチによるユーザーの提案をサポートしていますが、ゲームの大部分はAIによって行われます。私はゲームのすべてのプログラミングを99%完了していますが、PacMan自身のAIはまだ非常に弱いです。PacManの次の移動方向を決定するための優れたAIの開発に協力を求めています。 私の最初の計画はこれでした: 各方向のスコアカウンターをゼロの値で初期化します。 現在の位置から開始し、BFSを使用して、キューに追加することにより、可能な4つの初期方向に外側に移動します。 キューから要素をポップし、それがまだ「見られていない」ことを確認し、それが有効なボード位置であることを確認し、対応する初期方向スコアに、以下に基づいて現在のセルの値を追加します。 ドットあり:プラス10 パワーアップ:プラス50 果物を持っている:プラスの果物の価値(レベルによって異なります) おびえた幽霊がいる:プラス200 幽霊がパックマンに向かっている:200を引く パックマンから逃げる幽霊がいる:何もしない ゴーストが垂直に移動している:50を引く セルへのステップ数に基づいて、セルの値にパーセンテージを掛けます。最初の方向からのステップが多いほど、セルの値はゼロに近づきます。 現在のセルから3つの可能な方向をエンキューします。 キューが空になったら、4つの可能な初期方向のそれぞれについて最高のスコアを見つけ、それを選択します。 紙の上ではそれは良さそうに聞こえましたが、幽霊はパックマンを非常に急速に取り囲み、1つが彼に到達するまで、彼は同じ2つまたは3つの細胞で前後にぴくぴく動いています。ゴーストプレゼンスの値を調整しても、効果はありません。私の最も近いドットBFSは、ゲームが終了する前に少なくともレベル2または3に到達できます。 適切なAIを開発するためのコード、考え、リソースへのリンクを探しています。できれば前の2つです。これを今週末に市場でリリースしたいので、ちょっと急いでいます。どんな助けでも大歓迎です。 参考までに、これは当初StackOverflowに投稿されました
9 java  ai  path-finding 

3
表示とパスファインディングで同じタイル構造を共有する必要がありますか?
タイル付きの2Dマップを表示する方法を知っています。 A *を使用してパスファインディングアルゴリズムを作成する方法を知っています。 これら2つのことは、構造またはクラスを要求します。私の質問は、表示とパス計算に同じ構造を使用していますか?一部のデータを追加するためのパスファインディング要求のノード構造:x位置、y位置、F、G、Hと親ノード。表示用のタイル構造は、ほぼ1つの情報、つまりタイルの値にのみ最適化できます。 タイルの表示とパスファインディングの両方を処理する大きなクラスを使用していますか、それとも別のメソッドを使用していますか?アドバイスありがとうございます!

2
Unity3dを介して新しいc#スクリプトを追加するときにVS soution Explorerを強制的に再読み込みしますか?
私はC#スクリプトを作成する(ときCreate -> C# Script)を介しUnity3d やからそれを削除Unity3d- Visual Studioショー私の警告ウィンドウ。 気に障る。 ウィンドウなしでソリューションエクスプローラーで「ReloadAll」を強制する方法はありますか?
8 unity  visual-studio  unity  google-play-services  google-play  physics  simulations  c#  unity  raycasting  unity  virtual-reality  savegame  arcade  c++  steam  ios  objective-c  databases  storage  opengl  vbo  vao  libgdx  scene2d  unity  animation  c#  path-finding  roguelikes  opengl  c++  glsl  2d  physics  phaser  selection  3dsmax  unity  collision-detection  c#  tilemap  isometric  unity  c#  2d  sprites  mouse  scripting  grid  c#  unity  libgdx  java  unity  playstation4  c#  c++  directx  dll  c++cli  libgdx  overlap2d  multiplayer  node.js  websocket  animation  unity  textures  unity  terrain  physics  unity  rotation  movement  transformation  monogame  windows  installer  shaders  unity  virtual-reality  unity  performance  frame-rate  profiler  google-play  appstore  trademark  java  android  libgdx  unity  unity-networking  unity  physics  software-engineering  unity  savegame  physics  2d  unity  unity  c#  unity-networking  textures  geometry  unreal-4  3d-modeling  java  android  libgdx  android  collision-detection  libgdx  rotation  legal  localization  patents  opengl  cubemap  sampler-state  2d  transformation  unity  c#  opengl  glsl  lighting  opentk  c++  collision-detection  physics 

1
(比較的)線形のダンジョンパスを生成するにはどうすればよいですか?
アクションサイドスクローラーのコンセプトを開発しています。必要なのは、(比較的)まっすぐなマップを生成する方法です。これはつまり… このマップが少しずれていても、1つの単純なルートに従っていることは明らかです。これで、迷走経路(ショートカット、または秘密の通路)も実装します。そのため、おそらく、3番目の円で囲まれた領域から4番目の領域に移動するには、メインパスと、より強力な敵で満たされた、より高速でより高い報酬が得られる秘密の通路があります。 ここで行き詰まりに達しました。いくつかのオプションを調査していますが、実際には何も進歩していません。この種のパスを生成するためにどのようなアプローチを使用できますか?これまでのところ、Java、C#、およびC ++で実験してきたので、プログラミング言語に縛られることはありません。同様に、特定のゲームエンジンに対する現在の依存関係もありません。

2
モバイルでの経路探索と衝突回避
現在、モバイルプラットフォーム(iphone5 +)用のDiabloのようなゲームを開発しています。 単純なA *検索でパスが見つかりますが、衝突回避を考慮する必要があります。 同時に約50体のモンスターが活躍するので、パフォーマンスは非常に重要です。 私はうまくいくかもしれないいくつかの方法を見つけました。 NavMesh + RVO リキャスト/迂回ライブラリが上うまく機能pathfinding部分が、その群衆シミュレーションは、迅速(30の物質については5ms以上)の限界に達します。 別のライブラリRVO2は問題ないようです(50エージェントで2ミリ秒未満)。ただし、ライブラリにはライセンスの問題があります。 フローフィールド +物理エンジン 多くのRTSゲームはこの方法を使用していますが、衝突を解決するには物理エンジンが必要なようです。多くのエージェントが共通の目標を共有していない場合、この方法は従来のA *パスファインディングよりもコストがかかる可能性があります。 ステアリング動作 +物理エンジン ステアリング動作には多くの概念が含まれていますが、機能するsimple avoidance behavior可能性はあると思います(正面に何かがある場合は左/右に曲がるだけです)が、この方法でも物理エンジンが連携する必要があります。 どちらを使用するかはまだわかりません。おそらく他のパスファインディングと衝突回避の方法が存在します。 PS Halo:Spartan StrikeはHavok AI(RVOベース?)を使用しますが、そのゲームには多くの敵がいなかったので、最初の方法(NavMesh + RVO)がモバイルプラットフォームでうまく機能するかどうか疑問に思います。

1
パスファインディング:タイルベースのナビゲーションメッシュ
タイルベースのリアルタイムRTSを開発しています。これはマップの例です: このマップは、それぞれ256タイルの4つの領域で構成されています。青いタイルは障害物を表しています。ユニットは標準の8方向に移動できます。ユニットはタイルにバインドされています。1つのタイルで1つのユニットを保持できます。 これらは私が探している理想的な道のいくつかの例です。典型的なA *のもの: 私の質問は、ナビゲーションメッシュはタイルベースのRTSに適用可能ですか?私は、ユニットが自由に動き、タイルのグリッドにバインドされていないゲームで使用されるナビゲーションマップだけを見てきました。この特定のマップでは、ナビゲーションメッシュはどのように見えますか?サンプル画像は素晴らしいでしょう。

1
スタークラフトの経路探索を行う方法は?
私はスタークラフト2のパスファインディングのようなものを実装する方法を理解しようとしています。群がったり、キューイングなどのすべての洗練された機能を探しているわけではありません。その他。しかし、私はスターファインダー1で使用されているものよりも優れたパスファインダーを求めています。 グーグル検索から私が行ったさまざまな答えは、ナビゲーションメッシュ上のA *と何らかの関係がある、および/またはある種の「可視性グラフ」を扱うことです。しかし、私は何をすべきかについて、いくぶん矛盾するか不明確な答えを得ました。 私が読んだことの1つは、三角形メッシュ(ナビゲーションメッシュ)の頂点に対してA *を実行することに関係しています。そして、どういうわけか私は方法を知らない「道をまっすぐにする」。しかし、それは最適性を保証するものではありませんよね? 私が持っていた別の質問は、スタークラフト2パスファインディングは、ユニットがコーナーを扱うときにポイントではなく、有限の半径を持つディスクであるという事実をどのように扱うのですか?また、アイドルユニットや他の移動ユニットなどの動的な障害に対処する方法。 検索結果でよく見られる一般的な超高レベルの概要ではなく、詳細な説明を探しています。 それが重要である場合、私はすでにパスファインディングに関するアミットのノートを見ました。私は聞いたが、計算幾何学:アルゴリズムとアプリケーションは読んだことがない。また、GDC 2011でのAIナビゲーションプレゼンテーションに関するブログ投稿では、Starcraft 2がnavmeshに制限付きのドロネー三角形分割を使用していると述べています。ブログの投稿ではBoidsステアリングと「地平線分析」について触れていますが、navmeshでコアパスファインディングがどのように行われるかについては正確には触れていません。


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