きほんはまる?

DQRTAについていろいろ書いていきます。こっちでは最低限のアウトプットには書かれない細かい話がメインです。

PS2版DQ5 エンカウント判定周りメモ

ついにPS2にまで手を出してしまった...
取り急ぎ、メモみたいな形で。

 歩数が増えるごとに以下の式が評価され、結果が真であればエンカウントが発生する
   (乱数 mod A) < 閾値
 
   ※ A = 256 - (歩数 - エンカウント最低歩数) * [1,4]
     エンカウント最低歩数 = 10 - 閾値
    • 途中計算及び計算結果はIEEE754単精度浮動小数点演算に基づく
    • 歩数は戦闘終了時や一部のフロア切り替え時(詳細は後述)に0にリセットされる
    • 乱数の詳細な分布は未調査
  • 備考
    • フィールドではエンカウントテーブルごとに係数が異なる。現状分かっている範囲では
      • 妖精界北部: 1.5倍
      • 古代の洞窟周辺(幼年期): 1.25倍
      • ルラフェン西部: 1.5倍
    • ダンジョンでもエンカウントテーブルごとに閾値が変わる。大体1~4辺り
    • フロア切り替え時にエンカウントテーブルが変わる際に歩数リセットが行われる
      • エンカウントテーブルが変わらないフロア切り替えでは、歩数はリセットされない
      • フィールドでエンカウントテーブルが切り替わっても歩数はリセットされない
    • エンカウント判定無しのフロアに入った際にも歩数リセットが行われる
      • フィールドの出入りや、古代の洞窟の小部屋、迷いの森の小屋など


DQエンカウント判定は、大きく分けて

とあるが、PS2DQ5エンカウント判定は後者の確率エンカウント方式に該当する。
確率エンカウント方式では、直前のエンカ位置によって歩く場所を変えるなどの工夫が必要になるため、最適化が若干難しい。

とりあえずできることとしてはエンカリセ地点の把握と、エンカリセ入れの最適化か。
またフィールド内でのエンカ係数が異なる地域が確認されているので、境界付近では最適な歩き方が発見される可能性有り。

下みたいな表が完成して、乱数の分布が分かったらまた体系化してブロマガにまとめる予定。


f:id:Maru0137:20150216010948p:plain