【マリオ64 RTA】WF 柵ひっかけの最適化を語る

考察テクニック,バッタンキングのとりで

バッタンキングのとりでには、『いかりのバッタンキング』『とりでのてっぺんへ』で使う『柵ひっかけ』がある。

70枚idealrun作成時、柵ひっかけまわりの最適化を学んだので、今回はその時の考察を語る。

70枚idealrunと120枚idealrunの差は2フレーム

今回は70枚idealrunと120枚idealrunを比較する形で話していくので、まずはそれぞれのバッタンキング話しかけのタイムを確認する。

wf-clip-optimization-1 wf-clip-optimization-2

  • 70枚idealrun(US): 9.80話しかけ×
  • 120枚idealrun(JP): 9.90話しかけ×

70枚idealrunはUS版を使っており、話しかけの仕様の違いで1フレーム速いタイムが出る。

そのため、差は3フレームではなく2フレーム(0.06秒)。この差がどのように生まれたのかを以降で見ていこう。

『柵ひっかけ後の二段ジャンプまで』でマイナス1フレーム

柵ひっかけ後マリオが初めてY文字状態になるのは、以下のフレームである。

(1枚目が120枚idealrun、2枚目が70枚idealrun)

wf-clip-optimization-3 wf-clip-optimization-4

120枚idealrunが6.63秒に対し、70枚idealrunは6.60秒。つまり、この段階で70枚idealrunのほうが1フレーム速いことが分かる。

70枚idealrunのタスは、120枚idealrunのタスを使いまわさずに最初から作り直したので、それによって1フレーム差が出たようだ。

一応、二段ジャンプの初フレームにも差が無いかを確認しておこう。

(1枚目が120枚idealrun、2枚目が70枚idealrun)

wf-clip-optimization-5 wf-clip-optimization-6

この段階でも、柵ひっかけまでの1フレームの差がキープできているようだ。

以上から、二段ジャンプからバッタンキング話しかけ×までで1フレームの差が生じていると予想できる。

先に『バッタンキングの足場まわり』の差を確認

『柵ひっかけ後の二段ジャンプ~バッタンキングの足場に乗るまで』の区間が重要ポイントなので、先にバッタンキングの足場まわりを確認する。

三角の足場からジャンプダイブを出すフレームは以下となっていた。

(1枚目が120枚idealrun、2枚目が70枚idealrun)

wf-clip-optimization-7 wf-clip-optimization-8

120枚idealrunは8.00秒なのに対し、70枚idealrunは7.90秒。つまり、0.1秒(3フレーム)の差がある。

最初に話した通り、バッタンキングの話しかけ×までのタイム差は2フレームなので、このパートでは70枚idealrunのほうが1フレーム遅いことになる。

以上から、

  • 柵ひっかけ二段まででマイナス1フレーム
  • 二段からバッタンキングの足場に乗るまででマイナス2フレーム
  • バッタンキングの足場でプラス1フレーム

で、合計マイナス2フレームとなったことが分かる。

ということで、メインである『柵ひっかけ後の二段ジャンプ~バッタンキングの足場に乗るまで』の区間を見てみよう。

『柵ひっかけ後の二段ジャンプ~バッタンキングの足場に乗るまで』を見てみる

以下の2つのポイントのタイムを見ると面白いことが分かる。(柵ひっかけの差を除外)

■三段ジャンプの初フレーム

wf-clip-optimization-9 wf-clip-optimization-10

■三角の足場での初歩きフレーム

wf-clip-optimization-11 wf-clip-optimization-12

『三段ジャンプの初フレーム』は70枚idealrunのほうが3フレーム遅いが、『三角の足場での初歩きフレーム』は70枚idealrunのほうが2フレーム速いのだ。

普通に考えれば、『三段ジャンプの初フレーム』が3フレーム遅いのなら、『三角の足場での初歩きフレーム』も3フレーム遅いという結果になるはずなのだが、そうはなっていない。

どうしてこんなことが起こるのだろうか。

大事なのは二段ジャンプの大きさ!

『柵ひっかけ後の二段ジャンプ~バッタンキングの足場に乗るまで』における動きの差は、二段ジャンプの大きさだ。

120枚idealrunでは1フレーム二段ジャンプなのに対し、70枚idearunでは2フレーム二段ジャンプを採用している。

ということで、結論からすると『二段ジャンプを2フレームジャンプにすることで速くなる』のだが……。

どうして二段ジャンプの大きさを変えるだけで速くなるのかを考えてみよう。

二段ジャンプを大きくすると速くなる理由を考えてみる

このパートにおけるそれぞれの軌道を描いたのが以下だ。茶色の四角が柵となっている。

(1枚目が120枚idealrun、2枚目が70枚idealrun)

wf-clip-optimization-13 wf-clip-optimization-14

注目してほしいのは、二段ジャンプの着地位置と三段ジャンプの着地位置だ。

120枚idealrunでは、二段ジャンプの着地位置が階段付近なので、そこから三段ジャンプを出して、三段ジャンプの頂点で三角の足場にたどり着いている。

wf-clip-optimization-9 wf-clip-optimization-15

一方70枚idealrunでは、二段ジャンプの着地位置が階段先の平地なので、そこから三段ジャンプを出して、三段ジャンプの頂点に達する前に三角の足場にたどり着いている。

wf-clip-optimization-10 wf-clip-optimization-16

要は、70枚idealrunは二段ジャンプの着地位置を奥にすることで、三段ジャンプを三角の足場に吸わせて余計な高さを抑えているのだ。

これが『二段ジャンプを大きくすると速くなる理由』なのではないかと私は予想している。

【追記】『マリオの速度の関係で2フレーム二段ジャンプのほうがより先に進めている』というのも理由としてあるかもしれない。(マリオの影を見ると分かる)

むすび

今回の学びは『柵ひっかけ後の二段ジャンプを2フレームジャンプにすることで最適化できること』である。

この最適化は『いかりのバッタンキング』『とりでのてっぺんへ』の両方で使えるものとなっている。

狙ってできるかは人それぞれかもしれないが、さほど難しくないので、試す価値があるのではないだろうか。