news 2026/7/19 11:54:02

基于计算机视觉与状态机架构的FGO自动化系统设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于计算机视觉与状态机架构的FGO自动化系统设计

基于计算机视觉与状态机架构的FGO自动化系统设计

【免费下载链接】FGO-py自动爬塔! 自动每周任务! 全自动免配置跨平台的Fate/Grand Order助手.启动脚本,上床睡觉,养肝护发,满加成圣诞了解一下?项目地址: https://gitcode.com/GitHub_Trending/fg/FGO-py

FGO-py是一个基于Python开发的全自动Fate/Grand Order游戏助手,采用计算机视觉识别技术实现游戏界面感知,通过状态机架构控制游戏操作流程。该项目通过图像识别、设备控制、游戏逻辑决策等模块的协同工作,为玩家提供免配置、跨平台的自动化游戏体验。

计算机视觉驱动的游戏界面感知系统

FGO-py的核心技术在于其图像识别引擎,该系统不依赖游戏内存读取或API注入,而是通过纯视觉方式识别游戏状态。这种设计理念确保了系统的安全性和兼容性,避免了游戏客户端检测风险。

多尺度模板匹配算法

系统采用多尺度模板匹配算法来识别游戏中的各种界面元素。在fgoDetect.py中,_find方法实现了基于OpenCV的模板匹配功能,支持自适应阈值和多种匹配策略:

def _find(self, img, rect=(0,0,1280,720), threshold=.05): # 在指定区域内进行模板匹配 # 支持多尺度匹配以适应不同分辨率 # 返回匹配结果的坐标和置信度

该系统维护了超过400个游戏界面元素的模板图像,涵盖从者头像、技能图标、指令卡、宝具特效到各种界面按钮。每个模板都经过精心裁剪和标准化处理,确保在不同游戏版本和设备分辨率下的识别准确性。

实时状态检测机制

FGO-py的状态检测系统基于事件驱动的架构,通过fgoSchedule.py中的调度器管理各种检测任务。系统持续监控游戏界面的变化,实时判断当前游戏状态:

  • 界面状态检测:识别主界面、战斗界面、编队界面等
  • 战斗状态检测:判断回合开始、技能可用状态、宝具充能状态
  • 资源状态检测:检测体力消耗、友情点数量、苹果库存

Alas平台中的FGO-py任务管理界面,展示了实时任务调度、状态监控和详细日志输出系统

状态机架构与游戏逻辑控制

FGO-py采用有限状态机(FSM)架构管理游戏流程,在fgoKernel.py中实现了完整的游戏逻辑控制。这种架构将复杂的游戏操作分解为离散的状态和转换,确保了系统的可靠性和可维护性。

战斗决策引擎

战斗决策是FGO-py的核心功能,系统需要实时分析战场形势并做出最优决策。战斗引擎基于以下关键组件:

  1. 从者状态分析:通过getFieldServant方法识别场上从者的ID、HP、NP值
  2. 敌人状态评估:使用getEnemyHpgetEnemyNp方法获取敌人状态
  3. 技能优先级调度:基于从者技能效果和当前战况计算技能施放优先级
  4. 指令卡选择算法:综合考虑克制关系、连携效果、伤害期望等因素
def selectCard(self): # 评估每张指令卡的战斗价值 # 考虑克制关系、连携效果、伤害期望 # 返回最优的指令卡组合

资源管理与异常处理

系统内置完善的资源管理机制,通过fgoSchedule.py中的stopOnDefeatedcheckDefeated方法实现异常状态检测和恢复:

  • 战斗失败检测:识别战败界面并采取相应措施
  • 网络异常处理:检测网络错误并自动重连
  • 游戏崩溃恢复:识别游戏崩溃状态并重启游戏
  • 资源耗尽处理:在体力耗尽时自动使用恢复道具

跨平台设备控制与通信层

FGO-py的设备控制层采用抽象设计,支持多种连接方式,包括ADB、Windows API和混合连接模式。在fgoDevice.py中,Device类提供了统一的设备操作接口:

混合连接架构

系统采用创新的混合连接架构,允许输入和输出使用不同的通信方式:

def createDevice(name, *args, **kwargs): # 根据设备名称创建相应的设备实例 # 支持Android、Windows、混合模式等多种连接方式

这种设计解决了传统自动化工具在特定模拟器上的兼容性问题。例如,某些模拟器可能支持ADB截图但不支持ADB点击,或者反之。混合连接允许系统选择最优的输入输出组合,确保在各种环境下的稳定运行。

分辨率自适应机制

FGO-py支持从720p到2K等多种屏幕分辨率,通过fgoDetect.py中的坐标转换系统实现自适应:

def _crop(self, rect): # 根据当前设备分辨率裁剪图像区域 # 自动调整坐标映射关系

系统维护了一套基于1280×720基准分辨率的坐标系统,在实际运行时根据设备实际分辨率进行动态缩放。这种设计确保了模板匹配的准确性,无论设备分辨率如何变化。

多前端架构与用户交互系统

FGO-py采用模块化设计,支持图形界面、命令行界面和Web界面三种交互方式,满足不同用户群体的需求。

图形用户界面(GUI)

基于Qt框架的图形界面提供了直观的操作体验,在fgoGui.py中实现了完整的用户交互逻辑:

  • 任务调度管理:可视化配置自动化任务
  • 实时状态监控:显示当前执行进度和识别结果
  • 编队配置界面:直观的从者和技能配置
  • 日志输出系统:详细的执行过程记录

命令行界面(CLI)

对于高级用户和自动化部署场景,FGO-py提供了功能完整的命令行界面。在fgoCli.py中实现的CLI系统支持:

  • 交互式命令补全:Tab键自动补全命令和参数
  • 批处理脚本支持:可通过脚本批量执行任务
  • 远程控制能力:支持SSH等远程连接方式
  • 详细日志输出:可配置的日志级别和输出格式

FGO-py命令行界面展示,支持Docker容器化部署和原生命令行操作,提供低层级设备控制和批处理任务执行能力

Web界面与REST API

fgoWebServer.py实现了基于Flask的Web服务器,提供了浏览器访问的界面和RESTful API:

@app.route('/api/connect', methods=['POST']) def connect(): # 设备连接API端点 # 支持JSON格式的参数传递

这种设计使得FGO-py可以轻松集成到其他自动化系统中,如Alas(AzurLaneAutoScript)平台。

性能优化与稳定性保障

FGO-py在性能优化方面进行了大量工作,确保在资源受限的设备上也能稳定运行。

图像识别性能优化

系统采用了多种优化策略提升图像识别效率:

  1. 模板预加载:启动时将所有模板图像加载到内存
  2. 区域裁剪优化:只对关键区域进行识别,减少计算量
  3. 缓存机制:对频繁识别的界面元素使用缓存结果
  4. 并行处理:利用多线程技术并行处理多个识别任务

错误恢复与容错机制

FGO-py内置了完善的错误处理系统,能够从各种异常状态中恢复:

  • 超时重试机制:操作失败时自动重试指定次数
  • 状态验证循环:在执行关键操作前验证当前状态
  • 异常检测与恢复:检测游戏异常并采取恢复措施
  • 日志记录与分析:详细记录执行过程便于问题排查

多语言支持与国际适配

FGO-py支持简体中文、日语、英语和繁体中文四种语言版本,通过fgoI18n系统实现国际化:

游戏服务器适配

系统针对不同地区的游戏服务器进行了专门适配:

  • 国服(Bilibili):完整的界面识别和功能支持
  • 日服:日语界面识别和操作适配
  • 美服:英语界面识别和操作适配
  • 台服:繁体中文界面识别和操作适配

每个服务器版本都有专门的图像模板和识别逻辑,确保在不同地区的游戏客户端上都能正常工作。

界面本地化系统

基于Qt的国际化框架,FGO-py的界面支持多语言切换:

# 加载对应语言的翻译文件 translator = QTranslator() translator.load(f'fgoI18n.{language}.qm') app.installTranslator(translator)

自动化任务调度系统

FGO-py的自动化任务系统支持多种任务类型和调度策略,通过fgoSchedule.py实现:

计划作战与每周任务

系统支持自动化的计划作战和每周任务完成:

def weeklyMission(self): # 自动识别并完成每周任务 # 支持任务类型识别和进度跟踪

无限池刷取与资源管理

针对游戏中的无限池活动,FGO-py提供了专门的优化策略:

  • 自动助战选择:根据当前队伍配置智能选择助战
  • 苹果使用策略:在体力耗尽时自动使用恢复道具
  • 掉落物品统计:记录战斗掉落并生成统计报告
  • 连续作战管理:支持设置连续作战次数限制

技术架构演进与未来展望

FGO-py的技术架构经历了多次重要演进,从最初的简单脚本发展到现在的完整自动化系统。

架构演进历程

  1. 初期版本:基于固定坐标的简单点击脚本
  2. 图像识别引入:加入模板匹配技术,提升适应性
  3. 状态机重构:引入有限状态机管理游戏流程
  4. 多前端支持:增加CLI和Web界面支持
  5. 性能优化:引入缓存、并行处理等优化技术

技术挑战与解决方案

在开发过程中,团队面临并解决了多个技术挑战:

  • 游戏界面变化:通过版本适配和动态模板更新机制解决
  • 设备兼容性问题:采用混合连接架构和分辨率自适应
  • 识别准确性:引入机器学习辅助的OCR技术和多策略验证
  • 性能瓶颈:通过算法优化和硬件加速提升执行效率

未来发展方向

FGO-py团队计划在以下方向继续发展:

  1. AI决策优化:引入强化学习技术优化战斗决策
  2. 云端管理:支持远程任务调度和状态监控
  3. 多游戏扩展:将技术框架扩展到其他手游自动化
  4. 社区生态建设:建立插件系统和第三方扩展支持

FGO-py在GitHub Trending页面的热度展示,体现了开源社区对该项目的关注和认可

部署与使用指南

FGO-py支持多种部署方式,满足不同用户群体的需求:

本地部署

对于大多数用户,推荐使用本地部署方式:

git clone https://gitcode.com/GitHub_Trending/fg/FGO-py cd FGO-py pip install -r requirements.txt python fgo.py

Docker容器化部署

对于需要隔离环境或批量部署的场景,提供了Docker支持:

FROM python:3.11-slim WORKDIR /app COPY . . RUN pip install -r requirements.txt CMD ["python", "fgo.py"]

移动设备部署

通过AidLux等Android开发环境,可以在移动设备上直接运行FGO-py:

# 在AidLux中执行安装脚本 ./deploy/AidLux/AidLux.sh

总结

FGO-py作为一个成熟的开源游戏自动化项目,展示了计算机视觉技术在游戏自动化领域的强大应用潜力。通过精心的架构设计和持续的优化迭代,项目在保持高识别准确率的同时,提供了出色的性能和稳定性。

项目的成功不仅在于其技术实现,更在于其开源社区的建设。活跃的开发者社区为项目提供了持续的改进动力,而详细的技术文档和版本记录则为新用户提供了良好的入门指引。

随着游戏自动化技术的不断发展,FGO-py将继续探索新的技术方向,为玩家提供更加智能、高效的游戏体验,同时也为相关领域的技术研究提供有价值的参考案例。

【免费下载链接】FGO-py自动爬塔! 自动每周任务! 全自动免配置跨平台的Fate/Grand Order助手.启动脚本,上床睡觉,养肝护发,满加成圣诞了解一下?项目地址: https://gitcode.com/GitHub_Trending/fg/FGO-py

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 11:53:52

视频分析系统的架构设计与多模态AI集成实践

视频分析系统的架构设计与多模态AI集成实践 【免费下载链接】video-analyzer Analyze videos using LLMs, Computer Vision and Automatic Speech Recognition 项目地址: https://gitcode.com/gh_mirrors/vi/video-analyzer 面对海量视频内容的理解与分析需求&#xff0…

作者头像 李华
网站建设 2026/7/19 11:52:03

5分钟找回消失的QQ空间记忆:GetQzonehistory终极数据备份方案

5分钟找回消失的QQ空间记忆:GetQzonehistory终极数据备份方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾为QQ空间里那些消失的青春记忆而惋惜?那些…

作者头像 李华
网站建设 2026/7/19 11:51:53

Resource Override:浏览器资源拦截与重定向的工程化解决方案

Resource Override:浏览器资源拦截与重定向的工程化解决方案 【免费下载链接】ResourceOverride An extension to help you gain full control of any website by redirecting traffic, replacing, editing, or inserting new content. 项目地址: https://gitcode…

作者头像 李华
网站建设 2026/7/19 11:51:42

三步掌握WFDB Python:医疗信号处理的终极指南

三步掌握WFDB Python:医疗信号处理的终极指南 【免费下载链接】wfdb-python Native Python WFDB package 项目地址: https://gitcode.com/gh_mirrors/wf/wfdb-python 你是否正在处理心电图、脑电图等生理信号数据?面对复杂的医疗信号格式是否感到…

作者头像 李华
网站建设 2026/7/19 11:51:20

3步实现Twitch游戏奖励自动收集:高效智能的掉宝挖矿方案

3步实现Twitch游戏奖励自动收集:高效智能的掉宝挖矿方案 【免费下载链接】TwitchDropsMiner An app that allows you to AFK mine timed Twitch drops, with automatic drop claiming and channel switching. 项目地址: https://gitcode.com/GitHub_Trending/tw/T…

作者头像 李华