粑粑柑(梭哈ai版)
粑粑柑(梭哈ai版)机制拆解 · 第 2 期
元素 → 附着在单位身上 据玩家实测的数值,非官方
点击木桩选中 · 拖动旋转 · 滚轮缩放
正在生成世界…

怎么用“一张附着表”算出元素反应

上一期的塞尔达把状态放在世界的格子里传播;这一期的原神把元素挂在单位身上,只在命中的那一刻结算。每个敌人只有一张很小的、会衰减的“附着表”,反应就是后手元素去吃掉表里的某一行。

重要:米哈游没有公布元素量与内置冷却的官方数值,下面所有数字都来自玩家社区的实测(KQM Theorycrafting Library、Genshin Impact Wiki),请当作“据玩家实测”,而不是官方设定。

规则速览

1. 附着税:1U → 0.8U

技能自带元素量 xU,留在目标身上的只有 0.8x。1U 留 0.8U,2U 留 1.6U,4U 留 3.2U。

2. 持续 2.5x + 7 秒

未被延长、未被反应消耗时,总持续 = 2.5x+7:1U 9.5 秒,2U 12 秒,4U 17 秒。衰减速率由首次附着决定:1U 约 11.9 秒掉 1U,4U 约 5.3 秒。

3. 同元素取较大者

重复附着同一种元素不是相加,而是取大(0.8U 再来 1.6U 得 1.6U),衰减沿用最先那次的速率。火是例外:新量不小于旧量时刷新速率。

反应:后手元素吃掉附着

后手 → 已有附着反应倍率消耗(后手元素量 ×)
水 → 火蒸发(强)×22
火 → 水蒸发(弱)×1.50.5
火 → 冰融化(强)×22
冰 → 火融化(弱)×1.50.5
火 ↔ 雷超载(剧变)2.75 × 等级系数1
冰 ↔ 雷超导(剧变)1.5 × 等级系数1
水 ↔ 雷感电(水雷共存,每秒一跳)2 × 等级系数每跳各 0.4U
水 ↔ 冰冻结无伤害1
风 → 火 / 水 / 雷 / 冰扩散0.6 × 等级系数0.5
岩 → 火 / 水 / 雷 / 冰结晶(护盾)无伤害0.5

增幅反应(蒸发、融化)是乘法:把整次伤害放大,所以吃暴击、吃技能倍率。剧变反应(超载、超导、感电……)则只看角色等级与元素精通,不吃攻击力、暴击,伤害 = 倍率 × 等级系数 × (1 + 16·EM/(2000+EM) + 加成)。风和岩留不下附着,只能作为触发者路过。

内置冷却(ICD):3 下或 2.5 秒

同一个来源连续命中时,并不是每一下都挂元素:第 1 下必挂;之后每 3 下挂一次,或者距上次满 2.5 秒后的下一下必挂。“3 下”不会重置计时,“2.5 秒”会重置计数,序列是 1,0,0,1,0,0,1…。在“效果预览”里点“连射 7 发”,你会看到只有第 1、4、7 发真正附着,其余的被冷却挡住。

和第 1 期对比

第 1 期 · 塞尔达第 2 期 · 原神
核心问题算世界算伤害
状态存在哪48×48 个格子的温度 / 湿度 / 燃料 / 电荷每个单位身上的一张附着表
何时计算60Hz 规则 tick,一直在扩散命中事件到来时才结算,之间只做衰减
蔓延温度靠相邻格传导,能烧成一片点得着、烧完就完,没有自行连锁
设计哲学规则只和“属性”打交道,涌现规则表是显式的,数值可被测出来

第 1 期:塞尔达式化学引擎 · 效果预览 + 实现方法。

源码查看

下面直接读取 src/combat.js 里的真实代码,每个 #region 是一条规则。它是纯 JS、不用随机数与时钟,所以可以在 Node 里测试,也可以被视频逐帧驱动。

加载中…

来源与说明

这是一个简化的教学原型,是原创实现,不含米哈游的代码或美术资源;教学简化:不含元素精通、抗性、暴击,一次命中最多触发一种反应,冻结不做递减。倍率采用 5.2 之后的数字,所有数值均为玩家社区实测,非官方公布。

解析视频画面机制拆解 · 第 2 期 · 原神元素反应

完整解析视频「机制拆解 02 · 原神元素反应」发布在 B站 / 抖音,搜索作者 粑粑柑(梭哈ai版) 即可观看。视频里的 3D 画面和附着数字,都是用这个仓库的 film.html 与同一份 src/combat.js 逐帧渲染的。上一期:塞尔达化学引擎。