基于AI视觉识别的游戏自动化:从原理到《原神》辅助实践

基于AI视觉识别的游戏自动化:从原理到《原神》辅助实践
1. 项目概述当AI自动化遇上《原神》如果你玩《原神》并且对重复性的日常任务、采集、刷副本感到疲惫那你可能已经听说过“自动化辅助”这个概念。BetterGI作为目前社区内一个备受关注的工具它代表了一种新的思路利用AI视觉识别和自动化脚本技术来模拟玩家的操作从而解放双手。这和我们传统认知里的“外挂”有本质区别——它不修改游戏内存数据不发送异常封包只是在屏幕层面“看”和“点”理论上更接近于一个高度智能的“物理外挂”或自动化机器人。我接触这类工具已经有一段时间了从早期的简单按键精灵脚本到如今集成YOLO等目标检测模型的AI方案其发展脉络非常清晰追求更高的智能度、更强的泛化能力和更低的封号风险。BetterGI正是这一脉络下的一个集大成者它开源、免费并且社区活跃对于想要研究游戏AI自动化或者单纯想减轻日常负担的玩家来说是一个绝佳的切入点。但我要强调的是使用任何自动化工具都存在风险。米哈游的反作弊系统通常被称为“米哈游盾”在不断升级其检测维度包括但不限于操作模式、行为逻辑、客户端异常等。因此本指南的核心目的不仅是教你如何“用起来”更重要的是让你理解其背后的原理、潜在的风险点以及如何以相对安全的方式配置和使用。这更像是一次技术探索请务必在了解风险的前提下抱着学习和研究的心态进行。2. BetterGI核心原理与架构拆解要安全有效地使用BetterGI绝不能把它当成一个黑盒“一键启动”的软件。理解其工作原理是你规避风险、进行个性化配置的第一步。2.1 基于视觉的AI自动化为何是更优解传统的游戏自动化多基于内存读写或封包拦截这种方式效率极高但特征也极其明显极易被反作弊系统检测并封禁。BetterGI选择了另一条路纯视觉识别。它的工作流程可以概括为“所见即所得”。工具通过ADBAndroid Debug Bridge或类似技术获取你手机或模拟器的实时屏幕截图然后将这张截图输入到预先训练好的AI模型中。这个模型已经学会了识别《原神》游戏界面中的各种元素比如地图上的神瞳闪光点、采集物甜甜花、松茸、怪物血条、任务指引图标、甚至是对话框的“F”键提示。识别出目标后工具会计算出该目标在屏幕上的坐标然后通过ADB模拟一个点击或滑动事件操作角色移动、攻击、对话或采集。整个过程工具没有“侵入”游戏进程内部它只是在“观察”和“模仿”人类玩家的操作。为什么说这种方式风险相对较低因为从游戏服务器的视角来看它接收到的操作指令依然来自于正常的客户端输入流通过ADB注入的触控事件这与你自己用手指在屏幕上点击在数据层面上没有本质区别。反作弊系统更难区分这到底是人在操作还是一个高度仿真的自动化脚本。当然如果脚本行为过于规律、精准例如每秒点击频率完全一致、移动路径是完美的数学曲线仍然可能被基于行为分析的检测机制捕捉到。2.2 BetterGI的核心模块组成BetterGI不是一个单一的程序而是一个由多个模块协同工作的系统。了解这些模块有助于你在出问题时进行排查。控制中枢Core通常是运行在你电脑上的Python主程序。它负责协调整个流程调用截图模块、调用AI识别模块、处理识别结果、决策下一步动作、发送操作指令。图像获取模块负责从移动设备手机/模拟器抓取屏幕画面。主流方式是ADB的screencap命令。这个模块的性能和稳定性直接决定了整个系统的帧率FPS。AI识别模块Inference这是BetterGI的“大脑”。它加载训练好的神经网络模型通常是.onnx或.pt格式对截图进行推理输出图中所有感兴趣目标的类别和坐标框。社区版通常使用YOLO系列模型因其在速度和精度上取得了很好的平衡。任务策略模块Task定义了具体要做什么。比如“每日委托”任务它会分解为识别委托图标 - 点击追踪 - 自动寻路 - 识别怪物 - 执行战斗循环 - 识别领取奖励按钮 - 点击。每个任务都是一个独立的脚本或配置文件。操作执行模块通过ADB的shell input命令将计算好的坐标转化为tap点击、swipe滑动等事件发送到设备。用户界面UI与配置提供图形界面或配置文件让用户选择任务、设置参数如攻击技能释放间隔、是否自动吃食物等。2.3 与“GIMI模式”及“抢码工具”的关联在相关热词中你可能会看到“原神gimi模式”和“原神抢码工具”。这里简单厘清一下它们与BetterGI的关系。GIMI模式这通常指代的是《云·原神》或一些云游戏平台。BetterGI在云游戏环境下理论上也能运行但延迟会更高因为截图和指令传输需要经过网络这对需要快速反应的战斗场景很不友好。更多时候BetterGI是在本地模拟器或通过USB连接的实体手机上运行。抢码工具这指的是用于在《原神》官方直播、活动中自动抢兑换码的脚本。其技术原理与BetterGI高度同源都是视觉识别识别兑换码输入框、确认按钮加自动化操作。你可以把“抢码”看作是BetterGI能执行的众多“任务”中的一种。社区里可能有人专门为抢码优化了识别模型和点击策略使其更快更准。理解这些关联能让你明白BetterGI技术的通用性。它本质上是一个游戏前端的通用自动化框架原神只是它当前主要适配的应用场景。3. 环境准备与安装部署详解纸上得来终觉浅我们开始动手搭建。一个稳定的环境是后续一切操作的基础。这里我以最常用的“Windows PC 雷电模拟器”为例因为模拟器屏幕固定、性能稳定最适合自动化。3.1 基础软件准备你需要准备以下软件请务必从官方或可信源下载Python 3.8BetterGI的核心是Python编写的。建议安装Python 3.8或3.9版本兼容性最好。安装时务必勾选“Add Python to PATH”。Git用于克隆BetterGI的源代码仓库。Android SDK Platform-Tools这里面包含了我们至关重要的ADB工具。你可以单独下载也可以下载完整的Android Studio后只使用其platform-tools目录。雷电模拟器 9推荐使用9版本兼容性和稳定性较好。安装后在模拟器设置中将“性能设置”调整为“高性能模式”分辨率设置为1600x900(dpi 240) 或1280x720(dpi 240)。固定一个分辨率至关重要因为AI模型是在特定分辨率下训练的改变分辨率会导致识别失败。《原神》游戏客户端在模拟器内安装好游戏并完成前期新手引导进入可以自由操作的世界。注意不建议在主力账号或充值较多的账号上直接进行测试。可以使用一个小号或新号在模拟器上先行探索。3.2 BetterGI本体的获取与安装BetterGI是一个开源项目代码托管在GitHub上。由于项目可能更新具体安装步骤请以项目官方README为准。以下是通用流程克隆代码打开命令行CMD或PowerShell切换到一个你喜欢的目录执行git clone https://github.com/项目作者/BetterGI.git cd BetterGI请注意此处地址为示例实际地址请搜索最新的项目仓库安装Python依赖项目根目录下通常会有一个requirements.txt文件里面列出了所有需要的Python库。pip install -r requirements.txt这个过程可能会耗时几分钟具体取决于你的网络。常见的核心库包括opencv-python图像处理,onnxruntime或torchAI推理,pynput键盘监听,pillow等。下载AI模型文件视觉识别需要预训练模型。这些模型文件.onnx或.pt通常较大不会直接放在Git仓库里。你需要按照项目说明从提供的网盘链接或Release页面下载并放置到项目指定的文件夹内例如assets/models/。3.3 ADB连接与关键配置这是连接电脑BetterGI和模拟器游戏的桥梁也是最容易出错的环节。启动模拟器并开启《原神》确保游戏已经运行在主界面。连接ADB打开命令行导航到你存放ADB工具platform-tools的目录。首先查看当前连接的设备adb devices如果列表为空说明模拟器ADB服务未连接。雷电模拟器通常自带ADB你可以使用其安装目录下的adb.exe例如D:\LeiDian\LDPlayer9\adb.exe。更通用的方法是让模拟器开启网络ADB。在雷电模拟器右侧工具栏找到“设置”-“其他设置”开启“Android调试桥(ADB)”。然后使用命令连接雷电模拟器的默认端口是5555adb connect 127.0.0.1:5555再次执行adb devices你应该能看到一个设备状态为device。测试截图这是一个重要的验证步骤。adb exec-out screencap -p screen.png执行后当前目录下会生成一个screen.png文件。打开它确认它是你模拟器当前画面的准确截图且画面正常、无黑屏、无扭曲。如果这一步失败后续所有操作都无法进行。配置BetterGI在BetterGI的项目文件夹中找到一个配置文件可能是config.yaml或config.json。你需要根据你的模拟器设置修改关键参数adb_address: 设置为127.0.0.1:5555resolution: 严格设置为你的模拟器分辨率如1600x900default_confidence: 目标识别置信度阈值新手可以保持默认如0.6后期可以根据识别情况微调。4. 核心任务配置与实战演练环境搭好我们进入最激动人心的部分让AI帮你干活。BetterGI通常以“任务”为单位运行我们挑选两个最经典的任务来拆解自动采集和自动每日委托。4.1 自动采集任务配置与优化采集是最枯燥的重复劳动之一也是自动化最能发挥价值的场景。任务启动运行BetterGI的主程序可能是main.py或gui.py。在图形界面中找到“自动采集”或类似的任务选项。区域设置大多数采集脚本不会让你满世界乱跑那样效率太低且不可控。你需要指定一个采集区域。通常有两种方式预设路线脚本可能内置了几条经典路线如“风起地-晨曦酒庄沿线果树路线”、“璃月轻策庄竹笋路线”。你选择一条即可。自定义标点这是更高级的功能。你可以手动操作角色在你想采集的各个点位比如6个甜甜花丛分别按下某个快捷键如F2将当前坐标记录为路径点。脚本会按照你记录的顺序依次移动并采集。识别物配置在配置文件中你可以指定本次采集的目标物品。例如collect_items: - 甜甜花 - 松茸 - 树莓脚本会优先识别和采集这些物品。如果某个点位的物品已经被采集脚本识别不到则会等待片刻可配置后前往下一个点。实操心得与避坑指南视角固定开始采集前将游戏视角调整为俯视或斜45度角并锁定视角。统一的视角能极大提高AI识别的准确率。光照与天气黄昏、夜晚或雨天可能会影响识别效果。尽量在白天、晴朗的天气下运行采集脚本。有些高级脚本会内置“调整时间到白天”的功能。障碍物处理如果角色被地形卡住脚本可能会陷入循环。好的脚本会包含“脱困逻辑”比如检测到长时间未移动后尝试跳跃或向随机方向短距离移动。你需要观察并测试脚本的脱困能力。性能权衡识别频率每秒截图识别次数越高采集越快但电脑CPU/GPU负载也越高。对于采集这种不需要毫秒级反应的任务将频率设置在1-2Hz每秒1-2次是完全足够的这也能降低功耗和发热。4.2 自动每日委托实战解析每日委托的自动化复杂度远高于采集因为它涉及对话、战斗、多种目标识别和状态判断。任务逻辑链拆解一个完整的每日委托自动化可以分解为以下子步骤步骤一接取委托。识别地图上的委托图标蓝色感叹号或打开委托界面点击“追踪”。步骤二自动寻路。利用游戏内置的自动寻路功能点击任务追踪后出现的那个小鞋子图标。BetterGI只需要识别并点击这个“小鞋子”即可。接下来的跑路由游戏自身完成。步骤三场景交互。到达地点后识别NPC头上的对话图标触发对话。这里需要处理对话点击通常是通过识别“继续”按钮或快速连点来实现。步骤四战斗环节。这是核心难点。脚本需要识别敌人通过血条或模型锁定敌人。释放技能按照预设顺序如E技能 - Q技能 - 普攻循环点击技能按钮。这里可以配置技能释放间隔模拟人类操作的不确定性。躲避攻击一些高级脚本会尝试识别敌人的攻击前摇如丘丘人暴徒的冲锋准备动作并控制角色移动闪避。但实现稳定闪避非常困难。拾取掉落物战斗结束后识别地上的光点并移动过去。步骤五交付任务。再次与NPC对话领取奖励。配置个性化战斗策略在BetterGI的战斗配置部分你可以为不同的角色配置技能释放序列。例如为你的主C胡桃配置循环开始 等待1秒 按下 E 键元素战技 等待0.5秒 按下鼠标左键普攻10次 如果 Q 能量满则按下 Q 键元素爆发 循环结束你可以为每个队伍位置绑定不同的配置并在脚本中切换。关键注意事项队伍配置自动化战斗对队伍容错率要求高。优先选择生存能力强、操作简单的队伍。例如“钟离 心海 雷电将军 夜兰”这种有超厚护盾、后台自动攻击、大招无敌帧的队伍远比需要复杂手法打反应的“胡桃蒸发队”更适合脚本。禁用镜头转动在游戏设置中关闭“战斗智能镜头”等功能防止角色放大招时镜头剧烈晃动导致AI丢失目标。准备充足的食物脚本不会聪明到在残血时主动打开背包吃食物。确保你的角色携带了足够的恢复类食物如甜甜鸡酿鸡或者使用“诺艾尔”、“班尼特”等自带治疗的角色。全程监控首次运行任何战斗自动化时千万不要离开电脑。你需要观察脚本在遇到复杂地形、多波次敌人、特殊机制如需要击破盾牌时的表现随时准备手动接管防止角色死亡或脚本卡死。5. 风险认知与安全使用准则这是本指南最重要的一章。使用自动化工具必须对风险有清醒的认识并采取所有可能的措施来规避。5.1 米哈游反作弊机制浅析虽然我们无法得知其全部细节但通过社区经验和一些公开信息可以推断其检测维度包括行为模式分析这是最核心的。人类玩家的操作存在随机性移动路径有微小的偏移、点击位置有细微差别、技能释放间隔不完全固定、战斗中有无意义的移动逛街。而脚本的行为往往是高度规律和精确的完美的直线移动、完全固定的技能CD循环、毫秒级精准的点击。这种“过于完美”的行为模式是最大的风险点。客户端环境检测游戏客户端可能会检测是否存在异常的进程、调试接口如ADB的调用频率、甚至模拟器特征。虽然ADB本身是合法接口但高频、规律的调用可能成为特征。数据一致性校验服务器会校验客户端上报的操作序列在逻辑上是否合理。例如角色在A点采集后瞬间短于合理移动时间就在遥远的B点开始了战斗这就会触发异常。5.2 降低风险的实操策略基于以上分析我们可以制定相应的策略注入随机性与人性化延迟点击坐标随机偏移不要每次都点击目标的绝对中心。让脚本在目标识别框内随机选择一个点进行点击。操作间隔随机化在两个操作之间加入随机的延迟。例如识别到采集物后等待0.8秒 random.uniform(0, 0.4)秒再点击。技能释放循环也加入随机间隔。路径随机摆动在自动寻路过程中可以间歇性地插入微小的、无意义的左右移动指令模拟人类摇杆操作的轻微波动。限制使用时长与频率不要24小时挂机这是最危险的行为。将自动化时间控制在模仿正常玩家行为的范围内比如每天上线1-2小时完成日常和树脂清理后就下线。避免在高峰期运行虽然无直接证据但在服务器负载高、监测可能更严格的时间段如晚间减少使用。模拟“下线”行为脚本结束后不要直接关闭游戏或模拟器。可以添加一段“随机走动-打开地图-打开背包-查看角色”的随机操作序列然后走到一个安全区域如蒙德城或璃月港的角落再执行退出游戏的操作。环境隔离与账号管理使用独立的模拟器环境专门为自动化创建一个模拟器实例与你自己手动玩游戏的实例物理隔离。坚决不使用主账号这是铁律。所有测试和自动化都放在一个无关紧要的小号上进行。即使未来你觉得非常稳定了也不建议在主账号上冒险。保持更新与关注社区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. 寻路逻辑bug1. 观察卡住点手动操作脱离。考虑在脚本中增加“防卡死”检测如连续10秒坐标未变化则执行跳跃或反向移动。2. 可能是任务脚本的路径点设置不合理需要优化路径。战斗时技能乱放或发呆1. 技能识别区域错误2. 角色能量/CD状态判断失败1. 调整技能按钮的识别区域坐标需修改脚本代码。2. 检查脚本是否依赖能量识别或CD计时这部分识别难度高可能不稳定。可简化为固定时间轴循环不依赖状态。任务流程中断1. 某个中间状态识别失败如对话完成按钮2. 网络延迟导致画面加载慢1. 打开调试模式查看当前截图和识别结果确认是哪个环节的图片没识别到。可能需要调整该环节的识别阈值或图像模板。2. 在关键状态转换后增加等待时间如进入新场景后等待3秒。6.3 进阶调试技巧当遇到复杂问题时你需要更深入地介入开启调试可视化大多数AI自动化脚本都提供调试模式。开启后会在电脑上显示一个实时窗口上面用方框标出AI识别到的所有目标及其置信度。这是排查识别问题最直观的方式。你可以清楚地看到脚本“眼里”的世界是什么样的。日志分析运行脚本时仔细查看命令行窗口输出的日志。错误信息、当前执行的动作、识别到的目标坐标都会打印在这里。通过日志你可以一步步回溯脚本的执行逻辑找到断点。自定义图像模板对于某些固定不变的UI元素如“领取奖励”的黄色按钮如果通用模型识别不好你可以使用更传统的“图像模板匹配”方法。用截图工具截取该按钮的清晰图片作为模板让脚本直接在屏幕上搜索这个模板图片。OpenCV的matchTemplate函数对此非常有效且速度极快。修改与贡献BetterGI是开源项目如果你解决了某个特定问题或者为某个角色优化了战斗策略可以考虑将你的修改提交回项目Pull Request这不仅能帮助他人也能让你更深入地理解整个系统。这条路充满了探索的乐趣也布满了荆棘。它考验的不仅仅是你配置软件的能力更是你分析问题、规避风险、在规则边缘谨慎求索的智慧。记住工具本身无善恶关键在于使用它的人。希望这份指南能为你打开一扇窗看到技术与游戏结合的另一种可能性并以安全、负责的态度去实践它。