レーシングAI動作のパターン


9

それでは、スプラインベースのレーシングAIがあるとします。トラックの周りのブレーキングとステアリングの基本をすでに処理できると仮定します。

衝突回避、追い越し、ドラフティング、ブロッキング、その他の動作をどのように構成および実装して、車の競争力を維持しながら興味深いレースを行いますか?

論文/実装へのリンクは素晴らしいでしょう。


使用しているエンジンの種類
Harshal Benake

回答:


7

自律キャラクターの操縦行動を見たことがありますか?トラックに留まり、衝突を回避するために、「CrowdPathFollowing」アルゴリズムを検討します。ドラフト、パス、ブロッキングの「フローフィールドフォロー」動作を混在させることができる場合があります-フローフィールドをプレーヤーの過去のパスと予測されたパスに従い、現在の場所を中心に分割します。

      /-------------\
 ----<  [playerCar]  >-----
      \-------------/

これにより、AIは彼のすぐ後ろを追うようになり、ブロックの前に直接移動する傾向がありますが、クリーンなパスを奨励します。


1
ボイドについては承知していますが、参考にしてください。チューニングするには複雑すぎる方法で相互作用し、時折エッジケースの衝突が発生する多くの多くの動作(レーシングラインでの滞在、車の回避、ブロック、ドラフトなど)が少し怖いです。これは歩行者には問題ありませんが、移動を続ける必要があるレースカーには致命的です。
tenpn

私はこの多くのものを実装するOpenSteer APIを使用してきました。調整はかなり簡単だと思いました。あなたの場合、「SteerToAvoidCollision」の重みを非常に高くします。あなたがレースしている車両はわかりませんが、大多数のケースでそれが正しければ、エッジケースに起因する残りの偶発的なバンプまたはバッシュはおそらくかなり現実的だと思います...
AShelly

そのステアリングビークルか何かでしたか?左前方に2台、右前方に1台のような問題が発生するのが怖いです。平均的なベクトルの場合、右側の車両と接触する可能性がありますが、右に移動します。
tenpn

私は主に歩行者と一緒に働いていたので、それがうまくいくとは断言できません。覚えておくべきことの1つは、それが動作のブレンドである必要はないということです。階層化することもできます。したがって、衝突回避を他の何よりも優先させることができます。あなたが自動車を説明する場合、予測された経路が右側の自動車の経路と交差するまで、自動車は右に行くだけです。そのとき、そのコリオンが優先する力になることを避けます。特別な条件を追加することもできます。たとえば、Nフレームで安全なパスが見つからない場合は、急ブレーキを追加します。
AShelly 2010

2

パリでの今年のAI Game Devカンファレンスで、その一部についてのセッションがありました。ここにスライドと概要があります。

http://aigamedev.com/open/coverage/paris10-report/#session9


1
pptへのリンクは404です。> _ <
tenpn


ta-彼のアプローチは興味深いですが、私が現在使用しているコードは実際にはより高度です!
tenpn 2010

1

アンチパターン:スピードを調整する敵

残念ながら私はあなたにパターンを与えることはできませんが、アンチパターンを挙げたいと思います。AIドライバーの速度を人間のプレーヤーの速度に適応させようとしないでください。これの背後にあるアイデアは、アマチュアとプロの公平なレース条件を作成し、複数の難易度レベル(およびその実装)の必要性を放棄することです。

しかしながら、紙の上で良いように聞こえることは実際にはひどいものであることが判明し、MotoGPシリーズはこの振る舞いの実装に無残に失敗しました。最終的には、5 mp / hで運転している相手が数秒間静止し、ゲームが改善したかどうかを判断することができなくなった(フィードバックは非常に悪い)。


ありがとう。ここでは、バランスや難易度ではなく、興味深いレース行動について具体的に話していますが、ここではそれを覚えておきます。
tenpn

5
ほぼすべてのレーシングゲームには、プレーヤーをアクションに留めるため、またはAIを優れたプレーヤーに近づけるために、何らかの形のラバーバンディングが含まれています。秘訣はそれを微妙にし、いつオフにするかを知ることです。プレーヤーが気づいたら、彼らはだまされていると感じます。
wkerslake 2010

MotoGPの状況は、一般的なラバーバンディングの問題というよりは、それを取り過ぎる問題のように聞こえます。前方のドライバーが注意深く運転し、後方の車が必死にギャップを埋めようとすることは不合理ではありません。そのようにモデル化し、プレーヤーに透過的に提示することには価値があると思います。
Jibb Smart 2016

これはトピックに関する興味深い投稿です:gamasutra.com/view/feature/3920/…基本的に、彼らはあなたをAIレーサーの3つのグループに分け、レース中にグループからグループへと進みます。
Felsir
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.