FF8Remastered スクリプト【BATTLECUT】

2023年7月1日FF8, スクリプト

こんにちわ。

今回はBATTLECUTというスクリプトについて説明しようと思います。

また、スクリプトについて少し説明しようと思います。

FF8ではフィールドマップ、ワールドマップ共に独自のスクリプトを実行してゲームが動いています。(ワールドマップは未解析)

ムービー・BGM・SEの再生、特定の位置でのイベント実行から変数処理、カードのルール変動に乱数発生、G.F.の入手まで全てをスクリプトで実行させることができます。

スタックプッシュされた値を、独自のスクリプトにポップして使用します。

スタック?プッシュ?ポップ?

ナニイッテルノ?

こちらはC言語等で使用されている言葉みたいですね。

FF8でも重要な言葉になります。

一部のスクリプトを除き、ほとんどのスクリプトは値を必要とします。

アニメーションを再生するスクリプトでも、値が無ければ何番のアニメーションを再生していいか分かりません。

その時にスタックプッシュされた値を、ポップして使用します。

この流れ大事です。

スタックは上からしか出入りが無い箱と考えてもらえればいいです。

現在は空とします。

スタック()

スタックと呼ばれる箱に値(1)をプッシュします。

スタック(1)

次に値(5)をプッシュします。

スタック(5,1)

次に値(3)をプッシュします。

スタック(3,5,1)

これで現在箱の下から1,5,3と積み重なっています。

この状態でポップすると・・・

ポップ(3)

スタック(5,1)

最期にプッシュした値(3)が取り出されました。

最初にプッシュした値(1)は底にある為、先に乗っている値をポップしないと使用することができません。

何の値がスタックされているか考える必要があります。

ですが、基本的にスタックされた値はすぐ使用する、使用直前にプッシュポップするのがFF8では当たり前みたいです。

また、プッシュポップ時に型を指定できるみたいです。(longやword、byte等)

スクリプトの種類

多いです。

未使用含めて000(16)~183(16)

十進数だと388個あります。

テキストを表示するスクリプトでも場所や条件によって数種類使い分けています。

また面白いものがあれば紹介したいです。

BATTLECUT

本題ですが、今回紹介するBATTLECUTは名前のとおり、戦闘をカットする事ができます。

夢のような機能ですが、当然こちらはデバッグルームでのみ設定できる機能となっています。

また、カットできるのは固定エンカウントのみになり、ランダムエンカウントは変わらず発生します。

固定エンカウントが発生した瞬間に戦闘が終わります。

戦闘しようとしたら戦闘がすでに終わっていたという事になります。

面白い機能ですが、このスクリプト、欠点があります。

一度実行するともう戻せません。

何をしても何のスクリプトを実行してももう固定戦闘は出来ません。

永久に終わることの無いBATTLECUTを味わうこととなります