聖剣伝説3(SFC)を攻略・分析するサイト

処理落ちと処理の優先順位

 このページではマニアックな解説をおこなっており、極端な話『知らなくてもクリアには全く影響が出ない』ため、興味がある人でもさらっと流し読み程度で十分なことを最初に記載しておく。

 本作は『プログラムの観点』から言うと美しいグラフィックの表示に加え、味方AIが2つと敵AIが3つが常時動き続けるという、SFCの処理能力の限界に挑んだ作品と表現することができる。

 しかしSFCにはその設計から処理能力があまり高くないため頻繁に処理落ちが発生する。当サイトで紹介している各種テクニックもこの処理落ちの『仕様の隙』を突いたものとなっている。

 人によっては拒否反応を示すかもしれないがもはや処理落ちと戦っているんじゃないかと錯覚するほど頻繁に処理落ちするため、本作と処理落ちは切っても切り離すことができない。そのため仕様を上手く活用したほうが良いだろう。

 ちなみに各種処理の同時進行は不可能だったようで処理の種類によって優先順位が設けられていることがわかっている。無理に理解する必要はないが反撃回避術①反撃回避術②をロジックで理解したい人は読んでおくと良いだろう。

 なお別に管理人がソフト内の解析をしたわけではないことを念のために明記しておくことにする。しかしこれらの現象は黎明期のMMOなどで良く見られた現象なので『当たらずとも遠からず』の範囲には収まっていると思われる。


優先順位1位:レベルアップ処理

 恐らくすべての処理よりも優先される処理。レベルアップ処理が入るともはやプレイヤーの操作すら受け付けてくれない。感覚が独特なので、手慣れたプレイヤーなら処理落ちの感覚でレベルアップしたことが確信できてしまうだろう。

 ダメージの計算にキャラクターのステータスが関わるため『ステータスの計算が終わるまでは戦闘を継続させない』必要があるので『最優先』なのだと思われる。

 これは予測だが、戦闘時に毎回計算していたら処理が間に合わなくなってしまうので『ダメージ予定値』なるものを事前に計算しておいてどこかに格納している可能性がある。ケヴィンの獣化関連で攻撃力にバグが発生しやすいのも多分この『ダメージ予定値』を優先しているので各種再計算が行われにくいためだろう。

 こう考えるとYボタンを押した時のメニュー画面の異常な重さも説明がつく。装備品を変更すれば当然『ダメージ予定値』も変更しなければならないので大量のデータを呼び出す必要があり、結果として処理落ちするというわけである。

 なお、レベルアップさえ終えれば『ダメージ計算』は行われないものの、下記の優先順位3は入力を受け付けてくれる。そのため処理の一部は『独自の並列処理ライン』で行われていることがわかる。

 

優先順位2位:モンスターの撃破処理

 多少順位がブレるかもしれないが、恐らくモンスターの撃破処理はこの位置で処理されている。というかレベルアップに直結するのでこの位置だと考えざる得ない。

 モンスターの撃破処理は確実に処理しないと永遠に戦闘が終わらなくなる可能性があるためか上記の優先順位①と同じように『独自の並列処理ライン』を持っていることがわかっている。

 問題があるとすれば『モンスターの撃破処理には多くの時間を要すること』で多くの場合は『攻撃被弾のエフェクト』と一緒に敵が硬直してから処理落ちしつつ撃破の爆破エフェクトが出ることが多い。

 この仕様のせいで『致死ダメージを受けているはずのモンスターの撃破処理が間に合わず、結果として死に際に反撃してくる』という珍現象が発生しているわけである。

 

優先順位3位:操作キャラの移動、攻撃処理

 これはかなり優先順位が高く、レベルアップ直後の内部ステータスを変更している間でも入力を受け付けてくれる。

 ただしダメージ計算自体は優先処理①が完了するまでは行われない。そのため優先処理①が終わった瞬間に一気に処理が行われるのでレベルアップ直後の大量ダメージ発生はある意味で処理落ちが多いこのゲームの風物詩となっている。

 何はともあれ操作キャラクターが動かせないと操作感にかなりのストレスが発生してしまうため、これほど高い順位に設定されいるのだと思われる。

 

優先順位4位:AIによってリーダーを変更『させられた』時のリーダー移行処理

 見出しの『させられた』と言うのがポイントで、プレイヤー自身が『任意でリーダーチェンジした』ものではない点に要注意。任意でリーダーチェンジする優先順位はもう少し低めである。

 具体的にこの『させられた』を解説すると以下のようなものが挙げられる。

  • 操作キャラのHPが0になって戦闘不能になった
  • 操作キャラが眠り状態になって操作不能になった
  • 操作キャラが石化状態になって操作不能になった
  • 操作キャラが雪だるま状態になって操作不能になった

 これらの時にスムーズにリーダーチェンジがAIによって行われないと操作不能のままリングコマンドを開けずに全滅してしまうという事象が頻発してしまうことが懸念されるので、リーダーが変更『させられた』直後は優先的にリングコマンドを開くことができる。

 ちなみに『任意のリーダーチェンジ後の対象キャラ』が詠唱中だとAIが『睡眠などの操作不能状態』と誤認してしまい、一旦さらに次のキャラにリーダーチェンジされた後、詠唱開始時に誤認に気が付いて本来リーダーになるべきだったキャラにリーダー権が戻ってくる。

 この『AIの誤認による処理落ち』と『優先的にリングコマンドを開ける』を利用したのが反撃回避術②で、分かりやすく表現すると、優先度が高い処理を人工的に大量発生させて『敵の反撃アクションの発動順』を下へ下へと押し流してしまい、発生した僅かな猶予の間に敵の撃破処理を完了させてしまう、と表現することができる。

 

優先順位5位:ダメージ、回復の発生処理

 ダメージと回復は優先順位2位のモンスター撃破処理に直結するためか、処理の優先順位は高い設定が行われている。

 リーフセイバーやムーンセイバーもそうだが『吸収されるセイバー』も攻撃ダメージと回復ダメージ(と相手の回復モーション)が発生するので計算に負荷がかかるらしく強烈な処理落ちが発生する。

 この仕様を使用して複数匹を攻撃し続けると優先順位6位以降は処理が行われなくなり、しばらくの間操作キャラクター以外が全て棒立ち状態になってしまうことで知られている。

 

優先順位6位:リングコマンドの開閉、リーダーチェンジ、敵味方の魔法発動、敵AIの処理、味方AIの処理

 ここは処理の順番が状況や種類によって変わるときがあるが、概ね『リングコマンドの開閉→リーダーチェンジ→敵味方の魔法発動→敵AIの処理=味方AIの処理』の順番である。

 これだけ見ると上記の優先順位5を利用すればすべての敵を行動さずに『ハメ状態』にして倒せてしまいそうだが、上記のとおり『複数の項目の処理を一気にサボりだす』ので徐々に処理が追いついてしまい、大体3秒~5秒程度で抜け出してくることが多い。

 

まとめ

 時とタイミングによって処理する順番が変わったり、並列で処理する項目が変わったりもするはずだが概ねこんな感じで処理されていると見て良いだろう。

 こう見るとアクションRPGなのに味方AIと敵AIの処理の優先度がかなり低いことがわかる。しかしまぁ味方AIはともかく敵AIは敵AIと味方AIの違いでも解説しているとおり信じられないくらい高度なAIで動いている。

 これだけの負荷を常時かけられないので多分敵味方のAIの優先順位は低いのだろう。つくづく演出を優先したゲームであることを実感させられると言える。

 

スポンサーリンク

 

© 2018 色々なゲームを極める All Rights Reserved.