ダメ式 (暫定)

昨日の日記では、与ダメを決定する式について、実験結果からほぼ間違いないと思える事柄について書いた。

 今日は、もっと踏み込んで、必ずしも実験で確かめられていない事柄も含めて、ある程度の予想のもとに与ダメの値を決定する手順(暫定版)を書いてみる。

与ダメ値決定手順

攻撃力の決定

通常攻撃の場合、詳細情報の「(物理/魔法)攻撃力 〇〇~〇〇」とあれば、その間の数値がランダムに選ばれ、それに「通常(物理/魔法)攻撃力上昇」が加算される。

スキル攻撃の場合、スキル詳細の「(物理/魔法)攻撃力 〇〇~〇〇」とあれば、その間の数値がランダムに選ばれる。

A1 = (攻撃力)+(通常攻撃力上昇)                [通常攻撃時]

or

A1=(スキルの攻撃力)                                  [スキル攻撃時]

ダメ増

狩り技能分やかかと分のダメ増の全ての総和をとり、基礎値(A1)にかける。

A2=(1+(ダメ増)/100)*A1

クリ

クリ発生時は(1.5+(クリダメ増)/100)倍される。

A3=(1.5+(クリダメ増)/100)*A2                 [クリ]

or

A3=A2                                                        [非クリ]

防御力

敵及び自分のレベルに応じて防御係数Dが定まっている(詳しくは後述)。

このとき、

d=(1 - (防御力デバフ)/100) * D

(ダメ)=(1-d)*A3

 という式でダメが決定される。

防御係数

上の計算の最後に現れる防御係数Dは、自分から見た「敵の硬さ」のようなもので、0以上1未満の数。この値は、こちらのレベル、攻撃が物理か魔法か、敵の種類の3要素に依存する。これを調べないとそもそもダメを計算できない。

今まで調べたのは3つの敵。すべて50モンクが叩く場合で

太陽の聖堂の木:0.3477< D < 0.3489

カーラ危険のサテュ:0.4990 < D < 0.5007

湖畔の傭兵:0.5905< D < 0.5908

叩く人のレベルが変わるとこれらの値も変わるはず。

 

計算例

この方法で実際にダメ計算してみる。例えば、バフBS込みでアッパーの攻撃力が

1109~1156の50モンクがカーラ危険のサテュを叩く状況を考える。

Step1

A1=1109~1156

と思っていいけれど、内部的には1109~1156.999などとなっている可能性もあるので、少し余裕を見て

A1=1109~1157

と思っておく。

Step2

このモンクの狩り技能(幻想系)は20%ダメ増で、さらにかかとで20%分あがるとすると

A2=1.4*A1 =1552.6~1619.8

step3

このモンクのクリダメ増は224.3% (BS込)なのでクリ倍率は1.5+224.3/100=3.743倍

A3=3.743*A2=5811.3818~6062.9114

step4

50モンクがサテュを叩く場合D=0.5と思ってよい。ヘビブロなどの防御力デバフはつけないとすると

d=D=0.5

(ダメ)=(1-d)*A3=2905.6909~3031.4557

と計算できる。ダメ値は切り捨てた値で表示されるので結局2905~3031となる。

 

まとめると、「このモンクがバフBSかかとあり、ヘビブロなしグロなしでカーラのサテュにアッパーをした場合のクリダメは2905~3031」という結論が得られる。

検証

この計算が正しいか実際に検証してみる。上で指定した条件でサテュを叩きクリが出たときのみ、そのダメ値を記録する。チェインが発動すると面倒なのですべて外しておく。10回分のクリダメを記録すると。

2916
2981
3008
2929
2968
2945
2979
3028
2952
2994

という結果になった。上で計算した2905~3031という予想通りと言える。

長くなったので続きは後日。

与ダメ実験4

今までの実験で、モンスターを通常攻撃で叩いた時のダメについて以下のことが分かった。

  • ダメは (攻撃力)+(通常攻撃力上昇) に比例する
  • ダメは敵の防御力の1次関数である
  • クリダメは非クリ時のダメの(1.5+(クリダメ増)/100)倍になる

これらを総合すると、ダメは定数SとDによって次のように表されると言える。

非クリダメは
S*(1-(1-(防御力デバフ)/100)*D)*( (攻撃力)+(通常攻撃力上昇) )
クリダメは
(非クリダメ)*(1.5+(クリダメ増)/100)

ただし、この定数SとDは叩く人、叩く相手に依存する。

実験

この式が本当に正しいか実験で確かめてみたい。それとともに定数SとDも決定してみる。

叩く人:50モンク
通常攻撃力上昇:30.3
クリダメ増:130%
狩り技能(自然系ダメ増):5%

叩く相手:太陽の聖堂の木

モンクの攻撃力を変えながら、通常攻撃で木を叩く。
そして、ヘビブロありとヘビブロなしでダメを見る。

但し、ヘビブロはLv2なので防御力は-25%

結果

結果はこちら

攻撃力 ヘビブロなしダメ (クリダメ) ヘビブロありダメ (クリダメ)
130 109 (306) 123 (345)
156 127 (356) 143 (402)
182 145 (406) 163 (458)
208 162 (455) 183 (514)

分析

例えば、攻撃力130のとき、ヘビなしダメ109、ヘビありダメ123だけれど、これは

109=S*(1-D)*(130+30.3)   123=S*(1-0.75*D)*(130+30.3)

というようになるはず。端数分も考慮して、この式ですべての結果を説明できるように調節するとS=1.033、D=0.3385という結果が出る。実際この数値を代入してみると

攻撃力 ヘビブロなしダメ ヘビブロありダメ
130 109.53771885  (306.70561278) 123.5507641375   (345.942139585)
156 127.30428585   (356.45200038) 143.5901893875   (402.052530285)
182 145.07085285   (406.19838798) 163.6296146375   (458.162920985)
208 162.83741985   (455.94477558) 183.6690398875   (514.273311685)

となり、切り捨てたものは実測値に完全に一致する。
最初に挙げた式はかなり信ぴょう性が高いと言ってよさそう。

与ダメ実験3

これまでの実験から、対人戦でのダメは、一定値以下の範囲では、防御力の一次関数であることが分かった。対モンスター戦でも同様だと思うので確かめてみたい。
仲良しのフレさんに手伝ってもらい、敵の防御力を下げるデバフを打ってもらい実験してみた。

結論

人がモンスターを叩く場合でも、ダメは防御力の一次関数だと思ってよさそう。ただし、対人戦のようにダメが一定値になる防御力があるかどうかは不明。

実験

フォース、メルブレ、ヘビブロなどで敵の防御力を減らしダメの変化を見る。

叩く人:50モンク
攻撃力:156
通常攻撃力上昇:30.3
人間系ダメ増:15%

叩く相手:見捨てられた国境の傭兵

攻撃はすべて通常攻撃。

結果

結果はこちら

デバフ 敵の防御力 非クリダメ クリダメ
なし 0% 104 317
フォース -10% 113 345
メイルLv1 -15% 117 358
潜伏メイルLv1 -20% 122 372
フォース+メイルLv1 -25% 127 386
へびLv2 -25% 127 386
フォース+潜伏メイルLv1 -30% 131 401
ヘビLv3 -30% 131 401
フォース+ヘビLv2 -35% 136 415
フォース+ヘビLv3 -40% 141 429

グラフ

グラフがこちら
f:id:ochanikki:20170402010546p:plain
横軸が敵の防御力減、縦軸がダメ。紫が非クリダメ、緑がクリダメ。
直線状に並んでいることが見て取れる。

被ダメ実験13

完封防御

いままでの実験から、ダメが0になる防御力が存在するはずと推測できる。今回はそのことを実際に確かめる実験をしたい。ダメが0になる防御力は叩く人のレベルが下がるほど下がるので叩く人を40スカに変えて実験してみた。

結論

そして得られた意外な結論は

ある程度以上防御力を上げると、そこから先は防御力を上げても一切ダメが減らない

というもの。

実験

叩く人:40スカ
物理攻撃力: 184-186
通常攻撃力上昇: 19.2
クリダメ増:108%

叩かれる人:46パラ

スカでパラを通常攻撃でたたく。パラの防御力を変えながらダメを測定する。

訓練用の槌矛と訓練用の短剣

普段実験に使用しているのはオラクル初期装備の「訓練用の槌矛」。今回使用したのはローグ初期装備の「訓練用の短剣」。
訓練用の槌矛は、物理攻撃力に幅がなく、装備しても「攻撃力:〇〇」と表示される。そのため与ダメも一定値。
一方、訓練用の短剣は、物理攻撃力に幅があり、装備すると「攻撃力:〇〇~〇〇」と表示される。そして、与ダメにも幅が生じる。ただし、(186+19.2)/(184+19.2)=1.00984なので、内部的な与ダメの幅は1%未満のはず。

今回の実験では、与ダメは30以下の値なので、たいていの場合は丸め処理の結果一定値になる。そして、稀に1%の差で丸め処理の境界をまたいで、2パターンの与ダメが生じる。

実験結果

実験結果はこちら

防御力 非クリダメ クリダメ
0 13-14 29
90 13 28
180 12 27
270 12 25
360 11 24
450 10 23
630 9 20
720 8-9 19
810 8 17-18
901 7 16
991 7 15
1081 6 13-14
1171 5 12
1261 5 11
1351 4 9
1441 4 9
1531 4 9
1621 4 9
1921 4 9

例えば最初の防御力0での13-14というのは、内部的には 13.9-14.0とかのはず。 一方、防御力90での13というのは内部的には、(例えば) 13.3-13.4などとなっているはず。すべてのダメ値は約1%の幅を持っているけれど、丸め処理の境界をまたいだ時のみ2パターンのダメ値が生じ、それ以外では表面上一定の与ダメになる。そして、防御力1351以降は与ダメが変化していないことが見て取れる。

グラフ

この結果をグラフにするとこんな感じf:id:ochanikki:20170331233954p:plain
グラフは、横軸が防御力で縦軸がダメ値。紫の〇が非クリのダメで、緑がクリダメ。
左部分が直線状に並び、防御力が上がるほどダメが下がるのは今までの実験と同じ。そして、途中からダメ値の減少がパタリと止まることがはっきり確認できる。

分析

グラフの左側部分を延長すると、1770前後で「計算上は」ダメが0になるハズ。いままでの言い方をするなら、完封防御力は1770。しかし、実際にはその7割くらいの防御力に達すると、それ以上はダメが減らない。

4月1日

「え!うそ!?」と思った人もいるかもしれないけれど、エイプリルフールネタではないホントの話。

被ダメ実験12

昨日の日記で考えたことが正しいとすれば、ダメを0にする防御力が(理論上は)存在することになる。その完封防御力はレベルに依存しているかもしれない。

実験

そこで、レベルを変えたとき、完封防御力がどう変わるか実験してみる。
普段の被ダメ実験では、叩く人は50モンク、叩かれる人は46パラという組み合わせでやっている。今回は50プリさんと50レンジャーさんに協力してもらい、同じレベル同士で完封防御力がどうなるか実験してみた。

叩く人は50モンク、叩かれる人は50プリさんと50レンジャーさん。

攻撃力一定のまま、防御力を変化させる。実験結果がこちら

結果

50プリ

物理防御力 非クリダメ クリダメ
0 33 72
124 31 67
186 30 65
311 28 61
497 25 55
622 24 51
746 22 47
870 20 43

50レンジャー

物理防御力 非クリダメ クリダメ
0 35 76
137 33 71
207 32 69
345 30 64
552 26 57
690 24 52
828 22 48
966 20 43

グラフ

グラフを描いてみる。f:id:ochanikki:20170331000853p:plain
横軸が防御力で、縦軸がダメ。紫と緑の〇がレンジャーさんの通常ダメとクリダメ、水色と黄色の〇がプリさんの通常ダメとクリダメ。
直線状に並んでいるのは予想通り。そしてその直線を延長しダメが0になる防御力をグラフから読み取ると約2220とでた。
46パラを叩いた時より明らかに低い。そのため

完封防御力はレベルに依存する

と言えそう。おそらくは、両者のレベル差に依存すると思うので、叩く人のレベルを下げても完封防御力はさがりそう。

完封防御力

昨日の実験で、防御力を上げるとダメは直線的に下がる事を確かめた。

f:id:ochanikki:20170328215905p:plain

横軸が防御力で、縦軸がダメ。紫の〇がクリダメで緑の〇が非クリのダメ。この直線を延長した先にダメを0にする防御力が存在する。昨日の実験結果から計算すると、その値は約2352。この値を完封防御力と呼ぶことにする。そして、今までの実験結果から推測できるのは

完封防御力は、叩く人の攻撃力、通常攻撃力、クリの有無、スキルの種類には依存しない

という事。なぜなら、例えば通常攻撃時のダメは、(攻撃力)+(通常攻撃力)に比例していたから。(攻撃力)+(通常攻撃力)の値が2倍になればダメも2倍に、3倍になればダメも3倍になる。そのため、ある攻撃力で0ダメなら別の攻撃力でも0ダメのまま。スキルを使っても倍率が上がるだけで結局は同じこと。そして、おそらく

完封防御力は、叩く人のダメ増、最終ダメ増にも依存しない

なぜなら、ダメ増や最終ダメ増は「攻撃力や防御力から定まる基礎ダメ値」に一定の倍率を掛けるような使われ方をするはずなので。

となると、完封防御力に影響するのは、叩かれる人のレベル、叩く人のレベル、
叩く人の種類(人かモンスターか等)の3要素くらいと言えそう。

ただし、これはまだ推測でしかないので、真偽をはっきりさせるには、
やはり実際に確かめてみないといけない。

問題

問題は防御力2352が中々実現しにくいという所。これまでの実験に付き合ってくれた
パラさんでは、すぐには達成できないみたい。

被ダメ実験11

防御力実験

叩かれる人の防御力を変化させながら、ダメを測定する実験をしてみる。

防御力

ロードスでは防御力アップ系の装備やバフは、全ての総和をとってから基礎値に
掛けられる。考え方は攻撃力の時と同じ。例えば鉄壁(物理防御力+10%)をつけ、
レイズ(物理防御力+20%)をかけると、物理防御力は
(基礎値)*1.1*1.2
ではなく
(基礎値)*(1+0.1+0.2)
となる。これは、衰弱(防御力-75%)などのデバフでも同じで、衰弱時にヘビブロLv2を打つと
(基礎値)*0.25*0.75
ではなく
(基礎値)*(1-0.75-0.25)
となる。また、デバフとバフの組み合わせでも同様で、衰弱時にレイズをかけると
(基礎値)*0.25*1.2
ではなく
(基礎値)*(1-0.75+0.2)
となる。そのため、これらをいろいろ組み合わせると、防御力を10%刻みで-100%から100%まで変化させることができる。
ただし、ヘビブロ(Lv2 or Lv3)を打つナイトが必要。使うのは

  • パぺ = 防御型パぺ(+5%)
  • 鉄壁 (+10%)
  • レイズ (+20%)
  • バトソン (+20%)
  • 衰弱 (-75%)
  • ヘビ = ヘビブロ(Lv2なら-25%、Lv3なら-30%)
  • 黒 = 黒い袋 (+20%) (レイド報酬)
  • 力 = 力の秘薬 (+15%) (アリエルから)
  • 精神 = 精神の秘薬 (+15%) (アリエルから)

組み合わせ方は、例えば、-100%から-10%まではこんな感じ。

防御力 ヘビブロがLv2の場合 ヘビブロがLv3の場合
-100% 衰弱+ヘビ 衰弱+ヘビ+パぺ
-90% 上記+鉄壁 上記+鉄壁
-80% 衰弱+ヘビ+レイズ 衰弱+ヘビ+パぺ+レイズ
-70% 衰弱+パぺ 左に同じ
-60% 上記+鉄壁 左に同じ
-50% 衰弱+パぺ+レイズ 左に同じ
-40% 上記+鉄壁 左に同じ
-30% 衰弱+パぺ+レイズ+バトソン ヘビ
-20% ヘビ+パぺ 上記+鉄壁
-10% 上記+鉄壁 ヘビ+レイズ

0%から100%までは、黒い袋や力の秘薬などが必要になってくる。

防御力 組み合わせ
0%
10% 鉄壁
20% レイズ
30% 上記+鉄壁
40% レイズ+バトソン
50% 上記+鉄壁
60% レイズ+バトソン+黒
70% 上記+鉄壁
80% レイズ+バトソン+黒+力+パぺ
90% 上記+鉄壁
100% レイズ+バトソン+黒+力+精神+鉄壁

このようにすると、一定刻みで防御力を上げていくことができ、防御力とダメの関係を調べるのに便利。当初はアイアンフォートレス(パラのクラススキル)(物理防御+30%)も使う予定だったけれど、上手く発動しなかった。

防御力実験

この方法で防御力を変えながらダメを測定する実験をしてみる。
叩く人と叩かれる人は被ダメ実験9,10と同じモンクとパラ。ただし、前回はパラさんのレベルは45だったけれど、今回は46になっている。

叩く人:50モンク (人間系ダメ増 15%)
攻撃力 260
通常攻撃力上昇 30.3
クリダメ増 100%

叩かれる人:46パラ (人間系ダメ減 15%、物理ダメ減 21.6%)

実験結果

結果はこんな感じ

防御力増減 物理防御力 クリダメ クリでないダメ
-100% 0 80 38
-90% 90 77 36
^80% 180 73 35
-70% 270 70 34
-60% 360 67 32
-50% 450 64 31
-40% 540 61 29
-30% 630 58 28
-20% 720 55 26
-10% 810 52 25
0% 901 49 23
10% 991 46 22
20% 1081 43 20
30% 1171 40 19
40% 1261 37 17
50% 1351 34 16
60% 1441 31 14
70% 1531 27 13

グラフ

グラフを描いてみる。f:id:ochanikki:20170328215905p:plain
横軸が防御力、縦軸がダメ値で、紫の〇がクリダメ、緑の〇が非クリダメ。直線状に並んでいることが確認できる。緑の方は若干ガタガタしているけれど、これは丸め誤差で説明付く程度。なので、ダメは防御力の一次関数と言える。

分析

一つ意外なことは、クリダメの倍率が低い事。モンクはクリダメ増100%で、パラはクリダメ減装備はつけていない。そのため、対モンスター戦なら2.5倍のダメがでるはずだけれど、この結果を見ると2.1倍程度。ただし、通常のダメに対して一定の倍率になっていることは間違いなさそう。クリダメの倍率については、後日詳しく調べてみるつもり。

ダメが防御力の一次関数なので、その係数を決定してみると
(クリダメ)=80.065*(1-(防御力)/2352)、 (クリでないダメ)=38.41*(1-(防御力)/2352)
となった。表を書いてみると

x=防御力 y=80.065*(1-x/2352) 実際のクリダメ z=38.41*(1-x/2352) 実際の非クリダメ
0 80.065 80 38.41 38
90 77.0012882653 77 36.9402295918 36
180 73.9375765306 73 35.4704591837 35
270 70.8738647959 70 34.0006887755 34
360 67.8101530612 67 32.5309183673 32
450 64.7464413265 64 31.0611479592 31
540 61.6827295918 61 29.591377551 29
630 58.6190178571 58 28.1216071429 28
720 55.5553061224 55 26.6518367347 26
810 52.4915943878 52 25.1820663265 25
901 49.3938414116 49 23.6959651361 23
991 46.3301296769 46 22.2261947279 22
1081 43.2664179422 43 20.7564243197 20
1171 40.2027062075 40 19.2866539116 19
1261 37.1389944728 37 17.8168835034 17
1351 34.0752827381 34 16.3471130952 16
1441 31.0115710034 31 14.8773426871 14
1531 27.9478592687 27 13.4075722789 13

となり、切り捨てた値が実際のクリダメ、非クリダメに一致することが分かる。

また、この式から物理防御が2352前後になればダメ0になると予想できる。