端数の扱い

ダメ値の計算では最後に切り捨てを行うけれど、それだけでなく途中の段階でも丸め処理が行われているらしい。
それがどこなのかを調べるための実験をしてみた。

結論

先に結論を。
通常攻撃では、(端数を含んだ内部的な)攻撃力に通常攻撃力上昇を加えた後、切り捨てを行いダメ計算の式に代入される。

実験

攻撃力 +1.5, +2.0, +2.5, +3.0 の指輪を組み合わせることで、+1.5~+9.0まで0.5刻みで攻撃力を増やすことができる。実際には筋力による増分があるけれど、ほぼ0.5刻みとみなせる。
そのため、この状態で衰弱を付けると、0.125刻みで攻撃力を増やすことができる。
そこで、そのように攻撃力を変化させ、ダメを測定してみる。

叩く人は50モンクで、通常攻撃力上昇は17.8。
叩く相手は、太陽の聖堂のミノ

実験結果

指輪による増分 表示上の攻撃力 通常ダメ クリダメ
0 28 37 109
+1.5/4 28 37 109
+2.0/4 29 37 109
+2.5/4 29 38 112
+3.0/4 29 38 112
+3.5/4 29 38 112
+4.0/4 29 38 112
+4.5/4 29 38 112
+5.0/4 29 38 112
+5.5/4 30 38 112
+6.0/4 30 38 112
+6.5/4 30 38 114
+7.0/4 30 38 114
+7.5/4 30 38 114
+8.0/4 30 38 114
+8.5/4 30 38 114
+9.0/4 30 38 114

ここで、指輪の+3.0/4というのは、「指輪で攻撃力を+3分上げているけれど、衰弱が付いているので、実際の上昇は+3.0/4」という意味。
ただし、筋力分があるので、実際にはそれよりも8%ほど多い。

分析

表示上の攻撃力が同じでもダメが変化している部分があるため「表示上の攻撃力がそのまま使われる」のではなく「内部的な攻撃力が使われる」ことが分かる。
クリダメは109が3回続いたのち、112が8回続き、114が6回続く。そのため、「内部的な攻撃力をそのまま使って計算し、最後に切り捨てる」のではなく「どこか途中の段階で、一度丸め処理を挟む」ことが分かる。
この実験を行ったとき、通常攻撃力上昇が17.8だったことから、途中の丸め処理は「内部的な攻撃力に通常攻撃力上昇を加えた後切り捨てる」と考えるとつじつまが合う。
そして、それが正しいとすると、スキル攻撃の時は、内部的なスキル攻撃力でなく、表示上のスキル攻撃力が使われると考えた方が自然。

森の怒りと筋力

森の怒り(クリーピングツリー[B]の動向スキル)は説明ではLv4で攻撃力+33と書かれている。しかし、実際には攻撃力が33以上あがる。これが何故なのかずっと不思議だった。けれど、筋力と関係あるらしいという事が分かってきた。今日はこのことを調べてみる。

結論

長くなってしまったので、結論を先に。秘薬や装備などで筋力が +k のとき、攻撃力は大まかにこんな感じになるっぽい。

(攻撃力)=(基礎値 )* (1.04 + 0.04*k) * (1+(攻撃力上昇)/100)

この式に現れる1.04や0.04という数値は大まかなもの。精密に測定するともう少し違う値が出るはず。また、この値は50モンクで調べたもの。レベルや職が違うと変わってくる可能性もある。

森の怒りは、上の式の基礎値部分を33増加させるみたい。そう考えると、攻撃力が33以上上がったことにも説明がつく。

また、この式が正しいとすれば、筋力の秘薬による攻撃力の上昇量は、固定値ではないことになる。以前、固定値という話を聞いたことがあったので、少し意外な結果。

追記
筋力による攻撃力上昇の効果はレベルによって変わるとの情報を頂きました.

攻撃力上昇と森の怒り

レイズやヒドゥンアームズのような「攻撃力+?%」系のバフや装備を付けていると、森の怒りによる増分が大きくなる。
では、これら攻撃力上昇系の装備をすべて外すと、森の怒りによる上昇はちょうど33になると思いきや、そうはならない。
やはり33より少し大きい。しかも、その増加幅は筋力によって変わってくる。

簡単な調査

このことを実験で確かめてみる。いま、モンクは筋力の秘薬を1つ飲んでおり、またコスで1、頭装備で1の筋力を増やせる。なので、
装備やコスを付け替えることで、筋力を+1、+2、+3の状態にできる。このときの森の怒りの増分を見てみるとこんな感じになった。(攻撃力増のバフや装備は外したうえでの値)

筋力 森の怒りによる増分
+1 +36
+2 +37
+3 +38

増加量が33より大きいこと、そして筋力が高いほど増加量も多くなることが分かる。
ここで、これらの増加分の値はは森の怒りが付いているときとついていないときとで攻撃力の差をとって求めた。
そのため、小数点以下の値があるはずだけれど、このままではわからない。

筋力の効果

森の怒りによる増分が筋力によって増えることは確認できた。けれど森の怒り「だけ」が筋力の恩恵を受けると考えるのは少し不自然。そうだとすると、攻撃力は筋力によって一定値分加算されるのではなく、一定値倍されると考えた方が自然。

つまり、攻撃力はこんな感じの式で決定されると言えそう。

(基礎値)*(筋力による増加)*(1+(攻撃力上昇)/100)

精密な調査

この増加率を調べてみたい。攻撃力を小数点以下まで精密に測定する方法は、以前この日記で書いた。
攻撃力を精密に測る - お茶の国 プリ日記 ロードス島
この方法で森の怒りによる増分を測定し、次の範囲にあると絞り込めた。

筋力 森の怒りによる増分
+1 35.56 ~ 35.61
+2 36.95 ~ 37.02
+3 38.25 ~ 38.5

33からどのくらい増えているかを考えると、こんな結果が得られた。

+1 7.75%~7.9%増加
+2 11.96%~12.19%増加
+3 15.9%~16.67%増加

大まかにいえば、筋力一つで攻撃力は4%程度あがることになる。

グロダメ増とリアダメ増

いままで、グロダメ増とリアダメ増について自分の理解が少し間違っていたみたい。
今日いろいろ実験してみて、グロダメ、チェインダメの正しい計算法が分かったのでまとめてみる。今日も実験データをたくさん取ったけれど、ブログに書くのは疲れるので省略。

グロダメ

グロダメを上げるには

  • GPの「与ダメージ(グロッキー状態)」
  • 追い打ちの与ダメージ(グロッキー状態)20%増加
  • コス腕の「最終ダメージ(グロッキー状態)+50%」

がある。

勘違い

この説明文を素直に読むと、グロ時には、GP分と追い打ちはダメ増に加算されコス腕は最終ダメに加算されるように思える。しかしこれは間違いだった。

実際の効果

実際には、上の3つの値は全て加算され、「詳細情報」の「グロッキー関連」の
「ダメージ増加(グロッキー)」に記載される。そして、グロ時には、
(狩り技能などの)ダメ増、最終ダメ増とは別に、グロダメ増分がかけられる。
なので、例えばグロ時にクリを出すと

(基礎値) * (1+(ダメ増)/100) * (1.5+(クリダメ増)/100) * (1+(グロダメ増)/100) * (1+(最終ダメ増)/100)

という式になる。

チェインダメ

チェインのダメはGPの「リアクションスキルダメージ〇%増加」によって上がる。これもダメ増や、最終ダメ増とは別に基礎値にかけられるみたい。なので、グロ時にチェインでクリを出すと

 (基礎値) * (1+(リアダメ増)/100) * (1+(ダメ増)/100) * (1.5+(クリダメ増)/100) * (1+(グロダメ増)/100) * (1+(最終ダメ増)/100)

という式になる。

感想

チェインスキルのダメはすごく大きくなり得ることが分かる。チェインスキルの重要性を改めて思い知った。また、よく言われる「ウォロは足し算で、他職は掛け算で火力が伸びる」というのも実感できる。

ダメ計算機

ダメ計算機

先日の日記で書いた式を使って、ダメを計算するプログラムを作ってみた。
自分の攻撃力、ダメ増、クリダメ増等を入力すると敵に与えるダメを計算してくれる。

使い方

下の入力欄に数値を入れると、その下のダメ表が更新され、敵に与えるダメが分かる。
カッコ内はクリダメ。

入力方法

通常攻撃のダメを見たいとき

「攻撃力」と「通常攻撃力上昇」は、詳細情報に載っている値を使う。

スキル攻撃のダメを見たいとき

「攻撃力」はスキルのアイコンにマウスを合わせたときに表示される攻撃力を使う。

「通常攻撃力上昇」は0にする。


「ダメ増」は狩り技能のダメ増 (例えば、傭兵なら人間系)

「クリダメ増」は、詳細情報に載っている値を使う。

 「D係数」については下記参照

 

入力欄

攻撃力:  --
通常攻撃力上昇: 
ダメ増:  %
クリダメ増:  %
D係数: 

ダメ表

 かかとなしかかと1段かかと2段
防御力デバフ なし      
防御力デバフ 10%      
防御力デバフ 20%      
防御力デバフ 30%      
防御力デバフ 40%      
防御力デバフ 50%      

 

D係数

D係数は、レベル、叩く敵などに依存する。現在分かっているのはこんな感じ。

50モンク → カーラ危険サテュ D=0.5

53プリ → 湖畔傭兵(白) D=0.56

53プリ → 湖畔傭兵(黄) D=0.57

54プリ → 湖畔傭兵 D=0.56

54ソサ → 湖畔傭兵 D=0.54

追記

57ナイト→湖畔傭兵 D=0.535 くらい

その他

バフ等

攻撃力はバフやバトソン、パぺの同行スキル等で変化するけれど、
実際にダメを知りたい状態での攻撃力を入力する。

例えば、バフあり、バトソンあり、森の怒りありのときのダメを知りたければ、
実際にバフ、バトソン、森の怒りを付けたときの攻撃力を入力する。

対応していないもの

両手持ち、全力攻撃を付けたときのダメは対応していない。
最終ダメ増(赤い袋、アイアンナックル等)を付けたときのダメは対応していない。

グロダメ、金ダメは今のところ未対応。近いうちに対応予定。
チェインスキルのダメも未対応。将来対応するかもしれない。しないかもしれない。

対人戦には対応していない。

スカの通常攻撃

スカの通常攻撃は、ここで表示される値の半分になるはず。
しかし、スカは通常攻撃で2回攻撃をするので火力としては同じ。

 

両手持ち

今日は両手持ちのバグについて書こうと思っていた。けれど、確か以前の運営のコメントで「ユーザに有利になるバグは検証すること自体禁止」というようなのがあった気がするのであまり詳しくは書かかずに、お茶を濁すことにする。

3種類の上昇

ロードスには一打分の火力を上げるための上昇系OPが3つある。

「攻撃力上昇」「ダメ増」「最終ダメ増」

これらは全て別のOP。紛らわしいけれど、ロードス内では区別しなければならない。

攻撃力上昇

攻撃力上昇は、レイズ、BS、雄々しい、武器のOP、攻撃力強化、攻撃型パぺ、太矢、狙撃のかまえなどのがある。

これらのOPをつけると詳細情報の攻撃力の値や増え、連動してスキルの詳細説明の攻撃力の値も増える。

ダメ増

一方、ダメ増は狩り技能のダメ増が代表的。また、特定の条件下でのみ発動するダメ増も多く、その代表的なものが、かかと、金ダメ増、グロダメ増など。対人戦ではN3のダメ減装備を相殺する。そのため、ダメ減装備を100%積んだ相手に対しても、こちらのダメ増を増やすことでダメを与えることができるようになる。ダメ増によって、相手に与えるダメは増えるけれど、詳細情報の攻撃力の値は変化しない。

最終ダメ増

上のダメ増とは別に、ダメが増えるのが最終ダメ増。N3のダメ減装備を相殺することはない。バランスグローブ、アイアンナックル、勇気ある者の装身具などが代表的。

両手持ち

そして、両手持ちの説明はこんな感じ

サブ武器を装備しないと攻撃力が上昇する

マウスを合わせたときに表示される詳細説明がこんな感じ。

効果

サブ装備なしの場合、ダメージが10%増幅

説明

サブ武器を装備しないと攻撃力が上昇する

翻訳ミス?

もうこの時点で、用語を混同している。「攻撃力上昇」「ダメ増」という語は、ロードス内では意味が異なる。きっと韓国語版ではきちんと書かれていたのだろうけれど、日本語にするときによく知らない人が訳してしまったのではないかと思う。

文中の「攻撃力」という語が、詳細情報で表示される「攻撃力」ではなく、全体的な火力のことを指していると思えば、意味は通る。

実際にセットしてみると

そして、実際にセットしてみると詳細情報の攻撃力の値は変化しない。つまり「攻撃力上昇」の効果はない

代わりに「ダメ増」と「最終ダメ増」の両方が増加する。そのため、結果的には火力は1.1倍以上に増える。

バグ?仕様?

もし「ダメ増」と「最終ダメ増」の両方が増えるのが仕様なのだとしたら、そのことが分かるような説明書きになるはず。けれど、そうなっていない。なので、これはバグなのかなと思っている。邪推をすると、エルフ実装担当のプログラマが「ダメ増」と「最終ダメ増」の違いを知らずにプログラムを組んでしまったのではないかと…。

 

最終ダメ

この前のダメ計算式は、最終ダメや両手持ちを含まないものだった。実は、最終ダメや両手持ちの効果にはバグがあるのではないかと思っている。

今まで少し試してみた感触だと

  • 最終ダメはプレイヤーに不利なバグ
  • 両手持ちはプレイヤーに有利なバグ

があるっぽい。今日は最終ダメの効果を確認してみる。

最終ダメ増+10%

名前の感じからして、最終ダメージ+10%の装備を付けると、それを付けていないときと比べてダメが1.1倍になるように思える。まずはこのことを実際に確かめてみる。

実験

訓練用の槌矛を装備した50モンクで太陽の聖堂の木を「最終ダメージなし」と「最終ダメージ10%」で叩いて比較してみる。その際、通常攻撃とアッパーと両方のダメを記録する。
こんな結果になる。

最終ダメ無し

通常攻撃 185 (472)
アッパー 492 (1256)

最終ダメ10%

通常攻撃 203 (520)
アッパー 541 (1381)

但し、カッコ内はクリダメ。

これは、確かにダメが1.1倍になったといってよい。 185*1.1=203.5、472*1.1=519.2、492=541.2、1256*1.1=1381.6となり、丸め誤差を考えると期待通りの結果。
通常攻撃のクリダメについては、472*1.1=519.2となっていてズレているように見える。けれど、472が例えば内部的には、472.8という値であったとすれば、472.8*1.1=520.08となりつじつまが合う。

このモンクは、最終ダメ+10%の装備を、腕と装身具の二つ持っているけれど、どちらを付けても全く同じダメだった。

最終ダメ増+10%2つ

問題は、最終ダメ+10%装備を2つ付けた場合。このとき、1+0.1+0.1=1.2で1.2倍か、1.1*1.1=1.21で1.21倍かのどちらかになりそうと期待できる。ところが、実際には

最終10%を2つ

通常攻撃 220 (562)
アッパー 586 (1494)

となり、1.2倍にならない。最終ダメ無しの時と比べると
220/185=1.189   (通常攻撃、非クリ)
562/472=1.19    (通常攻撃、クリ)
586/492=1.191   (アッパー、非クリ)
1494/1256=1.189  (アッパー、クリ)
となり、1.19倍となっている。つまり10%+10%=19%となってしまっている。

赤い袋

レイド報酬の赤い袋は最終ダメージ+20%のバフが付く。これがどうなるのかも確かめてみる。

最終ダメージ装備を外し、赤い袋バフを付けると

通常攻撃 222 (567)
アッパー 591 (1507)

となる。これは、最終ダメージ無しの最初の時と比べて、ちょうど20%増えていることが確認できる。
185*1.2=222、472*1.2=566.4、492*1.2=590.4、1256*1.2=1507.2となる。丸め誤差を考えると完全に期待通りの結果。

そして、僅かではあるけれど、最終ダメ+10%を2つ付けたときよりダメが増えている。
過去の日記で何度か書いているけれど、訓練用の槌矛は攻撃力に幅がなく、与ダメも一定。そのため、ダメ値に僅かでも違いがあれば、それは、二つの装備に違いがあると分かる。つまり

最終ダメ+10%を2つ付けても、最終ダメ+20%を一つつけた場合より劣る

ということが確認できる。この時点でバグと言ってよさそう。

赤い袋+最終ダメ+10%

さらに実験を続けてみる。赤い袋を使いながら、最終ダメ+10%を付けてみる。期待としては+30%になってほしいところだけれど

最終20%(赤い袋)+勇気

通常攻撃 237 (605)
アッパー 630 (1608)

という結果に。これは大体28%増。なので20%+10%=28%という結果に。

赤い袋+最終ダメ+10%を2つ

赤い袋を使いながら、最終ダメ+10%を2つつけてみる。

通常 250 (639)
アッパー 666 (1698)

という結果に。これは大体35.2%像。20%+10%+10%=35.2%。悲しい。

感想

こんな感じなので

  • 最終ダメ装備(or バフ)を1つ付けるだけなら期待通りの結果。 (ダメが1.1倍とか1.2倍になる)
  • 最終ダメ装備(or バフ)を2つ以上つけると期待より低い結果。 (1.2倍のはずなのに1.19倍しかない)

という結論になる。最終ダメージはユーザに不利なバグがあるっぽい。逆に、両手持ちはユーザに有利なバグがあるっぽい。こっちの検証はまた後日。

ダメ計算式に関する補足

昨日の日記の続き

昨日書いたダメ計算の手順について。

最終ダメ、両手持ち

昨日書いた計算手順は最終ダメや両手持ちを考慮していない。
最終ダメや両手持ちについては後日調べてみるつもり。

スカの通常攻撃

スカの通常攻撃ダメは、昨日の計算値の半分になるみたい。ただし、
スカは通常攻撃で2回叩くので結果的な火力としては同じ。

対人戦

昨日の計算式は対人戦では使えない。対人戦は対モンスター戦と結構違う式になっているみたい。対人戦については後日調べてみるつもり。

使われないステ

「攻撃力〇%上昇」というステによって、攻撃力が上がるので結果的にダメも上がる。けれど、ダメ計算の式で直接的に「攻撃力上昇」のステが使われるわけではない。同じように、「スキル攻撃力上昇」も式に直接は現れない。

防御係数

昨日の計算式では、最後に防御力係数Dが現れる。この値が分からないと具体的なダメの計算ができない。しかも、この値はレベルや敵の種類に依存しているようなので、調べるのは大変そう。訓練用の槌矛があるとこの値を1%程度の誤差で調べられる。
通常の武器だと、この値を調べようとしても5%程度の誤差が生じてしまう。

信憑性

昨日の計算法の信憑性はまだまだ低い。実は、もう既に昨日の式では計算が合わない例も出てきてしまっている。防御係数辺りの計算は修正が必要になる可能性が高い。