以前、武器束ねの腕輪検証の際に必要になるということで、シレン5におけるダメージ計算式の処理方法について検証を行った。
前の記事では特効武器については検証をしておらず、特効補正の前後でどのような処理が行われているかまでは検討しなかった。
そこで今回はダメージ計算の最終処理である特効補正の前後の処理について検証を行う。
ダメージ計算式
今回検証で使用するダメージ計算式を改めて確認しておこう。なお、攻撃・守備の計算方法は省略するため詳しく知りたい方は組長式を参照してほしい。
ダメージ = 《【攻撃×乱数÷100-守備】×種族倍率》
今回は、この【】および《》で行われる処理について検討する。
4つの検証
最終処理を検討するために行った検証は4つ。
- 「金食い攻撃」印を合成し、ダメージを測定
- 「植物特効」印を合成し、植物系のモンスターでダメージを測定
- 「金食い攻撃」「植物特効」印を合成し、植物系のモンスターでダメージを測定
- 「金食い攻撃」「植物特効」「浮遊特効」印を合成し、パコレプキンでダメージを測定
1と2は種族倍率が1個の場合の処理を検討するために行った。また、金食い攻撃とその他の特効で補正の掛かる場所が異なる可能性があるため、それぞれ別々に測定した。
3は補正が複数ある場合の処理を検討するために行った。
4は補正が複数ある場合、特効系の印と金食い攻撃印のそれぞれで処理が別になる可能性を検証した。
検証1:「金食い攻撃」印を合成し、ダメージを測定
無特効武器(大隕鉄聖剣)に金食い虫こん棒を合成する。運命の小道1~2F のモンスターに攻撃し、出たダメージを測定した。他の条件は以下の通り。
- Lv.23
- 武器:大隕鉄聖剣+1(つよさ:26)
- ちから:8
試行回数は300回。出現したダメージと出現回数の結果を次に示す。
ダメージ | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
出現回数 | 12 | 27 | 0 | 27 | 23 | 21 | 0 | 39 | 20 | 33 | 30 | 0 | 31 | 28 | 9 |
続いて予測値を算出する。《》の部分は四捨五入・切り捨てのどちらか、【】の部分は未処理・四捨五入・切り捨てのいずれかで計算を行う。(《》の部分で未処理がないのは最終的に整数にするため)計算の結果を次に示す。なお、表中の四は四捨五入を、未は未処理、切は切り捨てを意味する。例えば、【未】《四》なら、【】で未処理であり、《》で四捨五入をしていることを示す。
乱数 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
【未】《四》 | 46 | 47 | 47 | 48 | 48 | 49 | 49 | 50 | 50 | 51 | 51 | 52 | 52 |
【四】《四》 | 46 | 47 | 47 | 48 | 48 | 48 | 49 | 49 | 51 | 51 | 52 | 52 | 52 |
【切】《四》 | 46 | 46 | 47 | 47 | 48 | 48 | 48 | 49 | 49 | 51 | 51 | 51 | 52 |
【未】《切》 | 45 | 46 | 47 | 47 | 48 | 48 | 49 | 49 | 50 | 50 | 51 | 51 | 52 |
【四】《切》 | 45 | 46 | 46 | 48 | 48 | 48 | 49 | 49 | 50 | 50 | 52 | 52 | 52 |
【切】《切》 | 45 | 45 | 46 | 46 | 48 | 48 | 48 | 49 | 49 | 50 | 50 | 50 | 52 |
乱数 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 |
【未】《四》 | 53 | 54 | 54 | 55 | 55 | 56 | 56 | 57 | 57 | 58 | 58 | 59 | 59 |
【四】《四》 | 53 | 53 | 55 | 55 | 55 | 56 | 56 | 57 | 57 | 57 | 59 | 59 | 60 |
【切】《四》 | 52 | 53 | 53 | 53 | 55 | 55 | 56 | 56 | 57 | 57 | 57 | 59 | 59 |
【未】《切》 | 52 | 53 | 54 | 54 | 55 | 55 | 56 | 56 | 57 | 57 | 58 | 58 | 59 |
【四】《切》 | 53 | 53 | 54 | 54 | 54 | 55 | 55 | 57 | 57 | 57 | 58 | 58 | 59 |
【切】《切》 | 52 | 53 | 53 | 53 | 54 | 54 | 55 | 55 | 57 | 57 | 57 | 58 | 58 |
気になる人はじっくりと表を見比べてみてほしいが、この中で最小45、最大59かつ、47・51・56ダメージが出ないのは、【四】《切》の【】補正を掛ける前に四捨五入を行い、《》補正を掛けた後に切り捨て処理を行っている場合のみ。
よって、結論としてダメージ計算式は
ダメージ = 《【攻撃×乱数÷100-守備】×種族倍率》
【】で四捨五入を行い、《》で切り捨て処理を行っている
と考えて良いでしょう。
検証2:「植物特効」印を合成し、植物系のモンスターでダメージを測定
検証1の「金食い攻撃」印は厳密には特効印ではなく、種族倍率の検証をするには不適当な可能性がある。そこで特効印の一つである「植物特効」を用いて金食い攻撃と特効が同じ場所で処理されていることを確認する。
無特効武器(大隕鉄聖剣)に草刈りのカマを合成する。運命の小道1~2F のおばけカイワレ及びタネッコに攻撃し、出たダメージを測定した。他の条件は以下の通り。
- Lv.23
- 武器:大隕鉄聖剣+3(つよさ:28)
- ちから:8
試行回数は111回。出現したダメージと出現回数の結果を次に示す。
ダメージ | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
出現回数 | 6 | 10 | 0 | 10 | 10 | 0 | 10 | 8 | 5 | 0 | 12 | 15 | 11 | 0 | 7 | 7 |
検証1と同様に予測値を求め、次の表にまとめた。
乱数 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
【未】《四》 | 49 | 50 | 50 | 51 | 51 | 52 | 53 | 53 | 54 | 54 | 55 | 55 | 56 |
【四】《四》 | 49 | 50 | 50 | 51 | 51 | 53 | 53 | 53 | 54 | 54 | 55 | 55 | 55 |
【切】《四》 | 49 | 50 | 50 | 50 | 51 | 51 | 51 | 53 | 53 | 54 | 54 | 55 | 55 |
【未】《切》 | 49 | 49 | 50 | 50 | 51 | 52 | 52 | 53 | 53 | 54 | 54 | 55 | 56 |
【四】《切》 | 48 | 49 | 49 | 51 | 51 | 52 | 52 | 52 | 54 | 54 | 55 | 55 | 55 |
【切】《切》 | 48 | 48 | 49 | 49 | 51 | 51 | 51 | 52 | 52 | 54 | 54 | 55 | 55 |
乱数 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 |
【未】《四》 | 57 | 57 | 58 | 58 | 59 | 59 | 60 | 61 | 61 | 62 | 62 | 63 | 63 |
【四】《四》 | 57 | 57 | 58 | 58 | 59 | 59 | 59 | 61 | 61 | 62 | 62 | 63 | 63 |
【切】《四》 | 55 | 57 | 57 | 58 | 58 | 59 | 59 | 59 | 61 | 61 | 62 | 62 | 63 |
【未】《切》 | 56 | 57 | 57 | 58 | 58 | 59 | 60 | 60 | 61 | 61 | 62 | 62 | 63 |
【四】《切》 | 56 | 56 | 58 | 58 | 59 | 59 | 59 | 60 | 60 | 62 | 62 | 63 | 63 |
【切】《切》 | 55 | 56 | 56 | 58 | 58 | 59 | 59 | 59 | 60 | 60 | 62 | 62 | 63 |
この中で、最小48、最大63かつ50・53・57・61が出ないのは検証1のときと同じの【四捨五入】《切り捨て》の場合のみ。これで少なくとも特効印と金食い攻撃印は計算後に同じ処理を行っていることが判明しました。
よって結論として、本記事内では
金食い攻撃と特効は計算式上で同じ場所で処理されている
とした上で考察を進めます。
検証3:「金食い攻撃」「植物特効」印を合成し、植物系のモンスターでダメージを測定
検証1・2で特効武器1つの場合の種族倍率の計算処理が明らかとなった。ではこの種族倍率が、2つ、3つと増えた場合計算処理はどのようになるだろうか。ここでもう一度ダメージ計算式を確認しておこう。
ダメージ = 《【攻撃×乱数÷100-守備】×種族倍率》
この計算式には種族倍率が一つしか出現しないので、2つ以上ある場合の処理が明確でない。闇雲に検証しても埒が明かないので、今回もある程度予想を立て、その予想を立証するという形式で検証を進めていく。
まず一つ目の説。種族倍率を予め計算しておき、その後【】の部分と掛け合わせるというもの。
二つ目の説は種族倍率をその都度掛け合わせ、その度に切り捨て処理を行う、というもの。
文章で書くと自分でも訳がわからないので、先ほどの計算式のように記述すると次のようになる。
①合計種族倍率=種族倍率1×種族倍率2
ダメージ = 《【攻撃×乱数÷100-守備】×合計種族倍率》
②ダメージ = 《《【攻撃×乱数÷100-守備】×種族倍率1》×種族倍率2》
この説を立証するために次のような検証を行った。
無特効武器(大隕鉄聖剣)に草刈りのカマと金食い虫こん棒を合成する。運命の小道1~2F のおばけカイワレ及びタネッコに攻撃し、出たダメージを測定した。他の条件は以下の通り。
- Lv.23
- 武器:大隕鉄聖剣+3(つよさ:28)
- ちから:8
試行回数は138回。出現したダメージと出現回数の結果を次に示す。
ダメージ | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
出現回数 | 2 | 12 | 0 | 0 | 15 | 17 | 0 | 0 | 9 | 13 | 7 | 0 | 0 | 16 | 11 | 0 | 15 | 0 | 7 | 14 |
①②の説にもとづいて計算を行い、次の表にまとめた。なお、②の説は内側、外側のどちらの《》でも切り捨て処理を行っている。また、②の説では倍率を掛ける順で計算結果が異なるため、それぞれの場合で計算している。
乱数 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
説① | 63 | 64 | 64 | 66 | 66 | 68 | 68 | 68 | 70 | 70 | 71 | 71 | 71 |
説②金→植 | 62 | 64 | 64 | 66 | 66 | 67 | 67 | 67 | 70 | 70 | 71 | 71 | 71 |
説②植→金 | 62 | 63 | 63 | 66 | 66 | 67 | 67 | 67 | 70 | 70 | 71 | 71 | 71 |
乱数 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 |
説① | 73 | 73 | 75 | 75 | 77 | 77 | 77 | 78 | 78 | 80 | 80 | 82 | 82 |
説②金→植 | 72 | 72 | 74 | 74 | 76 | 76 | 76 | 78 | 78 | 79 | 79 | 82 | 82 |
説②植→金 | 72 | 72 | 75 | 75 | 76 | 76 | 76 | 78 | 78 | 80 | 80 | 81 | 81 |
今回は説②の植物特効→金食い攻撃の場合に予測値と実測値が一致した。138回という試行回数は決して多くはないが、これだけ出るダメージがまばらで不規則なうえですべて一致しているのは、偶然とは言い難いでしょう。
よって本記事では複数の種族倍率がある場合の計算式は
ダメージ = 《《【攻撃×乱数÷100-守備】×種族倍率1》×種族倍率2…》
であり、種族倍率を掛ける順番は植物特効→金食い攻撃
と結論付けます。
検証4:「金食い攻撃」「植物特効」「浮遊特効」印を合成し、パコレプキンでダメージを測定
検証3で「特効」印と「金食い攻撃」印の処理の関係は明らかになりました。
しかし、もしこれが、「特効」印と「特効」印の場合だったら?「金食い攻撃」印は「特効」印と同じ処理であると言い切れるのか?
一度でも疑問に思ってしまったら終わり。検証しなくては気が収まりません。というわけで「金食い攻撃」「植物特効」「浮遊特効」の3つの印を合成し、パコレプキンを攻撃することで「特効」印と「金食い攻撃」印の処理の違いについて検証します。
具体的には2つの説が考えられます。検証3と同様に計算式の形で説を示します。
①合計特効倍率 = 特効倍率1×特効倍率2
ダメージ = 《《【攻撃×乱数÷100-守備】×合計特効倍率》×金食い攻撃特効》
②ダメージ = 《《《【攻撃×乱数÷100-守備】×特効倍率1》×特効倍率2》×金食い攻撃特効》
①の説は金食い攻撃以外の特効倍率を予め掛けておく方法。②の説は都度都度倍率を掛け、切り捨て処理を行うという検証3の結論に沿う説です。言わずもがな私は②の説を推しています。
私の推しは置いとくとして、検証の方法を次に示します。
無特効武器(大隕鉄聖剣)に草刈りのカマと空の刃と金食い虫こん棒を合成する。過去の塔4~7Fでパコレプキン(守備12)を攻撃し、出たダメージを測定した。他の条件は以下の通り。
- Lv.23
- 武器:大隕鉄聖剣+5(つよさ:30)
- ちから:8
試行回数は104回。ちょっと少ないが、出現したダメージと出現回数の結果を次に示す。
ダメージ | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
出現回数 | 5 | 0 | 0 | 5 | 7 | 0 | 9 | 0 | 0 | 11 | 0 | 0 | 9 | 0 |
ダメージ | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | |
出現回数 | 19 | 0 | 10 | 0 | 4 | 0 | 0 | 8 | 0 | 12 | 0 | 0 | 5 |
ダメージが大きくなってくると飛び飛びになっている場所が増えてきましたね。試行回数が心もとないが、少なくとも検証時に出たダメージは計算でも出ていないと計算処理が合っていないことになる。それでは2つの説の計算結果を見てみよう。
乱数 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
① | 75 | 75 | 78 | 78 | 79 | 79 | 81 | 81 | 81 | 84 | 84 | 87 | 87 |
② | 75 | 75 | 76 | 76 | 78 | 78 | 81 | 81 | 81 | 83 | 83 | 85 | 85 |
乱数 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 |
① | 89 | 89 | 89 | 92 | 92 | 93 | 93 | 96 | 96 | 98 | 98 | 98 | 101 |
② | 88 | 88 | 88 | 91 | 91 | 93 | 93 | 96 | 96 | 97 | 97 | 97 | 101 |
どちらも最大と最小は同じだが、それぞれ出るダメージと出ないダメージが異なる。計測値で出たダメージのうち、②は79・84・87・89・98ダメージが計算によって出ていない。①は一見全て出ているように見えるが、91ダメージが計算で出ていないほか、計算で出ている92ダメージが実際には計測されていない。
さあ困りました。推しの説は愚か、考えた説すべてを潰されてしまいました。
しかし、①の説、予め特効の倍率のみをかけ合わせる説は結果からそう遠くもない計算が出ています。この節をもとに考えていけば結論に近づけるかもしれません。
こういうときは一度基本に立ち返ってみるに限ります。組長式の特効倍率のところを眺めてみましょう。
例えば、
1.30と3.10を適用する場合、[130×310÷100]÷100=4.03
1.30と1.30と3.10を適用する場合、[[130×130÷100]×310÷100]÷100=[169×310÷100]÷100=5.23
なにかおかしなところは…。ん?2番目の式、計算すると5.239になるけど、9が切り捨てられているぞ!?これはもしや。
ということで、合計特効倍率 = 1.35×1.35 = 1.8225 ≒ 1.82 として改めて①の説で計算してみましょう。結果は…
乱数 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
少数第2位まで | 75 | 75 | 78 | 78 | 79 | 79 | 81 | 81 | 81 | 84 | 84 | 87 | 89 |
乱数 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 |
少数第2位まで | 89 | 89 | 89 | 91 | 91 | 93 | 93 | 96 | 96 | 98 | 98 | 98 | 101 |
なんと計算値と実測値がピタリと一致しています。これで間違いなさそうです。
ちなみに、念のために合計特効倍率を金食い攻撃の倍率も含めて計算してみましたが、こちらは一致しませんでした。特効と金食いがバラバラに計算される、という説も間違いないようです。
というわけで検証4の結論に入ります。
特効n個のときのダメージ計算式は
合計特効倍率 = 《《135×135÷100》×135÷100》 (有効な特効の数だけかける、《》で切り捨て)
ダメージ = 《《【攻撃×乱数÷100-守備】×合計特効倍率》×金食い攻撃特効》
である。
まとめ
今回の記事は決定版なので、前回までの記事で分かったことも含めて結論をまとめます。
シレン→モンスターへのダメージ計算式は、
ダメージ = 《《【攻撃×乱数÷100-守備】×合計特効倍率》×金食い攻撃特効》
攻撃 = Lv攻撃+力攻撃+装備攻撃
レベル攻撃力 = LOG(レベル×0.4+1)×24-3
ちから攻撃力 = LOG([ちから÷2]-1.25)×LOG([ちから÷2]-1.25)×25 (ちから8以上)
ちから攻撃力 = LOG(2.7)×LOG(2.7)×ちから÷8×25 (ちから8未満)
装備攻撃力 = 強さ×0.585
守備=守備力÷2
合計特効倍率 = 《《《135×135÷100》×135÷100》÷100》(有効な特効の数だけかける、《》で切り捨て)
乱数 = 87~112 のうち一つ
金食い攻撃特効 = 1.30
※《切り捨て》【四捨五入】、記述がないものは少数のまま未処理で扱う。LOGは常用対数。
となります。
感想及び謝辞
最初は軽い気持ちで武器束ねの腕輪の検証をしてみようと思って始めたのですが、気がついたらダメ計の検証をやっており、思いの外ハードな検証になってしまいました。
記事内では割とサラッと流しているところでも、裏ではなぜこの結果になるのか分からない、ということが何度もありました。ここまで纏まった記事がかけたのは、半分奇跡のようなものという気がします。
こんなものが分かったところで、実際のプレイには大した影響がない、今自分がやっていることは無駄なんじゃないかと何度も諦め掛けましたが、私の報告を待っている人が1人でも居ると信じてここまで記事を書き切ることができました。
拙い文章でしたが、少しでも多くの人の参考になり、記事を楽しんでもらえることを期待しております。ここまで読んで頂きありがとうございました。
最後に、私の検証を手伝ってくれた方、一緒に考えてくれた方々を紹介して記事を終えたいと思います。
春木@7mmtwtff_njさん、小指が強い人@hp_prologさん、右近@ukonsakon03さん
大変お世話になりました。ありがとうございました。
(小指が強い人さんはシレン5のダメージ計算ツールを作っている方なのだ。便利なので使うのだ。KOYUBI)
それでは、よいシレンライフを。