跳慮跋考

興味も思考も行先不明

原神における攻撃力%の最適な振り方

会心率と会心ダメージボーナス(ゲーム内表記の「会心ダメージ」)の比率は1:2というのはよく知られているが、攻撃力との配分については「バランスよく」と言われるものの具体的な情報が見当たらなかったので、wikiの式を元にダメージ期待値を最大化する配分を計算した。

(2021/01/31 公式コミュニティの記事 F = a(1+xy)(1+z+b/a)の形で基礎攻撃力を括りだせば会心:会心率:攻撃=1:2:1.5をそのまま適用したりできるという話を見たが、確かにそうした方が簡単そうだ。)

要するに

  • 会心率50%、会心ダメージボーナス100%にできるまでは、会心率25%で残りを攻撃力%に振った方がよい
  • それ以降はおおよそ基礎攻撃力の1/10の%くらい攻撃力%に振るとよい(会心の1:2は前提として)

例えば基礎攻撃力800で会心率70%の場合、73%の攻撃力%が理想的(グラフや一番下の表を参照)。☆5砂で46.6%を得るとしても26%をサブ効果(または武器効果)で補う必要がある

f:id:quinoh:20201228034154p:plain
会心率に対する最適な攻撃力%

定義

  •  x : 会心率(初期値5%)
  •  y : 会心ダメージボーナス(初期値50%)
  •  z : 武器や聖遺物による攻撃力の割合上昇
  •  a : キャラと武器による基礎ATK
  •  b : 聖遺物による固定値ATK増加
  •  F(x,y,z) : ダメージ期待値の x,y,zが関わる部分
  •  C(x,y,z) :  x,y,zの育成コスト

以上の変数・定数によって非会心ダメージは (a(1+z)+b)に比例し(天賦、敵防御、敵耐性は武器・聖遺物のステ振りと独立であり、また杯は基本的に属性ダメージバフへ振った方が良いので考えない)、会心ダメージはこれが (1+y)(a(1+z)+b)となるから、ダメージ期待値は

 F(x,y,z) = (1-x)(a(1+z)+b) + x(1+y)(a(1+z)+b)

 \hspace{40pt} = (1+xy)(a(1+z)+b)

に比例する。

育成コスト

聖遺物のメイン効果は会心 xが最大31.1%に対して、会心ダメージボーナス yは最大62.2%、攻撃力 zは最大46.6%となっている。 つまり同じ育成コストに対して x:y:z = 1:2:1.5の割合で上昇し、この割合はサブ効果でも同様になっている。

逆に y 1会心ダメージボーナスの100%)当たりの育成コストを 1とすると、 xのコストは 2 zのコストは \frac{2}{1.5} = \frac{4}{3}となる。

この会心ダメージボーナスに換算した育成コストを C(x,y,z)とすると、

 C(x,y,z) = 2(x-0.05) + (y-0.5) + \frac{4}{3} z

 \hspace{40pt} = 2x + y + \frac{4}{3} z - 0.6

となる。0.05と0.5はキャラが初めから持っている会心率と会心ダメージボーナスなので、コストに含めない。

計算の都合上 C' = C+0.6 = 2x + y + \frac{4}{3} zを定義しておく。

会心率と会心ダメージボーナス

まず zを無視して考える。

この時 C = 2x + y - 0.6から y = C-2x+0.6 = C'-2xで、

 F = (1+xy)(a+(1+z)+b)

 1+xyのみ考えればよい。

 1+xy = 1 + x(C'-2x)

 \hspace{30pt} = -2x^{2} + C'x + 1

 \hspace{30pt} = -2(x - \frac{C'}{4})^{2} + \frac{C'^2}{8} + 1

これは xについて上に凸の二次関数なので、 x = \frac{C'}{4}で最大となり y = C' - 2x = \frac{C'}{2}

つまり x:y = \frac{C'}{4} : \frac{C'}{2} = 1:2の時ダメージ期待値が最大となる。

攻撃力と会心

 zも考慮する。

会心については常に理想比 x:y = 1:2にするとすると、 y=2xであり C'=4x+\frac{4}{3} z から z = \frac{3}{4} (C' - 4x)となる。 y = 2x \ge 0.50より x \ge 0.25である必要がある(会心率を25%までは上げるものとする)。

 Fについて zを削除し xについて整理すると

 F = (1+xy)(a(1+z)+b)

 \hspace{10pt} = (1+x\cdot 2x)\left(a\left(1+\frac{3}{4} (C' - 4x)\right)+b\right)

 \hspace{10pt} = (1+2x^{2})\left(-3ax+\frac{3}{4} aC'+a+b\right)

 \hspace{10pt} = 2x^{2} \left(-3ax+\frac{3}{4} aC'+a+b\right) -3ax+\frac{3}{4} aC'+a+b

 \hspace{10pt} = -6ax^{3} + 2 \left( \frac{3}{4} aC'+a+b \right) x^{2} -3ax+\frac{3}{4} aC'+a+b

極大値を取る会心

 xについて最大値を求めたい。まず微分すると

 \frac{dF}{dx} = -18ax^{2} + 4 \left( \frac{3}{4} aC'+a+b \right) x -3a

 \hspace{15pt} = -18ax^{2} + ( 3aC'+4a+4b ) x -3a

 \frac{dF}{dx} = 0なる xが存在する為には ( 3aC'+4a+4b )^{2} - 4 (-18a) (-3a) \ge 0が必要十分となる(判別式)。

 ( 3aC'+4a+4b )^{2} - 4 (-18a) (-3a) \ge 0

 ( 3aC'+4a+4b )^{2} \ge 3 \cdot 4 \cdot 18 a^{2}

 |3aC'+4a+4b| \ge 6 \sqrt{6} |a|

 a,b,C'全て正なので

 3aC'+4a+4b \ge 6 \sqrt{6} a

 C' \ge 2 \sqrt{6} - \frac{4}{3} \left( 1 + \frac{b}{a} \right)

特に C' > 2 \sqrt{6} - \frac{4}{3} \left( 1 + \frac{b}{a} \right) であれば F極値を持つ。その具体的な xを求めると

 \frac{dF}{dx} = 0

 -18ax^{2} + ( 3aC'+4a+4b ) x -3a = 0

 x = \frac{1}{-2 \cdot 18a} \left( -( 3aC'+4a+4b ) \pm \sqrt{ ( 3aC'+4a+4b )^{2} - 3 \cdot 4 \cdot 18 a^{2} } \right)

 \hspace{10pt} = \frac{1}{12} C' + \frac{1}{9} \left( 1+\frac{b}{a} \right) \pm \sqrt{ \frac{ ( 3aC'+4a+4b )^{2} - 3 \cdot 4 \cdot 18 a^{2} }{ 2^{2} \cdot 18^{2} a^{2} } }

 \hspace{10pt} = \frac{1}{12} C' + \frac{1}{9} \left( 1+\frac{b}{a} \right) \pm \sqrt{ \left( \frac{1}{12} C' + \frac{1}{9} \left( 1+\frac{b}{a} \right) \right)^{2} - \frac{ 1 }{ 6 } }

ここで k = \frac{1}{12} C' + \frac{1}{9} \left( 1+\frac{b}{a} \right) とすると、

 x = k \pm \sqrt{ k^{2} - \frac{ 1 }{ 6 } }

 \frac{dF}{dx} は上に凸なので、 Fは複号が +の場合に極大となる。この x x_Mとする。

 x_M = k + \sqrt{ k^{2} - \frac{ 1 }{ 6 } }

最大値となる条件

 x \ge 0.25なので F(x=x_M) > F(x=0.25)であれば x_M Fが最大となる。(そうでなければ25%以上会心率を上げる必要がない。)

まず k Fを書き直すと

 F = -6ax^{3} + 18akx^{2} - 3ax + 9ak

なので

 F(x=x_M) > F(x=0.25)

 -6ax_M^{3} + 18akx_M^{2} - 3ax_M + 9ak > -6a \cdot \frac{1}{4^{3}} + 18ak \cdot \frac{1}{4^{2}} - 3a \cdot \frac{1}{4} + 9ak

 -6ax_M^{3} + 18akx_M^{2} - 3ax_M > - \frac{6}{4^{3}} a + \frac{18}{4^{2}} ak - \frac{3}{4} a

 x_M^{3} - 3kx_M^{2} + \frac{1}{2} x_M - \frac{1}{4^{3}} + \frac{3}{4^{2}} k - \frac{1}{8} \lt 0

 x_M^{3} - 3kx_M^{2} + \frac{1}{2} x_M + \frac{3}{16} k - \frac{9}{64} \lt 0

 x_M = \frac{1}{4}ならば F(x=x_M) = F(x=0.25)だから、これは左辺の零点であって左辺は x_M - \frac{1}{4} で割り切れる(因数定理)。

 \left( x_M - \frac{1}{4} \right) \left( x_M^{2} + \left( -3k + \frac{1}{4} \right) x_M - \frac{3}{4} k + \frac{9}{16} \right) \lt 0

特に x_M - \frac{1}{4} \ge 0 より

 x_M^{2} + \left( -3k + \frac{1}{4} \right) x_M - \frac{3}{4} k + \frac{9}{16} \lt 0

ここで x_M = k + \sqrt{ k^{2} - \frac{ 1 }{ 6 } } を思い出すと

 \left( k + \sqrt{ k^{2} - \frac{ 1 }{ 6 } } \right)^{2} + \left( -3k + \frac{1}{4} \right) \left( k + \sqrt{ k^{2} - \frac{ 1 }{ 6 } } \right) - \frac{3}{4} k + \frac{9}{16} \lt 0

 k^{2} + 2 k \sqrt{ k^{2} - \frac{ 1 }{ 6 } } + k^{2} - \frac{ 1 }{ 6 } -3k \left( k + \sqrt{ k^{2} - \frac{ 1 }{ 6 } } \right) + \frac{1}{4} \left( k + \sqrt{ k^{2} - \frac{ 1 }{ 6 } } \right) - \frac{3}{4} k + \frac{9}{16} \lt 0

 2k^{2} + 2 k \sqrt{ k^{2} - \frac{ 1 }{ 6 } } - \frac{ 1 }{ 6 } -3k^{2} - 3k \sqrt{ k^{2} - \frac{ 1 }{ 6 } } + \frac{1}{4} k + \frac{1}{4} \sqrt{ k^{2} - \frac{ 1 }{ 6 } } - \frac{3}{4} k + \frac{9}{16} \lt 0

 -k^{2} - \frac{1}{2} k + \left( -k + \frac{1}{4} \right) \sqrt{ k^{2} - \frac{ 1 }{ 6 } } - \frac{ 1 }{ 6 } + \frac{9}{16} \lt 0

 k^{2} + \frac{1}{2} k - \frac{ 19 }{ 48 } > \left( -k + \frac{1}{4} \right) \sqrt{ k^{2} - \frac{ 1 }{ 6 } } *1

符号の場合分けが面倒なのでWolframAlphaに任せると

 k > \frac{5}{12}

となる。この時

 x_M > \frac{5}{12} + \sqrt{ \left( \frac{5}{12} \right)^{2} - \frac{1}{6} } = \frac{5}{12} + \sqrt{ \frac{25 - 24}{12^{2}} } = \frac{5+1}{12} = \frac{1}{2}

つまり会心率50%超の場合に限り、25%だけ振って(理想比で最低限)後を攻撃力の割合上昇に全振りするよりもダメージ期待値が高くなる

(更に言えば数字を見ていると、使える育成コストが低い場合完全に攻撃力%全振りの方が強そうだ。)

対応する攻撃力%

 x=x_Mの時の z z_Mとすると

 z_M = \frac{3}{4} (C' - 4x_M) = \frac{3}{4} C' - 3 x_M

 k = \frac{1}{12} C' + \frac{1}{9} \left( 1+\frac{b}{a} \right) であったから C' = 12k - \frac{4}{3} \left( 1+\frac{b}{a} \right) より

 z_M = 9 k - \left( 1+\frac{b}{a} \right) - 3 x_M

ここで x_M = k + \sqrt{ k^{2} - \frac{ 1 }{ 6 } } であったから

 (x_M - k)^{2} = k^{2} - \frac{1}{6}

 x_M^{2} - 2x_M k + k^{2} = k^{2} - \frac{1}{6}

 2x_M k = x_M^{2} + \frac{1}{6}

 k = \frac{x_M}{2} + \frac{1}{12 x_M}

これを代入して

 z_M = \frac{9}{2} x_M + \frac{3}{4 x_M} - \left( 1+\frac{b}{a} \right) - 3 x_M

 \hspace{15pt} = \frac{3}{2} x_M + \frac{3}{4 x_M} - \left( 1+\frac{b}{a} \right)

計算例

以下の値で考える。

  • 基礎攻撃力 a=700(例えばLv80モナにLv80流浪楽章を装備すると702となる)
  • 固定値攻撃力増加 b=311(羽のメイン効果のみ考慮)
会心 攻撃力% 表示攻撃力
50.0% 80.6% 1575
60.0% 70.6% 1505
70.0% 67.7% 1485
80.0% 69.3% 1496
90.0% 73.9% 1528
100.0% 80.6% 1575

もう少し基礎攻撃力の高い場合。

  • 基礎攻撃力 a=800(例えばLv80ディルックにLv80古華や旧貴族を装備すると793となる)
  • 固定値攻撃力増加 b=311
会心 攻撃力% 表示攻撃力
50.0% 86.1% 1800
60.0% 76.1% 1720
70.0% 73.3% 1697
80.0% 74.9% 1710
90.0% 79.5% 1747
100.0% 86.1% 1800

総じて、基礎攻撃力の1/10前後の%だけ攻撃力%に振ると効率が良いようだ。また会心率70%以降で徐々に攻撃力%が上昇するのは「バランスよく」という言葉を裏付けている。

逆にこの程度の基礎攻撃力であれば、表示攻撃力を2000以上にするのは振り過ぎでもっと会心に振るべきだと言える。

*1:2021/01/06 ここの式がかなり間違っていたのを修正。WolframAlphaへの入力は合っていたので結果には影響しない。