これまでは、有限状態機械(FSM)や階層型FSMなどの単純なシステムを使用してAIの動作を制御してきました。このパターンは、非常に迅速に、または複雑なシステムで崩壊します。
行動ツリーについて聞いたことがあります。それらは次の明白なステップのように見えますが、動作する実装を見たことがないか、実際に実際に試したことはありません。
複雑なAIの動作を管理しやすくする他のパターンは何ですか?
これまでは、有限状態機械(FSM)や階層型FSMなどの単純なシステムを使用してAIの動作を制御してきました。このパターンは、非常に迅速に、または複雑なシステムで崩壊します。
行動ツリーについて聞いたことがあります。それらは次の明白なステップのように見えますが、動作する実装を見たことがないか、実際に実際に試したことはありません。
複雑なAIの動作を管理しやすくする他のパターンは何ですか?
回答:
私が重要だと思うのは、エージェントが何かを成し遂げる理由とそれを行う方法を分離することです。 目標志向のアクションプランナーはこれをうまく行いますが、他の解決策もあります。これにより、目標のバケットとアクションのバケットから選択できるので、エージェントを構築するための優れた柔軟性が得られます。
行動ツリーは、ソリューション全体(意思決定およびアクション)を網羅するように設計されているため、維持するのが難しい場合があります。
いずれにしても、知っておくべきテクニックの1つは、アクションリストアプローチです。最も単純なレベルでは、それはアクションオブジェクトの単なるリストであり、各アクションオブジェクトには、各フレームと呼ばれるupdate()メソッドがあります。ただし、これをすばやく拡張して、ブロックアクション、複数のアクションのレーン、子グループなどを許可できます。高レベルのFSMで構築できるほぼすべてのものを、アクションを使用して、よりモジュール化された、柔軟なデバッグ可能な方法で実装できます。動作アクションを使用してリストします。
キャラクターが実行できるすべてのアニメーション、パス検索、およびその他のさまざまな「もの」を管理するための便利なテクニックであることに加えて、動作アクションを作成することにより、優先順位ベースの意思決定システムを実装することは簡単です。
それらの使用方法に関するいくつかのメモは、このスライドデッキにあります:http : //sonargame.com/2011/11/01/new-game-slides/
AIプログラミングの知恵シリーズにも記事が掲載されていることを確認してください。