複雑なAIを管理しやすくするにはどうすればよいですか?[閉まっている]


11

これまでは、有限状態機械(FSM)や階層型FSMなどの単純なシステムを使用してAIの動作を制御してきました。このパターンは、非常に迅速に、または複雑なシステムで崩壊します。

行動ツリーについて聞いたことがあります。それらは次の明白なステップのように見えますが、動作する実装を見たことがないか、実際に実際に試したことはありません。

複雑なAIの動作を管理しやすくする他のパターンは何ですか?


ステートマシンを管理する方法はいくつかあると聞いた
jokoon

1
これはかなり漠然とした質問です。「複雑な」AIを管理する手法はたくさんありますが、特定の状況に最適な手法は、別の状況とは異なる場合があります。私は行動アクションリストのみを使用してかなり複雑なAIを実装しましたが、そのソリューションはRTSでは機能しません。私がRTSゲームで使用したテクニックは信じられないほど複雑でありながらエレガントですが、他の種類のゲームではまったく価値がありません。特定の種類のゲームまたはAIを念頭に置いている場合、それが何であるかを前もって述べると、より適切で洞察に満ちた答えが得られる可能性があります。
Sean Middleditch、

回答:


3

行動ツリーはAIを管理するための非常に優れた方法であり、Ai Game devはAIについて学ぶのに最適な場所です!CodeplexやAIGD独自のサンドボックスエンジンの実装(確かにかなり複雑で追跡が難しい場合もあります)などの場所に多数のサンプル実装があります。

昨年のゲームAIカンファレンスでは、プランナーについて多くの興奮がありましたが、今年はその多くが失われました。最善のヒントは、単純に始めることです。作業の80%を達成するための作業全体の20%は、ほとんどの場合完全に当てはまるようです


2

私が重要だと思うのは、エージェントが何かを成し遂げる理由とそれを行う方法を分離することです。 目標志向のアクションプランナーはこれをうまく行いますが、他の解決策もあります。これにより、目標のバケットとアクションのバケットから選択できるので、エージェントを構築するための優れた柔軟性が得られます。

行動ツリーは、ソリューション全体(意思決定およびアクション)を網羅するように設計されているため、維持するのが難しい場合があります。


2

いずれにしても、知っておくべきテクニックの1つは、アクションリストアプローチです。最も単純なレベルでは、それはアクションオブジェクトの単なるリストであり、各アクションオブジェクトには、各フレームと呼ばれるupdate()メソッドがあります。ただし、これをすばやく拡張して、ブロックアクション、複数のアクションのレーン、子グループなどを許可できます。高レベルのFSMで構築できるほぼすべてのものを、アクションを使用して、よりモジュール化された、柔軟なデバッグ可能な方法で実装できます。動作アクションを使用してリストします。

キャラクターが実行できるすべてのアニメーション、パス検索、およびその他のさまざまな「もの」を管理するための便利なテクニックであることに加えて、動作アクションを作成することにより、優先順位ベースの意思決定システムを実装することは簡単です。

それらの使用方法に関するいくつかのメモは、このスライドデッキにあります:http : //sonargame.com/2011/11/01/new-game-slides/

AIプログラミングの知恵シリーズにも記事が掲載されていることを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.