敵AIのBT構築時の不明点
Posted: 2021/12/07 10:16
お世話になります。
敵AIを作成しているのですが、分からないところがあり、質問をお願いいたします。
下記の簡単な敵AIを作成しています。
・指定距離内にプレイヤが入ると近づいて、近接攻撃してくる。
・プレイヤから攻撃を受けると近づいて、近接攻撃してくる。
上記の条件をもとに、このようなグラフを作成しました。(リンク開くと画像が大きくなります。すみません。)
https://dotup.org/uploda/dotup.org2665237.jpg
真ん中5(右上の番号)の列が「指定距離内にプレイヤが入ると近づいて~」でして、
左端2の列が「プレイヤから攻撃を受けると近づいて~」でして、
G列のはどの条件も満たない場合となり、待機状態としています。
近接攻撃処理は仮でWaitアクションを置いています。
下記の質問をお願いいたします。
1.左端2の攻撃を受けたときの処理についてなのですが、敵から攻撃を受けたら(2)、指定時間プレイヤへ移動した後(3)、
プレイヤとの距離を見て近づくか中断するか(5)、という処理にしたいと考えました。
そこで、3にTimeLimitデコレータを付与したのですが、TimeLimitが失敗を返すと、親がSequencerなので、
右に流れず想定した結果となりません。
一方、EnemyMoveToPlayerのStopOnEndを満たせば、右に流れるので問題ありません。
これはどのように解決するのがよさそうでしょうか。
2.5,6,7と、9,10,11が全く同じなのですが、重複箇所を共通化できる方法はありますでしょうか。
例えば5, 9にSubBehaviourTreeを置いて、それぞれが同一の子階層を参照する、等はできますでしょうか。
3.ビヘイビアツリーを知ってからまだ間もなく、考え方的に合っていますでしょうか。
とくに重複箇所が気になってしまいしっくりきていません…
お忙しいところ恐縮ですがよろしくお願いいたします。
敵AIを作成しているのですが、分からないところがあり、質問をお願いいたします。
下記の簡単な敵AIを作成しています。
・指定距離内にプレイヤが入ると近づいて、近接攻撃してくる。
・プレイヤから攻撃を受けると近づいて、近接攻撃してくる。
上記の条件をもとに、このようなグラフを作成しました。(リンク開くと画像が大きくなります。すみません。)
https://dotup.org/uploda/dotup.org2665237.jpg
真ん中5(右上の番号)の列が「指定距離内にプレイヤが入ると近づいて~」でして、
左端2の列が「プレイヤから攻撃を受けると近づいて~」でして、
G列のはどの条件も満たない場合となり、待機状態としています。
近接攻撃処理は仮でWaitアクションを置いています。
下記の質問をお願いいたします。
1.左端2の攻撃を受けたときの処理についてなのですが、敵から攻撃を受けたら(2)、指定時間プレイヤへ移動した後(3)、
プレイヤとの距離を見て近づくか中断するか(5)、という処理にしたいと考えました。
そこで、3にTimeLimitデコレータを付与したのですが、TimeLimitが失敗を返すと、親がSequencerなので、
右に流れず想定した結果となりません。
一方、EnemyMoveToPlayerのStopOnEndを満たせば、右に流れるので問題ありません。
これはどのように解決するのがよさそうでしょうか。
2.5,6,7と、9,10,11が全く同じなのですが、重複箇所を共通化できる方法はありますでしょうか。
例えば5, 9にSubBehaviourTreeを置いて、それぞれが同一の子階層を参照する、等はできますでしょうか。
3.ビヘイビアツリーを知ってからまだ間もなく、考え方的に合っていますでしょうか。
とくに重複箇所が気になってしまいしっくりきていません…
お忙しいところ恐縮ですがよろしくお願いいたします。