基于AI视觉识别的游戏自动化:从原理到《原神》辅助实践
2026/8/2 10:24:44 网站建设 项目流程

1. 项目概述:当AI自动化遇上《原神》

如果你玩《原神》,并且对重复性的日常任务、采集、刷副本感到疲惫,那你可能已经听说过“自动化辅助”这个概念。BetterGI,作为目前社区内一个备受关注的工具,它代表了一种新的思路:利用AI视觉识别和自动化脚本技术,来模拟玩家的操作,从而解放双手。这和我们传统认知里的“外挂”有本质区别——它不修改游戏内存数据,不发送异常封包,只是在屏幕层面“看”和“点”,理论上更接近于一个高度智能的“物理外挂”或自动化机器人。

我接触这类工具已经有一段时间了,从早期的简单按键精灵脚本,到如今集成YOLO等目标检测模型的AI方案,其发展脉络非常清晰:追求更高的智能度、更强的泛化能力和更低的封号风险。BetterGI正是这一脉络下的一个集大成者,它开源、免费,并且社区活跃,对于想要研究游戏AI自动化,或者单纯想减轻日常负担的玩家来说,是一个绝佳的切入点。

但我要强调的是,使用任何自动化工具都存在风险。米哈游的反作弊系统(通常被称为“米哈游盾”)在不断升级,其检测维度包括但不限于操作模式、行为逻辑、客户端异常等。因此,本指南的核心目的,不仅是教你如何“用起来”,更重要的是让你理解其背后的原理、潜在的风险点以及如何以相对安全的方式配置和使用。这更像是一次技术探索,请务必在了解风险的前提下,抱着学习和研究的心态进行。

2. BetterGI核心原理与架构拆解

要安全有效地使用BetterGI,绝不能把它当成一个黑盒“一键启动”的软件。理解其工作原理,是你规避风险、进行个性化配置的第一步。

2.1 基于视觉的AI自动化:为何是更优解?

传统的游戏自动化多基于内存读写或封包拦截,这种方式效率极高,但特征也极其明显,极易被反作弊系统检测并封禁。BetterGI选择了另一条路:纯视觉识别

它的工作流程可以概括为:“所见即所得”。工具通过ADB(Android Debug Bridge)或类似技术获取你手机或模拟器的实时屏幕截图,然后将这张截图输入到预先训练好的AI模型中。这个模型已经学会了识别《原神》游戏界面中的各种元素:比如地图上的神瞳闪光点、采集物(甜甜花、松茸)、怪物血条、任务指引图标、甚至是对话框的“F”键提示。

识别出目标后,工具会计算出该目标在屏幕上的坐标,然后通过ADB模拟一个点击或滑动事件,操作角色移动、攻击、对话或采集。整个过程,工具没有“侵入”游戏进程内部,它只是在“观察”和“模仿”人类玩家的操作。

为什么说这种方式风险相对较低?因为从游戏服务器的视角来看,它接收到的操作指令依然来自于正常的客户端输入流(通过ADB注入的触控事件),这与你自己用手指在屏幕上点击,在数据层面上没有本质区别。反作弊系统更难区分这到底是人在操作,还是一个高度仿真的自动化脚本。当然,如果脚本行为过于规律、精准(例如每秒点击频率完全一致、移动路径是完美的数学曲线),仍然可能被基于行为分析的检测机制捕捉到。

2.2 BetterGI的核心模块组成

BetterGI不是一个单一的程序,而是一个由多个模块协同工作的系统。了解这些模块,有助于你在出问题时进行排查。

  1. 控制中枢(Core):通常是运行在你电脑上的Python主程序。它负责协调整个流程:调用截图模块、调用AI识别模块、处理识别结果、决策下一步动作、发送操作指令。
  2. 图像获取模块:负责从移动设备(手机/模拟器)抓取屏幕画面。主流方式是ADB的screencap命令。这个模块的性能和稳定性直接决定了整个系统的帧率(FPS)。
  3. AI识别模块(Inference):这是BetterGI的“大脑”。它加载训练好的神经网络模型(通常是.onnx.pt格式),对截图进行推理,输出图中所有感兴趣目标的类别和坐标框。社区版通常使用YOLO系列模型,因其在速度和精度上取得了很好的平衡。
  4. 任务策略模块(Task):定义了具体要做什么。比如“每日委托”任务,它会分解为:识别委托图标 -> 点击追踪 -> 自动寻路 -> 识别怪物 -> 执行战斗循环 -> 识别领取奖励按钮 -> 点击。每个任务都是一个独立的脚本或配置文件。
  5. 操作执行模块:通过ADB的shell input命令,将计算好的坐标转化为tap(点击)、swipe(滑动)等事件,发送到设备。
  6. 用户界面(UI)与配置:提供图形界面或配置文件,让用户选择任务、设置参数(如攻击技能释放间隔、是否自动吃食物等)。

2.3 与“GIMI模式”及“抢码工具”的关联

在相关热词中,你可能会看到“原神gimi模式”和“原神抢码工具”。这里简单厘清一下它们与BetterGI的关系。

  • GIMI模式:这通常指代的是《云·原神》或一些云游戏平台。BetterGI在云游戏环境下理论上也能运行,但延迟会更高,因为截图和指令传输需要经过网络,这对需要快速反应的战斗场景很不友好。更多时候,BetterGI是在本地模拟器或通过USB连接的实体手机上运行。
  • 抢码工具:这指的是用于在《原神》官方直播、活动中自动抢兑换码的脚本。其技术原理与BetterGI高度同源,都是视觉识别(识别兑换码输入框、确认按钮)加自动化操作。你可以把“抢码”看作是BetterGI能执行的众多“任务”中的一种。社区里可能有人专门为抢码优化了识别模型和点击策略,使其更快更准。

理解这些关联,能让你明白BetterGI技术的通用性。它本质上是一个游戏前端的通用自动化框架,原神只是它当前主要适配的应用场景。

3. 环境准备与安装部署详解

纸上得来终觉浅,我们开始动手搭建。一个稳定的环境是后续一切操作的基础。这里我以最常用的“Windows PC + 雷电模拟器”为例,因为模拟器屏幕固定、性能稳定,最适合自动化。

3.1 基础软件准备

你需要准备以下软件,请务必从官方或可信源下载:

  1. Python 3.8+:BetterGI的核心是Python编写的。建议安装Python 3.8或3.9版本,兼容性最好。安装时务必勾选“Add Python to PATH”。
  2. Git:用于克隆BetterGI的源代码仓库。
  3. Android SDK Platform-Tools:这里面包含了我们至关重要的ADB工具。你可以单独下载,也可以下载完整的Android Studio后只使用其platform-tools目录。
  4. 雷电模拟器 9:推荐使用9版本,兼容性和稳定性较好。安装后,在模拟器设置中,将“性能设置”调整为“高性能模式”,分辨率设置为1600x900(dpi 240) 或1280x720(dpi 240)。固定一个分辨率至关重要,因为AI模型是在特定分辨率下训练的,改变分辨率会导致识别失败。
  5. 《原神》游戏客户端:在模拟器内安装好游戏,并完成前期新手引导,进入可以自由操作的世界。

注意:不建议在主力账号或充值较多的账号上直接进行测试。可以使用一个小号或新号在模拟器上先行探索。

3.2 BetterGI本体的获取与安装

BetterGI是一个开源项目,代码托管在GitHub上。由于项目可能更新,具体安装步骤请以项目官方README为准。以下是通用流程:

  1. 克隆代码:打开命令行(CMD或PowerShell),切换到一个你喜欢的目录,执行:

    git clone https://github.com/项目作者/BetterGI.git cd BetterGI

    (请注意,此处地址为示例,实际地址请搜索最新的项目仓库)

  2. 安装Python依赖:项目根目录下通常会有一个requirements.txt文件,里面列出了所有需要的Python库。

    pip install -r requirements.txt

    这个过程可能会耗时几分钟,具体取决于你的网络。常见的核心库包括opencv-python(图像处理),onnxruntimetorch(AI推理),pynput(键盘监听),pillow等。

  3. 下载AI模型文件:视觉识别需要预训练模型。这些模型文件(.onnx.pt)通常较大,不会直接放在Git仓库里。你需要按照项目说明,从提供的网盘链接或Release页面下载,并放置到项目指定的文件夹内,例如assets/models/

3.3 ADB连接与关键配置

这是连接电脑(BetterGI)和模拟器(游戏)的桥梁,也是最容易出错的环节。

  1. 启动模拟器并开启《原神》:确保游戏已经运行在主界面。

  2. 连接ADB:打开命令行,导航到你存放ADB工具(platform-tools)的目录。首先查看当前连接的设备:

    adb devices

    如果列表为空,说明模拟器ADB服务未连接。雷电模拟器通常自带ADB,你可以使用其安装目录下的adb.exe(例如D:\LeiDian\LDPlayer9\adb.exe)。更通用的方法是让模拟器开启网络ADB。

    • 在雷电模拟器右侧工具栏找到“设置”->“其他设置”,开启“Android调试桥(ADB)”。
    • 然后使用命令连接(雷电模拟器的默认端口是5555):
      adb connect 127.0.0.1:5555

    再次执行adb devices,你应该能看到一个设备,状态为device

  3. 测试截图:这是一个重要的验证步骤。

    adb exec-out screencap -p > screen.png

    执行后,当前目录下会生成一个screen.png文件。打开它,确认它是你模拟器当前画面的准确截图,且画面正常、无黑屏、无扭曲。如果这一步失败,后续所有操作都无法进行。

  4. 配置BetterGI:在BetterGI的项目文件夹中,找到一个配置文件(可能是config.yamlconfig.json)。你需要根据你的模拟器设置修改关键参数:

    • adb_address: 设置为127.0.0.1:5555
    • resolution: 严格设置为你的模拟器分辨率,如1600x900
    • default_confidence: 目标识别置信度阈值,新手可以保持默认(如0.6),后期可以根据识别情况微调。

4. 核心任务配置与实战演练

环境搭好,我们进入最激动人心的部分:让AI帮你干活。BetterGI通常以“任务”为单位运行,我们挑选两个最经典的任务来拆解:自动采集和自动每日委托。

4.1 自动采集任务配置与优化

采集是最枯燥的重复劳动之一,也是自动化最能发挥价值的场景。

  1. 任务启动:运行BetterGI的主程序(可能是main.pygui.py)。在图形界面中,找到“自动采集”或类似的任务选项。

  2. 区域设置:大多数采集脚本不会让你满世界乱跑,那样效率太低且不可控。你需要指定一个采集区域。通常有两种方式:

    • 预设路线:脚本可能内置了几条经典路线,如“风起地-晨曦酒庄沿线果树路线”、“璃月轻策庄竹笋路线”。你选择一条即可。
    • 自定义标点:这是更高级的功能。你可以手动操作角色,在你想采集的各个点位(比如6个甜甜花丛)分别按下某个快捷键(如F2),将当前坐标记录为路径点。脚本会按照你记录的顺序依次移动并采集。
  3. 识别物配置:在配置文件中,你可以指定本次采集的目标物品。例如:

    collect_items: - 甜甜花 - 松茸 - 树莓

    脚本会优先识别和采集这些物品。如果某个点位的物品已经被采集,脚本识别不到,则会等待片刻(可配置)后前往下一个点。

  4. 实操心得与避坑指南

    • 视角固定:开始采集前,将游戏视角调整为俯视或斜45度角,并锁定视角。统一的视角能极大提高AI识别的准确率。
    • 光照与天气:黄昏、夜晚或雨天可能会影响识别效果。尽量在白天、晴朗的天气下运行采集脚本。有些高级脚本会内置“调整时间到白天”的功能。
    • 障碍物处理:如果角色被地形卡住,脚本可能会陷入循环。好的脚本会包含“脱困逻辑”,比如检测到长时间未移动后,尝试跳跃或向随机方向短距离移动。你需要观察并测试脚本的脱困能力。
    • 性能权衡:识别频率(每秒截图识别次数)越高,采集越快,但电脑CPU/GPU负载也越高。对于采集这种不需要毫秒级反应的任务,将频率设置在1-2Hz(每秒1-2次)是完全足够的,这也能降低功耗和发热。

4.2 自动每日委托实战解析

每日委托的自动化复杂度远高于采集,因为它涉及对话、战斗、多种目标识别和状态判断。

  1. 任务逻辑链拆解:一个完整的每日委托自动化,可以分解为以下子步骤:

    • 步骤一:接取委托。识别地图上的委托图标(蓝色感叹号)或打开委托界面,点击“追踪”。
    • 步骤二:自动寻路。利用游戏内置的自动寻路功能(点击任务追踪后出现的那个小鞋子图标)。BetterGI只需要识别并点击这个“小鞋子”即可。接下来的跑路由游戏自身完成。
    • 步骤三:场景交互。到达地点后,识别NPC头上的对话图标,触发对话。这里需要处理对话点击,通常是通过识别“继续”按钮或快速连点来实现。
    • 步骤四:战斗环节。这是核心难点。脚本需要:
      • 识别敌人:通过血条或模型锁定敌人。
      • 释放技能:按照预设顺序(如E技能 -> Q技能 -> 普攻循环)点击技能按钮。这里可以配置技能释放间隔,模拟人类操作的不确定性。
      • 躲避攻击:一些高级脚本会尝试识别敌人的攻击前摇(如丘丘人暴徒的冲锋准备动作),并控制角色移动闪避。但实现稳定闪避非常困难。
      • 拾取掉落物:战斗结束后,识别地上的光点并移动过去。
    • 步骤五:交付任务。再次与NPC对话,领取奖励。
  2. 配置个性化战斗策略:在BetterGI的战斗配置部分,你可以为不同的角色配置技能释放序列。例如,为你的主C胡桃配置:

    循环开始: 等待1秒 按下 E 键(元素战技) 等待0.5秒 按下鼠标左键(普攻)10次 如果 Q 能量满,则按下 Q 键(元素爆发) 循环结束

    你可以为每个队伍位置绑定不同的配置,并在脚本中切换。

  3. 关键注意事项

    • 队伍配置:自动化战斗对队伍容错率要求高。优先选择生存能力强、操作简单的队伍。例如,“钟离 + 心海 + 雷电将军 + 夜兰”这种有超厚护盾、后台自动攻击、大招无敌帧的队伍,远比需要复杂手法打反应的“胡桃蒸发队”更适合脚本。
    • 禁用镜头转动:在游戏设置中,关闭“战斗智能镜头”等功能,防止角色放大招时镜头剧烈晃动,导致AI丢失目标。
    • 准备充足的食物:脚本不会聪明到在残血时主动打开背包吃食物。确保你的角色携带了足够的恢复类食物(如甜甜鸡酿鸡),或者使用“诺艾尔”、“班尼特”等自带治疗的角色。
    • 全程监控:首次运行任何战斗自动化时,千万不要离开电脑。你需要观察脚本在遇到复杂地形、多波次敌人、特殊机制(如需要击破盾牌)时的表现,随时准备手动接管,防止角色死亡或脚本卡死。

5. 风险认知与安全使用准则

这是本指南最重要的一章。使用自动化工具,必须对风险有清醒的认识,并采取所有可能的措施来规避。

5.1 米哈游反作弊机制浅析

虽然我们无法得知其全部细节,但通过社区经验和一些公开信息,可以推断其检测维度包括:

  1. 行为模式分析:这是最核心的。人类玩家的操作存在随机性:移动路径有微小的偏移、点击位置有细微差别、技能释放间隔不完全固定、战斗中有无意义的移动(逛街)。而脚本的行为往往是高度规律和精确的:完美的直线移动、完全固定的技能CD循环、毫秒级精准的点击。这种“过于完美”的行为模式是最大的风险点。
  2. 客户端环境检测:游戏客户端可能会检测是否存在异常的进程、调试接口(如ADB)的调用频率、甚至模拟器特征。虽然ADB本身是合法接口,但高频、规律的调用可能成为特征。
  3. 数据一致性校验:服务器会校验客户端上报的操作序列在逻辑上是否合理。例如,角色在A点采集后,瞬间(短于合理移动时间)就在遥远的B点开始了战斗,这就会触发异常。

5.2 降低风险的实操策略

基于以上分析,我们可以制定相应的策略:

  1. 注入随机性与人性化延迟

    • 点击坐标随机偏移:不要每次都点击目标的绝对中心。让脚本在目标识别框内,随机选择一个点进行点击。
    • 操作间隔随机化:在两个操作之间加入随机的延迟。例如,识别到采集物后,等待0.8秒 + random.uniform(0, 0.4)秒再点击。技能释放循环也加入随机间隔。
    • 路径随机摆动:在自动寻路过程中,可以间歇性地插入微小的、无意义的左右移动指令,模拟人类摇杆操作的轻微波动。
  2. 限制使用时长与频率

    • 不要24小时挂机:这是最危险的行为。将自动化时间控制在模仿正常玩家行为的范围内,比如每天上线1-2小时,完成日常和树脂清理后就下线。
    • 避免在高峰期运行:虽然无直接证据,但在服务器负载高、监测可能更严格的时间段(如晚间),减少使用。
    • 模拟“下线”行为:脚本结束后,不要直接关闭游戏或模拟器。可以添加一段“随机走动-打开地图-打开背包-查看角色”的随机操作序列,然后走到一个安全区域(如蒙德城或璃月港的角落),再执行退出游戏的操作。
  3. 环境隔离与账号管理

    • 使用独立的模拟器环境:专门为自动化创建一个模拟器实例,与你自己手动玩游戏的实例物理隔离。
    • 坚决不使用主账号:这是铁律。所有测试和自动化都放在一个无关紧要的小号上进行。即使未来你觉得非常稳定了,也不建议在主账号上冒险。
  4. 保持更新与关注社区:BetterGI是开源项目,当游戏版本更新导致界面变化时,识别模型可能需要更新。关注项目动态,及时更新模型和脚本。同时,多关注社区讨论,了解最新的风险预警和封号案例。

6. 常见问题排查与进阶调试

即使按照指南一步步来,你也可能会遇到问题。这里汇总一些常见故障及其解决方法。

6.1 连接与识别类问题

问题现象可能原因排查步骤与解决方案
adb devices无设备1. 模拟器ADB未开启
2. ADB端口被占用
3. 电脑有多版本ADB冲突
1. 确认模拟器设置中ADB调试已开启。
2. 重启模拟器,或执行adb kill-server后重连。
3. 使用模拟器自带的ADB,或在命令行中指定完整路径。
截图黑屏/花屏1. 模拟器图形渲染模式不兼容
2. ADB版本过旧
1. 尝试切换模拟器的图形渲染模式(如DirectX与OpenGL互换)。
2. 更新ADB工具到最新版本。
AI识别不到任何目标1. 分辨率不匹配
2. 模型文件未正确放置或损坏
3. 游戏画面UI比例/风格变化
1.反复检查BetterGI配置与模拟器实际分辨率是否完全一致
2. 核对模型文件路径,尝试重新下载模型。
3. 游戏大版本更新后,旧模型可能失效,等待社区更新。
识别坐标点击位置偏移1. 模拟器窗口有缩放
2. 游戏内UI偏移设置
1. 确保模拟器窗口以100%缩放显示,不要用浏览器或系统缩放。
2. 检查游戏设置中的“UI偏移”是否归零。

6.2 运行与逻辑类问题

问题现象可能原因排查步骤与解决方案
角色移动卡住1. 被地形/物体卡住
2. 寻路逻辑bug
1. 观察卡住点,手动操作脱离。考虑在脚本中增加“防卡死”检测,如连续10秒坐标未变化则执行跳跃或反向移动。
2. 可能是任务脚本的路径点设置不合理,需要优化路径。
战斗时技能乱放或发呆1. 技能识别区域错误
2. 角色能量/CD状态判断失败
1. 调整技能按钮的识别区域坐标(需修改脚本代码)。
2. 检查脚本是否依赖能量识别或CD计时,这部分识别难度高,可能不稳定。可简化为固定时间轴循环,不依赖状态。
任务流程中断1. 某个中间状态识别失败(如对话完成按钮)
2. 网络延迟导致画面加载慢
1. 打开调试模式,查看当前截图和识别结果,确认是哪个环节的图片没识别到。可能需要调整该环节的识别阈值或图像模板。
2. 在关键状态转换后增加等待时间(如进入新场景后等待3秒)。

6.3 进阶调试技巧

当遇到复杂问题时,你需要更深入地介入:

  1. 开启调试可视化:大多数AI自动化脚本都提供调试模式。开启后,会在电脑上显示一个实时窗口,上面用方框标出AI识别到的所有目标及其置信度。这是排查识别问题最直观的方式。你可以清楚地看到脚本“眼里”的世界是什么样的。
  2. 日志分析:运行脚本时,仔细查看命令行窗口输出的日志。错误信息、当前执行的动作、识别到的目标坐标都会打印在这里。通过日志,你可以一步步回溯脚本的执行逻辑,找到断点。
  3. 自定义图像模板:对于某些固定不变的UI元素(如“领取奖励”的黄色按钮),如果通用模型识别不好,你可以使用更传统的“图像模板匹配”方法。用截图工具截取该按钮的清晰图片,作为模板,让脚本直接在屏幕上搜索这个模板图片。OpenCV的matchTemplate函数对此非常有效,且速度极快。
  4. 修改与贡献:BetterGI是开源项目,如果你解决了某个特定问题,或者为某个角色优化了战斗策略,可以考虑将你的修改提交回项目(Pull Request),这不仅能帮助他人,也能让你更深入地理解整个系统。

这条路充满了探索的乐趣,也布满了荆棘。它考验的不仅仅是你配置软件的能力,更是你分析问题、规避风险、在规则边缘谨慎求索的智慧。记住,工具本身无善恶,关键在于使用它的人。希望这份指南能为你打开一扇窗,看到技术与游戏结合的另一种可能性,并以安全、负责的态度去实践它。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询