[打印本页]
作者: lingxuanxiao 时间: 2017-01-27 13:36
标题: 两种不同输出策略下天策常规循环技能数分析与比较
本帖最后由 lingxuanxiao 于 2017-01-27 13:42 编辑
两种不同输出策略下天策常规循环技能数分析与比较
——基于计算机模拟的方法
私立万花大学杏林医学院卫生统计学教研室助理研究员 花千树
1. 引言
配装方案与循环手法一直是PVE学界,尤其是DPS面临的两大重要问题。面对同样的输出环境,个体的装备选择是否合理选择、循环是否恰当直接决定了其单位时间内输出的伤害量与治疗量。具体到天策这个门派,由于其循环基础技能(龙吟、战八方)的CD时长为7s,并不能化作任何一个公共CD的整数倍,也就是说,在完成常规技能循环的过程中,必然会产生一个问题:即7sCD技能将于少于一个公共CD的时间内完成冷却,此时究竟是应当停止动作等待该技能冷却完毕释放该技能还是应当及时利用起这段时间释放其他技能,由此衍生出了两种不同的输出方案。
有玩家通过对“浪费龙吟CD”,“等待龙吟CD需要的时间”的角度入手分析,认为在实战中,龙吟比例最高的加速段为二段加速(泠不挽,2016)。在其理论框架下,二段加速的最优选择似是应当等待龙吟的CD。而另有玩家通过对不停手输出方案的模拟,比较了虎贲奇穴下各种输出模型,认为此时的输出最优解是龙胆奇穴龙吟龙牙后触发虎贲的情况下,当身上没有风虎buff但是有2致伤的时候打灭后再打龙吟(galeocerdo,2016)。然而,目前并无明确证据对上述两种不同的输出策略进行比较。本文利用计算机模拟的方法,比较了上述两种不同输出策略下天策常规循环技能数的差异,为进一步完善天策的输出循环策略提供了部分证据。
2. 基于天策技能描述的技能模拟器制作
通常情况下,对一个给定的输出策略进行分析,我们可以找到它的最小正周期,分析一个单位周期内各个技能的技能数得出结论。但考虑到在多技能,所有技能的公共CD和技能本身CD存在不同的情况下,这样的最小正周期过于复杂,一个周期内需要分析的内容过多,因此我们采取了基于计算机模拟的方法完成对输出策略的分析,其中最主要的工作则是建立起可以对技能进行模拟统计的技能模拟器。
2.1 基本假设
本质上来讲,技能模拟器只是一个数学模型,在这个模型之中,某一个实体按照一定的假设变更它的状态,进而产生不同的输出结果。因此,讨论该模型的基本假设是有必要的。本模型基于以下的假设或结论:
- 剑三的时间单位是帧,每秒等价于16帧,且所有的时间判定以帧为单位
- 加速阈值理论,参见楚玄枫,泠落,南宫临风等人的研究
- 所有技能/奇穴按照其对应文字描述的方式生效
除此之外,出于简化研究对象的考虑,我们进一步进行如下约定:
- 不考虑网络延迟
- 不考虑甩枪(突)的损失以及牧云的收益(只考虑“纯循环收益”)
- 不考虑技能未命中,识破等导致的循环异常
- 输出对象为单体
2.2 技能循环模拟器的R语言实现
考虑上述基本假设,我们有必要在这部分简单说明我们技能循环模拟器采取的技能模型。首先,技能模拟器基于如下的奇穴:
[扬戈][神勇][徐如林][击水][出云][风虎][龙胆][卷旗][牧云][泾威][牙璋][虎贲]
进一步,因为核心考虑的是技能数量,因此我们忽略奇穴中对技能输出有加成的奇穴,只考虑影响技能循环的奇穴。进而我们对参与基本循环的技能有如下的认识:
- 龙吟:CD7s;触发GCD;使目标致残;使自身下三次技能伤害提高(风虎)
- 龙牙:无CD;触发GCD;消耗一层致残;刷新流血持续时间;有25%的概率刷新龙吟的CD;有30%的概率不消耗消耗致残
- 破风:无CD;触发GCD;叠加流血Dot(刷新持续时间)
- 穿云:无CD;触发GCD;叠加一层致伤
- 战八方:CD7s;触发GCD;叠加一层致伤;叠加破血Dot(刷新持续时间以及堆叠层数,破血最多三层)
- 灭:CD7s;触发GCD
除此之外,我们对两种循环策略有如下的设定:
* 不等待技能CD直接打出技能的情况:该循环参照galeocerdo(2016)提出的龙胆卡灭流,基础循环如下:
/cast [tnobuff:流血] 破风
/cast [tnobuff:破血|tbufftime:破血<3] 战八方
/cast 龙牙
/cast 龙吟
/cast 战八方
/cast [nobuff:风虎&tbuff:致伤=2] 灭
/cast 穿云
* 等待技能CD完毕再打出技能的情况:该循环核心是等待龙吟的CD,当其小于GCD的时候什么都不做,直到龙吟技能CD完毕,基础循环如下(其中GCDtime表示当前的公共CD剩余时间,CDtime表示当前技能CD剩余时间,cast none表示什么都不做):
/cast [GCDtime > CDtime] none
/cast [tnobuff:流血] 破风
/cast [tnobuff:破血|tbufftime:破血<3] 战八方
/cast 龙牙
/cast 龙吟
/cast 战八方
/cast 穿云
基于上述约定,我们给出了模拟的主函数Simulation(GCD, DOT, TIME, S),该函数接受四个传入参数:GCD, DOT, TIME, S。其中GCD表示技能公共CD,单位是帧,允许值为[19, 24]中的整数;DOT表示DOT技能生效时间间隔,单位是帧,允许值为[25, 32]中的整数;TIME表示模拟循环时间,单位是帧,允许值为正整数,但考虑到模拟时间不宜过短,因此建议使用较大的数值;S表示模拟次数,单位是次,允许值为正整数。该函数输出两种不同方案的多次模拟的技能数平均值,格式为4*8的矩阵,四行分别为:方案A无风虎;方案A有风虎;方案B无风虎;方案B有风虎。八列分别为:龙吟,龙牙,破风,穿云,战八方,灭,流血(Dot跳数),破血(Dot跳数,多层Dot每跳视为多个单层Dot同时跳)。Simulation函数源代码参见文末给出的项目地址中的Husky_Core.R文件。
3. 数值实验
3.1 实验设计与参数说明
进一步地,为了实际比较第一部分我们提出的两种不同的天策输出策略下的常规循环技能数。我们考虑了全部可能的加速组合带来的技能公共CD以及Dot生效间隔的减少,加速与公共CD、Dot生效间隔的关系依照加速阈值理论(楚玄枫,2013;泠落,2014;胖叔叔,n.d.),具体参数参见表1。
[attach]29360[/attach]
表1:加速等级换算表(时间单位:帧)
另外,考虑到实际战斗中可能面临不同的战斗时间,我们以半分钟为间隔,测评了从1min到10min中的战斗时间。为了避免一次实验中部分随机触发的奇穴效果对我们的技能统计产生影响,同时兼顾到计算平台的计算能力,针对每一种具体的时间-加速组合,我们重复模拟了1000次,最后结果输出的是这1000次结果的平均值。
另外,考虑到结果的易于解读性,我们对输出的不同技能结果进行了换算,即以期望技能伤害将其换算为某一个特定技能。为了简化计算,我们没有计算技能秘籍与除风虎外奇穴中附带的其他增加伤害的技能。此外,考虑到外功技能的基本模型是A+X%的武器攻击+k*Y的外功伤害,进一步考虑到A与Y差了两个数量级,本文只把X与Y分别计算,将X折合入梅花枪法,将k*Y折合入技能本身伤害。技能换算遵守如下参数(具体参照项目中的Husky_Ana&Plot.R文件):
[attach]29359[/attach]
表2:技能换算参数表
注:* 比较的是不同技能k值之比,所有技能计算的都是直接伤害,k值通过最小二乘法计算取得
** 流血和破血的技能换算系数取的是经验权重,数据来源于叶承平大战太原98级木桩之后的DPS统计,只计算了命中伤害平均值的比
*** 技能换算系数取的是经验权重,数据来源于叶承平大战太原98级木桩之后的DPS统计,只计算了命中伤害平均值的比
3.2 结果
基础的模拟结果(全技能模拟)参见项目中的Husky_Simu1000_Seed1234.csv文件。该文件给出了不同模拟时间下,不同公共CD与Dot生效间隔(单位:帧,下同),进行1000次模拟的平均技能数统计,风虎代表该技能是否受风虎影响,循环取A表示不等待技能CD,取B表示等待技能CD。使用表2中的技能参数对技能进行加权计算后的结果参见项目中的Husky_Aggregate.csv文件。该文件给出了不同模拟时间下,不同公共CD与Dot生效间隔,进行1000次模拟后的加权等效技能数,其中第4~12列是只计算风虎增益的等效技能,可靠性较高;第13~17列给出了等效技能总数,其中13、14两列是没有加权的计数,第15~17列按照表2给出的参数进行了加权;第18~22列给出了技能覆盖率,即单位时间(直接伤害技能为24帧,Dot类技能为32帧)内对应的等效技能数。进一步平均各种模拟时间下的输出表现的结果则参见项目中的Husky_show.csv文件。
最终,我们选取了两个不加权的技能覆盖率,四个等效技能覆盖率作为指标对结果进行分析和可视化展示,全部结果参见项目中的Husky.pdf文件,从左到右,从上到下依次为图1~图8。
[attach]29351[/attach][attach]29352[/attach][attach]29353[/attach][attach]29354[/attach][attach]29355[/attach][attach]29356[/attach][attach]29357[/attach][attach]29358[/attach]
图1、图2和图6给出的是无加权的平均技能数,横坐标是加速等级,纵坐标是平均技能数(图1)/平均Dot跳数(图2)/两种输出手法技能数比较(图4)。该指标主要反映的是某一个特定输出手法对时间的利用程度。单位时间内打出的技能越多,则表明该条件下该输出手法对时间的利用愈充分。从结果上看,直接技能方面,不论在各种加速水平下,不等待技能CD直接打出的方案对时间的利用总要比等待技能CD的方案要充分,并且,随着加速水平的提高,各输出方案的时间利用率都在上升,这是显然的。除此之外,我们还可以发现,与其他几段加速相比,二段加速,即加速等级在208~433(包括端点)之间的情况下,两种方案在时间利用率的差异最小。Dot跳数方面,在大多数加速水平下,等待技能CD的方案在利用Dot时间上要比不等待技能CD直接打出的方案来得更加充分,这可能是因为在不等待技能CD的情况下频繁刷新Dot的持续时间反而使得Dot没有办法生效。
图3、图4、图5和图7给出了加权之后的分类技能数,按照前述技能拆分,将伤害拆分为三个部分:附带武器伤害部分,外功伤害部分和Dot部分,分别用梅花枪法,穿云和流血为衡量标准。横坐标是加速等级,纵坐标是对应的标准技能。单位时间给出的技能越多,则表明该条件下该输出手法这部分对应的输出就越高。从结果上看,技能附带武器伤害以及技能外功伤害这两部分,除二段加速情况下,不等待技能CD直接打出的方案的表现要优于等待技能CD再打出的方案,二段加速下,技能外功伤害部分,等待技能CD的方案要略优于不等待技能CD直接打出的方案,这可能是因为虽然等待了一些时间让我们少打出了技能,但是提高了技能的质量,因此在技能外功伤害的部分,反而是等待技能CD的方案更加优秀。在Dot伤害方面,规律几乎与无加权的平均技能数相似,即在大多数加速水平下,等待技能CD的方案在Dot伤害上要比不等待技能CD直接打出的方案更高。
图8是将前述结果进一步加权,通过经验权重进一步将所有的技能都换算为梅花枪法,而后比较两种输出模式下单位时间(每24帧)的DPS差。从结果上看,在除二段加速外的其他加速情况下,不等待技能CD的方案要优于等待技能CD的方案。在二段加速情况下,等待技能CD的方案则要略优于不等待技能CD的方案。
3.3 讨论
从上述结论中,我们不难发现,前文所述泠不挽(2016)的观点有其合理性。从某种程度上说,二段加速的最优选择确实应当是停手,等待龙吟的CD冷却完毕后再进行新一轮输出循环。但是,注意到图8中我们给出的技能数之差,在二段加速的情况下,两方案每24帧等效梅花枪法技能数之差小于0.15,也即是说,实际上更换输出手法带来的DPS实际提升较为有限。另外,考虑到游戏中宏并不完美支持停手等待的功能,因此仍然建议以不等待技能CD直接输出的方案为主要输出方案。
在加速选择方面,本研究不期望给出一个科学合理的加速选择方案。但是,需要提醒读者注意的是,在零段加速和一段加速下,不等待技能CD直接输出的方案的输出要更高一些,而目前主流选择的二段加速情况下,反而是等待技能CD输出的方案表现更加优秀。当然,考虑到属性损失等因素,究竟哪一个加速段位是最优选择尚不可知,仍然需要研究者进一步对其进行分析。
另外,需要提醒读者注意的是,本文在对技能进行加权的过程中,选择了经验加权的方式,即通过游戏中实际采集到的数据对其进行加权。然而,注意到不同属性搭配的情况下各个技能的换算系数未必是稳定不变的,因此特别提醒读者注意要谨慎对待依赖加权得出的结论,我们的加权权重仅针对叶承平大战太原木桩该样本生效。另外需要提醒读者注意的是,出于方便的考虑,我们没有对技能附带的秘籍和伤害加成类奇穴进行考虑,这也会对结果产生一定的影响。
总体来说,计算机模拟方法提供给了我们面对复杂模型问题时的一种解决思路,可以在DPS的相关研究中提供给研究者一条便捷的道路。
4. 结论
本研究通过计算机模拟的方式比较等待技能CD和不等待技能CD两种输出策略下,全加速情况下的天策期望技能数。研究开发了天策常规技能循环模拟器,并以此为基础,结合部分游戏数据,形成了对该问题的初步结论,研究发现:
- 不同加速情况下,最优输出策略是不同的。
- 在二段加速情况下,等待技能CD的方案确实要优于不等待技能CD直接输出的方案;而在其他加速情况下,不等待技能CD直接输出的方案则要优于等待技能CD的方案。
- 综合考虑到输出手法的容易程度以及两种不同方案的理论DPS差异程度,仍然推荐以不等待CD直接输出的方案为主。
Acknowledgment
感谢千岛湖长歌音乐学院心理学系讲师苏西寂在作者完成本研究的过程中对作者无微不至的照顾以及对本文提出的宝贵意见。感谢东都天策骑兵学院学生叶承平给作者提供的测试数据。
Reference
项目地址
https://github.com/lingxuanxiao/JX3_Analysis.git
作者: 一海千辞 时间: 2017-01-28 23:58
厉害了 然而看不懂
作者: 虚空藏 时间: 2017-02-01 18:30
不管三七二十一,上去就是干!
作者: 临雨凌风 时间: 2017-02-02 18:54
66666666666666666666666666666666666666666厉害了我的生物统计学
作者: 绾婠的小长工 时间: 2017-02-08 18:19
所以呢?到底天策输出加速多少最好 0 还是1段还是2段还是4段呢
作者: 求求兽 时间: 2017-02-10 03:27
只想问一个问题,lz你的图是用gmt画的对吧
作者: ithilelda 时间: 2017-08-21 11:06
这B装得我给满分23333不过经验表明延迟和手速才是影响DPS的第一因素,再看LZ的研究结论发现手法差异如此之小,我觉得完全没必要纠结手法,这研究其实最大意义是给DPS计算器提供了一个模拟循环结果,计算器制作者直接用对应的技能数和技能比例就能算出来了,不用去估计。