与ダメ実験1の分析

昨日の実験結果の分析をする。

結論

今日はものすごく長くなってしまったので、結論を先に。昨日の実験結果を分析した結果、こんな感じの結論が得られた。

通常攻撃時
(ダメ値)=A*((攻撃力)+(通常攻撃力))
スキル使用時
(ダメ値)=A*((スキル攻撃力)+0.5)

ただし、攻撃力は、「端数を含んだ内部的な攻撃力」ではなく「端数を切り捨てた表示上の攻撃力」のこと。
また、スキル攻撃力は、スキルの詳細情報に載っている攻撃力のこと。

通常攻撃時には、通常攻撃力上昇が加算されるけれど、スキル攻撃時にスキル攻撃力上昇が加算されるわけではない。
これは、スキルの詳細情報に載っている攻撃力自体が、スキル攻撃力上昇を既に反映した値であるため。

そして、係数Aは今回の実験では0.6だった。条件が変わればこの値も変わるはず。

この式は、まだ少し違うかもしれないけれど大筋では合っているはず。

実験結果の分析

ここより下は、上の結論に至るまでの長々とした考察

グラフ

横軸を攻撃力アップ(%)とし、縦軸を物理攻撃力、アッパー攻撃力、通常攻撃ダメ、アッパーダメにしてグラフを描いてみる。どれもデータが直線状に並んでいることが確認できる。こんな感じ。
f:id:ochanikki:20170326204505p:plain横軸:攻撃力アップ、縦軸:物理攻撃力
f:id:ochanikki:20170326204603p:plain横軸:攻撃力アップ、縦軸:アッパー攻撃力
f:id:ochanikki:20170326204618p:plain横軸:攻撃力アップ、縦軸:通常攻撃ダメ
f:id:ochanikki:20170326204636p:plain横軸:攻撃力アップ、縦軸:アッパーダメ
全て直線状に並んでいるので、これらは一次関数になっているといって良い。

物理攻撃力

物理攻撃力についてもう少し詳しく考えてみる。攻撃力アップを5%ずつ増やした時、物理攻撃力は6増加と7増加を繰り返す。これは、「内部的には、6.5ずつ増え、切り捨てが行われた」とみるのが自然。そこで
(攻撃力の内部値)=130*(1+(攻撃力アップ)/100)
だろうと推測できる。実際、表を作ってみると

x=攻撃力アップ(%) y=130*(1+x/100) 実際の攻撃力
0 130 130
5 136.5 136
10 143 143
15 149.5 149
20 156 156
25 162.5 162
30 169 169
35 175.5 175
40 182 182
45 188.5 188
50 195 195
55 201.5 201
60 208 208
65 214.5 214
70 221 221
75 227.5 227
80 234 234
85 240.5 240
90 247 247
95 253.5 253
100 260 260

こんな感じになり、切り捨てた値が実際の攻撃力に一致していることが確認できる。

通常攻撃ダメ

次に通常攻撃ダメについて。結論を先に述べると
通常攻撃ダメは「端数を含んだ内部的な物理攻撃力」ではなく「端数を切り捨てた表示上の物理攻撃力」の一次関数であると言えそう。
より正確な言い方をするとこうなる。

  • 「端数を含んだ内部的な物理攻撃力の一次関数」と考えると昨日の実験結果を説明できない
  • 「端数を切り捨てた表示上の物理攻撃力の一次関数」と考えると昨日の実験結果を説明できる。

「端数を含んだ内部的な物理攻撃力」の一次関数と言えない根拠は、攻撃力アップを5%ずつ増やした時、通常攻撃ダメは3増加、4増加、5増加の3パターンが確認できるという点。
一次関数 y=ax+b において、xを一定値ずつ増やしていった場合、yを(切り捨て、切り上げなどで)丸めた値の増分が3パターンになることはあり得ない。
一方で、「切り捨てられた表示上の物理攻撃力の一次関数」と考えると説明がつく。
通常攻撃ダメの増加の様子を改めて見返すと、3増加のときは表示上の物理攻撃力が6増加、5増加のときは表示上の物理攻撃力が7増加していることが見て取れる。
そして、実際に0.6*(物理攻撃力)+11.5という一次関数を考えてみると

x=物理攻撃力 y=0.6*x+11.5 実際のダメ値
130 89.5 89
136 93.1 93
143 97.3 97
149 100.9 100
156 105.1 105
162 108.7 108
169 112.9 112
175 116.5 116
182 120.7 120
188 124.3 124
195 128.5 128
201 132.1 132
208 136.3 136
214 139.9 139
221 144.1 144
227 147.7 147
234 151.9 151
240 155.5 155
247 159.7 159
253 163.3 163
260 167.5 167

こんな感じになり、切り捨てた値が実際のダメ値に一致していることが確認できる。

通常攻撃力上昇

11.5/0.6=19.1666 なので、先ほどの式は
0.6*(物理攻撃力)+11.5=0.6*((物理攻撃力)+19.1666)
と書くことができる。ここで、この19.1666という値は、昨日のモンクの通常攻撃力上昇19.2に近い。とすると、通常攻撃ダメは
0.6*((物理攻撃力)+(通常攻撃力上昇))
という式で表されると予想できる。改めて、表を書いてみると

x=物理攻撃力 y=0.6*(x+19.2) 実際のダメ値
130 89.52 89
136 93.12 93
143 97.32 97
149 100.92 100
156 105.12 105
162 108.72 108
169 112.92 112
175 116.52 116
182 120.72 120
188 124.32 124
195 128.52 128
201 132.12 132
208 136.32 136
214 139.92 139
221 144.12 144
227 147.72 147
234 151.92 151
240 155.52 155
247 159.72 159
253 163.32 163
260 167.52 167

こんな感じになり、やはり切り捨てた値が実際のダメ値に一致していることが確認できる。

アッパーダメ

最後にアッパーダメについて考えてみる。一つ予想されるのは0.6*(アッパー攻撃力)という式だけれど、これだと少しずれてしまう。式を補正して0.6*((アッパー攻撃力)+0.5)とするとこうなる。

x=アッパー攻撃力 y=0.6*(x+0.5) 実際のアッパーダメ
461 276.9 276
476 285.9 285
491 294.9 294
506 303.9 303
522 313.5 313
537 322.5 322
552 331.5 331
567 340.5 340
582 349.5 349
598 359.1 359
613 368.1 368
628 377.1 377
643 386.1 386
659 395.7 395
674 404.7 404
689 413.7 413
704 422.7 422
720 432.3 432
735 441.3 441
750 450.3 450
765 459.3 459

これだと切り捨てた値が実際のアッパーダメに一致していることが確認できる。