AIガードテンプレ

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

AIガードテンプレ - (2008/02/17 (日) 22:00:08) の1つ前との変更点

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

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

・ガードステートについて  最終更新12/12 これらはあくまでテンプレです。 &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よりは簡易的になったがその分少しだけ対応できる攻撃が少なくなった。 まあ大して変わらないのですが。 これらのステートの補足説明は[[こちら>http://www30.atwiki.jp/niconicomugen/pages/33.html]]で。 ついでにガード移行等のトリガーを [空中移動投げ対策(このステートは実験段階ですが)] 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 || P2BodyDist X = [-40,10] 裏周り対策(保険) Trigger1 = EnemyNear,HitDefAttr = SCA,AA,AP Trigger2 = Enemy,NumProj > 0 Trigger3 = !InGuardDist Trigger3 = EnemyNear,HitDefAttr != SCA,NT,ST,HT Trigger3 = P2BodyDist X < 0 裏周り対策 突進系対策 Trigger4 = !InGuardDist Trigger4 = EnemyNear,Vel X > 0 Trigger4 = EnemyNear,HitDefAttr = SC,AA 近距離ヘルパー対策 Trigger5 = InGuardDist || (EnemyNear,MoveType = A && (EnemyNear,P2BodyDist X = [-10,120])) Trigger5 = Enemy,NumHelper > 0 もしくは [ガード移行] Type = ChangeState Value = ガードステート TriggerAll = AIフラグON TriggerAll = Ctrl Trigger1 = InGuardDist Trigger2 = !InGuardDist Trigger2 = P2BodyDist X = [-40,10] Trigger2 = EnemyNear,MoveType = A Trigger3 = !InGuardDist Trigger3 = EnemyNear,Vel X > 0 Trigger3 = EnemyNear,HitDefAttr = SC,AA 大概はInGuardDistだけでもいけますがそれだけでは無理なものもあるのでそれに対してTrigger2以降があるわけです。
・ガードステートについて  最終更新2008 2/17 これらはあくまでテンプレです。 &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よりは簡易的になったがその分少しだけ対応できる攻撃が少なくなります。 まあ大して変わらないのですが。 これらのステートの補足説明は[[こちら>http://www30.atwiki.jp/niconicomugen/pages/33.html]]で。 ついでにガード移行等のトリガーを [空中移動投げ対策(このステートは実験段階ですが)] 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(P2BodyDist X) < 40 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(P2BodyDist X) < 40 Trigger2 = EnemyNear,MoveType = A Trigger3 = !InGuardDist Trigger3 = EnemyNear,Vel X > 0 Trigger3 = EnemyNear,HitDefAttr = SC,AA 二ヶ月近くほったらかした結果色々と消しました。 というのもこれ以上はもはや趣味の範囲で追加するべきものになるので。 まず裏周り対策はAbs(P2BodyDist X) < 40でなんとかすることにしました。 ちょっと正の値が多すぎないかとも思いますがまあこれぐらいで。 P2Distの方が安定する気がしないでもない。 あと趣味の範囲の他にも誤動作を防ぐというのもあります。 今のところそんなものがあるのかは知りませんが。 ガードが甘くなっても気にしない。

表示オプション

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