AIガードテンプレ

「AIガードテンプレ」の編集履歴(バックアップ)一覧はこちら

AIガードテンプレ」(2011/06/16 (木) 17:42:44) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

・ガードステートについて  最終更新2008 4/13 これらはあくまでテンプレです。 &color(red){必ずRandomやP2BodyDistなどのトリガーを用いて調整して下さい。} 特にキャラのコンセプトなどに合わせることは重要だと思います。 あるいは紙装甲だからその分ガードを堅く・・・などといった配慮による調整もありますが。 けど立ち回りや切り返しなどがちゃんと出来ていたらあまり堅くなくても大丈夫な気はします。 『StateDef 120用ステート』 &italic(){&u(){EnemyNear,HitDefAttr中心のステート}} [屈み移行ステート] TriggerAll = AIフラグON TriggerAll = StateType != A (ChangeState専用)TriggerAll = Time > 0 Trigger1 = Enemy,NumProj > 0 || Enemy,NumHelper > 0 Trigger2 = EnemyNear,HitDefAttr = C,AA,AP || EnemyNear,HitDefAttr = SA,AP Trigger3 = EnemyNear,HitDefAttr = S,AA Trigger3 = EnemyNear,Time <= * Trigger3 = EnemyNear,Vel Y <= 0 Trigger4 = EnemyNear,StateType != S Trigger4 = EnemyNear,HitDefAttr = S,AA Trigger4 = EnemyNear,Time > * Trigger4 = EnemyNear,Vel Y <= 0 [立ち移行ステート] TriggerAll = AIフラグON TriggerAll = StateType != A (ChangeState専用)TriggerAll = Time > 0 Trigger1 = EnemyNear,HitDefAttr = A,AA Trigger2 = EnemyNear,HitDefAttr = S,AA Trigger2 = EnemyNear,Time > * Trigger2 = EnemyNear,StateType = S Trigger3 = EnemyNear,HitDefAttr = S,AA Trigger3 = EnemyNear,Time <= * Trigger3 = EnemyNear,Vel Y > 0 Trigger4 = EnemyNear,StateType != S Trigger4 = EnemyNear,HitDefAttr = S,AA Trigger4 = EnemyNear,Time > * Trigger4 = EnemyNear,Vel Y > 0 あとはこれを各ステート(130~155)用に修正すればOK。 TriggerAll = Time > 0はループを防ぐため急遽入れました。 ただしこれはあくまで暫定なのでもっと変わっていくと思います。 &italic(){&u(){P2StateType中心のステート}} [屈み移行ステート] TriggerAll = AIフラグON TriggerAll = StateType != A Trigger1 = P2StateType = A Trigger1 = EnemyNear,Vel Y = 0 Trigger2 = P2StateType = C Trigger3 = P2StateType = S Trigger3 = EnemyNear,Time < * [立ち移行ステート] TriggerAll = AIフラグON TriggerAll = StateType != A Trigger1 = P2StateType = A Trigger1 = EnemyNear,Vel Y != 0 Trigger2 = P2StateType = S Trigger2 = EnemyNear,Time >= * EnemyNear,HitDefAttrよりは簡易的になったがその分少しだけ対応できる攻撃が少なくなります。 まあ大して変わらないのですが。 これらのステートの補足説明は[[こちら>ガードステート 補足説明]]で。 ついでにガード移行等のトリガーを [空中移動投げ対策(このステートは実験段階ですが)] Type = ChangeState Value = 任意のステート TriggerAll = AIフラグON TriggerAll = Ctrl TriggerAll = InGuardDist Trigger1 = EnemyNear,Vel X > 0 Trigger1 = EnemyNear,HitDefAttr = A,AT Trigger2 = Enemy,HitDefAttr = A,AT Trigger2 = Enemy,Vel X > 0 [地上移動投げ対策(InGuardDistが有効なとき)] Type = ChangeState Value = 任意のステート 迎撃系がオススメ TriggerAll = AIフラグON TriggerAll = Ctrl TriggerAll = InGuardDist Trigger1 = EnemyNear,Vel X > 0 Trigger1 = EnemyNear,HitDefAttr = SC,AT Trigger2 = Enemy,HitDefAttr = SC,AT Trigger2 = Enemy,Vel X > 0 [地上移動投げ対策(InGuardDistが無効なとき)] Type = ChangeState Value = 任意のステート 回避系がオススメ TriggerAll = AIフラグON TriggerAll = Ctrl TriggerAll = !InGuardDist Trigger1 = EnemyNear,Vel X > 0 Trigger1 = EnemyNear,HitDefAttr = SC,AT Trigger2 = Enemy,HitDefAttr = SC,AT Trigger2 = Enemy,Vel X > 0 [ガード移行] Type = ChangeState Value = ガードステート (120が安定するかも) TriggerAll = AIフラグON TriggerAll = Ctrl Trigger1 = InGuardDist || Abs(P2Dist X) < 60 Trigger1 = EnemyNear,HitDefAttr = ,AA,AP Projectile形式飛び道具対策(別にProjectileそのものが防げるようになるわけではない。) Trigger2 = InGuardDist Trigger2 = Enemy,NumProj > 0 突進系対策 Trigger3 = !InGuardDist Trigger3 = EnemyNear,Vel X > 0 Trigger3 = EnemyNear,HitDefAttr = SC,AA もしくは [ガード移行] Type = ChangeState Value = ガードステート TriggerAll = AIフラグON TriggerAll = Ctrl Trigger1 = InGuardDist Trigger2 = !InGuardDist Trigger2 = Abs(P2Dist X) < 60 Trigger2 = EnemyNear,MoveType = A Trigger3 = !InGuardDist Trigger3 = EnemyNear,Vel X > 0 Trigger3 = EnemyNear,HitDefAttr = SC,AA 裏周り対策をAbs(P2Dist X) < 60に変更しました。 InGuardDistの条件からしてP2Distの方が安定しそうなので。
・ガードステートについて  最終更新2011 6/16 これらはあくまでテンプレです。 &color(red){必ずRandomやP2BodyDistなどのトリガーを用いて調整して下さい。} 特にキャラのコンセプトなどに合わせることは重要だと思います。 あるいは紙装甲だからその分ガードを堅く・・・などといった配慮による調整もありますが。 けど立ち回りや切り返しなどがちゃんと出来ていたらあまり堅くなくても大丈夫な気はします。 『StateDef 120用ステート』 &italic(){&u(){EnemyNear,HitDefAttr中心のステート}} [屈み移行ステート] TriggerAll = AIフラグON TriggerAll = StateType != A TriggerAll = Time > 0;ループ防止 Trigger1 = Enemy,NumProj > 0 Trigger2 = EnemyNear,HitDefAttr = C,AA,AP || EnemyNear,HitDefAttr = SC,AP Trigger3 = EnemyNear,HitDefAttr = S,AA Trigger3 = EnemyNear,Time <= * Trigger3 = EnemyNear,Vel Y <= 0 Trigger4 = EnemyNear,StateType != S Trigger4 = EnemyNear,HitDefAttr = S,AA Trigger4 = EnemyNear,Time > * Trigger4 = EnemyNear,Vel Y <= 0 [立ち移行ステート] TriggerAll = AIフラグON TriggerAll = StateType != A TriggerAll = Time > 0;ループ防止 Trigger1 = EnemyNear,HitDefAttr = A,AA,AP Trigger2 = EnemyNear,HitDefAttr = S,AA Trigger2 = EnemyNear,Time > * Trigger2 = EnemyNear,StateType = S Trigger3 = EnemyNear,HitDefAttr = S,AA Trigger3 = EnemyNear,Time <= * Trigger3 = EnemyNear,Vel Y > 0 Trigger4 = EnemyNear,StateType != S Trigger4 = EnemyNear,HitDefAttr = S,AA Trigger4 = EnemyNear,Time > * Trigger4 = EnemyNear,Vel Y > 0 あとはこれを各ステート(130~155)用に修正すればOK。 TriggerAll = Time > 0はループを防ぐため急遽入れました。 ただしこれはあくまで暫定なのでもっと変わっていくと思います。 &italic(){&u(){P2StateType中心のステート}} [屈み移行ステート] TriggerAll = AIフラグON TriggerAll = StateType != A Trigger1 = P2StateType = A Trigger1 = EnemyNear,Vel Y = 0 Trigger2 = P2StateType = C Trigger3 = P2StateType = S Trigger3 = EnemyNear,Time < * [立ち移行ステート] TriggerAll = AIフラグON TriggerAll = StateType != A Trigger1 = P2StateType = A Trigger1 = EnemyNear,Vel Y != 0 Trigger2 = P2StateType = S Trigger2 = EnemyNear,Time >= * EnemyNear,HitDefAttrよりは簡易的になったがその分少しだけ対応できる攻撃が少なくなります。 まあ大して変わらないのですが。 これらのステートの補足説明は[[こちら>ガードステート 補足説明]]で。 numhelperトリガーは相手が特殊ゲージやAI補助のヘルパーなどを起動していると常に成立するため、 ヘルパー飛び道具に対するトリガーとしては信頼できません。 またhitdefattr=SCA,APなどの飛び道具属性のhitdefトリガー検知は、projectileやヘルパー飛び道具に対しては反応しません。 projectileに対してはnumprojをトリガーを使い、ヘルパー飛び道具に対しては飛び道具検知ヘルパーを準備して下さい。 ついでにガード移行等のトリガーを [空中移動投げ対策(このステートは実験段階ですが)] Type = ChangeState Value = 任意のステート TriggerAll = AIフラグON TriggerAll = Ctrl TriggerAll = InGuardDist Trigger1 = EnemyNear,Vel X > 0 Trigger1 = EnemyNear,HitDefAttr = A,AT Trigger2 = Enemy,HitDefAttr = A,AT Trigger2 = Enemy,Vel X > 0 [地上移動投げ対策(InGuardDistが有効なとき)] Type = ChangeState Value = 任意のステート 迎撃系がオススメ TriggerAll = AIフラグON TriggerAll = Ctrl TriggerAll = InGuardDist Trigger1 = EnemyNear,Vel X > 0 Trigger1 = EnemyNear,HitDefAttr = SC,AT Trigger2 = Enemy,HitDefAttr = SC,AT Trigger2 = Enemy,Vel X > 0 [地上移動投げ対策(InGuardDistが無効なとき)] Type = ChangeState Value = 任意のステート 回避系がオススメ TriggerAll = AIフラグON TriggerAll = Ctrl TriggerAll = !InGuardDist Trigger1 = EnemyNear,Vel X > 0 Trigger1 = EnemyNear,HitDefAttr = SC,AT Trigger2 = Enemy,HitDefAttr = SC,AT Trigger2 = Enemy,Vel X > 0 [ガード移行] Type = ChangeState Value = ガードステート TriggerAll = AIフラグON TriggerAll = Ctrl Trigger1 = InGuardDist Trigger2 = !InGuardDist Trigger2 = Abs(P2Dist X) < 60 Trigger2 = EnemyNear,MoveType = A 裏周り対策をAbs(P2Dist X) < 60に変更しました。 InGuardDistの条件からしてP2Distの方が安定しそうなので。 2011/06/16 hitdefattrとnumprojを利用したトリガーから、InGuardDistトリガー単独に変更。 ヘルパー飛び道具に対しても問題なくガードできますが、 相手の技の発生フレームによって攻撃が刺さる可能性が全く異なるので、 timeや変数による確率の管理が必須になります。

表示オプション

横に並べて表示:
変化行の前後のみ表示: