摘要
攻击命中时,游戏会在受伤单位上方弹出“飘字”:一个图标加伤害数字(例如拳头 -27),停留一小会儿后消失。如果不读战斗日志(Logs),只靠画面推断伤害,一个很自然的想法是:截图里当前轮到谁行动,飘字就是谁打的。
本实验(开发实验)在一段训练录像已保存的 15 张原生图上检查这个想法。结论:一个 -27 的飘字在“当前行动单位”从巫妖变成盗墓贼的前后都可见,所以“按截图当前行动者认领残留飘字”这一推断方法不成立。另外,在另一个窗口里,用固定区域补读了单位脚下的数量牌(显示这支部队还剩多少个体),得到 8 → 3 → 3(相邻一支保持 12),但这还不能证明是同一支部队,也不能确认死伤归因。
要回答的问题
- 飘字能否直接归给截图里的当前行动单位?
- 在另一个窗口里,被攻击单位的数量变化能否从画面读出?读出后能得出什么、不能得出什么?
数据与来源
- 只用 10 月 10 日 16:57 那局前 23 分钟录像中已保存的 2560×1440 原生帧,不重新解码录像,不用日志。
- W2 窗口(约 9:55)8 张图;W1 窗口(约 9:45–9:48)7 张图。部分图之前已看过,不是盲测。
- 每张图的真实时间都取自保存的元数据;请求秒数相同不代表是同一解码帧。
方法
读取当前行动单位
用生产里的“行动者上下文读取器”:看行动条第一张卡、底部大头像和等待覆盖层,两处图案一致才给候选;等待中、首卡缺失或两处不一致都保持未知。它只看单张图,跨帧的变化分析由状态估计(SE)的实验脚本完成:只有两边都有重复支持的候选,才建立一个“候选图案变化区间”,中间未知不向前填充。
W1 数量牌补读
公开的数量牌接口在三张图上自动读取。发现第一张图右侧那块牌没有被定位到。于是做了一次独立诊断:取后一张图上两块相邻牌的 OCR 框作为固定原生区域,在三张图上分别读取(同一模型两种尺度,原 0.80 门槛)。区域是人工选的,用后面的图去回看前面的图属于离线诊断,不是实时可用的输入。
设置
CPU 运行,重任务串行并限制 8 个核。没有修改生产门槛,没有运行完整 App 流程。
结果
行动单位读取
15 张图中 9 张得到首卡与底部一致的候选,6 张未知(3 张等待覆盖、3 张首卡未找到)。每张 2.181–3.362 秒,合计 43.802 秒(不含初始化),不是整帧 p95 或 App 延迟。
W2:行动头像变化时 -27 仍可见
| 实际时间(毫秒) | 当前行动图案候选 |
|---|---|
| 594994.400 / 595595.000 / 595628.367 | 巫妖 / 蓝 |
| 595995.400 | 未知(首卡未找到) |
| 596128.867 / 596395.800 / 596796.200 / 597196.600 | 升级盗墓贼 / 蓝 |
由此得到一个候选图案变化区间 (595628.367, 596128.867] 毫秒。这是“候选图案变化的区间”,不是精确的行动切换、攻击开始或命中时间。前一实验在区间两端都实际读到了同一个几何位置上的 -27 飘字。
这排除的是“按截图当前头像直接确认残留飘字的攻击者”这一无条件推断方法;没有排除盗墓贼造成伤害的可能,也没有反推巫妖一定是攻击者。攻击者、目标、攻击类型和命中条件都未确认。
W1:数量补读
| 实际时间(毫秒) | 自动读右侧牌 | 固定右侧区域 | 固定相邻区域 |
|---|---|---|---|
| 585985.400 | 没定位到,未知 | 8 | 12 |
| 587119.867 | 3 | 3 | 12 |
| 587219.967 | 3 | 3 | 12 |
如果同一支部队一直占着这个位置,右侧数量净差 -5、相邻 0。这与后两帧上的骷髅 -5 飘字相容,但不能据此确认死伤归因、-314 与 -5 属于同一次命中,或相邻部队没有受伤;数量不变不等于没有生命损失。
失败与负结果
- 数量牌接口在第一张图上漏掉了右侧那块牌。补充诊断发现:该区域在血条候选阶段就没有候选(后两张图都有一条 43×4 像素的绿色条),所以问题在前端血条定位,不是 OCR 不认识“8”;具体是颜色、宽度、形态学还是遮挡原因尚未确认,没有改阈值。
- W1 前段在等待、之后首卡缺失,没法建立两端都有重复支持的头像变化区间,所以 W1 得到 0 个变化区间——这不代表没有发生行动变化。
- 一组既有测试首次运行时 28 个 setup 错误,原因是指定的临时目录父目录不存在,建好后重跑 120 项通过;新增 SE 测试最终 46 项通过。这些是软件行为,不是识别准确率。
局限
- 一段已曝光开发录像的 15 张图,不能当 15 场对局。
- 固定区域是人工选的,且用后面的图回看前面,不是自动追踪或实时输入。
- 同一模型两种尺度的读数一致,不等于两个独立引擎。
结论与下一步
不能按截图里的当前行动者认领飘字;数量牌能提供“如果是同一支部队,净差是多少”的条件信息,但还缺“是同一支部队”这一步。外部审阅建议下一轮主线先做 W1 三帧的同一目标部队持续性判断:用位置、图案、队色和数量牌附着关系检验对应,且不让 8/3/-5 这些数字参与匹配;对照相邻部队、同兵种不同部队、移动/遮挡/换位等替代解释。审阅中关于“单次候选被跳过”的担心经核对与上游定义不符,未采纳其新枚举建议,只补了相应反例测试。
Comments