ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

原神小助手自动化辅助指南:OCR、图像识别与自动战斗怎么玩

原神小助手自动化辅助指南:OCR、图像识别与自动战斗怎么玩

原神小助手自动化辅助指南:OCR、图像识别与自动战斗怎么玩

【免费下载链接】genshin_impact_assistant原神小助手 Genshin Assistant (CN/EN) | 自动战斗,秘境,领日常,半自动委托项目地址: https://gitcode.com/GitHub_Trending/ge/genshin_impact_assistant

原神小助手(Genshin Impact Assistant)是一个基于图像识别和模拟按键的《原神》自动化工具:它通过 YOLOX 目标检测加 PPOCR 文字识别读懂游戏画面,再用模拟键鼠完成操作,帮你自动战斗、刷秘境、采大世界材料、领日常。适合想少肝日常、愿意自己配环境的玩家。

痛点:为什么需要它

每天上线后的固定流程:跑委托、打秘境、采材料、领奖励,一两个小时就这么过去了。这些环节本身不难,但重复到每天做就是纯粹的体力活。

更麻烦的是细节:委托里对话选项要选对,秘境打完要记得回地图领奖励,采矿要绕着点走别漏掉。手动做一遍没负担,一天三遍开始烦心。原神小助手做的事情就是把这些环节串成一条自动流程,你只负责开窗口和配好任务列表。

能力全景

功能模块一句话说明
自动战斗识别敌我血量与技能CD,按你写的战术序列自动放技能、切人
自动秘境自动进入秘境、打完战斗、领取奖励并循环
自动采集按配置的资源点位路径规划移动并拾取
每日委托自动接取部分委托、完成对话与战斗环节
领取日常自动完成日常奖励领取流程
地脉衍出自动巡礼地脉之花并领取奖励

所有功能统一由 Web 界面调度,入口代码在 source/task/,每个任务都是一个独立的 Task 类,按需组合到任务列表里。

核心功能拆解

自动战斗:按你写的战术卡放技能

它做什么:进战斗后自动锁定敌人、释放 E/Q、切人,直到战斗结束。

怎么实现:CombatController是个线程,主循环里不断调用图像识别判断场上角色状态(血量条、技能CD、大招能量),然后按你在战术文件里定义的序列执行攻击、E技能、Q技能。切人逻辑单独由SwitchCharacterOperator负责,可以按优先级自动救场。角色死亡图标一出现就暂停并弹出取消框,防止卡死。

关键入口:战斗代码在 source/combat/,每个角色的技能顺序写在config/tactic/下的战术文件里(team.uijsontemplate是模板)。

自动秘境:从进图到领奖一条龙

它做什么:找到秘境挑战点、进入、打完、领奖励、返回,循环执行。

怎么实现:这个流程被拆成一串有限状态机的 state,每个 state 负责一步(移动到挑战点、进入战斗、战斗结束判定、领奖)。状态之间靠截图识别推进,哪个环节卡住会走对应的错误码处理,而不是整体崩溃。

关键入口:流程定义在 source/task/domain/,状态机骨架在 source/flow/。

自动采集:按点位跑图的资源收集

它做什么:按你配置的采集点坐标,规划路线、走到点、按 F 拾取。

怎么实现:采集任务读取config/collection_path/里的点位 JSON,交给convert_collect_json转成标准的 Mission 执行器;Mission 内部的移动模块负责小地图导航和路径跟随,拾取模块负责 F 键判定。委托任务也是同一套 Mission 机制写的,source/commission/commissions/下有现成的委托脚本示例,看它们比读文档快。

跑起来:从零到首次运行

环境要求:

  • Windows 系统(代码依赖 pywin32、PyDirectInput 等 Windows 键鼠库)
  • Python 3.7.6+(README 指定的版本基线)
  • 显卡支持(YOLOX 推理用 PyTorch)
  • 《原神》以 1080P 窗口模式运行

安装与启动:

git clone https://gitcode.com/GitHub_Trending/ge/genshin_impact_assistant cd genshin_impact_assistant pip install -r requirements.txt
python genshin_assistant.py

启动后会自动起一个本地 Web 服务(端口 22268),并用 pywebview 弹出界面窗口。首次启动需要做的事:

  1. 在 Web 界面完成游戏画面区域的校准,让截图对准实际游戏窗口
  2. 选择游戏语言环境(中/英文界面分别对应不同的识别素材)
  3. 配置第一个任务(建议从"领取日常"这种流程短的开始验证环境)

配置与调参

整体思路是:config/目录按功能分文件夹,YAML 和 JSON 混用,Web 界面上的表单最终落盘成这些文件。改文件前建议先备份,界面和文件之间会互相覆盖。

最常改的三项:

  • 战术文件:config/tactic/下每个队伍一份文件,定义出场角色顺序、站位(Main/Recovery/Shield)和每个角色的技能连招序列。改完战斗行为立刻变化,是最值得折腾的配置。
  • 采集点位:config/collection_path/放资源点位坐标,加一行坐标就多一个采集目标;坐标格式用天理坐标系,仓库里有dev_tools/下的辅助脚本帮你取点。
  • 任务模板:config/json_template/里的 jsontemplate 文件是各类任务的"出厂模板",复制一份改参数比手建文件省事。

底层是怎么工作的

一句话概括:截图是眼睛,状态机是大脑,模拟键鼠是手。程序每步先抓一帧游戏画面,喂给 YOLOX(认敌人、血条、图标)和 PPOCR(读文字、认地名任务名),得到结构化状态后交给当前任务的状态机决策,决策结果翻译成点击、按键、小地图导航等动作执行下去,下一帧截图再验证结果是否如预期。

游戏截图 → YOLOX目标检测 + PPOCR文字识别 → 状态判断 ↑ ↓ 验证结果 ← 模拟键鼠动作 ← 任务状态机决策

想深挖的人可以按这三条线读代码:识别层在 source/api/(YOLOX 和 PPOCR 的调用封装),状态机在 source/flow/,设备控制(Windows 键鼠、ADB、MaaTouch)在 source/device/。

踩坑与排错

  • 识别不到任何图标:通常是游戏分辨率或窗口位置与校准不一致。解法:固定 1080P 窗口模式,重新在 Web 界面校准区域,别用无边框窗口。
  • 战斗中途卡住不动:可能是角色死亡或 UI 弹窗拦截。程序检测到死亡图标会暂停并弹取消框,手动处理掉继续即可;频繁触发说明战术里的治疗位没配对。
  • 委托跑到一半报错:看日志里的错误码。委托按 Mission 机制执行,每个环节返回错误码,source/error_code/下有对应说明,常见是地图移动未到位就进入了下一步。
  • 游戏大版本更新后功能失效:图标和素材位置会变,识别素材需要重新采集。关注项目更新,等官方素材更新后再跑。
  • 安全提醒:此类工具通过模拟输入操作游戏,存在账号风险,建议只在可承受损失的账号上使用;另外项目声明软件仅供学习交流,商用代练出问题与项目无关。

适合谁用 & 不适合谁

适合两类人:一是每天日常量固定的玩家,愿意花半小时配一次环境换掉每天的重复劳动;二是想学"图像识别 + 状态机"这套自动化范式的开发者,代码结构(Mission/Task/Flow 三层)比较干净,当教程代码读不错。

不适合追求"装完就能用"的人——首次配置有门槛,环境、校准、战术文件都得自己碰。

参与项目

问题直接提 issue,新功能或修复走 PR。仓库是 GPL v3 协议,修改后的衍生版本注意遵循开源义务。

收尾

它的本质是"截图 → 识别 → 状态机决策 → 模拟按键"这条链路,把日常里可脚本化的环节全部接管。与其读十篇文档,不如克隆下来跑一遍,跑不通的地方正好就是学习点。

【免费下载链接】genshin_impact_assistant原神小助手 Genshin Assistant (CN/EN) | 自动战斗,秘境,领日常,半自动委托项目地址: https://gitcode.com/GitHub_Trending/ge/genshin_impact_assistant

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进