- 桌面应用
- RPA
- 计算机视觉
【免费下载链接】ZenlessZoneZero-OneDragon
绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄
导读
本文围绕 ZenlessZoneZero-OneDragon(绝区零一条龙)项目中对「大世界」画面的建模与识别展开,结合 docs/game/screens/大世界.md 这一画面文档与仓库内屏幕配置、操作源码,完整解析大世界的屏幕信息(screen_info)结构、稳定识别锚点、OCR 动态值处理,以及等待大世界/返回大世界两个核心操作如何支撑登录进游戏、各类日常玩法与终局玩法的自动衔接。读完本文,你将掌握该画面在框架中的建模方式、配置文件字段含义,以及自动化任务如何从任意画面安全回到大世界这一"玩法枢纽"。
大世界:所有玩法的入口枢纽
在绝区零一条龙项目中,大世界是指玩家成功登录游戏、经过加载画面后进入的最开放自由的主画面:控制角色在 3D 场景中移动、交互 NPC、接取任务、进入各种玩法。它是进游戏后的主画面,也是所有自动化玩法模块共同的"入口枢纽"。
从画面文档看,大世界被建模为screen_id: normal_world,其screen_name为大世界;而用于精确识别的子画面名为大世界-普通(-普通后缀表示大世界存在多个状态变体)。在源码中,大世界实际有两种画面状态:
大世界-普通:常规街区大世界;大世界-勘域:勘域模式的大世界(小地图位置与普通版有偏差)。
这一点在 wait_normal_world.py 与 back_to_normal_world.py 中均有明确体现,两处代码都以['大世界-普通', '大世界-勘域']作为大世界画面的判定列表。
识别特征:稳定锚点与动态值
画面文档将大世界的 UI 元素明确划分为两类:稳定锚点(可作识别特征)与动态值(不可当特征)。
稳定锚点(可依赖的识别特征)
- 右上角 UI 图标(模板匹配):快捷手册、功能导览、预备编队、按钮-信息;
- 活动入口(上方横向卡片):零号空洞、式舆防卫战;
- 小地图(右上角,圆形);
- 底部快捷键:相机(Tab)、快捷轮盘、F1-F4;
- UID(右下)。
其中右上角四个图标的模板匹配置信度均较高,是判断"当前确实在大世界"的核心证据。对应的 area 定义可以在 normal_world_basic.yml 中找到:按钮-信息(template_sub_dir: normal_world,template_id: message)、快捷手册(template_id: compendium)、功能导览(template_id: function_menu,id_mark: true)、预备编队(template_id: preset_config,id_mark: true),模板匹配阈值均为 0.7。
动态值(勿当特征)
- 左侧任务引导文字(如「看看门口的邦布...」「前往任务目标」);
- 左上角游戏内时间(星期几 / AM New Eridu);
- 多处
NEW!徽章(有未查看新内容时出现,查看后消失)。
这些元素会随游戏状态变化,若将其纳入特征会导致误判,因此文档明确标注为动态、勿当特征。
识别快照:模板 area 与 OCR 双通道
画面文档给出了 2026-07-06 核对的识别快照,匹配画面为大世界-普通(is_precise=True)。快照包含两类识别通道:
模板匹配 area 表
| area | 类型 | conf | 位置 (x, y, w×h) |
|---|---|---|---|
| 按钮-信息 | template | 0.991 | 1738, 928, 78×78 |
| 预备编队 | template | 0.990 | 1321, 51, 90×44 |
| 快捷手册 | template | 0.968 | 1531, 60, 48×43 |
| 功能导览 | template | 0.969 | 1801, 53, 44×44 |
OCR 识别文本表
| 文本 | 位置 | 备注 |
|---|---|---|
零号空洞/式舆防卫战 | 上方 | 终局玩法入口(稳定) |
看看门口的邦布.../前往任务目标 | 左侧 | 任务引导(动态) |
星期六/AM New Eridu | 左上 | 游戏内时间(动态) |
NEW! | 多处 | 未查看新内容徽章(动态) |
F1~F4/Enter | 右侧 | 快捷键 |
相机/Tab/快捷轮盘 | 底部 | 功能键 |
UID | 右下 | 玩家 ID |
屏幕配置详解:normal_world.yml 与 normal_world_basic.yml
大世界的屏幕信息在仓库中由两份配置共同描述:
normal_world_basic.yml(大世界-普通)
定义screen_id: normal_world_basic、screen_name: 大世界-普通,且pc_alt: true——表示 PC 端点击该画面上的元素前需要 Alt 解锁光标。共建模 6 个 area:
| area_name | pc_rect | template | goto / 手柄键 |
|---|---|---|---|
| 按钮-信息 | 1728,918,1826,1016 | normal_world/message,阈值 0.7 | — |
| 按钮-菜单 | 96,34,164,108 | 无 | goto 菜单;gamepad_key: menu |
| 快捷手册 | 1440,29,1679,113 | normal_world/compendium,阈值 0.7 | goto 快捷手册-训练;gamepad_key: compendium |
| 星期 | 201,38,270,86 | 无(OCR 识别「星期」) | — |
| 功能导览 | 1776,28,1869,117 | normal_world/function_menu,阈值 0.7,id_mark: true | gamepad_key: function_menu |
| 预备编队 | 1225,44,1505,102 | normal_world/preset_config,阈值 0.7,id_mark: true | — |
normal_world.yml(大世界,通用画面)
定义screen_id: normal_world、screen_name: 大世界,同样pc_alt: true。相比基础版,它补充了更多通用型交互区域:
- 菜单(100,54,162,94,
gamepad_key: menu):左上角汉堡「≡」图标,用于打开暂停菜单(底部含仓库、邮件、更多、绳网等入口),是进入各功能子画面的枢纽; - 地图(1696,319,1858,415,
gamepad_key: map):右上角地图按钮; - 小地图(1534,201,1744,411,
gamepad_key: minimap):配置中特别注明「2.8 版本更新后,勘域小地图相对于普通的要更往下 17px,这里写勘域小地图的精确坐标」; - 信息(1728,918,1826,1016):与基础版一致的右上角信息按钮;
- 快捷手册(1440,28,1689,118):goto 快捷手册-训练;
- 星期(201,38,270,86):OCR 文本「星期」,用于辅助判定;
- 好感度标题 / 好感度选项:大世界中的代理人好感度对话区域;
- 对话框取消 / 对话框确认:玩法恢复等模态弹窗的操作按钮;
- 任务追踪(10,115,350,300):左侧任务引导文本区域。
此外,screen_normal_world.py 以枚举方式补充定义了UIDarea(pc_rect 1814,1059,1919,1079),供需要读取玩家 ID 的场景使用。
条件弹窗:玩法恢复提示
大世界画面存在一种模态覆盖式弹窗:当上次退出时位于某玩法中(如迷失之地 / 特遣调查),进大世界会弹出「当前正在处理:特遣调查是否继续?」并提供取消 / 确认按钮。该弹窗属于模态覆盖而非独立画面,自动化逻辑需通过大世界画面下的对话框取消/对话框确认两个 area 处理。特遣调查是迷失之地(Lost Void)玩法的一种。
源码纵深:等待大世界(WaitNormalWorld)
登录流程完成后,框架需要确认角色已落地大世界。enter_game.py 在「点击进入游戏」节点中即加入大世界判定;而独立的 WaitNormalWorld 操作则供各玩法在需要时等待大世界加载,其识别策略值得细读:
- 画面名匹配:以
大世界-普通/大世界-勘域列表直接匹配当前画面,命中即成功; - area 兜底一:在
大世界画面下查找信息area(二值化模板匹配),命中即认为已到大世界; - area 兜底二:查找
星期area(OCR「星期」文本),命中即成功; - 重试机制:
check_once=False时每轮失败返回round_retry('未到达大世界', wait=1),节点node_max_retry_times=60,约 1 分钟内持续等待;check_once=True则只检测一次,供调用方自行决定后续流程。
该操作被多个玩法应用复用,例如 coffee_app.py(等待大世界加载后点单)与 commission_assistant_app.py。
源码纵深:返回大世界(BackToNormalWorld)
如果说 WaitNormalWorld 解决的是"怎么知道到了大世界",那么 BackToNormalWorld 解决的是"从任何画面都能回到大世界"。该操作注释明确写道:"需要保证在任何情况下调用,都能返回大世界,让后续的应用可执行"。其核心参数:
ensure_normal_world:是否必须回到普通大世界(而非勘域);allow_battle:是否允许在战斗状态直接返回成功(锄大地传送后落地即战斗时使用,调用方必须处理返回的status='大世界-战斗',否则角色会卡在战斗画面)。
check_screen_and_run节点内部按优先级依次尝试的兜底策略链是理解该操作的关键:
- 画面识别:直接命中
大世界-普通/大世界-勘域;勘域且需要普通大世界时,通过打开地图→执行传送(MapTransport 到「录像店-房间」)切换; - goto 画面:
round_by_goto_screen尝试按框架内置路径前往大世界; - 小地图 / 左上角区域:检测小地图播放遮罩(
play_mask_found),或点击「左上角-区域」返回街区/勘域(用 0.5 LCS 匹配「区」「域」); - 战斗处理:
战斗-菜单的按钮-退出战斗→按钮-退出战斗-确认,以及按钮-脱离卡死(勘域误入战斗时使用); - 通用返回:
画面-通用的返回/关闭/完成(注释特别提醒:返回需放在完成之前,否则在丽都城募 app 购买大月卡后会误点击「已完成购买」,对应 issue #2005); - 空洞退出:
hollow_event_utils.check_in_hollow检测在空洞内时执行HollowExitByMenu退出空洞; - 对话框确认/取消轮换:为避免卡在只点一种按钮,
prefer_dialog_confirm标志使确认 / 取消轮流优先点击; - 快捷手册关闭:识别到 TAB 列表(
check_compendium)时点击退出; - 好感度对话:OCR 识别
好感度标题区域是否出现代理人名字(AgentEnum列表 + 「小黑」),有则轮流点击好感度选项中的不同选项,防止错误点击; - 战斗画面兜底:识别到
战斗画面/按键-普通攻击时,allow_battle直接成功,否则打开战斗菜单再进入下一轮; - 盲点返回:最后无识别点击
画面-通用/返回(左上角红色返回按钮,相当于点击空白区域),等待 0.5s 后重试(注释引用 issue #1357:识别耗时后点击需缩短等待,避免误回菜单)。
该操作与goto体系配合紧密:例如 GotoMenu 在无法直接前往菜单时,会先执行BackToNormalWorld回大世界再重试。各玩法应用也大量复用,如 email_app.py、city_fund_app.py、drive_disc_dismantle_app.py、lost_void_app.py 等,均以「返回大世界」作为玩法结束后的收尾节点。
大世界在自动化流程中的枢纽角色
从源码调用面可以清晰看到大世界作为枢纽的地位:
- 登录入口:enter_game.py 以「判定是否进入大世界」作为登录成功的标志;
- 子画面入口:大世界左上角菜单(
按钮-菜单)goto 到菜单画面,进而进入仓库、邮件、更多、绳网等子功能;快捷手册 goto 到快捷手册-训练; - 玩法回环:零号空洞、式舆防卫战等终局玩法从大世界上方活动入口卡片进入(
NEW!徽章表示有新内容);各种日常玩法(咖啡、邮件、驱动盘拆解、城市基金、迷失之地等)结束时统一调用BackToNormalWorld收尾; - 锄大地衔接:world_patrol_app.py 场景中通过
allow_battle=True让传送后落地即战斗的情况直接返回,由调用方处理大世界-战斗状态。
备注:建模状态与待确认项
画面文档还记录了该画面的建模边界与后续待办:
- 已建模:
大世界-普通,is_precise=true,4 个 template area,是所有玩法的入口枢纽; - NEW! 徽章为动态值(查看后消失),勿当特征;
- 任务引导 / 游戏内时间均为动态,勿当特征;
- 大世界变体:screen_info 名
大世界-普通暗示存在其他变体(战斗、对话、弹窗等),待补充; - 左上角待确认:菜单按钮「≡」右侧 x≈300+ 疑似有玩家头像可交互(点击打开角色界面),但 screen_info 未建模,未验证,待现场确认。
若要继续深入,可对照画面文档 docs/game/screens/大世界.md 与两份屏幕配置 normal_world.yml、normal_world_basic.yml 自行核对坐标,并结合 wait_normal_world.py 与 back_to_normal_world.py 追踪完整调用链。
- 桌面应用
- RPA
- 计算机视觉
【免费下载链接】ZenlessZoneZero-OneDragon
绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄
相关推荐
绝区零一条龙:游戏启动画面序列的自动化识别与跳过机制解析
绝区零一条龙:游戏启动画面序列的自动化识别与跳过机制解析 导读 本篇基于 ZenlessZoneZero OneDragon(绝区零 一条龙)开源仓库的 游戏启
桌面应用RPA计算机视觉QMK 固件中的 Atreus62 键盘支持:从键盘配置到构建烧录全指南
QMK 固件中的 Atreus62 键盘支持:从键盘配置到构建烧录全指南 本篇技术指南以 QMK 固件仓库中的 keyboards/atreus62/readm
桌面应用RPA计算机视觉绝区零一条龙:画中画(PiP)模式架构与实现深度解析
绝区零一条龙:画中画(PiP)模式架构与实现深度解析 导读 画中画(Picture in Picture,PiP)模式是「绝区零 一条龙」(ZenlessZon
桌面应用RPA计算机视觉
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考