経路探索および障害物回避について質問です。
マップは3Dですが3Dの経路探索は難しすぎてよくわからないので
Doubleの値をInt値にして、2D情報(X座標、Y座標)だけで計算しています。
現在A*で経路探索を行っています。
プレイヤーとNPCを同条件にしたいため、障害物情報は持っていません。
まずマップ探索として、ランダムに移動させて障害物にぶつかったら登録していき、
次からはぶつからないようにするという処理を行います
ここまではいいのですが、マップ探索が終わった後が問題となっています。
まず第一の問題点が最短距離なので、障害物に沿って移動する感じなので不自然です。
最短距離じゃなくていいのでなめらかな移動で毎回微妙に違う経路にしたいです。
そして第二の問題点が一番の悩みどころなのですが、
前進しながら方向転換しているため、ノードに到達してから次の経路へ方向転換すると、
指定ノードへいつまでも到達できない(ぐるぐる指定ノード周辺を回ることになる)ので
指定ノードへ一定距離内に入ったら到達という判定にして次のノードへ移動します。
これならきちんと移動できるのですが、
このせいで経路計算も障害物登録がきちんとできていてもぶつかって抜け出せなくなりはまってしまいます。
経路問題って結構同じところで詰まるんじゃね?と思って必死にぐぐったのですが、
A*の経路計算くらいしか載ってませんでした。
何か妙案ありませんでしょうか?