PS版DQ4 行動順のきまりかた
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

PS版DQ4 行動順のきまりかた

2015-02-24 20:04
    PS版DQ4における戦闘時の行動順について調べてみました。



    1. 調査結果
    1.1. 行動順値計算式
    ご存知の方も多いと思いますが、ほとんどのDQ作品では素早さのステータスと乱数を元にして何らかの値を算出し、その値の大きい順にターン中の行動順が割り当てられます。
    この行動順決定値に算出される値を以下行動順値と呼ぶことにします。

    PS版DQ4における行動順値計算式は以下のようになっています。
    行動順値 = [素早さ*32, 素早さ*64]

    ※ただし、素早さ=0の場合は素早さを1として補正した後、乱数との乗算を行う
    キャラクター(モンスター)の素早さに32以上64以下の整数乱数がかけられ、その結果をそのターン中の行動順値とし、この値の大きいキャラクター(モンスター)から順番に行動します。
    この式から、自分の素早さが相手の素早さの2倍以上であれば、100%の確率で先攻できるとこがわかります。
    行動値計算の結果や途中結果の扱いについては前回と同じように、全て32bitの整数型に準じます。(今回はほとんど関係ないですが...)

    1.2. 細かいルーチン説明
    戦闘中のコマンド選択欄表示前にSR$0x80117e7cにおいて馬車内外のキャラクターとモンスター全てに対する行動順値の計算が行われます。
    つまり行動順値計算に参照される素早さの値は、コマンド選択欄表示前のものとなります。
    このため、装備変更によって変化した素早さの値はそのターン中には反映されず、次のターンに反映されることになります。
    (実際の例として、PS版DQ7のオルゴデミーラ第1形態のアイラの装飾品付け替えなどにこの仕様が反映されているのがわかると思います)

    素早さの値を取得した後、SR$0x8013767c(素早さ*32,素早さ*64)がcallされ、その返り値が行動順値となります。
    このサブルーチンは前回の物理ダメージ計算式の記事でも紹介していますが、ほぼ一様整数分布に従った値を返します。

    全キャラクターとモンスターの行動順値を計算した後、行動順値が大きい順にターン中の行動
    が処理されます。
    行動順値が同値の場合には 味方前列>味方後列>敵前列>敵後列 の順番で行動が処理されます。


    2. 先攻率計算
    行動順決定の仕組みが分かったので、RTA中における実例に対していくつかシミュレートしてみたいと思います。

    ・2章サイモン戦 (アリーナ@素早さ28 vs サイモン@素早さ15)
      アリーナ先攻率: 99.5178%
    ・デスピサロ最終形態戦(勇者@素早さ48 vs デスピサロ最終形態@素早さ80)
      勇者先行率: 3.34691%

    また、二次王家はぐれ狩りにて各レベルに応じたアリーナのはぐれメタルに対する先攻率も求めてみました。
    (参考サイトの成長値に素早さの種使用分(+5)とした値をアリーナの素早さとしています)






    何かの参考になれば幸いです。


    3. 参考文献
    Sword and Magic
      敵モンスターデータを参考にさせていただきました。
    Kira'sドラゴンクエスト完璧徹底攻略
      各Lvのアリーナのステータスについて参考にさせていただきました。

    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。