かんちゃんの備忘録

プログラミングや言語処理、ゲームなど知的好奇心のための備忘録(個人の感想)です。

スマブラSPのオンラインの入力遅延と付き合う

本記事は、スマブラ Advent Calendar 201920日目の記事です。

スマブラ発売から1年が経ちましたが、全く飽きる気配がなくこの面白いゲームにどれだけ時間を使ってしまうのか、と恐怖を覚えているほどです。

オンライン*1ばかりやっていたのですが、最近は宅オフやオフ会に少しずつ参加するようになり、オフラインとオンラインの両方でプレイするようになりました。

オンラインで遠方の友人と対戦に励むことができるのは、非常に素晴らしいことです。 しかしながらスマブラのオンラインの遅延で一般的に言われている6F(0.1秒)の差は、私にとっては頭を混乱させる要因の一つです。 今回は、具体的にオンラインにどう付き合うのがいいのかを自分が混乱しないためにできる限り考察します*2

※オンラインでの遅延フレーム数6Fには検証ソースがないこと、入力可視化による簡易調査は誤差が考えられるため、表現を訂正しました。申し訳ありません。

※ PKファイヤーの話を修正しました。

フレームとは?

スマブラSPは、秒間60枚の絵(フレーム)が切り替わるゲームです。 60FPS(frame per second)やフレームレートが60と言います。

オンラインの遅延でよく言われる6Fが具体的に何秒かというと、 6 / 60 = 0.1秒です。 ガノンおじさんの横スマッシュの発生は29Fですので約0.5秒です。

人間の反応速度とフレーム

反応速度は、早い人で0.2秒台前半、平均的には0.3秒前後のようです*3 *4

具体的にどんな刺激なのかはわからないですが、星のカービィ スーパーデラックスの刹那の見切りのようなものと想像します*5

これらの実験は刺激に対してただいかに早く反応するというタスクです。 スマブラでは相手の動きに対して、複数の選択肢から最適と考える択を選ぶため、おそらく結果は異なるのではないかと思います*6

ここで、反応速度が0.2秒の人が攻撃をシールドすることを考えます。 0.2秒、すなわち12Fが見てからボタンを押すまで平均的に要するということです。 さらにスマブラSP自体の入力遅延6Fを合算し、入力に18F要します。 ちょうど、ネスのPKファイヤーは発生18Fで37Fまで判定があります。 シールドは1Fで発生しますので、棒立ち状態でトリガーを押すだけなら間に合います*7

オンラインの入力遅延

スマブラSPは、オフラインでゲーミングディスプレイを用いても約6Fの遅延があるようです*8。 詳しくはDRAFIXさんの検証ページをご覧ください。

オンラインはオフラインと比べ、数フレーム(最低6F?)の遅延があると言われています。 ここでは、オンラインでの遅延を仮に6Fとすると、オフラインの6F遅延とオンラインの6F遅延を考慮すると、どうやら12F遅延あるようです。

Open Joystick Displayを用いて、GCコン入力を可視化し、オフラインとオンラインを比較したところ、私がオンライン最速と感じるもの*9で6Fの遅延でした。 (※ここでの調査方法は信ぴょう性に欠けます。持ちうる機材では正確に測定することはできなさそうです。)

オンラインで見てから反応を考えると、平均的な反射18Fと入力遅延12Fで、30F(0.5秒)ほど要するという計算になります。

遅延を6Fとして、ゲーム上での違いを見てみます。

小ジャンプ急降下で比較すると、マリオで6F差はこれだけ違います*10

f:id:kanjirz50:20191211223102p:plain

f:id:kanjirz50:20191211223122p:plain

オンとオフを交互にやっていると、急降下が出なかったり、最低空での攻撃が出なかったりするのは、目で見て押すと、タイミングが全然異なるからです。 タイミングを覚えるのが先決でしょう。 ただし、ジャンプは次の動作が可能になる9F前、急降下は急降下開始3F前から先行入力を受け付けるため、入力を工夫するというのも一つの手です。

オンラインは飛び道具対策が難しいとよく聞きます。 私もそう思いますが、よく当たってしまうゴルドー(横B通常投げ)は、6Fでゴルドー1個分少々場所が異なります。

f:id:kanjirz50:20191211225313p:plain

f:id:kanjirz50:20191211225325p:plain

自分の技の発生もオフラインと比べ6F遅れるため、ゴルドーを返すには予測が必要となるようです。

6Fずらした映像をクロマキー合成してみました。 薄く映っているのが6F遅延分です。ちなみにアイスクライマーの相方は、6F遅延しているそうです。 コントローラは左側がオフ(6F遅延)、右側がオン(12F遅延)になるようにできる限り調整しています。


スマブラの6F遅延をクロマキー合成で見てみる

あまり注視すると酔いそうになりますが、これくらい違いがあります。

オンラインで気をつけること

ここからは個人の考えです。

先ほどのマリオの小ジャンプ急降下のように、操作したときと、反映されたときで、ファイターの位置が全然異なります。 先読みして技を置く、もしくは技の当たる場所に誘導することを考えて遊ぶのがよさそうです。

最低空空後はトレーニングではタイミングをつかむ程度にし、画面は参考程度に見るとよさそうです。

先行入力の利用を意識します。昔のアクションゲームをやりすぎて、目押ししがちですが、ファイターをうまく動かすために、先行入力を使います。

軌道が複雑な飛び道具にはあまり付き合わないのが無難と考えます。一つは遅延により操作難易度が上がることと、さらに対戦により遅延がやや異なるためです。 また、飛び道具に多少当たるのはしかたないです。 6F遅延があるため、できるだけ丁寧な操作を心掛け、相手が飛び道具を打つと予想した際には、ジャンプやシールド、引きステップでやり過ごします。

マリオの上B復帰の無敵や空中回避、ジャンプは目押ししがちですがオンラインだと6F遅れて相手ファイターの位置が一体分ほど異なります。 崖外や着地する展開では、相手の挙動に最新の注意を払うようにし、早めの反応を心掛けます。

オンラインは目押しで頑張らないようにします。反確をしっかりとったり、6F後を想定した間合い管理や、相手の誘導を考えるプレイスタイルを確立していく場と考えるとスマブラ力が付きそうです。

おわりに

冒頭でも書きましたが、友達と気軽にインターネットを通じてスマブラをできるというのは、小学生時代にスマブラDXをしていた頃から考えると全く想像もつきません。

この面白いゲームをより楽しむために、自分なりにオンラインとオフラインをうまく使い分けていきたいと思います。

*1:5体なんとかVIP程度のレベルです。

*2:遅延があるからオンラインを敬遠するというのではなく、オンラインでいかに楽しむかをよく考えるという話です。

*3:http://www.nibb.ac.jp/cortex/ippan.html

*4:https://www.jstage.jst.go.jp/article/jsma1939/46/1/46_1_27/_pdf/-char/ja

*5:刹那の巻割りというゲームが最近出ているようで、結構面白いです。私の反応速度は12F(0.2秒)でした。

*6:後だしじゃんけんゲームを作って測定するとよさそう。

*7:実際の試合ではファイターは走行やジャンプをしており、ステップだとシールド展開まで最速20F、ダッシュガードだと最速11F、小ジャン途中に合わせられると約20Fほど要します。そのため当たるのでしょう。

*8:スマブラDXをやると、スマブラSPやはり遅延していると感じます。最近のゲームハード自体、遅延をなくすことが難しいようで、たしかに復刻版系のゲームはだいたい違和感を感じます。

*9:私の遅延感度ですが、遅延体感ツールhttp://www2.tky.3web.ne.jp/~yosshin/prog_memo/latency/091029.htmlで「1Fもしくは3F遅延か」の識別はほぼ確実にわかります。「1Fもしくは2F遅延」は残念ながら人間性能的にわかりませんでした。

*10:私はフォックスをオンラインで操作できないです。。操作感覚とキャラのいる位置が違いすぎてよくゾロリます。