写在前面
SimC,广泛地说——DPS模拟器,是进行DPS研究的基础设施,并不是设计给普通大众玩家使用的。
它是一个平台,一个工具,可以与各种各样的专业程序相连接,共同发挥强大威力。熟练的研究者可以利用它解决DPS中可能遇到的几乎所有的问题。
而对于普通人来说,没有必要去掌握那么多技巧,只要了解一些基本的使用即可。
部署
SimC支持的操作系统:Windows 7或更高版本,Mac OS X 10.6或更高版本。Linux用户需要自行编译。
SimC已经暂时地(可能会永久地)抛弃了对Windows XP的支持。Windows XP用户仍然可以使用CLI界面,但无法使用GUI图形界面。
SimC源码库位于GoogleCode,使用Git进行版本控制。研究者请访问[http://code.google.com/p/simulationcraft/]。
在这里下载SimC的预编译版本:[http://www.simulationcraft.org/download.html]
“self-extracting zip”或“installer”是没有差别的。依据你的系统选择Windows 32bit或Windows 64bit。
如果不清楚是32bit还是64bit,就选择32bit。
调出简体中文语言的方法:
5.4末期我曾经在NGA提供的汉化版,现已加入官方版本之中,汉化工作现在由llxibo维护。
解压后,运行GUI界面程序“SimulationCraft.exe”(64位版本为SimulationCraft64.exe)。
进入Options->Globals,将GUI Localization改为“zh”,然后关闭程序重新启动,界面将变为简体中文。
导入
战网
在你设置了选项中的“英雄榜地区”为CN之后,导入页面中战网子页会显示出国服官网。使用这个内置浏览器找到你要模拟的人物英雄榜。
点击右下角的“导入!”按钮就可以导入角色。
如果你已经在外部浏览器中打开了英雄榜,可以直接将链接复制到下面的地址栏中,然后点“导入!”。SimC在导入时依据的是下方的地址栏的内容,而和内置浏览器没什么关系。
预设档案
SimC开发组为每一个级别的毕业水准制作了预设档案。包括B(完全毕业下已知的最优配装)、M(史诗级别)、H(英雄级别)、N(普通级别)、P(5H630级别)。
对于战士来说,Arms是武器战,Fury_1H是一心狂暴,Fury_2H是泰坦狂暴,Gladiator是角斗战,Protection是防战。
另外,Warrior_T17M.simc档案是将T17M级别所有专精的战士进行横向比较,Warrior_T17N.simc档案是将T17N级别所有专精的战士进行横向比较。
历史
导入过角色之后,这里会有历史记录,方便你未来反复导入同一角色。
选项
全局
基本选项:
英雄榜地区:包括us-美服 eu-欧服 tw-台服 kr-韩服 cn-国服。只影响切换到导入界面时自动打开的URL,并不会对模拟本身造成影响。
英雄榜天赋:从英雄榜导入角色时,active表示导入当前天赋,inactive表示导入备用天赋。当你下线时忘记切换天赋时使用。
版本:模拟版本,Live表示正式服,PTR表示测试服。一般选择Live。
目标误差:新选项。以目标误差范围代替固定的迭代数,控制模拟的计算次数。选择的数值越小,结论越精确,相应的计算消耗时间越长。
在你的忍受范围内,选择得越小越好。
迭代数:迭代越多误差越小,同时也增加运算时间。在你的忍受范围内,越大越好。
下面是对迭代数的建议值:
100当你对数字完全不感兴趣时使用。
1000粗略的DPS模拟。
10000与其他结果进行DPS对比时使用。
25000计算属性权值时使用。
50000需要严谨的、指导性的结论时使用。
更多如果你有的是耐心。
战斗时长(秒):对战斗时长没有特殊要求时,通常按国际惯例选择450。
搭配时长浮动范围使用。
时长浮动范围:战斗时长的浮动范围,如果选择0%,则表示固定为所设时长;如果选择20%,则表示时长在±20%范围内浮动。
需要固定时间时,选择0%。否则通常选择20%。
战斗模式:通常选择Patchwerk(帕奇维克),不建议更改。
挑战模式:通常选择Disabled,如果需要模拟地下城挑战模式(压缩至630装等),选择Enabled。
玩家水平:请选择Elite,不建议更改。SimC的Elite水平比你想象的要差,Ouch水平比你想象的要好。
默认职责:可选伤害输出、坦克或治疗。通常选择auto。
重设所有选项:当你误操作设置了一个不该设置的选项,而又忘记原先的设置时,使用这个按钮重置。
目标和坦克选项:
敌人数量:目标的数量,1为单体。
这里设置的目标都具有相同的属性,但并不共享生命值和减益效果。SimC认为所有的目标都重叠在一个点上。
目标等级:目标的级别,一般设置为Raid Boss(团队副本首领级)。
PVP爆击伤害降低:模拟PVP环境下较低的暴击伤害加成,只用于研究PVP环境时。选择Disabled。
目标种族:目标的分类,默认设置为Humanoid(人型生物),有特殊需要时设置。
目标类型:模拟坦克的选项。模拟DPS时不需要设置,模拟坦克时一般选择TMI Standard Boss(TMI标准首领模型)。
坦克假人:模拟坦克的选项。如果上面选择Tank Dummy,这里可以设置坦克假人的级别。级别决定了目标对你造成的伤害高低。
TMI标准首领模型:模拟坦克的选项。如果上面选择TMI Standard Boss,这里可以设置首领模型的级别。级别决定了目标对你造成的伤害高低。
TMI窗口(秒):模拟坦克的选项。TMI窗口越小,得到的TMI指数对突发性伤害越敏感(更重视电梯血/猝死,而轻视持续压力的高低)。
报告ETMI:模拟坦克的选项。设置为Always后,会在单人模拟中也开启ETMI(增强型TMI指数)。
高级选项:
线程:使用多个线程并发计算。例如,你使用一颗具有英特尔超线程(HT)技术的四核CPU,你的CPU最多能同时执行8个线程,则这里设置为8可以使CPU满载,获得最高的计算速度。
线程优先级:如果你设置了线程数量使CPU满载,你的计算机可能会在运算过程中变得卡顿,失去同时做其他事情的能力。将这里设置为“Lowest”(最低)可以缓解这种情况,让你的操作系统只在没有其他任务要处理的时候才安排SimC占用CPU。但降低优先级会略微降低计算速度。
世界延迟:不建议更改。这个世界延迟设计用于模拟实际游戏中的世界延迟,但效果却大相径庭。这个数值过小会让DPS结果不稳定,过大会让DPS结果偏低。请保持100ms的设置不要更改。
调试报告:供开发者使用的选项。用户不需要设置,不建议更改。
单独汇报宠物:在统计数据时将宠物与主人分离。不建议更改,选择No。
报告格式:更换报告的样式。不建议更改,选择MoP。
统计水平:决定模拟过程中记录哪些统计数据。不建议更改。
固定RNG种子:使用固定的随机数序列进行模拟,以获得可再现性。在固定RNG种子后,只要线程数相同,每次模拟会得到完全相同的模拟结果。用于需要再现的模拟,平时不设置。
Item Source Order:物品数据的来源,构建人物模型时优先尝试从上面的源获取,上面的源无法找到数据时尝试从下面的源获取。切勿更改。
英雄榜API密钥:为阻止恶意抓取英雄榜数据,每个IP每天最多允许访问3000次英雄榜。更多的访问许可需要向暴雪娱乐提出申请,得到许可的用户会获得一串密钥作为额外访问英雄榜的凭证。当你超过每日访问次数被禁止访问英雄榜的时候,你需要输入此凭证使SimC能够访问英雄榜导入角色。
进行大数据挖掘的时候使用,普通用户不需要设置。
增益/减益
这里的选项控制了模拟环境中你带有何种增益效果/目标带有何种减益效果。
从WoD以来,目标上的各类减益均已不再提供团队效果,所以减益并不影响模拟DPS。
一些你本职业专精所具有的增益,即使没有勾选,如果在APL中包含了相应的动作,也会产生效果。
目前自动生成的APL以及预设档案中都不包含战斗怒吼。所以如果你没有勾选Attack Power Multiplier,是不会带有战斗怒吼效果的。
但英姿勃发+3%全能是一定会附带的,即使没有勾选Versatility。
Toggle All Buffs:全选/全不选所有增益。一个帮助你快速全选/全取消的开关,不影响模拟。
Attack Power Multiplier:攻击强度,例如战斗怒吼。
Spell Power Multiplier:法术强度,例如奥术智慧。
Critical Strike:爆击,例如兽群领袖。
Haste:急速,例如思维加速。
Multistrike:溅射,例如黑暗意图。
Mastery:精通,例如力量祝福。
Stamina:耐力,例如真言术:耐。
Strength, Agility, Intellect:属性,例如王者祝福。
Versatility:全能,例如英姿勃发。
Bloodlust:嗜血,例如时光扭曲。
Bleeding:贼和野德的流血。
Mortal Wounds:致死之伤,不影响DPS。
权值
权值用于计算属性的收益。属性权值即每提高1点该属性,你获得多少DPS提升。
在计算某项属性的权值时,SimC会首先计算你当前属性的DPS,然后为你添加一定数量的属性再计算DPS,依据两次DPS之差得到权值。
所以如果你选择N项属性的权值计算,计算量就会增加N倍。
启用权值:当你需要计算权值时,勾选这个开关。不需要时则取消勾选。
差商区间置中:当你的属性接近某些边界值时,比如暴击和精通的权值即将相等或反超的时候,或者某项属性即将到达上限的时候,你需要勾选它确保结论准确。
开启后,每一项属性所需的计算时间会再增加一倍,但结论会更精确。
前面提到,SimC计算权值的时候,考察的是“当前属性”和“当前属性+Delta”两个状态之间的差异。
开启差商区间置中之后,SimC将会考察“当前属性-0.5Delta”和“当前属性+0.5Delta”两个状态之间的差异。
权值参考:选择Default(默认)即可。权值参考选择DPS,将考察属性对DPS的贡献。如果改为HPS,将考察属性对治疗量的贡献。改为DTPS,将考察属性对承受伤害总量减免的贡献。
改为TMI或ETMI,将以TMI指数为标准来判别属性对坦克防御能力的贡献。
Toggle All Character Stats:全选/全不选所有属性。方便你一次性勾选所有属性进行计算,不影响模拟。
下面是你希望计算权值的属性,勾选你感兴趣的属性。
Strength:力量。
Agility:敏捷。
Stamina:耐力。
Intellect:智力。
Spirit:精神。
Spell Power:法术强度。
Attack Power:攻击强度。
Crit Rating:爆击等级。
Haste Rating:急速等级。
Mastery Rating:精通等级。
Multistrike Rating:溅射等级。
Versatility Rating:全能等级。
Weapon DPS:主手武器每秒伤害。
Off-hand Weapon DPS:副手武器每秒伤害。
Armor:护甲(白色护甲)。
Bonus Armor:护甲加成(绿色护甲)。
Avoidance (tertiary):闪避,三项额外属性之一,降低范围法术对你造成的伤害。
Leech (tertiary):吸血,三项额外属性之一,使你造成的伤害同时治疗你。
Movement Speed (tertiary):加速,三项额外属性之一,提高你的移动速度。
Latency:网络延迟。考察网络延迟的影响,但由于SimC中延迟的“润滑剂”作用,考察这个权值意义不大。
模拟
导入角色之后会跳转到这个页面。
这是模拟前的最后一步。这里显示了TCI配置文档,它就是按照你的角色信息自动生成的。此时你可以编辑TCI。
想要发挥SimC的全部威力,是离不开手写或修改TCI的。但修改TCI需要掌握一定的技巧,对大多数人来说,能够使用GUI已经可以满足需求。
我在这里教给大家一个简单而又常用的技巧——模拟木桩伤害。
模拟木桩和模拟团队战斗的区别主要有:
去除团队增益。这在上面的设置中就可以完成,并不需要修改TCI。在选项->增益/减益中,只保留战斗怒吼勾选即可。
去除合剂、烹饪和药水。在TCI配置文档中找到下面的几行代码:
Code (c):
#合剂:
actions.precombat=flask,type=greater_draenic_strength_flask
#烹饪:
actions.precombat+=/food,type=blackrock_barbecue
#起手偷药:
actions.precombat+=/potion,name=draenic_strength
#开战后药水:
actions+=/potion,name=draenic_strength,if=(target.health.pct<20&buff.recklessness.up)"target.time_to_die<=25
并分别将它们删除即可。
去除斩杀阶段。在TCI文档的末尾添加这样两行代码:
Code (c):
enemy=Fluffy_Pillow
enemy_fixed_health_percentage=100
类似地,如果你想模拟纯斩杀阶段,将100改为1即可。
SimC-603-24及以前版本存在BUG,使用这两行语句会导致模拟时长提高一倍。将在603-25版本中修正。
以上三步(导入角色、设置选项、修改TCI)都做完之后,就可以开始模拟了。
点右下角按钮“开始!”,然后等待模拟完成即可。
结果
等待模拟完成后,报告会展示在结果页。
报告中包含了海量的统计数据,而大家最关注的几个部分我会一一列出。
报告的开头会以“角色名:DPS”的形式报告模拟DPS。图中的其他数据:
DPS:秒伤
DPS(e):有效秒伤(DPS是伤害/活动时长,DPS(e)则是伤害/总战斗时长)
DPS Error:秒伤误差,前面是绝对误差,后边是相对误差。(抽样误差)
DPS Range:秒伤范围(95%置信区间)
DPR:伤害/资源(对战士而言,是怒气。各职业所用资源在Primary Resource列中有标注。)
RPS out:每秒消耗的资源
RPS in:每秒获得的资源
Waiting:等待时间所占比例
APM:每分钟操作数(反映所需的最小手速,越大则按键越频繁)
报告中使用的脚本可能在IE浏览器中不能正常工作。如遇到折叠打不开的情况,尝试更换浏览器。
报告中使用的图表都采用了老式的Google Charts在线图表,所以需要网络连接才能显示。
由于GFW的影响,Google Charts有时无法访问,图表显示不出来。这时你需要翻墙。
简要介绍几幅常用的图表:
Damage Per Execute Time条图:缩写为DPET。
DPET即技能所造成的总伤害除以技能所消耗的施法时间,是衡量各技能利用时间的效率的指标。
数值越大,说明该技能在同样的施法时间内造成的伤害越高。
一般地,我们在资源溢出的情况下,会优先选择DPET较高的技能来使用。
Scale Factors条图:属性权值图。如果你开启了权值计算,将会得到这张图。
数值越大,说明该项属性越重要。红色的H形线表示误差范围——客观真实值有95%的概率落在误差范围内。
如果上下两个H有所重叠,则说明精度不足,需要扩大迭代数(或缩小目标误差),直到将它们分离开。
Damage Source饼图:相当于伤害计量器插件中提供的伤害构成/各技能伤害比例。
通过这张图,你可以了解SimC模拟得到的伤害构成。
DPS Timeline曲线图:即时DPS随时间波动的状况。
这张图是取所有迭代进行平均之后的结果,所以只要迭代数足够多,就已经消除了随机性带来的抖动。
体现了即时DPS随时间的趋势性变化。
DPS Distribution直方图:DPS样本分布的状况。
这张图是每次迭代得到的DPS的分布状况。图中可以看到平均值(即最终模拟结果DPS)、最大值(所有迭代中出现的DPS最高的值)和最小值。
这个直方图应该近似呈正态分布,如果出现明显的锯齿或不正常形状,说明模拟的精度较差,应提高迭代数或缩小目标误差。
Spent Time饼图:在各个技能上消耗的时间比例。
从这张图可以看出哪些技能是使用频率较高的,也能看出总体发呆时间占了多少(图中白色区域)。