61: ダメージ計算式について About: DQ3(GBC&SFC)  From: ONGY  on 01/07/11 20:48:13  

皆様初めまして。こちらの掲示板には初めて投稿させて頂きますONGYと申す者です。
私は最近、SFC版とGBC版のDQ3で戦闘中のダメージ計算を調べました。
具体的に何を調べたかと言いますと、変動率の部分の詳細な構造です。
攻撃力と守備力2つの変数を変えていき、試行数512回中のダメージ値の度数分布をとると、連続した整数にならない場合があると判りました。「出現しないダメージ値」というものが明らかに存在するらしく、またその値は度数分布表内で周期的に現れました。このことから、乱数をかませて値を振動させる段階で離散的な扱いがなされているのではないかと予測し、まず「ダメージ量子」のようなものの算出式を仮定しました。そこから得られたデータ群を全て満足するような乱数の範囲を推定して以下の式を導出しています。

[x]:xの整数部分
<x、y>:xとyを含む、xからyまでの全ての整数の中から無作為に選ばれた1つの整数
A=攻撃力、D=[守備力/2]、E=A−D、取り得る全てのダメージ値=d、とします。

●GBC版3のダメージ計算式(2行目は見易く変形)
d=[E×(100+<0、52>/256)]
 =[E/2×(1+<−28、24>/128)]

●SFC版3のダメージ計算式(2行目は見易く変形)
d=[E×(99+<0、54>/256)]
 =[E/2×(1+<−29、25>/128)]

実際のソースは恐らく乱数処理のバランスを考慮に入れたものになっていると思います。ですからこの式は、仮に正しかったとしても等価モデル以上のものではないと考えております。
ダメージ計算式については私自身、大分調べたつもりなのですが、恥ずかしながら明確な形のものを見つけることが出来ませんでした。そこで及ばずながら自分でも調べてみたわけです。

初投稿の分際での長文乱文、大変失礼致しました。皆様の厳しいご意見ご指摘を頂けたら幸いと存じます。



ONGY > すいません。訂正です。正しい式は
d=[E×(100+<0、52>)/256]と
d=[E×(99+<0、54>)/256]です。
(01/07/11 20:58:47)
M7> 解析お疲れ様です。う〜ん凄いマニアックな解析ですね…(笑)
でもこんなデータでも低レベルクリアの時は役立つんですよね。
(実は、ここまではいかなくてもそのうち似たようなことをやる
つもりだったり(笑))
う〜ん、平均ダメージはE/2より少なかったとは…誤算でした(笑)

気になるところとしては、
・ダメージ度数分布にはやはり偏りがあったのか
(ダメージ4が多くて3と5が少ない、とかがあるか)ということと、
・Eが0以下の場合(あるいはEがA/4以下)の場合はどうなるか
(Eが0以下の場合、実際にはダメージは0〜[A/8]をとるみたいです。分布不明)
というところですね。やっぱりマニアックですが(笑)

とりあえずEの値は整数でなくても切り捨てないという意味で取りますが
これで合っているのでしょうか?(弱気)
私意見ですが、この解析のレベルはかなり高いですし(詳しく確認は
していませんが)、厳しい意見何てなかなか言えないと思いますよ〜(笑)

たぶん、英さんが進行させている低レベル攻略のゾーマ戦で
この式が役にたつことでしょう。平均ダメージ算出に(笑)

実は後の方の言葉の意味がちょっとわからなかったりします(滝汗)
(01/07/12 22:09:11)
M7> これは私の話なのですが、ボス低レベル攻略の時に
ダメージの範囲だけでなく分布もわかればなぁ
とか思っていたこともあったので、これでだいぶすっきりしました。

後は…魔法のダメージと炎吹雪のダメージと…防具で軽減した時(実は重要)と…
楽しみ(?)はたくさんありますねぇ。
あまり楽しみたくない楽しみでもありますが(苦笑)

何か勝手なこと書きまくっていますが、ONGYさんには感謝しています。
(01/07/12 22:19:36)
ONGY > M7さん、レスを下さって有難うございます。
お返事の内容から察しますと、以前に解析された方が既にいらした、ということではなさそうですね。すると僕が初めてなんでしょうか。だとしたらちょっと嬉しいですね。いや、むしろマニアック過ぎたのでしょうか(爆)。幾つかご質問を頂きましたので、現在判明している範囲でお答えしたいと思います。

>・ダメージ度数分布にはやはり偏りがあったのか
 ダメージ値の分布には偏りがあると言い切ってよいと思います。特にSFC版の偏りは凄まじく、上限値と下限値へ異常に集中しています。私のとったデータから一例を挙げますと、512個連続でとったダメージデータの中で、上限と下限の間の分布は大体2〜18(これも偏ってますけど)で落ち着いた振動を見せるのですが、下限値が出現した回数は35回、上限値に至っては何と46回も出現しました。
 またSFC版ほど顕著ではありませんが、GBC版にも偏りはあるようです。こちらは全体の傾向としてE〜上限値の値が、下限値〜Eの値よりも出易い分布になっています。さらに値ごとの出易さにもどうやら差があると言えそうです。
 SFC版・GBC版どちらにせよ、この偏りを生んでいるのが何なのかは私も判っておりません。

>・Eが0以下の場合(あるいはEがA/4以下)の場合はどうなるか
 大まかにはM7さんの仰る通りです。
 ダメージ計算式には以下のような条件分岐があるというお話を教えてくださった方がいらっしゃいました。SFC版ではE≦A/8の時、d=<0、[A/8]−1>となっているそうです。攻撃力が高い敵と相対する際、超過剰スカラは避けた方がよいことへの理論的な根拠を与えるものですね。

>Eの値は整数でなくても切り捨てないという意味で取りますが
 Aは攻撃力の値そのままなので整数ですし、Dは[守備力/2]で整数化している、というモデルで考えておりますので、私の定義ではE=A−Dは必ず整数です。ただ、2行目の式でE/2が出てきますが、こちらは切り捨てないでください。

>実は後の方の言葉の意味がちょっとわからなかったりします
 本当に申し訳ありません。最後の「〜自分でも調べてみました」のくだり、日本語が破綻してます(激恥)。ネット上を尋ね歩いてみた後自力で調べようと思い立った、という文意です。ああ恥ずかしい。
 その前の文章の「乱数処理のバランスを考慮に入れたものになっている」という部分についてですが、これは私の説明不足です。上記の分布の話と関係しているのですが、式中の<0、52>や<0、54>というランダムな値を返す関数は、決して各整数値を等確率で吐き出すものではない、ということです。ソフトが乱数を得る際のクセとでも申しましょうか、ハードに依存する部分(つまり疑似乱数テーブル)での問題を設計側で改善している可能性がある、ということを指摘したかったのですが、表現が抽象的に過ぎました。重ねてお詫び致します。ダメージ値は連続しない55個の整数になるという点では「この式は仮に正し」いかも知れませんが、それでもその離散分布までを(乱数処理を考慮して)与えられる能力はありません。従って「等価モデル以上のものではない」と申さざるを得なかったわけです。
 乱数に関しては私も目下勉強中です。素人の言うことですので誤記がありましたら何卒ご容赦下さいませ。いつかはスルメさんの「RPG INSTITUTE」のように乱数テーブルを解明できたらなぁ、と夢描いてはおりますが(笑)。

スレよりも長いレスになってしまいました(汗汗汗)。レス下さってとても嬉しかったです。こんな奴でよろしければ以後宜しくお付き合い下さいませ。ではでは。
(01/07/13 12:50:27)
> う〜ん。この解析は非常にすばらしい&役に立ちそうです。
特に低レベル攻略のゾーマ戦で(笑)
有効に活用させていただいてよろしいでしょうか〜♪

それにしてもダメージ分布の偏りですか・・・
最大ダメージが多く出るってのはけっこう辛いところですね・・・
これは、自分・敵、両方に当てはまることなのでしょうか?
吹雪や炎も、上限が出やすいような気がするんですが、
やっぱ低レベル攻略にはこの点がネックになりますね(笑)
(01/07/13 15:51:06)
ONGY > 英さん初めまして。
この式を使ってくださるのですか! ありがとうございます! こんなでよければ思う存分使ってやって下さいませ(笑)

>これは、自分・敵、両方に当てはまることなのでしょうか?
 そのようですね。敵が攻撃してきた時のダメージも、上限値もしくは下限値が出易い傾向が現れています。また中間の分布に関しても同様に、特筆すべき点は無いように見受けられます。

>吹雪や炎も、上限が出やすいような気がするんですが
 なるほど、それは存じませんでした。ありがとうございます。手持ちのブレス系のダメージデータが軽減防具装着時のものでして、しかも分布を捉えるには及ばない量しかサンプルがありません。詳しい分布については再調査してみたいと思います。

解析をして誰かのお役に立てるのは至上の喜びです。『低レベル攻略のゾーマ戦』、何やら素晴らしい戦略が飛び出しそうで目が離せません。期待しております。頑張ってください!
(01/07/14 18:05:05)
M7> DQ低レベル関係者以外は読みたくなくなるようなスレッドですが(汗)
勘弁してください〜(笑)

ええと、DQ3(SFC版)低レベルへの応用ですが
ゾーマ戦よりもむしろバラモス&バラモスゾンビ戦への方が
役に立つと思います。あの1行がツボですね…(謎)

私の場合、この(どの?)法則を知らなかったためにバラモスゾンビ戦
でかなり運に頼る羽目になりました。(4月24〜27日)
http://www.geocities.co.jp/Playtown-Knight/6338/dqdiary.html
49ダメージまで食らいまくっています(苦笑)
もう英さんは気づいていることと思いますが、きちんと調整して
いけば勝率がグンと上がる…どころか、95%勝利できるように
なりますね(笑)

あと、乱数について。
詳しいことは全くわかりませんが、経験上とにかくゲーム内の
乱数というかツキというかは偏っている気がします。
以前はまっていた風来のシレンというゲームでもそうでしたが、
とにかく「2度あることは3度ある」という言葉が本当に
身にしみて感じるんですよ。
高ダメージが続く時は続くし、バラモスがよく眠る時は眠るし、
ルイーダの種は続けて同じ数字が出やすい気がするし
ザオラルが決まらない時はとことん決まらないし…

回数を重ねているから、ということ以上に同じ(確率による)
現象は偏って出ているような気がします。
(01/07/14 23:02:40)
M7> ちょっと嘘ついた気がしてならなかったので訂正。
バラモスゾンビ戦はそれほど楽にならないかもです。安定するにはしますが…
もしかしたら受けるダメージが安定しすぎて与えるダメージが追いつかなくなるかもしれません。

よく考えたら、「超過剰のスカラ」は平均ダメージで見ると避ける必要は
ないような気がしますが…どうでしょう(^^;

スカラ最大だと受けるダメージの平均が約A/16。
EがA/8に近くA/8より小さくなければ受けるダメージ平均は約A/16。
偏りが無いことが条件ですが、ダメージ分散が違うだけなのでよっぽど
特殊な事情がなければ(どうしてもダメージを安定させたい、運に頼って
でも低いダメージにならないとダメ、等)避けるべきほどのものでは
ない気もします(笑)
(01/07/15 00:51:49)
ONGY > >「超過剰スカラ」について
 仰る通りです。安直にも、分散が小さい方が安定した戦略を立てられそうだなぁと思ってしまいましたもので(汗)M7さんのプレイリポートを拝見させて頂きましたが、結論として受けるダメージの平均値がA/16以下になることはないので、戦闘が長期化しそうな場合はかえって安定させない方がいいのかもしれません。

あ、それとここまで散々偉そうなことを書いておきながら、低レベルクリアは私、ズブの素人です(爆)
(01/07/15 17:50:14)
> 現在SFC版DQ3の低レベル攻略をしているのですが、
対バラモス(攻撃力240)戦にて、スカラをかけた後、
こちらの守備力が416の場合
E=32
d=[E/2×(1+<−29、25>/128)]
より、平均ダメージは
平均=16×(1−4/128)
  =15.5
(MAX19.125、MIN12.375)
ただし、上限・下限の値が出やすい

こちらの守備力が420の場合
E=30
E≦A/8なので、d=<0、[A/8]−1>より
d=0〜29の値をランダム(?)でとる (こっちも上限・下限が出やすいんでしょうか?)
平均=14.5

安定した闘いを望むならば、上の方がいいのかな?
というわけで、さっそく役に立ちそうです(笑)
(01/07/19 04:27:12)

トップページへ