Lab / 《明日之后》
建立基于面板属性的伤害预测模型,量化各变量对实际伤害跳字的影响排名
《明日之后》的伤害并不是单纯线性关系。现有测试显示,攻击力与护甲的差值存在保底区间、正常增长区间和边际递减区间;伤害加成与减免也不是直接相减, 而是以乘法形式共同影响最终伤害。
本项目的核心不是复原某一个具体伤害公式,而是建立一个可用于预测的整体模型:输入攻击力、护甲、火力、 各类加成减免和场景属性后,输出接近真实游戏跳字的伤害值, 并量化每个变量的影响大小,形成可读的变量 ranking。
给定一套角色与目标属性,能否预测真实伤害跳字?
火力、攻防差、伤害加成/减免、玩家属性等变量,谁对最终伤害贡献最大?
不同场景(夏尔、特训、远星)是否存在独立倍率或隐藏修正?
在攻击力、加成、进阶属性之间,哪个变量在当前装备区间内最值得提升?
基础攻击
Attack攻击力Defense目标护甲Power武器火力通用伤害
Damage increase伤害加成 %Damage decrease伤害减免 %玩家属性
Player increase玩家伤害加成Player decrease玩家伤害减免武器 / 部位
Weapon increase/decrease轻型或重型加成/减免Body increase/decrease躯干/独立加成/减免Gun increase/decrease远程或近程加成/减免场景 & 输出
Place夏尔 / 特训 / 远星 等Damage目标变量:真实伤害跳字攻击力对基础伤害的影响按攻防差(Attack − Defense)分段处理。 以下为初始假设区间,后续数据中持续验证和微调:
| 攻防差 x | 基础伤害假设 |
|---|---|
| 0 – 12 | 12.12 |
| 13 – 30 | 12.12 + 1.01 × (x − 12) |
| 31 – 50 | 30.30 + 0.707 × (x − 30) |
| 51 – 70 | 44.44 + 0.505 × (x − 50) |
| 71 – 100 | 54.54 + 0.303 × (x − 70) |
| 100+ | 63.63 + 0.101 × (x − 100) |
伤害加成与减免不应作为简单差值处理。20% 加成与 20% 减免应为 1.2 × 0.8 = 0.96,而不是 1.0。
Multiplier = (1 + Increase / 100) × (1 − Decrease / 100)注:部分 Damage decrease 字段数值超过 100,直接代入公式会得到负倍率。 正式模型将同时保留原始字段和工程化倍率字段,让模型学习真实关系。
Attack, Defense, Power, 各类 increase/decrease — 保留完整面板信息
Attack − Defense — 攻防差,伤害曲线的基础变量
attack_bucket, attack_base_piecewise — 将已知攻防曲线注入模型
(1+加成/100)×(1−减免/100) — 表达加成与减免的乘法关系
attack_base × Power, 倍率 × 场景 — 捕捉公式中的乘法结构
Place, weapon type, target type — 区分作战环境和目标类型
公式 Baseline
建立最低可用预测线
LightGBM / CatBoost
主预测模型
XGBoost
备选主模型
GAM / 样条
分析单变量曲线
统计每个变量对预测值的平均影响幅度。主 ranking,适合解释单变量影响。
打乱某变量后观察 MAE 变差多少。验证该变量是否真的影响预测能力。
将 Attack/Defense 合并为攻防组,increase/decrease 合并为属性组。更符合玩家决策视角,用于比较装备提升优先级。
MAE
主指标:平均预测误差(点数)
RMSE
辅助:对大误差更敏感
±1/±3/±5 命中率
玩家可读:落在真实值附近的比例
分组 MAE
按场景、攻防差区间分别评估
已收集 104 条测试记录,足够建立初版 pipeline 并验证机制假设, 但尚不足以得到完全稳定的排名(500 条以上才会明显稳定)。
火力与伤害相关性很高,若不做分层与控制变量,会掩盖其他属性效果
部分行同时改变多个变量,适合训练预测模型,但不适合单独判断某一变量公式
场景可能存在独立修正,不能把所有场景简单混为一条曲线
Damage decrease 超过 100 的字段需重点确认其真实换算方式