硬直

ある瞬間から行動可能になるまで(一般的にはニュートラルポーズに戻るまで)のフレーム数。
飛び道具以外の攻撃技であれば攻撃判定が消えてからカウントされ、
攻撃を受けたとき、ガードしたときであれば相手に接触した瞬間からカウントされる。
その他の行動の場合、行動可能になるまでのフレームという点は決まっているが、
どの時点からカウントするかは技の性質に依存するので一意には決まらないこともある。
発生と同じく硬直nフレーム、nF、nフレなどと言われ、同じ効果ならこの数字が小さいほど高性能とされる。
硬直時間中には原則として無防備とされるが、
コマンド入力により別の行動に移れる場合もある(いわゆるキャンセル)。
なお、ヒットストップなどでゲームの進行が中断されている間のフレームはカウントされない。

非常にデリケートな数値で、この設定を煮詰めずにやらかしてしまったゲームは往々にして駄作とされる。
このあたりの事情もふまえ、有利・不利についても解説する。

攻撃技の場合、攻撃を相手に当てれば自分の方が先に行動可能になる(以下有利)か、
またはほぼ同時に行動可能になる(以下五分)ように硬直フレームが設定され、
攻撃を当てた側の方が行動可能になるのが遅くなる(以下不利)ことは比較的少ない。
また不利になる場合も、ノックバックにより距離が大きく離れるか、前述したキャンセルによりフォローが効く場合がほとんどで、
当てて相手の反撃を受ける間合いで不利になる技はほとんどが死に技とされる。
有名なのは(´・ω・`)ショーン3rd仕様トルネェーイ
また攻撃を当てて有利な場合もノックバックなどで相手との距離が徐々に離れていき、
そのうち攻撃が届かなくなるようになっている。
一方、攻撃がガードされた場合は当てた場合に比べ不利になるケースが多く、
ガードされて有利となる技は(ゲームバランスにもよるが)そうそうあるものではない。
さらに無敵のつく技や威力の高い技、その他リターンが大きな技はガードされたり空振ったりすると
大幅に不利になり反確になることがほとんどで、
この原則を無視するとチートだのバグだのと揶揄される

なお、同じ技でも当て方によって有利になることもあれば不利になることもある。
空中技は上昇中や高いところで当てると、攻撃した側が着地する前に
攻撃を受けた側が行動可能になってしまい、着地時に発生する硬直に反撃を受けてしまう。
また地上技でも『ストリートファイターII』のダルシムのスライディングのように攻撃判定が存在するフレーム(以下持続)が長い技では、
技の出かかりに当ててしまうと持続フレーム+本来の硬直フレームの間行動ができず、
相手の方が先にくらいモーションから行動可能になって反撃を受けることがある。
こういった攻撃は至近距離ではまず使われず、攻撃が当たるぎりぎりの距離を狙って使用される。
これは「持続当て」「先端当て」と呼ばれるテクニックで、
実質的に硬直の短縮になるので格ゲーにおける必須テクニックのひとつとされる。
ちなみに硬直が長めに設定されている強攻撃や必殺技全般で同じテクニックが必要とされ
フレーム数だけを見ると不利だが、先端で当てることで相手との距離が確保されて反撃を受けにくくなり、
実質的に五分になるように設定されている技も多い。
この場合、リーチやノックバックの距離なども、当てた後の有利不利を決定する要素として非常に重要となる。

なお、技の硬直フレームが短すぎたり、攻撃を受けた側の硬直が長すぎたりすると永久が成立する。
詳しくは該当ページにて。

攻撃技の他にも、基本的に歩きや後退などを除く全ての行動に硬直は存在すると言っていい。
逆に一般的に硬直が存在するタイミング(例:着地時の硬直)に硬直フレームが存在しない場合、
技(あるいはゲーム)の特性として注目され、その点を生かした攻め方や、その点への対策が必要とされることが多い。
また仮にあったとしても技の性能に比べて硬直が極端に短いとゲームバランスを破壊しかねないため、
この手の技は普通CPU限定キャラクターや家庭用限定キャラクターのみに設定され、
アーケードで使用可能となっていることは珍しい。


MUGENにおける硬直

MUGENでは基本的に

  1. ctrlが有効(もしくはそれに準ずる状態)になっているステートでchangestateのトリガー条件を満たす
(プレイヤー操作であればコマンドAIでは相手との距離など)
  1. 技のために規定されたステートに移り、anim(airファイル内ではaction)が実行される
  2. キャラクターの挙動を制御するステートコントローラが実行される
  3. 技の中でchangestateなどが実行される(この過程がないことも多い)
  4. 技のanimが終了した時点で有効になるanimtime=0(ループアニメではtime=nなど)を
トリガーにしてニュートラル用のステートに戻し、ctrlを有効にする

という流れで技が処理されている。
ステートの処理順序の関係上、ニュートラル用のステートに特に記述がなされていない場合、
本来の硬直に加えて棒立ちのフレームが1フレーム追加されることになる。
キャンセルは、コマンド入力などによりanimtimeが0になる前に
現在いるステートから別のステートに移る行動と考えてもらって差し支えない。

一部のキャラクターでは、「硬直中に攻撃を受けてもカウンターヒットにならない」という仕様を再現するため、
当たり判定が消えた時点でstatetypesetコントローラを実行し、movetypeをAからIに変更していることがある。
なおmovetypeがA以外になるとそのステートで実行されていたhitdefは強制的に無効になるが、
movecontactやmovehit、moveguardedはchangestateを行わない限りリセットされないので、
statetypesetを実行してもこれらのトリガーをキャンセル条件として使うことができる。
一応changestateを行ってもmovehitpersistを使えばmoveconactなどを引き継ぐことは可能だが、
animの管理が面倒になるので特に理由がない限りstatetypesetを使えばいい。

プレイヤー操作中に意識する必要はほとんどないが、
AIはanimが終了するまでのフレームを、相手キャラクターが再度行動可能になるまでの時間、
すなわち硬直フレームとみなして行動している。
このような背景があるので、animtimeが0になる前にニュートラルに戻すことは、
技術的には簡単なのだが硬直フレームを偽装することになるのでAI殺しになってしまいやすい。
本気でAIに悪用させた場合、起き上がりなどの相手のctrlが戻る直前に
自分のctrlが戻るように技を振ってリバサを発動させることで、
暗転中に当たり判定が発生する技および発生1Fの投げ技を除く攻撃を全てガードないし回避することができる
防御側にブロッキングがあればガー不技にすら対応可能。
リバーサルで使用するような技は基本的に隙が大きいためフルコンを入れやすく、
ローリスクにゲージを吐かせることができる(上記の対処不能な技はAIにぶっぱなすだけても基本的に直撃するので、くらっても許容範囲)。
またスプライトがニュートラルモーションに似ていると、暗転があっても目視しにくいのでさらにたちが悪い
(画面左下にデバッグで表示される情報をコマ送りで見ればわかるが、普通そんなことはしない)。
ちなみに、ループアニメでは硬直フレームがわからないことになるが、
ループアニメがゲージ溜めのような行動に使用されていることを考えれば妥当と言える。
逆にいつ終わるかが厳密に決まっている行動にループアニメを使うべきではないのも事実なのだが、
cnsの記述が煩雑になりすぎるなどの理由から使用されているケースも多い。
また上記の基本的な流れに含めてはいるものの、changestateやchangeanimについてもAI殺しになることがあるので
相手が行動不能になっているタイミングやループアニメ実行中以外に使用するのはできることなら避けたい。
とはいえひとつのステート内で処理するステートコントローラを増やすと
キャラクターの製作にかかる手間が膨れ上がり、場合によっては非現実的な作業量になるので、
まかり間違っても製作者にこのような作業を強要してはならない。
改変が許可されているキャラクターならば、改変元のキャラクターの製作者に
迷惑がかからないよう配慮した上で、自分の手を加えてもいいだろう。
希望があればリクエストなどをする前に自分でどうにかするのがMUGENの大原則である。

攻撃がヒットしたときの攻撃を受けた側の硬直フレームは攻撃側キャラクターの
hitdefまたはprojectileコントローラ内にあるground.hittimeおよびair.hittimeで規定されており、
またガードしたときの硬直フレームについても同様にguard.hittimeおよびguard.ctrltimeで規定されている。
ほとんどの商用格闘ゲームに存在している「ガードした方が不利になりやすい」という仕様を再現するには、
gurad.ctrltimeの値をground(air).hittimeの値より小さな値にすればよい。
ガード硬直を規定する値の記述を省いてもhitdefは機能するのだが、
この場合はground.slidetimeの値がgurad.ctrltimeとして機能する。
ground.slidetimeすら省いたら?相手はヒットストップが終わった瞬間から動けるようになります。

ヒット、ガード硬直を問わず少し調整を誤るとすぐに大変なことになるので、設定には注意が必要である。
特にジャンプ攻撃は着地によって実質的にキャンセルが可能になっていることもあり、
ジャンプ中に複数回攻撃が可能なキャラクターでは似非空刃の繰り返しによる永久が発生してしまいやすい。
ダッシュなど実質的にctrlが有効になるステートへのキャンセルが可能になっている場合はなおさらである。
+ キャラ製作をする方へ。格ゲー経験の浅い人や調整の仕方に自信が無い人は一読推奨。