いまさら聞けない「ロールバック」。実際の描画と対戦への影響を調べよう![ギルティギア ストライヴ]

スポンサーリンク

 ぐっ……このランクマッチ、戦いづらい……
 なにが戦いづらいって、
 

 ロールバックが6フレームもある!
 ラグというかカクつきというか、なんかとにかくガタガタする! 
 

 げっ! ダストアタック!

※ダストアタック…しゃがみガード不可の「中段」を20F(フレーム)で繰り出す攻撃。赤い光が目印。20F≒0.33秒であり、理論上は赤い光が見えてから急いで立ちガードすれば防御が間に合う。
 

 グエーーーーーーッ!
 間に合うわけないだろ! ロールバックがあるんだから!
 

 でも、やられ姿もかわいいぞ!
 我らがエルフェルト=ヴァレンタイン!
 

 ということで、本作『ギルティギア ストライヴ』を含め、最近の多くの格闘ゲームには「ロールバック」技術が採用されている。ぼくが遊んでいる範囲で言えば、『グランブルーファンタジーヴァーサスライジング』『鉄拳8』『ストリートファイター6』などにもある。

 ……が、正直、よくわかっていない。
 ふんわりした知識として、「少ないほうがいいもの」「海外プレイヤーや通信環境のよくない人と当たると発生しやすいもの」「通信遅延をなんかいい感じにごまかしてくれるすごい技術」くらいのことはわかっているが、実際どんなふうに描画されて、具体的に対戦にどんな影響があるのかは、ぜんぜんわからない。

 ……よし。
 

 わからないことは、自分で調べてみるのがいちばん!

 ロールバックフレームが大きい対戦に出くわしたとき、まずリアルタイムでその対戦を録画しておいて、あとからリプレイモードでその対戦を再生すれば、「ロールバックありの映像」と「実際の映像」が比較できる。
 研究してみよう! めざせ、ロールバック博士!
 
 

前提:ロールバックとは?

 専門用語や難しい技術の話を避けてざっくりまとめると、「ロールバック」とは、相手プレイヤーの動きを「直前の行動(入力)を続ける」と仮定して描画し、もし違ったら、あわてて正しい動きに描き直すシステムである。
 上図で言うと、画面右側のディズィーというキャラが相手プレイヤー。まず「→方向に入力している」という「事実」があるので、これをもとに「→方向に入力し続けるだろう」という「予測」で、次の攻撃もガードするモーションを描画し始める。しかし、実際は「→方向への入力をやめて攻撃ボタンを押していた」ので、それが判明した瞬間に、正しい描画である被カウンターのモーションに描画し直す、という感じ。

 ときどき「ロールバックシステムはプレイヤーの動きを未来予測している」みたいに言われることがあって、「高度なAIか何かで高速演算し続けているのか……?」と思ってしまうのだが、予測のしくみ自体は「同じ入力が継続されるものとする」だけなので、じつは非常に単純。
 

 難点は、正しい動きに描き直してつじつまを合わせるときに、どうしても数フレーム飛んでしまうので、そこで見た目に違和感が生じること。これが、プレイヤーが感じる「カクつき」の原因であることが多い。
 ロールバックフレームは通信状況により随時変わるが、たとえば「5~7」くらいだったら、予測が外れて描き直しが発生した際に5~7フレームくらいは飛ぶことがある、ということだ。こればかりはしかたない。
 むしろ、描き直し以外では海外プレイヤーともそんなに違和感なく対戦できていることから、ロールバックというのはやはりすごい技術だとわかる。

 これをふまえたうえで、ここからは、いくつかの実例を見てみよう!
 なお、いずれの実例においても、ロールバックフレームの表示は5~9くらい。極端に大きかった試合を意図的に取り上げている。
 
 

[例1] 空中ダッシュ

 相手のディズィーが上(↑)にジャンプしてから、空中ダッシュ(←←)をしかけてきた場面。
 リプレイもリアルタイムも1F目は同じだが、2F目からの描画が異なる。実際には、2F目からディズィーの足元に黄色い魔法陣が出現し始めている、つまり空中ダッシュの動作が始まっているが、リアルタイム対戦時には通信遅延によって空中ダッシュの入力をまだ確認できていないので、「ジャンプ(↑)を継続する」と仮定してジャンプモーションが引き続き描画されている。
 そして、10F目で空中ダッシュの入力が確認できたので、描画が急に追いつき、つじつまが合う。いい感じになる。
 

 ただ、つじつまを合わせるために空中ダッシュの予備動作が8F削られているので、こちら側としてはどうしても「急に飛んできた!」となる。8Fは約0.13秒。
 なので、空中ダッシュを見て対空攻撃で落とそうと思ったら、通常より0.13秒ほど猶予が短いことになる。
 

 ぼくは対空だけは得意なので落とせたが、0.13秒のハンデがあるぶん、前向きに打ち落とすはずが、後ろ向き(めくり)になってから打ち落としてしまった。
 このハンデは迎撃側に不利だが、逆に言えば、空中攻撃をしかける側には有利。ロールバックのフレームぶん相手の迎撃猶予が短くなるので、ロールバックがあるときは積極的に攻めたほうが強いことがわかる。
 
 

[例2] ラウンド開始直後

 1F単位ではなく、もう少し大きな「流れ」の視点で、ロールバックの影響を見てみよう。
 これは、ラウンド開始直後の例。3~4F刻みでスクリーンショットを載せている。
 実際には、5Fの時点でディズィーはすでに前ジャンプを始めている。跳ぶためにしゃがむ予備動作だ。しかし、リアルタイムではまだ前ジャンプの入力を認識できていないため、ニュートラル(棒立ち)のまま。しばらく進んで、12F目で急に追いつく。こちら側としては、予備動作をすっ飛ばして急に跳んだように見える。
 

 ちなみにこれは、仮にディズィーがラウンド開始前から前ジャンプを入力し続けていた場合は、「前ジャンプを入力し続けるはず」という予測で描画が行われるので、最初の棒立ちは起きず、実際の動きと同じように前ジャンプが描画される。
 このことから、このラウンドでは、ディズィーがラウンド開始とほぼ同時くらいに前ジャンプを入力し始めたことがわかる。これは、念のためリプレイで入力履歴も確認して実証済み。

 これを利用すると、ロールバックフレームの大きい状況下では、ラウンド開始直前までしゃがみ(↓)などを入力しておき、開始と同時にジャンプ(↑)などをすることで、一瞬だが相手の画面に描画ズレを生じさせるフェイントができる可能性がある。
 ……が、たいして効果はなく、操作ミスする可能性が高く、別にかっこよくもないので、やる意味はあんまりなさそう。
 
 

[例3] ガードと思いきやカウンター

 これは、ロールバックフレームが大きいときによくある現象のひとつ。「あれっ!?」となるので、印象に残りやすい。
 エルフェルトが「遠S→HS」の連続攻撃をしかけていて、1F時点で、ディズィーは遠Sをガードしている。つまり、後ろ(→)方向に入力している。
 8~15F時点では、後ろ(→)入力が継続されると仮定して、続くHSもいったんガード成功の描画を始めている。
 が、実際にはディズィーは割り込んで反撃しようと攻撃ボタンを押していたので、カウンターをくらっている。これが22F時点で判明したので修正、という流れ。

 ガードされたと思ったらヒットしていた、という話なのでなんとなくお得感があるが、不利益としては、「カウンターヒットの演出が出るのが遅くなるので、カウンターヒット時用のコンボをとっさに出す難度が上がる」というものがある。
 いわゆる「コンボ判断」が早い人や、とっさに出しやすいカンタンなコンボを用意している人なら、こういうときも対応しやすい。
 
 

[例4] ヒットと思いきやガード

 例3とは逆のパターン。「ヒットした!」と思ったらガードされていたケース。
 1F時点では、ブリジット(相手キャラ)にMissシャルロットという必殺技がヒットしている。このとき、くらいモーション中だが、ブリジットは前歩き(→)を入力している。
 5F時点では、ブリジットはすばやくニュートラル(無入力)に戻しているのだが、予測が追いつけていないので、ブリジットは前に歩いてくる描画になる。
 9F時点では、ブリジットはすばやくガード(←)に切り替えているが、これまた予測が追いつけていないので、近Sをくらったモーションが描画され始める。
 13F時点では、ガード(←)の描画が追いついたが、実際にはブリジットはすばやくフォルトレスディフェンス(←+FD)に切り替えているため、フォルトレスディフェンスを示す青い球状の光までは出ていない。
 

 ……という感じで、相手プレイヤーがかなりすばやく入力を切り替えていた場合、それは「直前の入力が続くものと仮定する」というロールバックのしくみと相性が悪いため、描画ズレが発生しやすくなることがわかる。
 逆に言えば、もともと操作が激しいキャラを使っている人とか、前後に小刻みに歩くようなフェイントをよく使う人とかは、ロールバックの恩恵を相対的に受けやすいのかもしれない。と言っても、ロールバックフレームがよほど大きいときにようやく微々たる差を感じられる程度だろうが。
 
 

[例5] ダストアタック

 本記事冒頭でもあった、ダストアタック。20Fの中段攻撃。
 間に合うわけねぇだろ! ふつうの対戦ならガードできるけど、ロールバックが8Fもあったら無理だよ! 20Fのダストアタックが実質12Fになるじゃねえか!

 ……と、思っていたのだが。
 見比べてみると、リプレイとリアルタイムに差がないような……?

 あっ、そうか! 先行入力!
 

 このケースだと、ブリジットが先に近Sを出していて、そのモーション中に次の行動としてダストアタック(D)を先行入力している!
 ということは、近S後は「D入力が継続されるもの」と仮定されて描画されるから、結果的に実際の動き(ダストアタック)とまったく同じになるんだ!
 

 これはつまり、ニュートラルやダッシュから繰り出すダストアタックはロールバックで実質12Fなどになることがありうるが、ほかの攻撃などから先行入力で出すダストアタックは多少のロールバックがあっても20Fのまま、ということだ。ガードする難度は通常通り。
 なるほど、よくできているし、よくわかった! しくみをかなり正確に理解できたぞ!

 ……

 いや、待てよ……だとすると……
 

 ダストアタックをくらって負けたのはロールバックのせいではなく100%自己責任でした。
 深くおわび申し上げます。
 

コメント

  1. 名無しのゲーマー より:

    こういう部分をちゃんと検証するのがほんとにすごい
    あと謝れてえらい

  2. 名無しのゲーマー より:

    真面目な格闘ゲーマー、ゲムぼく。

  3. 名無しのゲーマー より:

    ダストはわかってても立てないものだからね…

  4. 名無しのゲーマー より:

    ちょっと難しくて3回読み直したけど
    凄い参考になった
    ロールバックがある対戦はガン攻めしよう

  5. 名無しのゲーマー より:

    俺なんて溜めダストも立てないぞ

  6. 名無しのゲーマー より:

    これスト6でも同じ仕組みって事よね
    前後歩きでガチャガチャやるのが意外とフェイントになるのかな…

  7. 名無しのゲーマー より:

    >ときどき「ロールバックシステムはプレイヤーの動きを未来予測している」みたいに言われることがあって、「高度なAIか何かで高速演算し続けているのか……?」と思ってしまうのだが、

    まさにそう思ってました
    前フレの動きをくり返すだけなのね

  8. 名無しのゲーマー より:

    ロールバックが無かった頃の格ゲーのオン対戦は本当に酷かった…

  9. 名無しのゲーマー より:

    ゲムぼく。特有の綿密な調査と検証と研究だ!門外漢だけど勉強になった
    制限プレイの時から発揮されてたこの几帳面さが格ゲーの上達にも一役買ってるんだろうな

  10. 名無しのゲーマー より:

    中段は見えない
    古事記にもそう書かれている

  11. 名無しのゲーマー より:

    ダストは立てない
    自分が打つダストは立たれる

  12. 名無しのゲーマー より:

    グエーーーーーーッ!してるエルフェルトもかわいいね!お得

  13. 名無しのゲーマー より:

    >わからないことは、自分で調べてみるのがいちばん!

    このスピード感よ

  14. 名無しのゲーマー より:

    GGSTでここまでロールバック細かく検証してる人初めてじゃないかな?
    素晴らしい記事でした。

  15. 名無しのゲーマー より:

    ゚Д゚エルフェルトのこの顔好き

  16. 名無しのゲーマー より:

    すげー仕組みだなと思うけど、こう言うのも技術が上がるとマジで未来予測(もちろん予知ではないのでどうにもならん部分はあるが)して違和感どんどん減っていくんだろうな

  17. 名無しのゲーマー より:

    技術自体は昔からあったけどGGSTが出た時の最適化の凄さは衝撃的だった

  18. 名無しのゲーマー より:

    ダスト立てない言い訳に「ロールバックが~」が使えない事を知ってしまった…

  19. 名無しのゲーマー より:

    オチも含めて素晴らしい記事だ…

  20. 名無しのゲーマー より:

    ロールバックがある時はニュートラルからのダストを連打しようと思いました

  21. 名無しのゲーマー より:

    マジでぼんやりと
    なんかいい具合に遅延を解消してくれるシステム
    くらいの理解だったので助かる

  22. 名無しのゲーマー より:

    回線由来のラグの発生自体はどうしようもない
    それを描写の工夫でなんとかしている、って感じ?(未プレイ)

タイトルとURLをコピーしました