スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

アーマーピアシングの計算式

昨年の「アーマーピアシングの計算が分からない」から随分経ってしまいましたが、ようやく解明できました。
バグらしき仕様が複数あったために惑わされてしまい、時間がかかりました。
そのため検証自体はかなり雑になってしまった部分もあるのですが、
実用上問題ないと思われるのでこれで完了とします。

○アーマーピアシング発動時のダメージ計算式
(ステータス攻撃力)×(100%+潜在等%補正(+ボスダメージ%))×(100%-防御率×(100%-防御無視1)×(100%-防御無視2)×・・・・・・×(100%-防御無視n)×(アーマーピアシング防御無視割合)HIT段数)×(スキル倍率)×(クリティカル補正)×(100%+(防御率)×(アーマーピアシング反射率)

アーマーピアシングが発動した場合、
同時に攻撃した全てのダメージについてアーマーピアシングの効果が適用されます。
例えばアンカウンタブルアローで複数巻き込んだ場合、
巻き込んだ全ての敵への全HIT分についてアーマーピアシングの効果が出ます。
以下、特殊な部分について解説していきます。

○防御無視割合の適用のされ方
スキル説明の「攻撃時一定確率で敵の防御率を少し無視して」の部分に相当する処理についてです。
基本的には他の防御率無視と同様に、敵の防御率に乗算される形で計算されるのですが、
ここで2つバグだと思われる仕様があります。

1つ目は、「スキル説明文の無視率がそのまま乗算される」というものです。
例えばLv10では「敵の防御を30%無視」するとありますが、
この際に防御率に(100%-30%)を乗算するのではなく
30%を直接乗算して計算が行われるようです。
Lv20(MAX)では50%無視なので、100%-50%=50%となりどちらで計算しても変わりませんが、
この仕様により、防御率が非常に大きい相手には低レベルのアーマーピアシングの方が有効な場合もあり得る、
というよく分からないことになっていると思われます。
なお、歯切れの悪い言い方になっているのは、低レベル時のデータを十分に集め損ねたためです。

2つ目は、多段HITするスキルの場合、ダメージが表示される順に下から1、2、・・・・・・、n HITとすると、
n HIT目のダメージ計算においてはアーマーピアシングの防御無視割合をn乗して計算する
(言い換えるとn回乗算される)というものです。
例を挙げると、アーマーピアシングLv20(50%無視)では、アンカウンタブルアローの1HIT目は50%を乗算、
2HIT目は50%^2=25%を乗算、5HIT目は50%^5=3.125%を乗算します。
防御率が高い相手ほど、ダメージ表示の上の方ほど大きなダメージが出るようになっています。
次のSSはカオスベルルム(防御率300%)に、アンカウンタブルアローLv10(240%×5)で攻撃したものです。

消えかけですが一番下のダメージが1で、上に行くほどダメージが上昇しているのが分かります。
このデータはアンカウンタブルアローでしか取っていませんが、
おそらく多段HIT系で共通の処理だろうと推測しています。
他に重要な多段HITスキルはウインドオブフレイくらいですが、
これのアーマーピアシング発動を狙うのは非常に時間がかかるため、スルーすることにしました。

○反射割合の適用のされ方
スキル説明の「敵の防御率に比例して追加ダメージを与える」の部分に相当する処理についてです。
クリティカル、ダメージ%補正などとは別枠で、上記計算式のように倍率が乗算されます。
例えば防御率40%の敵相手にアーマーピアシングLv20(100%反射)が発動した場合、
(100%+40%×100%)=140%が乗算されます。
他職のダメージ増幅スキル等との組み合わせは未検証です。

追記には検証条件を掲載します。
併せて、「設置プラッターの計算式が召喚仕様ではなく通常の攻撃と同じ」
ことについても検証結果を載せておきます。

使用キャラクターはLv200ボウマスターです。
最大値と最小値だけを使って考えるだけで実用上問題ない程度の精度で計算式が導けるゲームであると
経験的に感じていることもあり、統計処理などは一切行っていません。

○条件1:防御率の仕様確認1
STR:129
DEX:1124
ATK:106
総ダメージ:0%
ボスダメージ:15%
カリスマLv100:雑魚のみ防御率無視10%
その他防御率無視:0%
対象:ゾンビキノコ(雑魚・防御率10%→無視効果により実質9%)
使用スキル:アロープラッターLv1で暴風の矢(189%)
非クリティカル時理論値最大:10961.35268
非クリティカル時理論値最小:9317.149774
観測値最大:10951
観測値最小:9317
カリスマの防御率無視が雑魚には適用されていることが確認できました。

○条件2:防御率の仕様確認2
STR:129
DEX:1124
ATK:106
総ダメージ:15%
ボスダメージ:15%
カリスマLv100:雑魚のみ防御率無視10%
その他防御率無視:25%(マークスマンシップLv10)
対象:ゾンビキノコ(雑魚・防御率10%→無視効果により実質6.75%)
使用スキル:アロープラッターLv1で暴風の矢(189%)
実質防御率を6%と仮定したときの理論値:11067.95484~13021.12334
実質防御率を7%と仮定したときの理論値:10950.21064~12882.60075
実質防御率を6.75%としたときの理論値:10979.64669~12917.2314
観測値最大:12916
観測値最小:10991
防御率が加算だった頃は防御率の1%未満は切り捨てだったのですが、
防御率が乗算になって計算が変わったようです。

○条件3:設置アロープラッターの計算式1
STR:129
DEX:1124
ATK:106
総ダメージ:15%
ボスダメージ:15%
カリスマLv100:雑魚のみ防御率無視10%
その他防御率無視:25%(マークスマンシップLv10)
対象:ゾンビキノコ(雑魚・防御率10%→無視効果により実質6.75%)
使用スキル:アロープラッターLv1を設置(95%)
召喚と同様に算出した理論値:5918.359281~6962.775625
通常の攻撃と同様に算出したときの理論値:5518.87003~6492.78827
観測値最大:6465
観測値最小:5522
調べるまで召喚扱いだろうと思っていたのですが、予想外にも通常の攻撃と同じ扱いでした。
反射を受けるのはそのためでしょうか。

○条件3:設置アロープラッターの計算式2
STR:129
DEX:1124
ATK:106
総ダメージ:15%
ボスダメージ:55%
カリスマLv100:雑魚のみ防御率無視10%
その他防御率無視:25%(マークスマンシップLv10)
対象:キメラ(ボス・防御率30%→無視効果により実質22.5%)
使用スキル:アロープラッターLv1を設置(95%)
理論値:6780.381177~7976.919031
観測値最大:7972
観測値最小:6829
通常の攻撃扱いなので当然と言えば当然ですが、ボスダメージもしっかり乗るようです。

○条件4:アーマーピアシングとスキル倍率の関係
STR:129
DEX:1124
ATK:106
総ダメージ:15%
ボスダメージ:15%
カリスマLv100:雑魚のみ防御率無視10%
その他防御率無視:25%(マークスマンシップLv10)
対象:ゾンビキノコ(雑魚・防御率10%→無視効果により実質6.75%)
使用スキル:通常攻撃(100%) / アロープラッターLv1で暴風の矢(189%)
条件:アーマーピアシングLv20(防御率50%無視して防御率の100%追加ダメージ)発動時のダメージ
通常攻撃観測値最大:7785
通常攻撃観測値最小:6630
暴風の矢観測値最大:14721
暴風の矢観測値最小:12537
暴風の矢最大÷通常攻撃最大=1.890944123
暴風の矢最小÷通常攻撃最小=1.890950226
ダメージがスキル倍率に正比例することが分かります。

○条件5:アーマーピアシングと攻撃力の関係
STR:129
DEX:1124
ATK:106 / 146
総ダメージ:15%
ボスダメージ:15%
カリスマLv100:雑魚のみ防御率無視10%
その他防御率無視:25%(マークスマンシップLv10)
対象:ゾンビキノコ(雑魚・防御率10%→無視効果により実質6.75%)
使用スキル:アロープラッターLv1で暴風の矢(189%)
条件:アーマーピアシングLv20(防御率50%無視して防御率の100%追加ダメージ)発動時のダメージ
ATK106観測値最大:14721
ATK106観測値最小:12537
ATK146観測値最大:20124
ATK146観測値最小:17250
(ATK106観測値最大÷ATK106)÷(ATK146観測値最大÷ATK146)=1.007557858
(ATK106観測値最小÷ATK106)÷(ATK146観測値最小÷ATK146)=1.001040197
ダメージが攻撃力に正比例することが分かります。

○条件6:アーマーピアシングと総ダメージ%の関係
STR:129
DEX:1124
ATK:106
総ダメージ:15% / 35%
ボスダメージ:15%
カリスマLv100:雑魚のみ防御率無視10%
その他防御率無視:25%(マークスマンシップLv10)
対象:ゾンビキノコ(雑魚・防御率10%→無視効果により実質6.75%)
使用スキル:アロープラッターLv1で暴風の矢(189%)
条件:アーマーピアシングLv20(防御率50%無視して防御率の100%追加ダメージ)発動時のダメージ
総ダメージ15%観測値最大:14721
総ダメージ15%観測値最小:12537
総ダメージ35%観測値最大:17273
総ダメージ35%観測値最小:14758
(総ダメージ15%観測値最大÷115%)÷(総ダメージ35%観測値最大÷135%)=1.000473219
(総ダメージ15%観測値最小÷115%)÷(総ダメージ35%観測値最小÷135%)=0.997245414
ダメージが(100%+総ダメージ%)に正比例することが分かります。

基本的なダメージ計算式は
(武器係数1.3)×(STR+4×DEX)×ATK÷100×(100%~熟練度85%の範囲の乱数)×(100%+総ダメージ%(+ボスダメージ%))×(100%-(防御率)×(100%-防御率無視1)×(100%-防御率無視2)×・・・・・・×(100%-防御率無視n))×(スキル倍率)
ですが、条件4~6より、
追加ダメージはスキル倍率・ATK・総ダメージ%以外の項において計算されることが分かりました。
ここで、一番素直に思いつく計算式、すなわち下線部を(ステータス攻撃力)と表したとき、
(ステータス攻撃力)×(100%+総ダメージ%(+ボスダメージ%))×(100%-(防御率)×(100%-防御率無視1)×(100%-防御率無視2)×・・・・・・×(100%-防御率無視n)×(100%-アーマーピアシング防御率無視))×(スキル倍率)×(100%+(防御率)×(アーマーピアシング反射率)) ・・・・・・ (1)
に条件4~6の各値を当てはめてみます。

○(1)式に条件4~6の値を代入
STR:129
DEX:1124
ATK:106 / 146
総ダメージ:15% / 35%
ボスダメージ:15%
カリスマLv100:雑魚のみ防御率無視10%
その他防御率無視:25%(マークスマンシップLv10)
対象:ゾンビキノコ(雑魚・防御率10%→無視効果により実質6.75%)
使用スキル:通常攻撃(100%) / アロープラッターLv1で暴風の矢(189%)
条件:アーマーピアシングLv20(防御率50%無視して防御率の100%追加ダメージ)発動時のダメージ
条件4(ATK106・総ダメージ15%・通常攻撃):6621.553812~7790.063308
条件4通常攻撃観測値最大:7785
条件4通常攻撃観測値最小:6630
条件4(ATK106・総ダメージ15%・暴風の矢):12514.7367~14723.21965
条件4暴風の矢観測値最大:14721
条件4暴風の矢観測値最小:12537
条件5(ATK146・総ダメージ15%・暴風の矢):17237.27886~20279.1516
条件5ATK146観測値最大:20124
条件5ATK146観測値最小:17250
条件6(ATK106・総ダメージ35%・暴風の矢):14691.21265~17283.77959
条件6総ダメージ35%観測値最大:17273
条件6総ダメージ35%観測値最小:14758
いずれの場合にも観測値が理論値以内に収まっており、計算式は妥当そうでした。

しかし、次の条件で数字が合わなくなります。

○条件7:アーマーピアシングのレベルが異なる場合の計算式
STR:129
DEX:1124
ATK:106
総ダメージ:15%
ボスダメージ:15%
カリスマLv100:雑魚のみ防御率無視10%
その他防御率無視:25%(マークスマンシップLv10)
対象:キメラ(ボス・防御率30%→無視効果により実質22.5%)
使用スキル:アロープラッターLv1で暴風の矢(189%)
条件:アーマーピアシングLv10(防御率30%無視して防御率の50%追加ダメージ)発動時のダメージ
(1)式で計算したときの理論値:12895.93355~15171.68653
観測値最大:16765
観測値最小:14313
1割近く差があります。
先の条件では観測値を(1)式でうまく説明できたことから、(1)式における
(100%-アーマーピアシング防御無視)
の項が怪しく、
(アーマーピアシング防御無視割合)
がそのまま用いられていると推測しました。
つまり、アーマーピアシングLv20では100%-50%=50%となり、
いずれの計算式においても計算結果が等しくなるのに対し、
アーマーピアシングLv10では100%-30%=70%となり、
(1)式では実際より防御率が大きくなったことが原因だと考えたのです。

(ステータス攻撃力)×(100%+潜在等%補正(+ボスダメージ%))×(100%-防御率×(100%-防御無視1)×(100%-防御無視2)×・・・・・・×(100%-防御無視n)×(アーマーピアシング防御無視割合))×(スキル倍率)×(100%+(防御率)×(アーマーピアシング反射率))  ・・・・・・ (2)

(2)式を用いて条件7を再度計算してみたところ、
(1)式で計算したときの理論値:14273.5407~16792.40082
観測値最大:16765
観測値最小:14313
となり、観測値を上手く説明することに成功しました。

○条件8:多段ヒットスキルの計算式
STR:129
DEX:1124
ATK:106
総ダメージ:15%
ボスダメージ:15%
カリスマLv100:雑魚のみ防御率無視10%
その他防御率無視:25%(マークスマンシップLv10)
対象:ゾンビキノコ(雑魚・防御率10%→無視効果により実質6.75%)
使用スキル:アンカウンタブルアローLv10(240%)+ボーナスアタック(5HIT)
条件:アーマーピアシングLv20(防御率50%無視して防御率の100%追加ダメージ)発動時のダメージ
下から1段目の観測値最大:18423
下から2段目の観測値最大:18946
下から3段目の観測値最大:19121
下から4段目の観測値最大:19180
下から5段目の観測値最大:19304
下から1段目の観測値最小:16321
下から2段目の観測値最小:16223
下から3段目の観測値最小:16457
下から4段目の観測値最小:16557
下から5段目の観測値最小:16550
(2)式で計算したときの理論値:15891.72915~18696.15194
多段ヒットスキルであるアンカウンタブルアローにおいて、
下から2段目以降のダメージが(2)式から求められる理論値を超えています。
防御率を100%無視したときの理論値:16446.80895~19349.187
であり、HIT数が増えるにつれてこの値に近付いていることから、
防御率無視の計算がおかしい、
具体的にはHITごとにアーマーピアシング防御無視効果を重ねて乗算していると推測しました。

(ステータス攻撃力)×(100%+潜在等%補正(+ボスダメージ%))×(100%-防御率×(100%-防御無視1)×(100%-防御無視2)×・・・・・・×(100%-防御無視n)×(アーマーピアシング防御無視割合)HIT段数)×(スキル倍率)×(100%+(防御率)×(アーマーピアシング反射率))  ・・・・・・ (3)

○(3)式に条件8の値を代入
下から1段目の理論値:15891.72915~18696.15194
下から1段目の観測値最大:18423
下から1段目の観測値最小:16321
下から2段目の理論値:16169.26905~19022.66947
下から2段目の観測値最大:18946
下から2段目の観測値最小:16223
下から3段目の理論値:16308.039~19185.92823
下から3段目の観測値最大:19121
下から3段目の観測値最小:16457
下から4段目の理論値:16377.42397~19267.55762
下から4段目の観測値最大:19180
下から4段目の観測値最小:16557
下から5段目の理論値:16412.11646~19308.37231
下から5段目の観測値最大:19304
下から5段目の観測値最小:16550
ダメージは理論値内に収まっています。
誤差が大きいのはデータ数が少ないためでしょう(各25回程度しかデータを取っていない)。

○条件9:クリティカル発生時の計算式
STR:129
DEX:1124
ATK:106
総ダメージ:15%
ボスダメージ:15%
カリスマLv100:雑魚のみ防御率無視10%
その他防御率無視:25%(マークスマンシップLv10)
対象:ゾンビキノコ(雑魚・防御率10%→無視効果により実質6.75%)
使用スキル:通常攻撃(100%)のクリティカルダメージ
クリティカル最大ダメージ:150%
クリティカル最小ダメージ:140%
条件:アーマーピアシングLv20(防御率50%無視して防御率の100%追加ダメージ)発動時のダメージ
クリティカル観測値最大:11849
クリティカル観測値最小:9604
(3)式で計算したときの理論値:6831.039379~8036.516917
理論値×(クリティカル最小ダメージ~クリティカル最大ダメージ):9563.455131~12054.77538
クリティカルダメージとアーマーピアシング効果による乗算値が別枠であることが分かりました。
なお、『恐らく、ダメージとクリティカル倍率で独立して計算されている』(悪銭身に付かず 様)ために、
理論値と観測値最大・最小値との間の誤差を縮めるにはかなりの(おそらく無意味な)労力が必要なため、
あまり厳密に最大・最小値を追求してはいません。

以上の結果から、記事の冒頭にて記載した計算式を導きました。

コメントの投稿

非公開コメント

No title

わぁ、私もアーマーピアシングの処理がよくわからなくて戸惑っていたのですがこれはわかりやすいですね。すごい…。

ところで、未発動時発動確率重複とありますが
文章通り見たら10%→20%→…と増えていくので10回以内に必ず1回以上発動するはずだと思うんですが、
暴風、アロープラッターでは発動回数が思ったよりもかなり少ない気がするんですよね…
プロフィール
夢巡

夢巡

Author:夢巡
メイプルストーリーを気ままにプレイしています。
ボウマスター育成情報がメインのサイト、狩人の宿の管理人です。

コメントについて
2015/11/20以降、コメントを承認後表示に変更しました。
いただいたコメントの承認・返信には時間がかかる場合があります。
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
運営サイト
読んでいるブログ
ファンサイト・ブログポータル
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。