回答:
私が知っていることから、「ダイナミックA *」の略であるD *アルゴリズムを見ることができます。このアルゴリズムは、動的な環境のパスファインディングを計算するために使用されます。ここでは、移動ターゲットを使用します。
:ここではターゲットパス発見を移動するためのD *を用いて紙だターゲットD * Liteの移動は、
犬が誰かを追い詰めるときに明らかに使用する「犬の曲線」アプローチを使用できます。彼らは、インパクトポイントが「将来」どこにあるかを計算し、その位置にまっすぐになります。
単純な近似的な方法は、線に沿ったものです:
A = NPC
B =ターゲット
T = B:s位置に到達する時間(B:s初期位置)
Bが「T」時間内にある場所を計算し(Bが同じ速度/角度で継続する場合)、代わりにそこに行きます。
距離が変化するため、これは完璧な方法ではありませんが、完璧なソリューションを作成するよりもはるかに簡単で、単に「B」に到達するよりもはるかに優れています。
カイロタンは、標準的な方法がないことに同意します。
私が仕事で見た方法の1つは、ターゲットが同じ方向に移動し続けると仮定し、パス検索アルゴリズムを実行するときにゴールの位置を変更することでした。つまり、A *ノードで2つのメトリックを保持する必要があります(単なるコストではなく、コストと時間)。
それよりうまくやることは非常に難しいです。実際にターゲットの揺るぎないパスについての知識がない限り、AIの2番目の推測またはターゲットの動作をシミュレートしてターゲットの場所とそのパスを推測するため、かなり難しいAIの世界に向かっています。この種のAIは、ゲーム理論に基づくリアルタイムのABゲームであり、3DゲームAIツールキットでは標準ではありません。
動的なパス検索を行う1つの方法は、エンティティにターゲットがどこに向かっているかを予測させることです。
これを行う1つの方法は、テイラー級数を使用することです。
ターゲットのパスを関数S(t)で経時的に呼び出します。Sは位置、tは現在の時刻、パスの近似値はA(f)、fは将来の日付です。 。
その場合、最も単純で最も愚かな近似はA(f)= 0です。
次に簡単なのはA(f)= S(t)です。tは現在の時刻で、fは未来です。これは、ターゲットが適切に停止することを予測しています。
3番目に簡単なのは、A(f)= S '(t)* f + S(t)です。ここで、S'はSの時間に関する導関数です。これは、ターゲットが加速なしで一定の速度で継続することを予測しています。
4番目に簡単なのは、A(f)= S ''(t)* f ^ 2/2 + S '(t)* f + S(t)です。これは、ターゲットが落下するボールのように一定の速度で加速していることを予測しています。
これは時間の変化の観点から言い換えることができますが、おそらくゲームにとってより便利です。今、Sは何でも構いません。X座標、Y座標、オブジェクト間の距離、角度などがあります。また、オブジェクトの将来のパスを予測するより良い方法があると思われるので、少し見てみましょう。
地形が適度に開いていて、ターゲットが追跡者からあまり遠くない場合、インターセプトステアリング動作を使用できます。基本的に、ターゲットの位置と速度を取得して、ターゲットの前にある、あまり遠くない、近くない位置を計算し、追跡者をそのポイントに向けます(それぞれ定期的に計算されます)。