AI殺し

「AI殺し」の編集履歴(バックアップ)一覧に戻る

AI殺し - (2010/01/17 (日) 12:50:25) のソース

[[AI]]では[[回避・防御などの対処がし難い>わからん殺し]]攻撃がしばしばこう呼ばれる。
様々な種類があるが、どれもMUGENの記述の隙を突いた攻撃であることが多い。
最近ではAI作者の努力により、Name指定やHelperを駆使することで
ほとんどのAI殺しと呼ばれた攻撃に対処することが可能となっているが、
そういった専用対策記述を用いていないAIには非常に有効である。

HitDef(Attr):その攻撃の属性を表す。
        C,NAなら屈み通常攻撃
        A,SPなら空中必殺飛び道具
        S,HTなら立ち超必投げ
        といった感じである。

GuardFlag   :その攻撃をガードできる条件を表す。
        Hなら立ちガード
        Lなら屈みガード
        Mなら立ち屈み両方
        Aなら空中ガードを表す。
        この部分に指定がなければそのはガードできない攻撃ということになる。
        AI殺しがAI殺したる由縁は、HitDefは参照できるが
        GuardFlagを参照するトリガー(条件設定)がないためである。
//HitDef、GuardFlagについて明確に言及。

・空中ガード不能技
相手の攻撃が空中ガード不能かを判断するトリガーがないため
うかつに飛び込んで空中ガード不能技を当たってしまうというAI殺し。
対処法は喰らわないジャンプの仕方ぐらいだろうか。
空中ガード不能技というのはほとんどのキャラに付いている可能性があるので
もっとも身近なAI殺しともいえるだろう。

・ガード不能系
これはガード不能なのにInguarddistが反応する場合や、
特殊な避け方をしないと避けられない技の場合に起きる。
AIはガード不能であることを認識できないため、
ガード不能の攻撃に対しても通常の攻撃と同様にガードしてしまう。
投げ属性の攻撃に対しては基本的な避け方があるが、対応できない技も存在する。
基本的な避け方:EnemyNear,HitDefAttr=,ATをトリガーにして、投げ無敵が付いている技を発動させる。
バクステやジャンプが基本(バクステに投げ無敵がついていないキャラもいるので注意)、距離は任意。
当然だが打撃属性のガード不能攻撃([[北斗の拳]]のヘヴィーストライクなど)には対応不可能。
//打撃属性のガー不攻撃に対して言及。そもそもなぜ投げに限定していたのか疑問ですが…。

対応できない技の代表例:
[[瞬獄殺]]系の移動投げと呼ばれる技
バクステを投げで回避するタイプのAIの場合、移動先で捕まりやすい。
また、InGuardDistが発動してガード体勢を取ってしまうこともある。

[[たるのなか]]([[UNKNOWN]]の樽)
近いときは避けやすいのだが遠距離で発動されるとジャンプでもバクステでもほとんど避けられない。
AIはダッシュで避けるという方法をさせるのが難しい(そもそもName指定もなしだとガード不能かどうかすら不明となる)。
また動画でよく目にするhanma氏製UNKNOWNのAIはおもちゃのないふと併用してくることが多く、
こちらにInGuardDistが反応してガード体勢を取ってしまうため、
AIからは全く見えない飛び道具になる(Inguarddistどの攻撃に反応しているかを参照するトリガーが存在しないのが原因)。
//おもちゃのないふとの併用について加筆。

・無敵技&当身技&判定の強弱など
相手の無敵状態や当身状態を判断するトリガーがないため、
無敵or当身で無効化されてしまい攻撃を喰らってしまうというもの。
また判定の強弱や詳細な形状も参照できないので、AIは相手の技に後出しで勝てる技を持っていても、
発生保証のつく技でないかぎり振らないようになっていることがほとんどである。
完全な対策をするにはName指定しか方法がないとも言われる。学習機能をつければ場合によってはなんとかなる。
//判定について加筆。

・[[中段]] 下段でのAI殺し
冒頭にあるようにAIにはGuardFlagを参照するトリガーがないため、
中段攻撃にしゃがみガードしてしまったり下段攻撃に立ちガードしてしまうというAI殺しである。
//AIの対処方はというと
一般的なAIのガード方法は
相手がしゃがみ⇒屈ガード
相手がしゃがみ以外⇒立ガード
にするか
相手が空中以外⇒屈ガード
相手が空中⇒立ガード
//とするAIが主流だった。
の2パターンに分けられる。
前記が中段ガード優先で後記が下段ガード優先である。
現在では下段ガード優先にして立ち中段をName指定あるいは学習してガードするのが主流になっている。
//GuardFlagについて言及。

・[[めくり]]攻撃でのAI殺し
AttackDistが発動する条件にP2Dist Xが関係し、攻撃側のキャラより防御側のキャラが後ろに居ると
InGuardDistが発動しないという仕様があり、めくり攻撃などにAIは対応できない。
なおこの問題は飛び道具(Projectile型とHelper型とを問わず)に対しても起こり、
しゃがみガードの姿勢ですかせるはずの飛び道具がキャラクターの頭上にさしかかったところで
ガードを解いた状態で立ち上がり攻撃を受けてしまうのはこのためである。
下記のHelperによるガード補助で対策が可能である。
//飛び道具でもAttackDistによる問題が発生することについて言及。

・AttackDist(GuardDist)未設定の技
主にガードに使うInGuardDistは相手のAttackDistの値と相手との距離で決めるのだが
未設定の技を使うと([data]未変更の場合)Proj形式の場合90で本体の攻撃の場合は160となっており
それ以上のリーチの技だとInGuardDistがまったく作動せずに、攻撃を喰らってしまうというAI殺し。
対策をせずキャラクター自身のInguarddistのみを参照してガード体勢に入るAIの場合、この技だけでハメ倒されてしまう。
//Helperによる補助をふまえ、キャラクター本体のInguarddistであることを強調。

使用例
&nicovideo(sm7019201)
[[アイスマン]]のアイスビームが非常に当たりやすくなっている所

・飛び道具([[設置]]系以外)でのAI殺し
飛び道具の速度にもよるが基本的にAttackDistの値が少ない飛び道具がAI殺しと呼ばれる。
AttackDistが少ないと当たる直前(1~7Fぐらい)のほんの少しの間しかInGuardDistが出ないのでAIはかなり対処にしくい。
AttackDist=90ぐらいだとほとんどのAIが対処できない。何も振らない設定のAIならなんとかガードできる。
AttackDist=160ぐらいで対処できるAIがちらほら、だが牽制攻撃をよくするAIだとよく喰らってしまう。
AttackDist=250ぐらいでほぼ全画面(mugenの画面の横幅は320)の距離なのでほとんどのAIが安全にガードできる。
P2Name等で対処できるが、この場合キャラごとに対策することになる。
また他にもHelperを並べて対処する方法もある。この手法については後述する。
//90ごとに置くぐらいが良いらしい
//憶測をコメントアウト。Helperによる対処法はある程度確立されていることを明記。

・[[設置]]系飛び道具でのAI殺し
上記とは逆にこの場合飛び道具が動かないのでAttackDistが多いと過剰にガードしてしまうことになり、
AIがほぼ移動することができないというAI殺し。
だがAttackDistが少なすぎると、動かない場合はいいが、
ダッシュ等を使ってしまって設置飛び道具に激突ということも起こりうる。
上記の通り飛び道具の位置は基本的にはAIは分からないため、
無敵移動技で逃げようとしてもその移動先に設置があるとも限らないので
AIは特殊な事を行わないかぎり完璧に対処する術がない(移動技に0Fも隙がなく、即ガードや再移動ができるなら別だが)。
//(だが歩き⇒ブロッキングという動作をすればAIは多少対処可能。その隙突かれても知りませんが)
//ブロッキングについては後述されているのでコメントアウト。

・その他、処理が特殊な技でのAI殺し
一部の技を食らった際に特殊な操作(レバガチャなど)が行えるものがあるが、AIでは特殊操作に対応できないためAI殺しとなる。
[[ジャギ]]の「[[俺の名を言ってみろ!]]」や[[世紀末霊夢]]の「EX[[南斗獄屠拳]]」や
超武闘伝再現系[[ドラゴンボール]]キャラの超必版エネルギー波系の技のガード・弾き・かき消しなどの選択もこれに入る。

----
AI殺しの対処法

・[[ブロッキング]](HitOverride)を利用する
HitOverride等を使うブロッキングは攻撃を受けた瞬間に発動するためInGuardDistに関係なく防御が可能。
HitOverrideの仕様上ガード不能の打撃or飛び道具も防御可能なのでガード不能関連のAI殺しも封殺できる。
ただしAI殺し技に気づかぬまま牽制技を振ってしまってそのまま食らうこともあるので注意。
ブロッキングするキャラのAIには多め。

・Helperでのガード補助
Helperを前方に出しHelper(),InGuardDistとすることでAttackDistが少なすぎる攻撃にも対処ができる。
背後にHelperを設置すればめくりにも対処可能。
また技の振りのTriggerに入れ込むことにより迂闊に技を振らないようにできる。
Helperを1個だけ出して、それを移動させて使うAIもある。

・ガードステートまま立ちorしゃがみor歩きorダッシュ(ダッシュをキャンセルできるキャラのみ?)
statenoの130と131と132の状態を通常の状態にするというもの(Animも)。
ガードの状態で立ったり歩いたりすることで、どんな不意打ちの攻撃でもガード不能以外ならならガードできる。
AttackDist=0の攻撃でもガードできるならガード可能になり、ブロッキング系の防御を持たないキャラでの最大のAI殺し対策となる。
しかし導入には手間を要し、ガードステート内(130と131と132)を大幅に変更することが必要となる。
また中段=state130 下段=state131それぞれにガード記述を設定する必要があり、途中で攻撃のタイプが変わっても大丈夫なようにする必要もある。
しかもステート変更後もChangeStateを間違うと不手際が起こりやすい。
現在は㍻㌢氏の[[シン]]と[[聖騎士団ソル]]のAIパッチ(Lv10以上)が搭載している(Config設定可)。

//KFMでいろいろやってみて
//わかった限りで書いてみた
----
&aname(*1,option=nolink){&color(red){*1}}
ヘルパーを絡めた処理の飛び道具の場合に限られるが、P2NameやEnemy,NumHelperなどのトリガー、Helperに割り振られるPlayerIDを使えば
飛び道具の位置や速度などの情報を把握できる場合がある。
また無敵や当身、攻撃判定の強さもP2NameとStateNoなどのトリガーで相手を判別することで対処は可能。
こうすることにより飛び道具を姿勢の低い技で避けたり、位置を把握して道が空いたら一気に詰め寄ったり
相手の当身を確実に投げたり当身の対象外の判定でコンボ繋いだり
相手の振った通常技を潰せる通常技を当てて高火力コンボを繋ぐといった
人操作みたいな柔軟な戦術が可能となる。
ただし、これらの処理はその性質上、ピンポイントに相手を指定したものになるので、
場合によっては相手側の製作者さんに不快感を与えることもあり得る。
どこまでが許容範囲なのかの基準については色々と見解が分かれているので一概に言えないが、
[[特殊イントロ]]などを作る時と同様に、あらかじめ相手側に断りを入れ了承を得ておくことが理想的である。

//&aname(*2,option=nolink){&color(red){*2}}
//これも最近はほとんどP2Nameによる判別で中段を個別に対応しているAIが多いらしいが、
//上と同じ理由でやりすぎには注意しよう。

//飛び道具に対するP2nameに関しては見解が分かれており
//(搭載例こそ少ないが、東方のグレイズのようにやる事によって戦いを魅せられるケースもある)
//安易に「やりすぎちゃ駄目だよ」って言える問題でもないので一部をコメントアウト。
//その手の基準が最終的にどの辺におちつくことになろうと、「やり"過ぎ"」ていうのはその基準を超えてるものを指すのだから、そうならないよう気をつけることは常に必要だと思うけどな。とりあえず見解が分かれてて議論中なら、そのままそう書いておくのがいいんじゃないかと思うのでそうしてみるよ。

//全般に、大幅な編集を行いました。各項目ごとに明記してあるものの他、誤字脱字やわかりにい表現についても編集を加えています。