エンカウントシステム

初めに

 エンカウントは英語でencounterの事で、要するに敵との遭遇です。
 ここでは各ゲームについてのエンカウントシステムについて解説していこうと思っています。

 ROGでのエンカウントのしくみは大きく分けて2種類に大別出来るようです。
 1つ目は乱数列型、もう1つはフレーム型です。
 ロマサガでお馴染みの「シンボルに触れると戦闘」型は説明しようがないので割愛します。


乱数列型の場合

 乱数列を予め用意しておき、一歩歩く毎に乱数を取り出していって乱数が一定の数値(危険度)未満であった場合にエンカウントする方式です。FF1〜7辺りで利用されています。ドラクエも基本的にこれで行われているようです。
 FF1〜3では同じ乱数テーブルが使われており、詳しくはFF2よ永遠なれを参考にして下さい。具体的には電源投入直後に乱数テーブルの特定の位置にセットされ、一歩歩く毎に乱数を取り出して行き、乱数が危険度未満のときにエンカウントします。すり抜ける壁やダメージゾーンはシリーズによって歩数と見なされたり見なされなかったりします。
 FF2とFF3では移動中に乱数を消費する行動(ケアルやポーション)を取ると歩数の乱数テーブルが消費されるため、エンカウント飛ばしが出来ます。

 FF4以降は細かい事はあまり判っていません。おまけにフレームで開始歩数が決定されるため、更に不確定要素が高いです。FF6でゾゾ街で2000歩ほど試しましたがパターンがループする様子はありませんでした。Index of /~s-endo/で見た所ではFF6の乱数テーブルは65536周期になっているようなので、それだけ歩けば分るかもしれません。初めから始めてクリア出来る程度の歩数ですが…。
 FF7もセーブ→戦闘まで歩く→リセットを繰り返すと歩数データが存在する事が判るはずです。
 FF6の退魔の腕輪やFF7の敵避けマテリアは、危険度を低下させていると考えられます。
 ドラクエもえ○ゅでやった感じでは出現する歩数が決まっているようなので、FFと同じ方式を採っているのかも知れません。


フレーム型の場合

 乱数フレームを用意し、歩いた時点の乱数を調べてそのときの数値が一定値以上だった場合にエンカウントする方式です。FF8,9でこの方式が採られているようです。
 具体的には乱数列をフレームで進め、歩いた場合は乱数を取り出し、乱数が危険度未満のときにエンカウント、となっていると思われます。普通に1個ずつ取り出しているとエンカウント率がバカ高くなってしまうため、連続で乱数を取り出して全て一定以下だった時にエンカウントするのかも知れません。フレーム乱数の変化は60回/1秒と、言うまでもなく人間には対処不能な速度であるため、これを制御してエンカウントを防ぐ事は出来ません。
 尚、FF9ではフロアに滞在する時間が長くなるとエンカウント率が上がるそうですが、これは滞在時間に応じて危険度が上がるように設定されているのかも知れません。


エンカウントモンスターの種類について

 次に出現するモンスターグループがどのように決定されているかについて述べようと思います。予め言っておくと、上のエンカウントの方法とは乱数が連動していない(全然違うもの)ので注意して下さい。

 基本的には乱数テーブルを利用して順番に出現するようです。
 フロアに応じてグループと乱数を対応させ、エンカウント毎に乱数を読んで、乱数テーブルの分布に応じて出現する敵グループを決定します。
 FF1〜3・7では電源投入時点で乱数が特定の位置にリセットされるために、電源投入からの戦闘回数でどの敵が出現するかが予測出来ます。これによってFF7でムーバーを効率良く狩ったり、戦いたくない敵との戦闘を回避したりも出来ます。とは言ってもFF7では正確に乱数とモンスターグループが対応しているのか不明です。乱数それぞれにグループが設定されている可能性もありますが。

 その他はよく知りませんが、フレームを利用しているものであると考えられます。
 例えば、サガフロ2ではペッグナイト等のレアモンスターが出現しますが、接触寸前にセーブしてペッグナイトが出現すれば何度やり直しても確実に出現するという小技が存在します。これはロードした時点で保存されているフレームの位置から始まり、戦闘までに掛かる時間をフレーム単位でも固定するために状況再現が成されるのでしょう。


おまけ・FF6獣ヶ原について

 FF6の獣ヶ原はかなり特殊になっていて、取り敢えず乱数テーブルの位置が普段の物とは別扱いになっています。
 別々で判定はされていますが、グループに対する乱数の使い方は基本的には同じで、通常時に出現用の乱数テーブルを移動すると獣ヶ原の種類判定用の乱数テーブルも移動します。違いとしては、先ず改造しない限りはモンスターグループが55周期になっています。

 順番に乱数を取り出していき、取り出した乱数に対応したモンスターグループを出現させますが、ここで問題となるのが出現すべきモンスターが獣ヶ原に登録されて(出遭って)いない場合です。この場合は、乱数が2048もあるのであくまで推測ですが、その乱数を排除して次の乱数を取るという形を取っているようです。
 その証拠として獣ヶ原で特定の戦闘回数目にお目当ての敵がでなかった場合に他の場所で戦闘を行ってパターンを移動させるという小技がありますが、時折2〜3回戦っても変化しない事があるます。獣ヶ原は1つの戦闘につき8種類のモンスターグループが用意されているので0〜255の取り出された乱数を32×8で分けてエンカウントするモンスターグループを決定する事になるとおもわれますが、仮にここでA〜Hに分けられたうちにBのモンスターグループが出現する乱数を取り出したとします。
 Bグループが登録されていればBグループとの戦闘になりますが、されていない場合そのまま敵が設定されていないからといってフリーズする訳にはいかないのでここで今拾ったBグループが出現する乱数を捨て、次の乱数を拾います。これを繰り返して行けば1種類でもモンスターが登録されていればいずれ出現するので問題なしです(改造して登録モンスターを全て抹消すると獣ヶ原でエンカウントした瞬間フリーズします)。

 つまり、獣ヶ原で条件に合うモンスターグループを捜し出すためだけに場合によっては大量に乱数を消費しているため、他の場所で出現乱数を多少消費しても本来獣ヶ原で消費される乱数を減らしているだけという事になります。とは言っても、獣ヶ原で消費される乱数を全て消費した以降ならば、きちんとモンスターグループが変更されます(当然その戦闘時のグループが2種類以上いればの話)。

 以上、難解な上に説明下手が加わってしまってかなり意味不明な文章になってしまいましたが、要するに「獣ヶ原のモンスター調整が起こりません」と言う人は試行回数が足りない、と言う事です。





ページ表紙へ >  TOPへ

inserted by FC2 system