摘要
屏幕底栏左侧有 5 个单位能力槽(快捷键 1–5),显示当前单位能做什么:槽 1 是“攻击方式”按钮(只在单位有备用攻击时出现,按下后外圈发光),之后是各种特技。以后让 AI 自己玩、或在 Battle Notes(本项目的战斗记录 App)里显示“当前单位能做什么”,都需要知道每个槽是哪个能力。
本实验在没有标签的情况下探索:能否把槽里的图标认成游戏安装资源里的 126 个单位能力图标之一?难点是 87% 的槽是“变暗”画法(打开面板或日志时,图标变成深色剪影)。结论:颜色模板对剪影失效,灰度梯度轮廓模板对亮/暗都能排对;再加“备用攻击在前、能力在后、槽数等于该兵种图标数”的整排约束,能解出整排属于哪个兵种。顺带发现底栏显示的其实是“行动顺序里第一个我方单位”。
要回答的问题
- 能否把底栏能力槽的图标认成安装能力图标,包括亮着和变暗(剪影)两种画法?
- 底栏显示的到底是谁的能力?
数据与来源
- 前一轮抽出的生物面板/日志画面帧(底栏在后面可见),只取训练池录像:35 段录像,每段随机 12 张(种子 172)。330 帧有非空能力槽,共 602 个槽(L1 330、L2 202、L3 67、L4 3)。画法:变暗 524、亮 77、未知 1。
- 参考图:项目游戏知识库公开的 126 个单位能力图标(带兵种、种类、序号)。
- 交叉核对:训练截图包中的 197 张战斗画面(69 包),用行动条第一张卡作为“正在行动的单位”。
- 测试池、冻结来源一律不用;没有标签,所以下面都不是准确率。同一录像里相邻帧的底栏常常相同,不是独立样本。
方法
逐槽匹配。 槽位置来自已有的底栏检测(原生 2560×1440 版面),只看非空槽。
- 颜色法:图标内圆(半径 0.86)掩膜,平方差匹配(TM_SQDIFF),直径 72–76、平移 ±4 像素,先用 16×16 缩略图筛 10 个候选。
- 轮廓法:计算灰度梯度幅值(即图像边缘强度),用掩膜归一化相关(TM_CCORR_NORMED)与全部 126 个图标比较。
整排解码。 发现槽的顺序规律:每个备用攻击(按安装序号)各占一个槽,然后是各个能力(按序号)。于是把一帧的 n 个非空槽当作一个兵种的图标序列,对槽数相同的所有兵种按“各槽分数平均”排名;图标序列完全相同的兵种(例如本体与升级版)算一组。
交叉核对。 两个独立读取器互相印证:底栏整排解码出的兵种,与行动条卡片身份及卡片阵营色比较。
设置
对照拼图(槽截图与最佳图标并排)由助手目视检查,记为模型目视核对,不是用户审核。不改生产合同、不用 GPU、不打开测试池。
结果
逐槽匹配:
- 颜色法:亮着的槽能认对,但所有变暗剪影都被同一个绿色图标“吸走”,不可用。正确匹配的直径都在 72–74 像素,之后固定为 72、74、76。
- 轮廓法:亮的和暗的都能排对,分数中位 0.79;但剪影对比度低,正确匹配也常只有 0.60–0.70,单看分数无法取舍。
- 多槽帧中,所有槽分数都 ≥0.75 的 86 帧,各槽最佳图标全部属于同一兵种;最低分 <0.65 的 69 帧中只有 31 帧一致。
整排解码:
- 所有槽都 ≥0.75 的 137 帧全部符合“备用攻击在前、能力在后”的顺序,槽数也与该兵种图标数相等;解码结果与逐槽最佳 137/137 相同,与第二名的差距最小 0.055。
- 其余 193 帧:147 帧与逐槽最佳相同,46 帧被整排约束改掉;差距 <0.03 的 35 帧算不确定。改掉的 46 帧中目视了 24 帧,麒麟、德鲁伊、仲裁者、恩特等的剪影都与解出的图标吻合;最难的是单槽剪影。
- 共出现 50 个兵种组,最多的是狮鹫 35、审判官 25、巨颚 19、仙女龙 18、凤凰 14。
与行动条交叉核对(197 帧):
| 底栏画法 | 一致 | 不一致 | 槽数与该单位不同 | 该单位没有能力 |
|---|---|---|---|---|
| 全亮/部分亮 | 47 | 0 | 0 | 0 |
| 全暗 | 55 | 24 | 57 | 14 |
底栏变暗时不一致的 24 帧里,解码出的兵种 14 帧是行动条第 2 张、5 帧是第 3 张、3 帧更靠后,只有 2 帧不在行动条上。用卡片阵营色再核对:底栏显示的是行动顺序里第一个我方单位,197 帧中 191 帧符合——我方单位行动且底栏亮 47/47;对方行动时底栏变暗、显示我方下一个单位 92/98;我方单位行动但底栏变暗 52/52 仍是该单位(多半是面板、日志压在上面,或回合交接动画)。
私有生产读取器(未接入路由): 同样的轮廓匹配与整排解码,加上亮暗、槽 1 外圈发光和冷却数字原文。在 249 帧训练帧上(37 帧底栏无能力),能确定我方颜色的 192 帧中,解码兵种组 192/192 包含行动顺序里第一个我方单位;与实验版逐帧比 192/196 相同;另 15 帧因没有头像匹配无法确定我方颜色。只在行动条出现过的兵种中找时,每帧中位 0.022 秒、p95 0.031 秒;找全部兵种 0.039/0.046 秒;图标加载 0.5 秒。
失败与负结果
- 颜色模板对变暗剪影完全失效。
- 剪影的正确匹配分数可以低到 0.60–0.70,单靠阈值区分不了对错。
- 两个龙兵种缺安装图标,解不了,不猜。
局限
- 没有真标签,全部数字是两个独立读取器的一致性或模型目视核对,不是准确率;样本不独立。
- 只识别身份;发光、变暗、冷却数字等状态还没有可核对的标注。
- 没有在测试池新录像上评估,也没有决定放进截图路由的哪一项。
结论与下一步
当前单位的能力槽身份可以不用模型、只靠像素读出,并顺带给出当前单位候选,可与行动条互相核对。底栏亮着表示轮到我方、能力属于当前单位;变暗表示不能操作、能力属于我方下一个单位。进生产前需要真标签(预标注加审核页,或由头像身份推出期望序列)、测试池上的成绩,以及路由合同评审。
Comments