タグ付けされた質問 「navmesh」

2
タイルグリッドのナビゲーションメッシュを生成するにはどうすればよいですか?
私はまだ実際にこのプログラムのプログラミングを開始していませんが、とにかくこれをどのように実行するかを知りたかったのです。 タイルのグリッドがあり、すべて同じサイズで、一部は通過可能で、一部はそうではないとします。このグリッドからポリゴンのナビゲーションメッシュを作成するにはどうすればよいですか? 私のアイデアは、通過不可能なタイルを取り出して、そこからラインを延長してポリゴンを作成することでした...これまでのところ、これで終わりです。何かアドバイス?

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

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のこのメッシュ)、ノードからノードのみに続く最短パスであるものではなく、真の最短パスを取得します。ただし、一部のポリゴンを通過してノード/エッジをスキップできる場合、実際の最短ではありません。 また、ポリゴンに関する情報を保存することをどのように提案するかも知りたいです。作成したウェイポイントプロトタイプの例では、各ノードをオブジェクトとして使用し、そのノードから移動できる他のすべてのノードのリストを保存しました。ポリゴンでは機能しないと思いますか?そして、ポリゴンがオープン/トラバース可能かどうか、またはソリッドオブジェクトかどうかを確認するにはどうすればよいですか?ポリゴンを構成するノードを保存するにはどうすればよいですか? 最後に、記録のために:既に他のソリューションが利用可能であり、このゲーム以外でこのコードを使用するつもりはないので、私はこれをゼロから自分でプログラムしたいと思います。必然的に品質が低下します。

2
Time.deltaTimeを使用しているにもかかわらず、動きはフレームレートに依存しているように見える
Unityでゲームオブジェクトを移動するために必要な変換を計算する次のコードがありますLateUpdate。これはで呼び出されます。私が理解していることから、私の使用はTime.deltaTime最終的な翻訳フレームレートを独立させるべきCollisionDetection.Move()です(ただレイキャストを実行することに注意してください)。 public IMovementModel Move(IMovementModel model) { this.model = model; targetSpeed = (model.HorizontalInput + model.VerticalInput) * model.Speed; model.CurrentSpeed = accelerateSpeed(model.CurrentSpeed, targetSpeed, model.Accel); if (model.IsJumping) { model.AmountToMove = new Vector3(model.AmountToMove.x, model.AmountToMove.y); } else if (CollisionDetection.OnGround) { model.AmountToMove = new Vector3(model.AmountToMove.x, 0); } model.FlipAnim = flipAnimation(targetSpeed); // If we're ignoring gravity, then just …

4
3Dワールドのナビゲーショングリッドをどのように生成しますか?
この問題の解決策を見つけようとしています。3Dスペースの正方形の形をしたx、yのフロア座標にロックされた頂点のグリッドの形式でナビゲーションメッシュを構築しようとしています。しかし、私はそれを回避する方法を理解しようとして問題を抱えています。 リキャストライブラリを調べてみました。これはかなり堅牢な方法ですが、大きなマップとオープンスペースでは明らかに速度が低下します。また、高さマップを使用してワールドスペースの頂点とエッジを生成する方法もわかりません。 次に考えたのは、Unreal Engine 3が以前行っていた方法を実行することでした。 https://udn.epicgames.com/Three/NavigationMeshReference.html レイキャストを使用してメッシュを生成することでした。レイキャストを停止する方法がわかりませんでした。 だから...私の次のオプションはボックスで、おそらくボックスキャストでした。2の累乗のサイズで細分割されたボリュームを作成します。ボックスをグリッドに合わせ、直角プリズムを下向きに光線として発射します。地面の一部であるジオメトリに着地し、長方形が交差していない場合は、正方形をそのままにします。そして、ボリュームの境界に達するまで下に進みます。エッジをリンクする必要があるかどうかを確認するには、頂点の2つのペアの間の勾配がウォーク可能な勾配内にあるかどうかを確認し、これがtrueの場合はそれらをマージします。 私の主な問題は...これは非常に最適ではないようです。それを考えずに、推定では、プロセスは多層レベルのO(N ^ 3)です。かなり厄介なことができます。 そして最後のビットは、これらの正方形の長方形のグループを自動的に作成するためのものです。これを行う方法は完全にはわかりません。Unrealの実装は、それらをスロープで分離します。ただし、グリッド形式を維持しようとしています。したがって、それは完全に必要なわけではありません。大きな長方形のタイルを作成してパス検索プロセスをタイルごとに分割することに問題は残っています。タイルは大きすぎても小さすぎてもいけません。 だから質問は... このガードされたnavmeshを生成する効率的な方法は何でしょうか?そして、タイルを作成する良い方法は何でしょうか?
11 c++  tiles  navmesh 

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

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

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

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

2
ナビゲーションメッシュの欠点および/または制限は何ですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 3か月前に閉鎖。 ナビゲーションメッシュには多くのマテリアルがあります。それらは何であるか、ウェイポイントで構成されるグラフよりも優れています。しかし、明らかな時間以外は、ナビゲーションメッシュを使用することの制限とデメリットに関する情報はあまり見ていません。手動で作成する必要があります(Recastによって比較的解決されます)。 確かに、これは完全に「魔法の」テクニックではなく、欠点がありません。誰かが、ナビゲーションメッシュを使用することの制限と欠点、たとえばウェイポイントで構成されたグラフについて説明していただけませんか?または私を正しい方向に向けますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.