ヒットストップ





ヒットストップ

ヒットストップ (Hitlag, Freeze Frames)は、攻撃がヒットもしくは 相殺 したときにお互いのファイターが一定時間停止する仕様のこと。
ストップ時間は、基本的に 攻撃側・防御側ともに同じ である。
一般的な用語定義では、 攻撃がヒットしたフレームはヒットストップに含めない。

ヒットストップ時間の基本計算式は以下の通り。ただし30F以上にはならない。
ヒットストップ時間 = INT((0.65 * 基礎ダメージ + 6) * 補正倍率) - 1 [F]


詳細仕様

  • 飛び道具がヒットした場合は、 飛び道具を使ったプレイヤーにはヒットストップは発生しない。
  • 実体を持った飛び道具は、相手と飛び道具そのものにヒットストップがかかる。
  • 風判定(Flinchless=True)の攻撃は、ヒットストップが発生しない。
  • 当たりあり無敵状態の相手に攻撃を当てると、攻撃した側にのみヒットストップがかかる。

複数のプレイヤーが絡む状況
1つの攻撃が複数のプレイヤーにヒットした場合、
防御側(複数)は、各々のヒットストップ時間が終了すると動き始める。
攻撃側は、 最も遅くまで続くヒットストップが終了するまで ストップする。

1人のプレイヤーに複数の攻撃が当たった場合、
攻撃側(複数)は、各々のヒットストップ時間が終了すると動き始める。
防御側は、 最後に当たった攻撃のヒットストップが終了した時点で 動き始める。


ガードストップ


ガードストップ (Sheild Hitlag, Shield lag)は、攻撃をシールドで受け止めた時にお互いのファイターが一定時間停止する仕様のこと。
基本的にヒットストップの対シールド版だと考えればよい。
ただし、ヒットストップとは以下の点が異なる。
  • ストップ時間に0.67倍のガードストップ倍率がかかる。
    • 後述のように、ガードストップ倍率は仕様がやや複雑。
  • ずらしが ガードストップずらし になる。
  • 防御側のファイターが振動しない。

このページの解説では特に断りを入れない場合、ヒットストップとガードストップをまとめて取り扱う。



補正倍率

次の全ての倍率を全てかけ合わせたものが 補正倍率 となる。

ヒットストップ倍率
すべての攻撃判定には、 ヒットストップ倍率 が設定されている。基本値は1.0
各攻撃判定のヒットストップ倍率は、 Smash Ultimate Data Viewer で調べられる(Hitlagの値)。

例えばマルス横スマのヒットストップ倍率は、先端部分が1.5でそれ以外は0.7
先端が当たったときに強くヒットストップがかかる。

倍率が1.0より大きい攻撃判定は、ワザのクリーンヒット部分や弱攻撃に多い。
倍率が1.0より小さい攻撃判定は、カス当て部分や百裂攻撃に多い。
また、倍率が0のワザはヒットストップが発生しない。

電撃属性倍率
電撃属性 の攻撃は、ヒットストップが1.5倍になる。

しゃがみ補正倍率
しゃがみ状態 のファイターを攻撃すると、ヒットストップが0.67倍になる。

ガードストップ倍率
シールド状態 のファイターを攻撃すると、ヒットストップ(ガードストップ)が0.67倍になる。
ただし、ガードストップ倍率はヒットストップ倍率が1.0未満の攻撃では適用されない。

また、攻撃媒体が本体と別のオブジェクトである直接攻撃に限り、攻撃側のストップ時間のみ0.67倍の倍率がかからない。
このケースでは防御側のストップ時間の方が短くなり、通常より攻撃側が不利になる。
現在、以下のワザがこれに該当することが知られている。
ファイター ワザ
上スマッシュ
下スマッシュ
横必殺ワザ
(乗車中)
横スマッシュ
横必殺ワザ
(突き刺し)
横スマッシュ
上スマッシュ
下スマッシュ
(Hit 1以外)
横必殺ワザ


ヒットストップ中の挙動

攻撃側

攻撃判定
ヒットストップ中もワザの攻撃判定は残り続ける。*1
第三者の攻撃に対して相殺を起こすことも可能。
ワリオのバイク、ダックハントの缶を崖端に設置したり、むらびとやしずえの風船に攻撃判定を当てることで、攻撃判定の持続フレームを実質的に伸ばすことができる。

ぬるり判定
ヒットストップ中は、 攻撃側・防御側両方のファイターのぬるり判定が消失する。
ぬるり判定の消失は、ヒットストップ終了から8F後まで継続する。

ヒットストップ中
マルスの横スマッシュなど、一部のワザにはヒットストップ中もわずかにアニメーションが進むようなフラグが設定されている。
最終ストックの赤ズーム演出だと特にわかりやすい。

このようなワザでは、ヒットストップフレーム全体でアニメーションが0.25Fだけ進められる。
アニメーションフレームが整数倍でないといろいろと都合が悪いため、ヒットストップの終了フレームには約0.75F進められて整数倍に戻る。


防御側

ずらし
攻撃を食らったファイターは、ヒットストップ中に自分の位置をずらすことができる。
詳しくはページ: ずらし を参照。

ぬるり判定
ヒットストップ中は、 攻撃側・防御側両方のファイターのぬるり判定が消失する。
ぬるり判定の消失は、ヒットストップ終了から8F後まで継続する。

振動とファイターの体勢
ヒットストップが始まると、攻撃側・防御側ファイターの両方が振動を始める。
振動の方向は、地上であれば横方向、空中であれば縦方向。
ファイターの振動は見かけのみ で、内部的なファイターの位置は変わらない。
またガードストップの場合、防御側のファイターには振動・体勢の変化が起こらない。

ヒットストップ開始から6F経つと、攻撃側のファイターの振動が終了する。
ヒットストップ全体に対して約15%の時間が経過した時、防御側のファイターが3Fかけてやられポーズに移行する。
ヒットストップ全体に対して約75%の時間が経過した時、防御側のファイターの振動が終了する。



ヒットストップの変動

多人数対戦

スマブラSPでは、 対戦人数が増えるほどヒットストップが短くなる。
上述した基礎計算式で計算されるのは2人対戦時のストップ時間であり、3人以上の対戦における実際のストップ時間はそれよりも短い。
トレーニングモードでも、自分+CPの数によってヒットストップが変化する。

この節では、内部処理の都合上、基礎計算式で最後に1を引かない値、すなわちHitlag + 1 [F]ストップ値と定義する。
ストップ値は、 補正倍率を全て考慮して計算された整数値 であることに留意。
ストップ値 = ヒットストップ時間 + 1 [F]
      = INT{(0.65 * 基礎ダメージ + 6) * 補正倍率} [F]

ストップ値と多人数対戦における実際のヒットストップ(+1)は、下表のように対応する。
対戦人数の影響を受けるのは、ストップ値が11F以上の攻撃のみである。

↓ チェックボックスをオンにすると、そのプレイヤー数でのヒットストップ時間を表示できます。
2P (ストップ値) 3P 4P 5P 6P 7P 8P
6 6 6 6 6 6 6
7 7 7 7 7 7 7
8 8 8 8 8 8 8
9 9 9 9 9 9 9
10 10 10 10 10 10 10
11 10 10 10 10 10 10
12 11 11 11 11 11 11
13 12 12 12 12 12 12
14 13 13 13 13 13 13
15 14 14 14 14 14 14
16 15 15 15 14 14 14
17 16 16 15 15 15 15
18 17 17 16 16 16 16
19 18 17 17 17 16 16
20 19 18 18 17 17 17
21 20 19 18 18 18 18
22 21 20 19 19 18 18
23 21 21 20 19 19 19
24 22 22 20 20 19 19
25 23 22 21 20 20 20
26 24 23 22 21 20 20
27 25 23 22 21 21 21
28 26 24 23 22 21 21
29 26 25 23 22 22 22
30 27 25 24 23 22 22
+色付き画像版

計算の実装は以下の通り。
対戦人数ごとに設定されている ストップ値上限倍率 に基づいて、ストップ値上限(小数値含む)が求まる。
対戦人数 上限倍率 ストップ値上限
2P 1.0 30.0
3P 0.925 27.75
4P 0.862 25.86
5P 0.8116 24.348
6P 0.77464 23.2392
7P 0.752464 22.57392
8P 0.75 22.5

実際のヒットストップ(+1):Yは、ストップ値をXとおいて
Y = INT( aX^2 + bX )
という 原点を通る2次関数 で計算する。
ここで係数a, bの値は、
(X,Y) = (10,10), (30,ストップ値上限)
の2点を通るように決定する。

ただし4Pのストップ値 = 23,24F のケースのみ、この計算方式による結果と合致しない。

参考:上限倍率を編集した際のストップ値とヒットストップ+1の関係
+開く
ストップ値 上限倍率=50 上限倍率=267
10 10 10
11 37 157
12 70 331
13 108 531
14 151 758
15 198 1012
16 251 1292
17 308 1599
18 370 1933
19 437 2293
20 510 2680
21 586 3093
22 668 3533
23 755 3999
24 847 4492
25 943 5012
26 1045 5558
27 1151 6131
28 1262 6731
29 1378 7357
30 1500 8010


スピリット

対戦ルールでスピリット「あり」に設定すると、ヒットストップが短くなる。
アドベンチャーモードやトレーニングモードでスピリットを装備した場合も同様。
詳細未調査。



桜井氏のコラム

『桜井政博のゲームについて思うこと』, vol.490,491, 「ヒットストップを考える:その1・その2 」を要約。
スマブラfor時代に執筆されたものであることに留意。

基本

2D格闘ゲームではヒットストップが強めにかかるが、3D格闘や無双シリーズではあまりかからない。

同じ時間だけ止まる
自分と相手が同じ時間だけストップする。
ただし、forではしゃがみ状態や被ダメージ補正状態の相手を攻撃すると、相手のみヒットストップが変化していた。

意図的に時間を変えている
各攻撃に専用の係数を設けている(ヒットストップ倍率のこと)。マルスの剣先・根元など。
リュウは原作の持ち味を再現するため、ヒットストップを増やしている。

多人数対戦を考慮
ヒットストップ時間を伸ばしたいが、止まっているときに第三者から狙われる機会があるため、控えめに設定している。
ちなみに、forのヒットストップ計算式は以下の通り。
ヒットストップ(for) = INT(( 0.3846154 * ダメージ + 5 ) * 補正倍率) -1
SPではヒットストップが増えた一方、多人数対戦専用の倍率を導入することでこの問題を解決している。

その他
  • 飛び道具のヒットストップは比較的小さく設定している。
    • ヒットストップ倍率が小さいということなのだろうが(例:マリオNB 0.3倍)、そのような飛び道具はあまり多くない。
  • 最大値が決まっている。


ダメージ振動

攻撃が当たったときにキャラクターが小さく震える演出のこと。
2Dゲームに多く、3D格闘には入れにくい。

当てた相手も小さくブレる
ダメージを受けた側だけがブレるのが普通だが、スマブラでは攻撃側も小さくブレる。

やられ判定はずれない
見た目だけがずれて、 実際の位置はキープしている。

地上では横、空中では縦
振動の向きは、ファイターが地上にいるときは横、空中にいるときは縦。
ファイターが横に対面することを考えると地上でも縦が良いが、足が地面にめり込んでしまう。

カメラの距離で振幅が変わる
カメラが引いているときは、ファイターがより大きく振動する。

振幅は徐々に収束
あらかじめ時間を計算して割ることで、適切な収束を行う。


その他

やられポーズは痛そうにする
ダメージポーズは最初の1フレームから、痛そうなやられポーズにしている。
ただし、ヒットストップ中に4Fほどかけてヒット時のポーズからやられポーズになるように“モーションをブレンド”している。

ヒットストップ時、攻撃側がごく微妙に動いている
ヒットストップ中、1フレームぶんに満たない程度の微量な速度で攻撃側のモーションを送っている。
ヒットストップが解除されると、モーションは整数値に戻されてゲームが進む。
マリオの上必殺ワザなど、時間が進んでは違和感があるようなものは、この仕様を個別にカットできる。



コメント