小さな 2D ゲームでの経路探索には、単純なユークリッド距離ヒューリスティックに基づく A* アルゴリズムを使用します。私のゲームの世界は、障害物によって占有されているかどうかに関係なく、セルのグリッドとして表されます。A* を使用してパスを計算する必要があるキャラクターは、N/E/S/W だけでなく、(ブロックされていない場合) どの方向にも移動できます。
わかりました、それで基本的にはうまくいきます。ここで、A* ヒューリスティック関数に別のパラメーターを追加する必要があります。これは、各グリッド セルに関連付けられたコスト値です。このコスト値が高いほど、キャラクターはそのセルを避けようとする必要があります。
ただし、グリッド セルごとにこのコスト値のみを使用するようにヒューリスティック関数を変更することはできません。これは、A* ターゲット位置までのセルの距離が依然として重要であるためです。キャラクターはコストの高いセルを避けようとする必要がありますが、同時に、ターゲットの位置から離れすぎないようにする必要があります。したがって、セルの距離とそのコスト値の間で一種の「トレードオフ」が必要です。
理想的には、セルの距離とそのコスト値の間のこのような関係を簡単に調整/最適化できるソリューションを見つけて、ヒューリスティックを微調整できるようにしたいと考えています。
これを達成する方法はありますか?