スーパーストリートファイターII ヒット数の限界を目指してみた 解説−前半

タネ明かし兼解説などを。無駄に長文なので動画について大まかに知りたい方は前半は飛ばすことをお勧めします。
※ここで述べている事柄は全てSFCスーパーストリートファイターIIでの事です。アーケード版スーパーやハイパー等で同様の事ができる保障はありません。

タメ時間

この動画を見た人は、「いつソニックをタメているのか?」という疑問が浮かぶのではないかと思います。前歩きの直後にソニックを撃っていたりと、見た目には明らかにタメ時間が足りていません。実は以下のようなトリックでタメ時間を確保しています。
スパIIのシステムでは移動時は十字キーの左右を同時に入力すると右移動が優先されます。*1ということは右向き時に左右を同時入力するとキャラは前進するわけですが、その間もタメ時間はカウントされています。つまり右向き時に限り前に歩きながらタメられる*2ということになります。
これがこの動画の最大のポイントであり、作成動機でもあります。

コンボ内容

この動画では理詰めで最多段コンボを算出し、実際に可能かどうかプレイしてみるというアプローチをとっています。まずはそのコンボ部分について説明します。
最初に明言しておきますが、永久コンボは可能です。実際に試したわけではないので確実にできるとは言い切れませんが、少なくとも気絶するまで同じコンボパーツをループすることはできるはずです。具体的には[弱P→ソニック]のループに数回に1回[弱P×2→ソニック]を混ぜれば延々と続けられます。しかしソニックを撃ち続けているとすぐに気絶してしまうため、最多段を狙うにはいかに気絶させずにヒット数を増やすかということが重要です。
ソニックをヒットさせると歩いて近づくことができるので、ヒット数を稼ぐための基本路線としてはソニックを含むパーツを気絶値の許す限りループすることになります。ヒット数を稼ぐうえでの最優先事項はループ(ソニック)の回数を稼ぐことなので、ソニック以外の部分はできるだけヒット数を稼ぎながらも低い気絶値に抑えなければなりません。そうするとコンボは必然的に弱パンチ*3ソニックのみで構成される*4ことになります。また、気絶直後はしばらくの間気絶値が蓄積しないので、その間にできるだけヒット数を稼ぎたい所です。
以上をまとめるとコンボは以下の3つの部分によって構成されます。

  1. 気絶値が蓄積しないうちにできるだけヒット数を稼ぐ
  2. 「もう1回ソニックをヒットさせたら確実に気絶する」というところまでソニックループ
  3. 気絶させないように限界までヒット数を稼ぐ(≒弱パンチ連打)

各種調査結果から導き出した机上の最多段はこうなりました。

  1. ソニック→弱P×2→ソニック 4ヒット
  2. →弱P×5→ソニック→[弱P→ソニック]×5 16ヒット
  3. →弱P×6→連打キャンセルJ強K 7ヒット 計27ヒット

テストプレイ*5の結果、最後の弱パンチが1つ減るけれどコンボ自体は問題なく最後までつながりそうだし、本番で細かいところを詰めれば27ヒットもできるかもしれないという手ごたえは得られました。

乱数調整

フレーム数のわりに多い追記回数*6の主要因がこれです。
ストIIシリーズでは各技のダメージや気絶値は(例外もありますが)ランダムに増減します。今回はなるべく気絶させないことを目的としているので、気絶値は全て最低値を引かなくてはなりません。上記の机上最多段もその前提です。
気絶値の最低値を引く確率は技にもよりますが、1/32とか1/8とかそんなところです。TASさん的には楽勝だと思われるかもしれませんが、意外とそうでもありません。SFC版スパIIでの乱数はフレーム毎に変化する他、入力によっても変化したりしなかったりします。ある1つの技に対して特定の値を引いてくるのはさほど難しいことではありません。必要な乱数がくるタイミングを狙い撃ちして技を出すだけです。つまり好きなだけ試行して結果を選べます。しかしコンボとなるとそういう訳にはいきません。技入力のタイミングが決まっているため入力で乱数を調整する必要があり、調整できる時間も限られています。つまり限られた回数の試行から結果を選ばなくてはいけないということです。tool-assistしているのに確実ではなく確率的にしか良い結果が得られないわけです。大半のケースでは期待値は1を越えていますが、それでも確実という訳にはいきません。*7
これを確実にするためには、欲しい乱数が良いタイミングで来るような乱数列を探し出す作業が必要になります。といってもあまり機械的に乱数列を求めることもできなかったのでおおまかな当たりを付けてから、実際にプレイしてみる→詰んだらやり直しの繰り返しという泥臭い手作業です。
ちなみに乱数の調整は基本的にはガイル側でコンボに影響しない範囲の入力で行っていますが、ザンギ側で調整することも多々あります。見た目には分かり辛いですがある意味協力コンボと言えるでしょう。

さらに乱数調整

実はテストプレイ時に1つ大きな問題が発覚していました。コンボの途中でザンギの体力が足りなくなってKOしてしまいます。計算してみたところ、ランダムの増減を無視すると体力満タンの状態から98%以上のダメージを与えるようです。*8
気絶させる際のダメージを最小限に抑えるために弱パンチのみで気絶させてみたものの、若干足りない感じです。こうなると気絶値のみならずダメージも調整せざるを得ません。しかし気絶値とダメージの両方を同時に調整するのは非常に難しく、全てを意のままに操るという事は不可能なので、気絶値の調整をメインに可能ならダメージを減らすという方向で調整しています。

動画中のコンボ

乱数調整とそれに伴うコンボ内容の微調整の結果、最終的なコンボは以下のようになりました。
ソニック→立弱P×2→(屈弱P空キャンセル)ソニック→立弱P×3→屈弱P→ソニック→[立弱P→ソニック]×2→立弱P→屈弱P→ソニック→立弱P→ソニック→屈弱P→ソニック→立弱P×5→連打キャンセルJ強K 26ヒット

*1:ちなみに上下を同時入力すると下が優先されてしゃがみます。

*2:このネタ自体はこの動画で知りました。SFC版スーパーでもできないかと思って試してみたらできてしまったので、なんとか悪用してやろうと動画を作成した次第です。

*3:ガイルの弱パンチは攻撃判定の位置やリーチの差を除けば立屈同性能なのでどちらを使っても構いません。

*4:コンボの最後は気絶しても構わないので何でも使えます。

*5:ちなみにテストプレイの追記回数は907でした

*6:10178/2928[追記/frame]

*7:10枚中2枚が当たりのくじを5枚引いたら当たるかと言ったらそうでもない訳で。

*8:あくまで体力満タンからの話です。体力が減った状態からだと根性値の適用段数が増えるので体力98%の相手がKOできるわけではありません。実際には残り9割ぐらいが目安と思われます。