この日誌での検証は通常攻撃に依存しない特技(フェンリルアタック、ギガスラ等)の場合です。
通常攻撃に依存する特技については、ブログ「下町豆腐屋」さんが詳しく検証されており、今回の内容と異なる可能性があります。
結論をさっさと知りたいそこのあなた!お教えしましょう。
「すべての計算を終えた後に小数点以下切り捨て」です。
● 前回のあらすじ
・フォースなしのとき、斧レンで鐘を1確したい
・フェンリルアタックの計算式を求めた((きようさ - 300) * 320 / 699 + 480 ± 30)
● ダメージ計算の基本
よく知られた事実ではありますが、確認しておきます。
最終的に与えるダメージXは以下によって求まります:
X = (基礎ダメ) * (属性ダメ上昇) * (与ダメ上昇) * (相手の被ダメ) * (相手の属性耐性)
ここでいくつか疑問が浮かびます。
・小数点以下は四捨五入?切り捨て?
・そのタイミングはいつ?
今回はこれを確かめてみます。
● まずは想定場面に似た状況で
フェンリルアタックで鐘にどのくらいダメージが与えられるかわかれば十分です。
なので以下の状況で進めます:
・ふんさいのおおなた(物質+10%)
・戦神のベルト(物質+12%)
・フェンリルアタックの極意(ダメージ+18%)
これらはすべて上記Xのうち(与ダメ上昇)という部分に合算されます。
つまり、今回の場合、
X = [(きようさ - 300) * 320 / 699 + 480 ± 30] * 1.4
となります。
なお、実際の防衛ではさらに階級によるダメージ+○%も加算されます。
● 小数点が処理されるタイミング
基礎ダメの時点で小数点を丸めるかどうか、四捨五入か切り捨てかで以下のパターンが考えられます:
1. round[round(基礎ダメ) * 1.4]
2. rounddown[round(基礎ダメ) * 1.4]
3. round[rounddown(基礎ダメ) * 1.4]
4. rounddown[rounddown(基礎ダメ) * 1.4]
5. round[基礎ダメ * 1.4]
6. rounddown[基礎ダメ * 1.4]
roundは四捨五入、rounddownは切り捨てです。
● 候補を絞る
Xの計算式を見ると、乱数幅±30も1.4倍されていることがわかります。
これを用いて候補1~6を絞ることができます。
例えば、きようさ985のとき、基礎ダメのmax, minはそれぞれ823.59, 763.59となります。
これを(基礎ダメ)に代入すると以下のようになります:
1. 1070~1154
2. 1069~1153
3. 1068~1152
4. 1068~1152
5. 1069~1153
6. 1069~1153
あとは実際にフェンリルアタックを打ちまくります。
今回は物質特攻なので、物質系でHP4289のクラウンヘッドで検証しました(ステータスがほぼ鐘)。
ある程度打つと、実測値が1069~1153となりました。
この時点で、候補1, 3, 4が外れます(実測値が下限、上限を突破しているため)。
同様にして、きようさを変えながら候補を絞っていくと、最終的に候補6が残りました。
● より詳しく
これで検証自体は十分なのですが、まだ1つ疑問が残ります。
上記は(与ダメ上昇)以外の倍率は1でした。
つまり、
X = (基礎ダメ) * (属性ダメ上昇) * (与ダメ上昇) * (相手の被ダメ) * (相手の属性耐性)
の各掛け算で丸めるのか、最後にまとめて丸めるのかです。
ということで、今度は特技をギガスラッシュに変えて
・光+14%
・種族特攻、宝珠合計+38%
で検証しました。
候補は次の2つです:
1. rounddown[rounddown(基礎ダメ * 属性ダメ) * 与ダメ]
2. rounddown[基礎ダメ * 属性ダメ * 与ダメ]
結果は、候補2が残りました。
● 結論
以上より、「小数点はそのまま計算して最後の最後に切り捨て」が正しそうです。
となると、防衛など高倍率な場面では、ステータスが少し高いだけでも最終ダメージは大きく上昇しそうです。
ギガスラの検証でスレア海岸のプチアーノンを狩ったのですが、わたあめが増えて嬉しいです。