本WIKI由旅行者酒馆于2020年03月14日申请开通,内容按CC BY-NC-SA 4.0协议提供,编辑权限开放。感谢 大猫雷恩 对WIKI设计支持,期待更多能人异士加入原神WIKI。
免责声明 • 反馈留言 • 交流群:1018709157
原神WIKI五周年啦!
bugfix250107.1

全站通知:

Gcsim入门教程

阅读

    

2025-02-07更新

    

最新编辑:Ayka_Tsuzuki

阅读:

  

更新日期:2025-02-07

  

最新编辑:Ayka_Tsuzuki

来自原神WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
Ayka_Tsuzuki

如果是第一次来,按"Ctrl+D"可以收藏随时查看更新~觉得WIKI好玩的话,请推荐给朋友哦~(◕ω<)☆
按右上角“WIKI功能→编辑”即可修改页面内容,新建相应的图鉴页请点击 创建图鉴.png
,请注意时效性
本文章为Ayka原创,未经作者允许,请勿擅自修改,转载请注明出处并附带链接。

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:基础伤害加成

等。以下展示了启用部分选项后的样本界面:
Gcsim-primer-guide-1.png
以第496帧/8.27秒时为例,蓝色条块Sharky's Surging Bite(巨浪鲨鲨撕咬)中,399035代表伤害值,vaporize代表触发了蒸发反应,crit代表造成了暴击,hydro applied to [pyro (19.719)] → [no aura]代表该事件对原本处于火元素附着下的目标施加了水元素附着,最终状态为无附着。点击蓝色条块可显示本次伤害的详情:
Gcsim-primer-guide-2.png
在"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%水元素抗性降低。由此,我们可以对本次伤害的实际情况有一个清晰的了解。