一套技能数值设计的标准

本文主要提供一种技能强弱的分析方法,可以用于直观衡量技能的数值效果,并且能在出原型测试前调整技能的数值,保证测试的效率。

技能有效血量

对游戏中技能的各种逻辑进行降维,可以统一游戏技能的数值标准。技能有效血量可以成为这个标准,因为不管输出技能、控制技能、还是buff技能等最终都会使血量发生变化。技能逻辑与有效血量的转化,有利于维持游戏技能在数值方面的平衡,也方便复杂逻辑的技能数值调整。

明确一点,有效血量不只是面板显示的血量,还应该包括各种能够保证角色的生存时间的机制带来的血量加成,比如闪避、格挡等。这里定义技能有效血量是一个技能可以造成的血量增加或损失的期望血量数值。比如一个技能a为攻击对方单位一次,造成120%普通攻击的伤害,那么技能a的技能有效血量=1.2*普通攻击伤害。如果是技能是直接增加攻击属性值,则还需要引入战斗公式来计算技能的有效血量。

放开那三国

游戏中的武将天赋为下文中提到的技能。

以放开那三国为例,游戏的技能逻辑很多,详情可见excel表格。如此多技能逻辑在设定数值时如何在出版本前科学地规避不平衡的现象,具有研究的必要性。通过把各种复杂逻辑的数值转化成等价的有效血量期望,是一种比较好的方式。除了调整平衡外,这种转化方式还能直观比较各技能的强弱。

游戏战斗数值基本设定

普通伤害=我方攻击力-敌方防御力+我方最终伤害-敌方免伤

技能伤害=(我方攻击力-敌方防御力)*怒气技能系数+最终伤害-敌免伤

普通治疗=攻击力*115%+武魂增加治疗+被治疗武将增加的被治疗量

技能治疗=攻击力*85%+武魂增加治疗+被治疗武将增加的被治疗量

暴击伤害=普通伤害*1.5。如果有暴击天赋加成,暴击伤害增加,如张郃+7后实际暴击为1.9倍伤害;

格挡伤害=普通伤害*0.5。并对敌将进行反击,反击伤害为格挡方普通攻击的0.5倍

闪避:出现闪避时伤害为0,攻击方不积累怒气,期望值为攻击方概率减怒;

毒伤:15%-20%的攻击值固定伤害,持续两回合,伤害只与攻击有关,与其他属性无关,如果有武魂或天赋影响毒伤,则毒伤按数值增减;

灼伤:15%-20%的攻击值固定伤害,持续两回合,伤害只与攻击有关,与其他属性无关,如果有武魂或天赋影响灼伤,则灼伤按数值增减;

最终伤害:最终造成的伤害增加,但是对于有多次攻击的武将,如太史慈技能,每次攻击单独结算,即每次攻击都能享受加成效果;

最终免伤:最终造成的伤害减小,但是本身武将防御过高时,免伤效果不明显,当我方攻击力和敌方防御力相差不大时,伤害=攻击力*10%;此设定是为了处于保护机制,也能保证游戏在规定回合内结束(保证伤害/血量为定值即可)。

伤害增加=∑[(普通攻击*伤害加成百分数)+伤害加成数值]

怒伤增加=∑[(普通伤害*伤害加成百分数)+伤害加成数值]*怒气技能系数

技能逻辑的拆分

一个技能会有多个维度对技能有效血量产生影响,比如格挡,技能减少我方受到的伤害,也能增加我方的反击伤害,因此,需要对技能剥离,使剥离出的最小单位只能从一个维度影响技能有效血量。拆解后的技能逻辑可以在excel中看到,截图如下

攻击向

伤害加成

直接影响伤害的标签主要包括伤害数值加成、暴击率提升、暴击伤害提升、连击概率和几何目标5个标签;

设武将普通伤害为a,暴击率为b(b=10%),暴击率提升为c,暴击倍率提升百分数为d(游戏设定正常状态下暴击倍率为普通伤害的1.5倍),如果攻击目标为1个,且不考虑连击的情况,那么

原伤害期望EHP=a*(1-b)+1.5a*b=1.05a

现伤害期望EHP=a*[1-(b+c)]+(1.5+d)a*(b+c)=(1.05+0.1d+0.5c+dc)a

EHP期望加成=现伤害期望EHP-原伤害期望EHP=0.5ac+ad(b+c)=(0.1d+0.5c+dc)a

如果考虑几何关系f以及伤害加成g1(百分比)g2(数值),C为技能的其他触发条件,可以得出

EHP加成=a*[0.5c+(0.1+c)*d+g1]*f*C

EHP加成={a*[0.5c+(0.1+c)*d]+g2}*f*C

连击

连击是指有概率触发第二次攻击,设连击概率为e,连击触发时伤害倍率为E,考虑几何关系f,那么

原伤害期望EHP=a

有连击技能后的伤害期望EHP=a+a*e*E*f

伤害期望EHP加成=a*e*E*f

状态概率

状态概率包括破击、命中、封疗、抗能力剥夺和DOT伤害。

仅考虑出现普通攻击的情况,主要针对破击、命中、dot伤害、增怒、封疗和抗能力剥夺来考察有效血量的期望加成。

破击(单独讨论,牵涉到格挡减少的伤害以及格挡后反击造成的伤害,既包含了攻击向EHP,也包含了防御向EHP)。

命中

我方命中(命中提升百分数设为i)上升是指敌方的闪避率下降,当敌方出现闪避时,伤害为0,因此,我方命中上升导致敌方闪避减小,能躲避伤害的期望值减小,因此

原伤害EHP=a*初始命中率

现伤害EHP=a*(初始命中率+i)

命中影响伤害EHP加成=i*a

DOT类伤害加成

游戏设定DOT类伤害为普通攻击的15-20%(平均值取17.5%),持续回合数都为2,考虑几何关系f的情况下,设其出现的概率为j,因此DOT类伤害的等价期望值加成如下:

DOT类伤害影响EHP=a*0.175*持续回合数*j*f=0.35a*j*f

这里如果持续回合数不固定,还可以在每回合伤害量和持续回合数上做平衡,使dot类伤害更加多样化。

增怒气

游戏设置怒气值为4点时即可释放天赋技能,并且使用天赋技能会消耗所有怒气点(怒气点全部清0)。设增加怒气点为k,因此,增怒等价伤害的期望值与怒气技能系数以及怒气技能伤害有关,相同的增怒量用在不同的武将身上期望值可能不一样(需要考虑怒气技能系数),因此

增怒影响的EHP加成=怒气技能伤害*k/4

封疗

封疗(概率设为I):被具有该天赋的武将攻击的武将将无法被治疗,因此,封疗是通过控制敌方奶妈的治疗量从而达到“减小”敌方血量,如果仅考虑正常情况(即奶妈释放两次单体恢复之后释放一次群体恢复,单体恢复概率2/3,群体恢复概率1/3),则影响血量为

封疗影响EHP=(单体恢复量*2/3+群体恢复量*1/3*6)*I (f取6)

抗能力剥夺

现在只有3个抗能力剥夺技能,全部都在蜀国,抗剥夺的概率均为100%。即武将不受控制技能影响(包括麻痹、封技、混乱、封怒、眩晕和石化等),现在没有对这些状态进行细分、剥离,技能的机制有差异,并且要考虑实际敌方出现这些技能的概率,因此不能通过一个通用标签的值来计算等价期望。

防守向

防守类技能对血量的贡献期望包括自身血量的上升和受到伤害的减小两个方面,具体考察生命提升、伤害减免、状态控制和怒气降低四个方面。

生命提升

生命提升分为回复量提升以及生命上限提升。设回复量提升百分数为m,则

回复EHP=(普通恢复量*2/3+技能恢复量*1/3*6)

回复量提升后回复EHP=(普通恢复量*2/3+技能恢复量*1/3*6)*(1+m)

回复量提升影响EHP=(普通恢复量*2/3+技能恢复量*1/3*6)*m

生命上限提升为p,n为影响个体数量,则

生命上限提升影响EHP=∑[武将的最大生命值*p]*n,p为百分数

生命上限提升影响EHP=p*n,p为数值

伤害减免

伤害减免主要通过伤害数值减免、闪避、格挡(单独讨论)、抗暴击和抗暗杀(具有暗杀技能的武将一共只有5个)五个方面考察。五个方面都是独立存在的(如果是类似于暴击率提升和暴击伤害提升两个标签需要一起计算,不能分开),因此可以分开计算。

伤害减免

设我方受到的伤害(敌方伤害)为q,伤害数值减免为r

伤害数值减免影响EHP=q*r*C,r为百分数

伤害数值减免影响=(q-r)*C,r为数值

闪避

我方出现闪避时,伤害为0。因此闪避提升减小的降血量期望为

闪避影响EHP=q*闪避

抗暴击率

抗暴几率提升时,我方的被暴击率会降低,出现暴击时,伤害为普通攻击的1.5倍。设敌方暴击率为u,我方的抗暴几率为v,抗暴率提升为w

原抗暴击影响EHP=1.5*q*(u-v)+q*[1-(u-v)]

现抗暴击影响EHP=1.5*q*(u-v-w)+q*[1-(u-v-w)]

抗暴击影响EHP=原抗暴击影响EHP-现抗暴击影响EHP=0.5qw

抗暗杀

一共只有5个武将(12、13资武将一共86个)具有暗杀技能(攻击时有一定几率使目标中毒2回合),抗暗杀概率为x

抗暗杀影响EHP=敌DOT伤害影响EHP=0.175*回合数*q*x=0.35qx

状态概率

状态概率可以通过禁普攻和禁技能两个方面来考虑,设敌方技能伤害为Q,禁普攻概率为y,禁技能概率为z

能力剥夺概率提升使降血量减小的期望值=q*y+Q*z

减小敌方怒气时可以使敌方放怒气技能的时间延后,释放怒气技能需要4点怒气,设减小敌方怒气量为A

降低敌方怒气减小的降血量期望=Q*A/4

破击和格挡

破击和格挡中偏攻击向的主要包括我方破击造成的伤害和我方格挡反击的伤害,而防御向主要包括敌方格挡的反击伤害和我方格挡的伤害减免。 我方破击(概率为h)上升是指我方破防的概率增加,敌方的格挡率H下降,游戏设定出现格挡时,伤害为原伤害的0.5倍,同时还会进行反击(反击伤害为普通伤害的0.5倍),敌方普通伤害为q。

当我方出现格挡时,受到的伤害降低50%,我方出现格挡时会反击敌方(反击对象根据几何f判定,伤害为我方普通攻击的0.5倍)。设我方格挡的概率为s(s=5%),格挡率提升为t。

攻击向:

不考虑破击且敌方格挡时的伤害期望:

EHP_1=a*(1-H)+0.5a*H

考虑破击且敌方格挡时的伤害期望:

EHP_2=a*(1-H+h)+0.5a*(H-h)

我方格挡时反击伤害期望:

EHP_3=0.5a*s*f=0.025af

我方格挡提升后的反击伤害期望:

EHP_4=0.5a*(s+t)*f=(0.025+0.5t)*af

因此,破击和格挡下偏攻击向的期望有效血量:

EHP_5=EHP_2+EHP_4-EHP_1-EHP_3=0.5a*h+0.5a*t*f=0.5a(h+tf)

防御向: 不考虑破击,敌方格挡反击的伤害期望:

EHP_6=0.5q*H*f

考虑破击,敌方格挡反击的伤害期望:

EHP_7=0.5q*(H-h)*f

我方格挡影响的有效血量期望:

EHP_8=q*(1-s)+0.5q*s

我方格挡提升后影响的有效血量期望:

EHP_9=q*(1-s-t)+0.5q*(s+t)

因此,破击和格挡下偏防御向的期望有效血量:

EHP_10=EHP_6+EHP_8-EHP_7-EHP_9=0.5q*h*f+0.5q*t=0.5q(t+hf)

游戏内的实际技能整理

根据以上公式和技能的说明,对放开那三国所有天赋技能进行了数值往有效血量期望转化的计算,得出各天赋技能的有效血量期望加成(见excel表)。其中表中标红的技能是游戏中不存在的技能,这些技能都是加固定值(不是百分比)的技能,之后会对其进行解释。

  • 天赋技能的说明数值都是正比例成长,如下图所示

  • 为了计算出个别天赋技能的有效血量期望加成,需要做一些假设。比如天赋自毁2,死亡时对敌方单体造成100%伤害,这个伤害是一次性的,如果要把这个伤害转化成每回合的有效血量期望,必须先假设游戏的基本战斗回合数;天赋国色2,被男性攻击时,伤害减免加6%,这里计算时需要考虑到游戏中被男性攻击的概率,因此需要假设游戏中男女武将的比例等等。
  • 有很多特殊逻辑技能对有效血量期望加成计算难度大,需要考虑敌方技能的效果,牵扯的维度太多,甚至无法算出。比如张辽的无懈,自身永远不会被暴击,计算此天赋的有效血量期望需要考虑张辽是被谁攻击,因为被谁攻击的概率和暴击倍率都不确定;还有的技能概率没写明白,比如黄忠的爆裂2,有概率触发爆裂,下两次攻击必定暴击,概率没有写明白,因此无法计算有效血量期望加成。

而对游戏内所有品阶为紫(资质12或以上)的武将进行了天赋技能的有效血量的数值统计,发现还有如下问题:

  • 所有武将的第一次进阶加的属性都是固定值,之后的天赋解锁加的全是百分比。加成固定值还是百分遵循的是数值效果要明显越好的标准,前期在属性普遍不高的条件下,加成百分比的效果整体不如固定值的加成效果,而游戏后期属性数值都普遍增大之后,加固定值的效果会被逐渐稀释,为了使技能数值成长在后期效果明显,考虑了后期加百分比的形式。
  • 标红加粗的数值是有特殊逻辑的天赋技能,而只标红没有加粗的数值为有效血量期望加成大于35%(效果比较明显的天赋技能)的天赋技能;天赋技能数值标红(不管是否加粗)对应的武将即标红加粗,表示从天赋技能的效果来看,这些武将是比较好的。这里可以看到有个别比较强势的武将并没有标红,比如蜀国的马超,吴国的甘宁等,原因可能是这些武将在其他系统里,比如怒气技能效果等,表现强势(有待验证)。
  • 攻击向和防御向之间的技能平衡如何保证。截止现在,对于攻击向之间(或防御向之间)的技能比较容易保证他们之间的平衡,而如何保证一个攻击向和一个防御向的技能平衡?比如,一个攻击向技能A的“技能有效血量”为α,一个防御向技能B的“技能有效血量”为β,要保证技能技能A和技能B的平衡,是要保证A=B?还是A和B之间需要满足其他某种关系?(这里可以引发出战斗力计算的问题,也是攻击向和防御向属性的价值问题)

结论

这里使用放开那三国为例,实际是采用倒推的方式,用看到的技能数值倒推了每个技能的“技能有效血量”。设计起点应该是先设定“技能有效血量”的范围,比如:游戏中设定技能的“技能有效血量”(通俗一点也可以叫做技能的效果)为1.3-1.5倍普通伤害的血量范围,之后再把这个“技能有效血量”转化成丰富多样的技能逻辑数值。这个转化的公式一般需要结合战斗公式、各种技能的效果逻辑来确定,因此每个游戏的转化关系会有些许差异。但是只要遵循上述设计原则,就能够保证在技能设计的范围内是平衡的。

附件:放开那三国技能统计.xlsx

/var/www/html/data/pages/技能数值设计的方法.txt · 最后更改: 2016/05/12 08:05 由 dana
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5