シフトチェンジ


ゼロヨンチャンプで速く走るための肝はなんといってもシフトチェンジ。
というわけでいったいどのような条件でシフトチェンジが成立しているのか、どうやってシフトチェンジするのが一番速いのか調べてみました。

まず基礎知識としてRRZがどのような速度で処理されているのか。
これはやはりというか当たり前というか60fps(フレーム/sec)のようです。
ちなみに一応説明しておくと60fpsとは1秒間あたり60回処理してるという意味です。
ということでRRZのレース中のタイムは0.016秒単位でカウントされてます。
ただゴールしたあとに補正がかけられているようで、必ずしも最終タイムが0.016秒単位というわけではないようです。
たとえばゴールした瞬間のタイムが7.400秒だったのに、その直後が7.385秒になるなんて事が実際にありました。
どうやら最後の端数はちゃんと計算しているようです。
今までこのゲームさんざんネタにしてきましたが、意外と侮れません。

もう一つボタン入力について。
これ勘違いする人が多いんですが、60fpsのゲームでは60連打はできません。
最高30連打です。
なぜなら連打を成立させるには押した信号の次に離した信号も送らなければならないからです。
つまり60fpsのゲームで60連打するとボタン押しっぱなしとして認識されてしまうわけです。
とぎれた連続(連打)入力を成立させるにはoff信号も与えてあげなければならないわけです。

前置きが長くなりましたが、肝心のシフトチェンジの条件ついて調べてみたところ以下のような事がわかりました。

・クラッチを押している間のみシフト操作を受け付ける。
・クラッチ入力とシフト操作を同時に行ってもシフトチェンジは成立する。
・シフトチェンジは1フレーム(以下f)で成立する。
・シフトチェンジ成立後から実際にシフトチェンジが行われるまでには2fかかる。
・一度シフト操作をしたあとにもう一度同じシフト操作をしたい場合は1f以上レバーをニュートラルにする(そのレバー以外を入力する)必要がある。
・各ギアからNに移動する時のみレバー同時入力が成立する。Nからは不可。
・シフトチェンジが成立すれば、実際にシフトチェンジが行われる前にシフト操作及びクラッチ操作をしてもちゃんとシフトチェンジは行われる。
・シフトチェンジは実際にギアが移動する前でも重複して先行入力で成立させる事ができる。

と、まあこんなところです。
ただだらだらあげてもよくわからないと思うので、実際に最速シフトチェンジの理論値を表で示してから解説します。
下の表は1速から2速へシフトチェンジする場合の理論値です。
レバーの数字はテンキーを眺めてみてください。
何も入力していない時は5です。
クラッチはボタン押しているところが○、離しているところが×です。
ギアは実際に入っているギア位置です。

フレーム
レバー
クラッチ × ×
ギア N N

まず1フレーム目の動作ですが、クラッチ入力と同時にシフト操作もします。この操作でシフトチェンジ操作が成立します。

2フレーム目ではシフトチェンジは成立していますが、実際にシフトチェンジが行われるのは入力後2フレーム目なのでこのフレームではギアは動きません。
このフレームではレバーをニュートラルにして次のシフト操作の条件を成立させておきます。
一度シフトチェンジが成立してしまえばレバーを操作しても影響ないので、ギアが実際に変わる前にニュートラル条件を成立させてしまっても大丈夫です。

3フレーム目で実際にギアがニュートラルに変わります。
このフレームでまたレバー入力をします。
前のフレームでシフト操作の条件であるレバーニュートラルは成立させてあるのでシフトチェンジが成立します。

4フレーム目以降ではレバー入力はしてても問題ありませんがクラッチは離します。
これは少しでもクラッチを繋ぐ条件を成立させたいからです。
シフトチェンジ操作のみを考えるのなら別に離さなくても良いですがタイムを稼ぐためには必須です。
また2フレーム目と同じようにすでに前のフレームでシフトチェンジが成立しているのでどのような操作をしてもシフトチェンジはしてくれます。

5フレーム目でシフトチェンジが完了します

この間時間にすると0.083秒。
さらにこの操作を0.016秒間隔でしなければなりません。
同じフレームで操作がかぶってしまってはいけませんから。


ちなみに2速から3速の場合もほとんど変わりません。
ちょっと難易度が上がるだけです。

フレーム
レバー 68
クラッチ × ×
ギア N N

最初に同時押しが増えるだけです。
この場合のNは真ん中です。
一度の操作で右上にシフトチェンジするわけです。
ちなみに最初の同時押しができない場合はこうなります。

フレーム
レバー
クラッチ × ×
ギア N N

時間が変わりませんがこちらの場合は連続シフト操作が発生しないのでレバーをニュートラルにする必要がありません。
また、シフトチェンジは先行入力が可能なので結果的に同時押しと同じ時間でシフトチェンジできています。
こうやってみてみると同時押しでも順押しでも理論上はタイムは変わらないという事がわかりました。
世間的には同時押しはタイムを縮める手段の一つとして用いられているようですが、調べてみるとおもしろい結果が出てくる物です。

以上が解析結果ですが、この結果から導き出される結論としては。

・人間では最速タイムを出すのは無理かもしれない。

これは歓迎すべき事でしょう。
人間で出すのが無理って事は少なくとも限界はないって事になるんで、
対戦ゲームという観点ではおもしろい事になるでしょう。
ただ最速風神拳を当たり前のようにできる人がこの世にはいるらしいので、
もしかしたら人間でも最速タイム出せるのかもしれませんが、少なくとも私には無理です。
なんだか解析したらタイムアタックやる気失せました。
これ読んでも情熱が冷めない皆様はぜひがんばって限界にチャレンジしてください。
ちなみにこのシフトをちょっと卑怯な手を使ってやってみたところ、
シフトチェンジポイントを全く煮詰めていないにもかかわらず、7.153秒というタイムが出ました。
もしかしたら本当に7秒切れるのかなあ。

あとコマコンでこれって再現できるのかな?
私はコマコンについてよく知らないんですが60フレーム単位で同時押しまで入力できるコマコンってあるんですかね。
よくコマコンでもこんなタイムは無理なんて話を聞きますが、
逆にコマコンだからこそ無理だったりして。

一応以上で終了ですが、他人からのつっこみ次第では追記の可能性大。
結構勢いで書いたんでつっこみ大歓迎です。
掲示板にでもお願いします。