伤害优先级及计算法则

详细内容请查看伤害 2.0,本文仅是对于伤害2.0的一个理解角度,为愿意了解伤害2.0的萌新提供一个切入点。此外若有理解错误欢迎指出。本篇文章旨在针对伤害 2.0一词条进行解释与分析,此外由于伤害2.0中有许多公式出处不明,我也以公式为核心进行了推导与说明。本文以伤害2.0词条为切入点和核心对其中的公式和内容进行展开分析。​

武器伤害的计算主要分为三部分:

  • 元素伤害的单独计算并彼此独立
  • 各项元素伤害结合各项加成(暴击、爆头、属性克制、金首发等等)减成(龙钥、护甲减伤)分别计算各自的分伤害
  • 各项分伤害加和得到总实际伤害
如果不懂的话我再详细解释一下,你在上了一大堆的伤害Mod和元素Mod后是不是面板上有许多伤害属性?冲击穿刺切割火焰毒素电击balabala,这些伤害需要单独提取出来独自分析情况,包括暴击、爆头这些。但是为什么大家普遍认知是暴击爆头金首发是总伤害加成?其实也是很简单的道理,下面会有提及。

所以说,下面的内容针对一把武器中的一项伤害属性单独分析。

伤害2.0的主要思路是以这个公式公式为核心展开的:

伤害系数 = 1 + 克制修正系数
实际造成伤害 = 基础伤害 × 伤害系数
  • 伤害系数(Damage Modifier,DM),伤害系数,即面板伤害与实际伤害的倍率关系。

但是重点在于这个公式是针对无护甲敌人以及无其他元素伤害和伤害加成的情况下列出的,不过我们可以把护甲减伤、暴击等加成融入所谓“伤害系数”中再把所谓“基础伤害”推广到各项伤害属性得到以下广义公式:

实际造成分伤害 = 单项伤害数值 × 伤害系数
实际造成总伤害 = 各项分伤害之和

要注意的是这里的伤害系数已经不是单纯的1+克制修正系数的算法了,因为各项伤害加成单独使用“单位1”所以按照伤害 2.0中广义公式的连乘进行计算,下面也会有所提及。

护甲减伤

铁制装甲
Impact b.svg 冲击
Puncture b.svg 穿刺 +50%
Slash b.svg 切割 -15%
Cold b.png 冰冻
Electricity b.png 电击
Heat b.png 火焰
Toxin b.png 毒素 +25%
Blast b.png 爆炸 -25%
Corrosive b.png 腐蚀 +75%
Gas b.png 毒气
Magnetic b.png 磁力
Radiation b.png 辐射
Viral b.png 病毒
TrueDmg b.png 真实
VoidTearIcon b.png 虚空
合金装甲
Impact b.svg 冲击
Puncture b.svg 穿刺 +15%
Slash b.svg 切割 -50%
Cold b.png 冰冻 +25%
Electricity b.png 电击 -50%
Heat b.png 火焰
Toxin b.png 毒素
Blast b.png 爆炸
Corrosive b.png 腐蚀
Gas b.png 毒气
Magnetic b.png 磁力 -50%
Radiation b.png 辐射 +75%
Viral b.png 病毒
TrueDmg b.png 真实
VoidTearIcon b.png 虚空

最首先得首先,我必须先放一个针对护甲的伤害克制表(关于克制关系的知识详见博客:配装思路),这个表格对于接下来的计算有很重要的关系(见右侧)

针对拥有护甲的敌人,遵从两个公式:

特殊元素对于护甲的无视效果

总护甲 = 护甲 × (1 − 护甲类型倍率)

为了下面的式子方便理解我再列一个未汉化版本的

总护甲 = AR × (1 − AM)

其中第一个式子中的护甲(AR)我们可以理解为经过各项buff后的有效护甲值,护甲类型倍率(AM)指的是这个伤害属性对于护甲值的克制系数。举例来讲就是计算腐蚀对于铁质护甲的元素伤害时,会自动无视掉75%的护甲减伤,而爆炸则会额外多计算25%的护甲减伤。

注意:这里没讲到元素对于护甲的克制关系,也就是说,腐蚀在针对铁质护甲会首先无视掉75%的伤害减免,然后再额外获得75%的伤害克制加成,从而获得两次加成。(但是第一次是通过无视一部分护甲减伤实现的,因此和第二次的收益并不相等)

有效护甲值的减伤公式

伤害削减 = 1 −  300
300 + 总护甲

这个式子描述的是有效护甲值(式子中写作“总护甲”)对于伤害的减免百分比

由于是百分比我们就可以进一步剖析一下结构

  • 1指的是来源伤害的100%
  • 300/(300+总护甲)指的则是经过护甲减伤后,剩下来的实际对生命值造成伤害那部分的百分比,即护甲的未减免百分比

用公式表达护甲的未减免百分比并将上述的总护甲公式代入就是:

护甲的未减免百分比 = 300
300 + AR× (1−AM)

狭义公式

伤害 2.0中给出了针对有护甲单位、不计其他伤害加成的狭义公式

伤害系数公式,只考虑了生命伤害系数和护甲伤害系数。
  • DM:伤害系数
  • HM:伤害对生命类型的克制系数
  • AM:伤害对护甲类型的克制系数
  • AR:这里指计算腐蚀投射、惊骇等Debuff的最终护甲值
    • AR*(1-AM):实际有效护甲值,若无克制关系则AM=0——AR*(1-AM)=AR

这个公式看着略显陌生,但是如果我们上下同乘300的话就会得到这个式子:

Dm armor-2.jpg

这个公式可以分成两部分相乘:

  • 护甲的未减免百分比,即伤害系数中经过护甲减伤减少后剩余的那部分伤害
  • (1+HM)*(1+AM),即伤害系数中经过属性克制增加的那部分伤害

值得注意的是这两部分中都分别出现了一次”AM“,也就是为什么腐蚀、辐射这类克制护甲的伤害会收到两次加成的原因——一次是无视一部分护甲,一次是提高一部分伤害

注:原伤害2.0中这个公式下面还提了一大堆计算错误的举例,指的是在考虑护甲减伤(即上文所给狭义公式)和只考虑克制关系(即只考虑(1+HM)*(1+AM))两种情况下的伤害误差,没必要过于深究。

克制护甲的元素的相对收益

维基给出的最终式子
我和Hl大佬得到的原始公式

特别感谢Honestleaf大佬的协助qwq没有大佬的帮助我就得不出这个结论,我自己一个人都反推了一个多小时写了两片演草纸

针对伤害2.0这部分的内容,在Honestleaf大佬的正推和我本人的反推下得出了相同的结果——

这个公式是上述狭义公式在AM≠0和AM=0的比值减一得到的收益。

目的是为了计算考虑元素对护甲的克制关系和无视效果的情况下相对于不考虑的情况下的收益。

维基之所以要给出第一个推导式是为了得出下文:”前面提到的收益会随着护甲值上升而不断提高。而实际上,当护甲系数(AM)小于1的时候(除真实伤害之外的所有伤害类型都属于这种情况(注:真实伤害只能定性地认为是无视护甲而不能看作AM=1,因为AM=1时不仅伤害类型无视护甲而且还有+100%的克制关系))这个收益值会在护甲值趋近无穷大的过程中,朝某个极限值收敛。即当护甲值趋于无穷大的时候,某种伤害的相对伤害加成,趋于一个极限值。“的结论。

在AM不变时,根据第一个式子,AR越大,所得到的benAM就越大,并逐渐趋向于一个极值。

即:在300/AR这个项中AR趋近于无穷时,得到的收益极值:

当护甲值趋近无穷大时收益的极限值。

由于游戏中的AM数值是固定且有限的,所以维基也列出了相对收益的极值表:

AM +0.75 +0.5 +0.25 +0.15 -0.15 -0.25 -0.5
分数形式的极值 +6 +2 +2/3 +6/17 -6/23 -2/5 -2/3
百分比形式的极值 +600% +200% +66.67% +35.29% -26.09% -40% -66.67%

例如,在护甲趋近于无穷大时,辐射伤害对于合金装甲的相对收益高达+600%

广义公式

狭义公式中DM的伤害加成部分仅包括了(1+HM)*(1+AM)即伤害克制部分,将这部分推广到广泛地伤害加成就有了广义公式:

广义伤害系数公式,考虑了更多伤害加成系数

同样地,这个公式可以分成两部分相乘:

  • 护甲的未减免百分比,即伤害系数中经过护甲减伤减少后剩余的那部分伤害
  • 连乘部分,代表的是其他各种伤害系数。它可以是暴击系数(指的是暴击对伤害的加成的平均值,由几率 × 倍率得出),偷袭伤害加成(仅限于对普通攻击的加成,有特殊动作的偷袭攻击造成的是真实伤害,而真实伤害会无视护甲),敌人身体部位伤害系数,战甲技能加成(如分子填充战吼声纳黯然失色),阵营伤害系数(如灭亡堕落者灭亡Corpus)。大写π符号(Π)表示的是连乘,是(1 + M1) × (1 + M2) × ... .的简写。——伤害2.0原文

换句话说,在广义公式下,分伤害的计算分为三部分:伤害数值*护甲减伤*伤害加成(这里的伤害加成包括了伤害克制的部分)

也就是从我个人对于伤害2.0的理解角度,在不考虑敌人护甲只考虑武器本身的情况下,算法优先级仅包括数值本身(基伤或者通过基伤表现出来的元素伤)和加成两部分,无论是金首发也好、暴击也罢、亦或者爆头、元素克制等等,这些都属于同级加成,按照(1+Mi)连乘的方式叠加。基伤部分加算(膛线、多重等),加成部分按照上述法则独立连乘计算。

边际效益

由于伤害加成的连乘算法,也会产生相应的边际效益(其他投入固定不变时,连续地增加某一种投入,所新增的产出或收益反而会逐渐减少。也就是说,当增加的投入超过某一水平之后,新增的每一个单位投入换来的产出量会下降。)所以相应的,想要最大化收益请多方面增强伤害,而非针对一个方面(例如典型的拼命只堆暴击)提高伤害。

总伤害

在开头我便已经说过这些伤害都是各项属性单独计算最后直接加和得到实际总伤害,那么所谓的总伤加成是如何得到的?

实际情况上,每个独立的的伤害属性单独计算暴击、克制、爆头、护甲情况等等一系列加成然后再加和直接得到总实际伤害,但是在实战分析的时候,因为暴击和爆头这类对于每个多项式都是相同的系数,所以乘法分配律提出来成为了一个总系数,然后就变成了人们所普遍认知的总伤害加成。

注:这里的思路仍然是针对伤害 2.0的一种思考角度,你同样也可以简单粗暴直白地理解为所谓的”总伤害加成“,本篇文章旨在针对伤害 2.0一词条进行解释与分析。

avatar
Smile slime 47
Let us go then, you and I

When the Eleven-Day Empire eats the sky Like a humanoid melting like clams upon the breakfast table.

Smile slime 47的更多文章

Smile slime 47/阿塔克斯配装
  5     0
Smile slime 47/Equinox配装
  4     13
Smile slime 47/翠雀配装
  0     3
原创作品,未经授权禁止转载
5.0
2人评价
avatar
D
Div2009
0

伤害2.0应该没有错误的举例了吧?我记得已经修正了很多了

9个月
avatar
1
除了加法有边际效益,乘法也有,假设5种加成,它们之间全部相互乘算,加成总值一共1000%
如果只投入一种加成1000%,就有10倍的收益
如果给四种投入100%,剩下一种投入600%,就有112倍的收益
(第一二种的对比就是加法的边际效应体现)
如果给五种投入200%,就有243倍的收益
(第二三种的对比就是乘法的边际效益提现)
当然,这些是简单状况下的对比,实际情况远远更加复杂
比如多次计算的增幅(牛吼,歧视)
比如在有限的加成条件和数值里营造最大化效果,或者结合个人喜好的相对大的效果(伤害速度范围手感)
比如特定增幅条件带来的其他收益叠加或者收益覆盖(多次腐蚀触发,多次病毒触发)
1年
avatar
Pa001024
0

嘤嘤嘤

1年
avatar
Smile slime 47
0

哭唧唧

1年
0

回复@Smile_slime_47:什么鬼

1年
avatar
0

酷!

1年
avatar
Smile slime 47
0

Qoo!

1年