This document is about: QUANTUM 2
SWITCH TO

GOAP(Goal Oriented Action Planning)

1. はじめに

GOAPのQuantumコードとvisual editorはともにベータ版です。

1.1 GOAPとは

GOAP(Goal-oriented action planning)は、2つの部分からなるAIの手法です。

  1. S現在の状況に応じて、指定されたゴールのセットから最も適したゴールを選択。
    ゴール(願望ともいう)には次のようなものがある。ターゲットを倒す、回復する、敵の旗を盗む、
    敵から逃げる、など。
  2. 指定されたアクションプールから、このゴールを満たすアクションのセット(プラン)を見つける。
    アクションには次のようなものがある。オブジェクトを見つける、ターゲットを見つける、オブジェクトを拾う
    (例:銃、敵の旗、ヘルスパック)、ポジションに行く、戦闘範囲に行く、撃つ

1.2 他のBotSDKのAIアプローチとの比較

強み

AIの動作が自明でない場合、プレイヤーが求めない限りパターンを発見することはより困難になります。
効用/関連性/コストを計算するAIのように、多くの値が考慮されるので、同じような状況でもAIは少し異なる行動をとる可能性があります。

弱み

2. Quantum GOAP コーディング

2.1 実装

2.2 GOAPエージェントの作成と更新

2.3 GOAP 状態

World State
World State
Goal Sample
Goal Sample

また、プランが見つからず(現在の状況では有効でない行動もある)、異なるゴールを選択する必要がある場合にも重要です。_

IsFinished がtrueであるか、エージェントのGOAP状態がゴールの Target State を含むとき、ゴールは満たされます。

Action Sample
Action Sample
Create Document
Create Document
GOAP Asset
GOAP Asset
GOAP Clean Document
GOAP Clean Document
Create GOAL
Create GOAL
GOAL Root Level
GOAL Root Level
GOAL Detailed
GOAL Detailed

これらの状態は、エージェントの目的を達成する方法でゲームの状態を変更するゴールを選択する計画プロセスで使用されます。

Add World Flag
Add World Flag
World States Added
World States Added

この小さな緑色の円をクリックすると、Negativeに変更することができます。その場合、円の色は赤になります。

World State Negative
World State Negative
Root Level World Flags
Root Level World Flags
GOALS Container
GOALS Container
Goal Renamed
Goal Renamed
Organised Goals
Organised Goals
Actions Container
Actions Container
Edit Slot
Edit Slot
Linked Action
Linked Action
Compile Buttons
Compile Buttons
GOAP Root Reference
GOAP Root Reference
GOAP Debug 1
GOAP Debug 1
GOAP Debug 2
GOAP Debug 2

訪問ノード数が多すぎる場合(例えば、単純なAIで100以上)、アクションの設計が正しくない可能性が高いです。
よくある問題は、アクションの条件や効果が曖昧すぎるため、プランナーが多くの選択肢を検討し、そのほとんどが有効な結果にならないことです。
もう一つ気をつけなければならないのは、行動の「コスト」です。Aはプランニングの過程で、コストを使って最適なアクションの順序を決定します。
そのため、アクションのコストが正しく設定されていないと、プランナーは正しい分岐に戻る前に多くの行き止まりを経験することになります。
ベストなのは、コストをアクションにかかる時間を秒数で考えることですが、現実的にアクションにかかる時間が短くても長くても、
ある程度の範囲(例えば0.5〜5、ほとんどのアクションは1前後)にして、アクション間のコストに大きな差が出ないようにすることです。

Back to top