SFC版DQ3 打撃ダメージ値乱数を考える
閉じる
閉じる

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

×

SFC版DQ3 打撃ダメージ値乱数を考える

2013-03-17 01:44
    今回の話題はダメージ計算式の乱数値です。
    おそらく今回の話を掲載している纏めの文章は何処にも無いと思われます。
    bamboo氏の調査の賜物です。多謝。

    DQ3のダメージ計算式はかなり昔から調べられていて、
    こちらの掲示板 の議論の中で ONGYさんが 2001/07/11 に言及しており
    [ ] を床関数として、以下のようになると言っています。

     (打撃ダメージ) = { (攻撃力) - [(守備力) / 2] } * (乱数値) / 256
     ただし、 乱数値は区間[99,153]の整数値とする。
     注)(攻撃力) ≪ (守備力) の時は算出式が変わります

    この式から最大ダメージと最小ダメージを求める事ができます。
    RTAを行うに当たっては非常に重要な情報です。

    さて、RTAを考える上でダメージ平均値を求めたい所です。
    これを求めるには 乱数値 がどのように決定するかを知る必要が有ります。

    SFC版DQ3の打撃ダメージ乱数値の決定法は基本的に次のようになっています。

     0から15までの値を取るサイコロを16回振った時の目の和の合計値 + 6

    サイコロ1回の出目の確率は一様分布で1/16です。
    その結果が次のグラフです。(計算は高校1年生で習う数学くらいで出来ます)



    見て頂ければ分かるように、これでは乱数値が区間[99,153]の整数値になりません。
    これを99から153までの値にする為にDQ3は恐ろしい方法をとっていました。

     出目合計が99以下の場合は99とし、153以上の時は153とする

    上記を反映させたグラフがこれです。



    ヤバイ形をしている事が一目瞭然です。悪意すら感じます。
    上述の打撃ダメージ算出式の乱数値部がこうなっているので、
    打撃ダメージ値は 極端に最大値と最小値が出やすく なっています(つд`)

    ちなみに痛恨の一撃ダメージ算出式の乱数は区間[90,131]の整数値で
    こちらも区間外の数値は最小値or最大値に計上します。。。

    おそらくDQ3をやっていて異様に最大乱数ばっか引くな
    と思っていた方も多いのではないかと思います。
    これが、その根拠になります。

    分布がこんなんでは平均値があまり意味をなさないですね。。。
    仕様ですので最大を引くと思ってチャート組みをしましょう。

    最後に、上記を使ったツールをエクセルマクロで作りましたので、
    エクセルをお持ちの方はご活用下さい。
    https://www.dropbox.com/s/9lhajgraab8hk3p/DQ3DmgDist.xls?dl=0

    使い方を簡単に説明します。
    上部の黄色のセル 攻撃力/防御力/スクルト回数/バイキルト を入力し
    ダメージ計算 のボタンを押下して下さい。
    最大値・最小値の計算とその分布をグラフ化してくれます。

    ボス戦の戦略などの一助になれば幸いです。


    参考文献
     http://ultimagarden.net/ealis/bbs-log/2.html
     http://d.hatena.ne.jp/dq_492/mobile?date=20101129

    謝辞
     bamboo神 乱数値決定ルーチン解析ありがとう御座いました
     喜三郎氏 DQ3RTA知識と助言を有り難う御座いました
    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。