オリジナル版『FF7』において、“Disc1部分の大半スキップ”を可能にする手法が見つかる。エアリスも最後まで連れていける

Image Credit: Luzbel on X

発売から30年近くが経つ名作RPG『ファイナルファンタジーVII』(以下、FF7)において、スピードラン(RTA)における新たなルート短縮手法、いわゆるスキップが発見されたという。Disc1の大半を飛ばす前代未聞の新しいスキップであり、『FF7』のスピードラン界が騒然となっている。本稿には、オリジナル版『FF7』のネタバレも含まれるため、留意してほしい。

『FF7』は、スクウェア(現スクウェア・エニックス)が1997年に初代PS向けにリリースしたRPG。2024年現在でもその人気は根強く、スピードランにおいても非常に人気のゲームとなっている。今回発見されたスキップは、ミッドガル脱出後にワールドマップ上で海を渡り山脈をくぐり、直接「忘れらるる都」に向かうというもの。実用化されればAny%(なんでもあり)カテゴリにおいて2時間近いタイム短縮になるのではないかといわれている。

一部では「Oceanfly」という名前が付けられつつあるこの新しいスキップは、『FF7』のワールドマップ上におけるバグを利用したものだ。このバグとその仕組み自体は以前から知られており、2年前に発見されスピードランにおいて実用化されている「カームスキップ」という手法でも、同じバグが利用されている。このバグについてはスピードラン走者であるAceZephyr氏の動画にて詳しく解説がなされているが、本記事でも簡単に説明を試みよう。

まず『FF7』ではキャラがワールドマップ上を移動している時、ワールドマップを細かくエリアに分割して、ゲーム機のメモリにロードしている。メモリに読み込まれるのは、キャラが存在する周辺の最大32個のエリア。マップを大きく移動すれば、遠くなったエリアの情報は破棄され、かわりに新たなエリアがロードされる。また、ワールドマップの地形は無数の三角形ポリゴンによって構成されており、クラウド(などのマップ上オブジェクト)は接触した三角形ポリゴンのうち、直近の過去6つまでのポリゴンの情報を保持している。

ワールドマップ上でクラウドとマップ地形との接地判定が処理されるとき、クラウドが保持する6つのポリゴン情報が順番に判定。「クラウドがマップのその位置に立てるか」が決定され、問題なければクラウドはその場所に立つことができる。注目点は、この「ポリゴン履歴」はオブジェクトごとに保持されているということ。つまりクラウドがチョコボに乗って移動している間は、チョコボのポリゴン(移動)履歴のみが更新されていき、クラウドのポリゴン履歴はチョコボに乗り込んだ時点から一切更新されないということだ。

AceZephyr氏の動画より

ポリゴン履歴には、そのポリゴン情報がゲーム機のメモリ上のどこに格納されているかの情報(ポインタ)のほかに、そのポリゴンが属するマップエリアの座標も記録されている。クラウドが立ったマップエリアがその記録されたエリアと異なる場合、そのポリゴン履歴は無視される。たとえば座標(21,16)のエリアでクラウドがチョコボに乗り、座標(24,13)のエリアで降りたとする。クラウドがチョコボに乗っている間クラウドは(21,16)エリアのポリゴン情報をずっと保持したままだが、チョコボから降りてもエリア座標が一致していないため、マップエリア(21,16)に帰属するポリゴン履歴はすべて参考にされないわけだ。

AceZephyr氏の動画より

しかしチョコボに乗ったままワールドマップ上を大きく移動し、また同じエリアに帰ってきた場合は事情が異なる。前述の通り、ワールドマップのエリア情報は、最大32個のメモリ上の領域(便宜上スロットと呼ぶ)に格納されており、キャラの位置と動きに応じて各スロットに読み込まれたり、上書きされたりする。どのスロットにどのマップエリアがロードされるかはキャラクターの移動次第だ。たとえば、「スロット30」に読み込まれているマップエリアでチョコボに乗り込んだとする。その後チョコボでそのエリアのデータがアンロードされるほど遠くまで移動した後に戻って来ると、同じマップエリアが今度は「スロット20」に読み込まれる可能性があるのだ。

ここでクラウドがチョコボから降りると、今いるマップエリアのポリゴン情報は実際にはスロット20に読み込まれているにも関わらず、クラウドのポリゴン履歴はかつてスロット30に読み込まれていた地形情報の(メモリ上の)位置を示したままである。もちろんスロット30には今は全く別のマップエリアの情報がロードされているわけで、接地判定を行う関数にもデタラメな数値が読み込まれてしまうのだ。ここまで説明すれば鋭い方やグリッチに詳しい方ならお気付きかもしれないが、このバグにおける「クラウドが保持するポリゴン履歴」と「ゲーム機がロードするマップエリアとそのスロット」はどちらもプレイヤー、しいてはキャラクターの移動操作に依存している。つまりこのバグによって引き起こされる「意図せぬ挙動」は、仕様を深く理解したプレイヤーの手にかかれば完璧に制御可能なのである。

AceZephyr氏の動画より

そしてこのバグを研究し尽くした結果生まれたのが今回のスキップである。クラウドの6つあるポリゴン履歴をほぼフルに活用し、接触するポリゴンを吟味。特定のポリゴン情報をクラウドに保持させた上でチョコボに乗った状態で“謎の移動”を繰り返し、ワールドマップのエリア情報を任意の順番でロード。すると不思議なことにクラウドの「海渡り」が実現するというわけだ。

このスキップはミッドガル脱出後、チョコボを捕まえられるようになるミスリルマイン前から「忘らるる都」までを丸々スキップするという豪快なものだ。これがスピードラン的にどういう意味をもつかというと、時間の短縮はもちろん、Disc1以降のルートも大幅な変更を余儀なくされるだろう。というのも、ミスリルマインと忘らるる都の間で本来手に入るはずだったレベル、経験値、装備、アイテムなどの一切がチャートから失われることになり、大幅な短縮と引き換えに、以降の冒険が格段に厳しくなることが予想されるからだ。

そしてもうひとつ、RTAチャート的にも話題性的にも見逃せないのは「エアリスが最後まで使える」という点だ。このスキップが成功すると、古代種の神殿後のエアリスがパーティーから強制離脱させられるパートがそもそも発生しない。忘らるる都でのエアリス殺害イベントは発生するし、ムービーも流れるし、ジェノバLife戦も発生する。しかし、その間ずっとエアリスはパーティーにいられるし、以降も平然とパーティーに居座り続けることが可能なのである(厳密には、以降はエアリスをパーティーに入れているとフリーズする状況がいくつかある)。こういった面でも、このスキップが実用化された際のRTAチャートへの影響は計り知れないのだ。

このスキップは基本的には『FF7』のバージョンに関わらず可能であり、PS1版だろうがPC版だろうが英語版だろうが日本語版だろうが問題なく再現可能とされている。ただし、PS1版においては実用化までに大きなハードルがひとつ控えている。このスキップが正しく機能するためには、メモリのマップ情報を書き換える移動の“儀式”中はワールドマップ上でエンカウントをしてはいけないのだ。チョコボ騎乗中はエンカウントしないため実際にエンカウントしなくてもいい距離はそこまで長いわけではない。しかし、運任せで切り抜けられるものでもない。

現在『FF7』スピードランコミュニティは、乱数調整でこのスキップを実行中のエンカウントを必ずゼロに抑えられるセットアップを調査中とのこと。決して悪あがきではなく、「実用的なセットアップが発見される可能性はかなり高い」とのことで、『FF7』スピードランに「革命」が起きる日はそう遠くないのかもしれない。

なお、この新スキップの発見について『FF7』リメイクシリーズのディレクターを務める浜口直樹氏もSNS上にて反応。海外報道に言及するかたちで、発見への驚きを示している。