#contents &ref(c88-ai_all.png,,20%); * 概要 [#q03f8336] - 敵の挙動。ビヘイビアツリーで構築。 - EQS使おうとしたけど、一回試して上手く動かなかったので断念 - マスター予定日当日に調整してたのもあって、途中からかなり雑に。 * Blackboard [#a33f61f2] * Service [#pb971504] ** HandgunCheckService、MissileCheckService [#sfdfd66d] - ハンドガン、ミサイルで撃たれているかをチェックするサービス。 + 「Get All Actors with Interface」等でリストを全部取得。 + actorの所属グループを観て敵が発射したものを収集 + 一番近い弾を避ける対象の弾としてBlackboardに保存 -- 弾と自身の射線上に障害物(背景)がある場合は除外する ** AttackShortService、AttackLongService [#n7e1b36b] - 近距離、遠距離用攻撃サービス + 「Event Receive Activation」でアクティブになったタイミングで、短距離、遠距離武器の発射ボタンを押し始める + 「Event Receive Deactivation」でサービスを抜けるタイミングで、短距離、遠距離武器の発射ボタンを離す ** BoostUseService [#b32b30ef] - ブーストボタン押しサービス + 「Event Receive Activation」でアクティブになったタイミングで、ブーストボタンを押す + 「Event Receive Deactivation」でサービスを抜けるタイミングで、ブーストボタンを離す + 「Event Recieve Tick」でブーストゲージが指定以下になったらブーストボタンを離す。一定以上回復したら再度押す。 * Task [#u8515aee] * 近距離 [#q74ea659] ** 仕様 [#r1b237f0] - 近距離範囲内 -- ハンドガンで撃たれているかをチェックする -- ミサイルで撃たれているかをチェックする -- 近距離用の攻撃セットを実行 -- 移動行動 --- ミサイルで撃たれていればミサイル用の回避行動をとる。+ブースト使用。 --- ハンドガンで撃たれていればハンドガン用の回避行動をとる。+ブースト使用。 --- 相手を狙いつつ現状維持行動 --- 相手に近づく ** ビヘイビアツリー [#c30020d3] &ref(c88-ai_short_01.png); - Blackboardの「Is Short Length」(近距離範囲内か)がtrueなら入る - サービスとして近距離範囲内では常時動かしたい処理を回す。 -- 「HandgunCheckService」ハンドガンで撃たれているかチェック -- 「MissileCheckService」ミサイルで撃たれているかチェック -- 「AttackShortService」近距離用の攻撃 &ref(c88-ai_short_02.png,,60%); - 優先順位として、 ++ ダメージの大きいミサイル回避 ++ ハンドガン回避 ++ ここに来ると狙われていないので適当な平行移動 ++ 左右に回避したら敵を狙えなければMoveToで近づく ++ 最後ここまで来てスルーすると近距離行動以外のノードに行ってしまうので、ここで終わらせる。強制的にSuccessを返す。 * 遠距離 [#q74ea659] - 近距離とほぼ一緒。近距離用の動作が遠距離になったり、パラメーターが一部違うだけ。 &ref(c88-ai_long_01.png); &ref(c88-ai_long_02.png,,60%); * 難易度調整 [#e39052c4] |