摘要

英雄在战斗中打开法术书,书页上有最多 14 个格子,每格是一个法术:名字、右下角的等级(1–4)、上方的魔法消耗,图标可能变灰,中央可能有冷却数字。本实验先由模型目视看原生画面,把每帧每格都标出来,再用生产读取器(路由器 = 把一张截图分给各个读取器的程序,其中的法术书任务)读同一帧,逐字段比较。

需要说明:原报告的结果段落在写作时没有填写;本文的数字取自实验保存的评分输出。那次评分只覆盖了已标注 140 帧中的 63 帧(读取批次没有全部跑完)。在这 63 帧里:书完全打开时,法术名、等级、消耗没有一个读出错误值;问题全部是“没读到”——个别格子没被提出来,以及开书/翻页动画帧整页不读。

标签纪律: 所有标注值都是模型看原生帧写的(模型目视核对),没有人工审核;下面的数字是“读取器与模型目视标注的一致情况”,不是准确率,也不是人工金标准。

要回答的问题

生产法术书读取器在真实战斗录像上,逐格、逐字段(名字、等级、消耗)表现如何?错误和漏读主要来自什么?

数据与来源

来源 用途 时间线中法术书段数
一段训练录像(10 月 10 日 16:57,前 23 分钟) 开发集(多数规则在这段上定) 22
一段训练录像(10 月 10 日 01:39) 独立检验 49

没有打开冻结/留出录像。标注规模:

16:57 01:39
条目(原生帧) 29 111
书完全打开 27 102
开/关/翻页动画帧 2 9
有悬停说明的帧 8 40
有法术的格子 319 909
其中名字/等级/消耗看不清 9 / 8 / 10 34 / 34 / 55
目视为空的格子 80 558
灰色图标格 / 有冷却数字的格 76 / 31 324 / 319

方法

选帧。 对每段法术书,在低分辨率帧库里比较书区域的相邻帧差,跳过开关动画,取最长静止段的中间一帧;没有静止段时取最稳的一帧;悬停时刻各取一帧;同段中明显不同的静止状态(如换学派页)各取一帧(最多 2 个)。再从原录像取原生 2560×1440 帧。

时间对齐问题。 实测发现帧库时间 t 对应的原生帧是 round(t × fps) + 7(约晚 0.23 秒),而不是任务单写的 round(t × fps)。最初一批“悬停”帧因此早了 0.23 秒、说明框还没出现。这些帧照常标注和打分,另按对齐后的帧号补了 17 条悬停帧。有 3 段的帧库时刻全落在动画里,逐帧找到原生静止时刻后补了 3 条;动画帧本身保留、单独统计(实时 App 也可能截到这种帧)。

标注。 每帧记录书状态、学派页、魔法当前/最大、是否敌方回合;14 个格子每格记录有无法术、名字、等级、消耗、是否可用(图标灰不灰)、冷却数字;悬停说明的标题和全文。看不清写未知并注明原因;被说明框盖住的格子只把同段其他帧的值记为参考,不计分。法术名都与游戏知识库目录核对过。

判定。 正确;错误(读出不同的值);未读(找到格子但字段拒读);单格漏检(格子没提出);整页漏检(整页没读);误报(空格被提出)。标注为未知的字段不计分。

设置

每帧调用一次生产读取器(CPU,全部任务),取法术书任务逐格比较。读取分批进行,每批不超过 14 分钟,开批前检查游戏是否在运行,在运行就等待。

结果

已评分 63/140 帧。

16:57,书完全打开:

字段 正确 错误 未读 单格漏检 合计
有法术的格子 273 0 0 2 275
空格(无误报) 74 0 0 0 74
法术名 268 0 0 2 270
等级 267 0 2 2 271
魔法消耗 269 0 0 2 271

01:39,书完全打开:

字段 正确 错误 未读 单格漏检 合计
有法术的格子 158 0 0 23 181
空格(无误报) 279 0 0 0 279
法术名 157 0 0 20 177
等级 157 0 0 20 177
魔法消耗 157 0 0 17 174

动画帧: 16:57 的 22 个有法术格、01:39 的 7 个,全部因整页没读而漏检(任务状态为“未检测到”或“拒绝”)。

耗时(CPU,全部任务): 法术书任务本身中位 17.98 秒/7.69 秒(16:57/01:39),整帧墙钟中位 73.15/56.36 秒、p95 128.28/86.37 秒。这是在限核运行下的离线批量耗时,不是实时性能。

失败与负结果

逐例看过原图的漏读原因(共 33 条错例):

  • 原因未定的整格漏提: 01:39 原始学派页第 3 行唯一的“天罚”反复没被提出(14 条:3 条逐例看过,11 条按同类归入),图标、名字、等级 2、消耗 40 都清楚,同一法术在“全部法术”页能读;另有一次“赫克斯米拉狂乱”偶发漏提,同一画面另一次读对了。
  • 悬停说明框遮挡: 说明框盖住格子时,读取器在说明框文字上提出假格子但没有输出值(5 条);消耗徽章被盖住时整格不提(3 条);正被悬停高亮的格子不提。
  • 鼠标指针或战场飘字压字: 指针压在“曙光盔甲”的“光”字上;游戏把伤害数字“-360”画在书上面,盖住半个名字。
  • 低分拒读等级: 灰色“审判”的等级 4 徽章与装饰环相接,两次都读出 4 但分数 0.86–0.94 低于门槛。
  • 动画帧: 开书、翻页时书倾斜、法术偏离网格,整页不读或被拒。
  • 时间对齐公式写错,使一批悬停帧早了 0.23 秒(已补帧,原帧保留计分)。

局限

  • 标注全部是模型目视核对,没有人工审核;不是准确率,更不是 ≥95% 目标的证据。
  • 只评了 63/140 帧,01:39 的大部分标注(含多数学派页、悬停帧)没有进入评分。
  • 16:57 是开发集,规则多在这段上定。
  • 读取器不输出“是否可用”“冷却数字”“学派页”“魔法”“敌方回合”“悬停说明”,这些字段只有标注、未评分。

结论与下一步

在已评分的帧上,法术书读取器的问题集中在“漏读”而不是“读错”:特定格子偶发不提出、遮挡、动画帧。下一步应补完剩余 77 帧的读取与评分,查清原始学派页“天罚”反复漏提的原因,并为可用状态、冷却数字等字段补读取器输出后再评分。标注已做成审核页,等待人工逐字段确认。