免责声明 • 反馈留言 • 交流群:1018709157
原神WIKI五周年啦!
Gcsim入门教程
阅读
2025-02-07更新
最新编辑:Ayka_Tsuzuki
阅读:
更新日期:2025-02-07
最新编辑:Ayka_Tsuzuki
gcsim是一款开源的用于模拟原神战斗的蒙特卡罗模拟工具。用户可以设定队伍中各个角色的属性、攻击的目标、要执行的动作以及其他选项,gcsim经过模拟可以输出各种结果,例如:
- 每秒伤害(DPS)
- 每秒能量(EPS)
- 每秒反应次数(RPS)
- 每秒治疗次数(HPS)
- 有效护盾量(SHP)
- 模拟持续时间(Dur)
- 伤害时间曲线
- 累积伤害
- 角色DPS分布情况
- 元素DPS分布情况
- 目标DPS分布情况
- 按角色/元素/目标分的角色DPS分布
- 按伤害来源的DPS分布
- 按动作的DPS分布
- 站场时间分布情况
- 按来源分的元素能量
- 按来源分的元素反应
等。用户还可以逐帧浏览每次迭代的样本,其中全面列出了每帧操作、伤害实例、反应、增益效果等。gcsim还提供了配队数据库simpact,可以参考数据库中由其他玩家上传的配队模拟。
gcsl入门
gcsl(gcsim script language)是gcsim脚本语言,gcsim脚本提供了模拟的基础设定,主要包含以下几个部分:
- 各角色的角色等级、命座、技能等级、武器、武器等级、武器精炼等级、圣遗物套装、圣遗物属性(可分开写主属性与副属性)
- 模拟设置(例如角色切换延迟时间、迭代次数、元素能量掉落等)
- 目标设置(等级、位置、生命值、抗性等)
- 每个迭代中角色执行的动作(例如普通攻击、重击、下落攻击、点按或长按元素战技、元素爆发、闪避/冲刺、跳跃、行走、等待等)
以下以[1]为例示例脚本语法。
mualani char lvl=90/90 cons=0 talent=9,9,9; mualani add weapon="sacrificialjade" refine=1 lvl=90/90; mualani add set="obsidiancodex" count=5; mualani add stats hp=4780 atk=311 hp%=0.466 hydro%=0.466 cd=0.622 ; #main mualani add stats def%=0.124 def=39.36 hp=507.88 hp%=0.496 atk=33.08 atk%=0.0992 er=0.1102 em=118.92 cr=0.0662 cd=0.662;
以上代码片段的含义是:
- 设置角色等级为90级,命座为0命,普通攻击、元素战技、元素爆发的技能等级分别为9、9、9级
- 设置武器为遗祀玉珑,精炼1级,武器等级为90级
- 设置圣遗物套装为黑曜秘典,件数为五件套
- 设置圣遗物主属性分别为生之花:4780点生命值、死之羽:311点攻击力、时之沙:46.6%生命值、空之杯:46.6%水元素伤害加成、理之冠:62.2%暴击伤害
- 设置圣遗物副属性总共提供了12.4%防御力、39.36点防御力、507.88点生命值、49.6%生命值、33.08点攻击力、9.92%攻击力、11.02%元素充能效率、118.92点元素精通、6.62%暴击率、66.2%暴击伤害
依此类推可写出队伍中其他三人砂糖、希诺宁、香菱的基础属性。对于部分武器,gcsim也提供了额外设定,例如当角色装备螭骨剑时,可在设定武器时添加+params=[stacks=5]表示武器特效的初始层数为5。
options swap_delay=12 iteration=100;
这段代码设置了角色切换延迟为12帧,每次执行模拟进行100次迭代。此外,也可设置duration选项,例如设置duration=90代表模拟持续时间90秒。
active mualani;
这段代码设置了初始上场角色为玛拉妮。
target lvl=100 resist=0.1 radius=2 pos=0,2.4 hp=999999999;
这段代码设置了目标等级为100级,抗性为10%,半径为2米,坐标为(0, 2.4),即位于角色正前方2.4米处,生命值为999999999点。此外,也可通过particle_threshold选项设定元素能量掉落阈值,例如设置particle_threshold=250000代表每受到250000伤害掉落一次能量,设置particle_drop_count=1代表每次掉落1颗元素能量微粒。此外,用户也可以设定角色受伤:
hurt every interval=480,720 amount=1,300 element=physical;
代表每8~12秒之间的随机时间点受到1~300之间的伤害,element=physical代表受到的是物理伤害。通常来说这一设定并不必要。
energy every interval=480,720 amount=1;
这段代码设定了每8~12秒之间的随机时间点掉落1颗元素能量微粒。
for let i=0; i<3; i=i+1 { mualani attack; sucrose_combo(); xilonen skill, attack:2; xiangling burst, skill, dash; pick_up_crystallize("hydro"); mualani_combo(); sucrose attack, skill, dash; mualani burst; delay(7); mualani attack; xilonen skill, attack:2; sucrose_combo(); xiangling skill, dash, attack; pick_up_crystallize("hydro"); mualani_combo(); }
这一部分是一个for循环,共循环3次,是角色动作设定部分。这一部分可以不适用循环,也可以使用while循环,但最常用的是for循环。每个循环中执行以下动作序列:
- 玛拉妮普通攻击
- 砂糖技能组
- 希诺宁元素战技接2次普通攻击
- 香菱元素爆发接元素战技接冲刺(取消后摇)
- 拾取水元素结晶产生的晶片
- 玛拉妮技能组
- 砂糖普通攻击接元素战技接冲刺(取消后摇)
- 玛拉妮元素爆发
- 延迟7帧
- 玛拉妮普通攻击
- 希诺宁元素战技接2次普通攻击
- 砂糖技能组
- 香菱元素战技接冲刺接普通攻击(以触发西风长枪特效)
- 拾取水元素结晶产生的晶片
- 玛拉妮技能组
其中,砂糖技能组与玛拉妮技能组都是用户自定义函数,函数由fn关键字声明,以玛拉妮技能组mualani_combo()为例:
fn mualani_combo() { mualani skill; while .mualani.nightsoul.state { for let k=0; k<3; k=k+1 { # 3 bites while .mualani.momentum < 3 { mualani walk[f=1]; } mualani attack; } mualani skill; # cancel nightsoul state with skill } }
在一个技能组(combo)中,进行如下动作序列:先进行玛拉妮元素战技,当玛拉妮处于夜魂加持状态下时:进行3次for循环,每次for循环中,当玛拉妮的浪势充能(momentum)小于3时进行行走(夜魂加持状态下行走即为搭乘鲨鲨冲浪板的移动),[f=1]代表动作帧数为1,当momentum等于3时进行一次普通攻击,3次for循环结束后再次进行元素战技退出夜魂加持状态。
Combo的设定并非必需的,而是为了提升代码可读性与简洁性的手段,以上流程中每次迭代玛拉妮与砂糖均需要进行一段相同动作,这时就可以利用函数简化脚本,避免重复。
样本解析
当完成一次模拟后,用户可以在样本选项卡中选择任意样本查看模拟细节。在样本页面右上角,用户可以设置日志选项,常用选项包括:
- action:角色动作
- warning:警告
- element:元素附着情况
- calc:伤害计算表
- damage:伤害
- status:状态
- energy:元素能量
- pre_damage_mods:基础伤害加成
等。以下展示了启用部分选项后的样本界面:
以第496帧/8.27秒时为例,蓝色条块Sharky's Surging Bite(巨浪鲨鲨撕咬)中,399035代表伤害值,vaporize代表触发了蒸发反应,crit代表造成了暴击,hydro applied to [pyro (19.719)] → [no aura]代表该事件对原本处于火元素附着下的目标施加了水元素附着,最终状态为无附着。点击蓝色条块可显示本次伤害的详情:
在"log"日志项中,"ele: "hydro"代表元素类型为水元素,随后列出了本次伤害受到的所有增益(由于增益种类过多不能完全截取):
- 遗祀玉珑:32%生命值、40元素精通
- 黑曜秘典2件套:15%增伤
- 砂糖天赋1:50元素精通
- 砂糖天赋2:180.09元素精通
- 烬城勇者绘卷四件套水元素结晶:12%岩元素伤害加成(无效)
- 烬城勇者绘卷四件套水元素结晶(夜魂加持状态效果):28%岩元素伤害加成(无效
- 烬城勇者绘卷四件套水元素结晶:12%水元素伤害加成(无效)
- 烬城勇者绘卷四件套水元素结晶(夜魂加持状态效果):28%水元素伤害加成(无效)
- 砂糖第6命座:20%火元素伤害加成(无效)
- 香菱第6命座:15%火元素伤害加成(无效)
- 悠古的磐岩四件套:35%水元素伤害加成
- 黑曜秘典4件套:40%暴击率
随后,"pre_damage_mods": []代表基础伤害加成为0,"resist_mods"代表抗性情况,"vvhydro"代表翠绿之影四件套水元素扩散的40%水元素抗性降低,"xilonen-e-shred-hydro"代表希诺宁元素战技的33%水元素抗性降低。由此,我们可以对本次伤害的实际情况有一个清晰的了解。