阴阳师自动化脚本技术实践:从AI识别到智能决策的完整解决方案
2026/6/13 13:07:53 网站建设 项目流程

阴阳师自动化脚本技术实践:从AI识别到智能决策的完整解决方案

【免费下载链接】OnmyojiAutoScriptOnmyoji Auto Script | 阴阳师脚本项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript

在阴阳师这款经典手游中,玩家经常面临重复性操作带来的疲劳感——从百鬼夜行中手动撒豆收集碎片,到每日御魂副本的机械式刷取,再到繁琐的结界突破和寮任务。这些重复劳动不仅消耗时间,更消磨了游戏的乐趣。OnmyojiAutoScript(OAS)项目通过计算机视觉与智能决策算法,为玩家提供了一个高效、稳定且可定制的自动化解决方案。

项目价值:解放双手的智能助手

阴阳师作为一款运营多年的手游,其日常玩法已形成固定模式。OAS针对三大核心痛点提供解决方案:

重复性任务自动化:悬赏封印、金币妖怪、年兽等日常任务完全自动化执行,将玩家从机械操作中解放出来。

AI增强的智能识别:百鬼夜行模块采用YOLO目标检测模型,实时识别式神类型与位置,实现精准撒豆策略。

时间优化与资源管理:内置调度系统无缝衔接不同任务,最大化利用游戏时间,实现资源收益最大化。

相比手动操作,OAS的核心优势在于其算法驱动的决策能力。系统不仅识别屏幕内容,更能基于式神稀有度、位置分布和当前状态做出最优决策,让每一颗豆子都发挥最大价值。

图:OAS主界面展示,左侧导航栏清晰分类各项功能模块,中央区域提供组件预览和配置选项

技术架构:模块化设计的工程实践

OAS采用分层架构设计,确保各模块职责清晰且易于扩展:

技术栈概览: ├── 前端界面层(FluentUI) │ ├── 基于Qt/QML的现代化GUI │ ├── 响应式布局与主题切换 │ └── 实时状态监控面板 ├── 核心引擎层 │ ├── 图像识别模块(PPOCR-ONNX) │ ├── 决策算法模块(Agent系统) │ ├── 设备控制模块(ADB/Minitouch) │ └── 任务调度器(Scheduler) ├── 配置管理层 │ ├── Pydantic数据验证 │ ├── 热重载配置系统 │ └── 多账号配置管理 └── 任务实现层 ├── 百鬼夜行(Hyakkiyakou) ├── 御魂副本(Orochi/Souls) ├── 探索任务(Exploration) └── 30+其他游戏模块

关键模块协作流程

  1. 图像采集:通过ADB或窗口后台截图获取游戏画面
  2. 目标检测:YOLO模型识别式神、界面元素和状态标识
  3. 决策计算:Agent类基于权重策略计算最优操作点
  4. 动作执行:Minitouch或窗口消息模拟真实触控操作
  5. 状态反馈:持续监控执行结果并动态调整策略

项目的扩展性体现在其插件化任务系统。每个游戏功能作为独立模块实现,开发者可基于统一接口快速添加新功能,而无需修改核心框架。

图:按钮组件配置界面,展示多种按钮类型及其对应的代码实现,体现项目的模块化设计理念

配置实践:从零到一的关键参数

最小化可行配置

对于初次使用者,以下配置提供了最简化的启动方案:

# tasks/Hyakkiyakou/config.py 中的核心配置 class HyakkiyakouConfig(ConfigBase): hya_limit_time: Time = Field(default=Time(minute=20)) # 单次运行时长 hya_limit_count: int = Field(default=10) # 运行次数限制 hya_priorities: str = Field(default='') # 优先式神列表 hya_sp: float = Field(default=1.0) # SP式神权重 hya_ssr: float = Field(default=1.0) # SSR式神权重 hya_sr: float = Field(default=0.7) # SR式神权重 hya_r: float = Field(default=0.3) # R式神权重 hya_n: float = Field(default=0.0) # N式神权重

关键参数详解

权重系统(Weight System)

  • SP/SSR权重(1.0):最高优先级,确保稀有式神获得足够豆子
  • SR权重(0.7):中等优先级,平衡碎片收集与资源消耗
  • R权重(0.3):较低优先级,仅在有剩余资源时考虑
  • N权重(0.0):通常忽略,除非需要特定N卡碎片

性能调优参数

class DebugConfig(ConfigBase): hya_interval: float = Field(default=300) # 截屏间隔(毫秒) conf_threshold: float = Field(default=0.6) # 置信度阈值 hya_show: bool = Field(default=False) # 调试显示开关

配置误区避免

  1. 避免过度降低截屏间隔:低于200ms可能导致CPU占用过高,影响识别精度
  2. 合理设置置信度阈值:0.5-0.7为推荐范围,过低会误识别,过高会漏识别
  3. 权重分配需平衡:所有式神权重总和不宜过高,避免资源过度分散

决策算法核心

Agent类的gamma函数实现了基于高斯分布的权重计算:

def gamma(cls, tracks: list[tuple], weights: list[float], priorities: list[int]) -> np.ndarray: z = np.zeros((720, 1280), dtype=np.float32) for _id, _class, _conf, _cx, _cy, _w, _h, _v in tracks: weight = 1. mu = 0.8 + (_cx * 0.2) / 1280 # 位置加权 # 根据式神类别分配权重 match _class: case _ if CI.MIN_SP <= _class <= CI.MAX_SP: weight = 1.5 * weights[0] # SP式神额外加成 case _ if CI.MIN_SSR <= _class <= CI.MAX_SSR: weight = 1.5 * weights[1] # SSR式神额外加成 # ... 其他类别处理 z = embed_patch_in_canvas(canvas=z, patch=(mu * weight) * Agent.GAUSSIAN, position=(_cx, _cy)) return z

该算法为每个检测到的式神生成高斯热力图,权重越高、位置越中心的式神获得的热力值越大,最终选择热力值最高的目标进行攻击。

图:轮播图组件展示,体现项目对复杂UI组件的支持能力,可用于展示任务执行结果或配置选项

场景化应用:针对性优化策略

日常挂机场景

目标:稳定完成日常任务,资源消耗最小化配置要点

  • 时间限制:15-20分钟/次
  • 权重设置:SR:0.7, R:0.3, N:0.0
  • 性能优化:截屏间隔500ms,关闭调试显示预期效果:CPU占用低于30%,稳定运行4-6小时

稀有式神专项收集

目标:最大化SSR/SP式神碎片获取配置要点

  • 启用优先列表:指定目标式神ID
  • 权重调整:SP/SSR:1.5,其他:0.2
  • 识别优化:置信度阈值0.7,降低误识别预期效果:稀有式神命中率提升40-60%

低性能设备优化

目标:在资源受限环境下稳定运行配置要点

hya_interval: float = 500 # 增加截屏间隔 conf_threshold: float = 0.5 # 降低识别精度要求 hya_show: bool = False # 关闭可视化调试 model_precision: ModelPrecision = 'INT8' # 使用量化模型

性能调优

  • 模拟器分辨率设置为1280x720
  • 关闭游戏特效和声音
  • 使用窗口后台截图替代ADB截图

多账号批量管理

目标:同时管理多个游戏账号配置要点

  • 配置文件分离:每个账号独立config目录
  • 任务调度:错峰执行避免资源竞争
  • 状态监控:实时日志分离与异常报警集成方案:通过外部脚本调用OAS API,实现账号轮换与状态同步

生态集成:扩展与协作

工具链集成

OAS设计时考虑了与现有工具链的兼容性:

开发工具集成

  • 代码编辑器:完整的类型提示和文档字符串
  • 版本控制:Git友好的配置管理
  • 持续集成:GitHub Actions自动化测试

游戏工具兼容

  • 模拟器支持:雷电、夜神、MuMu等主流安卓模拟器
  • 设备连接:ADB/Win32 API双模式支持
  • 分辨率适配:自动识别并适配不同设备分辨率

扩展开发指引

基于OAS框架开发新功能的标准化流程:

  1. 模块创建:在tasks目录下新建任务模块
  2. 配置定义:继承ConfigBase类定义配置项
  3. 资源管理:使用Assets系统管理图片和点击位置
  4. 任务实现:实现script_task.py中的主要逻辑
  5. 界面集成:通过FluentUI组件暴露配置选项
# 新任务模块模板 from tasks.Component.config_base import ConfigBase, Time class NewTaskConfig(ConfigBase): task_enable: bool = Field(default=True) task_limit_time: Time = Field(default=Time(minute=30)) # 其他配置项... class NewTask: def __init__(self, config: NewTaskConfig): self.config = config def run(self): # 任务主逻辑 pass

社区资源与贡献

项目维护活跃的开发者社区,提供多种参与方式:

问题反馈与讨论

  • GitHub Issues:功能请求和Bug报告
  • QQ技术群:实时技术交流与问题解答
  • 文档贡献:完善使用手册和开发指南

代码贡献流程

  1. Fork项目仓库并创建特性分支
  2. 遵循项目代码规范(PEP 8)
  3. 添加完整的单元测试
  4. 提交Pull Request并描述变更内容

学习资源

  • 开发文档:架构设计和API参考
  • 示例代码:多个完整任务模块参考
  • 视频教程:从安装到高级配置的完整指南

最佳实践与持续优化

配置版本管理

建议使用Git管理配置文件变更:

# 备份当前配置 cp -r config/ config_backup_$(date +%Y%m%d) # 使用分支管理不同场景配置 git checkout -b config_daily git add config/ git commit -m "日常挂机配置"

监控与日志分析

启用详细日志记录分析执行效果:

# 启用调试日志 debug_config = DebugConfig( hya_info=True, # 输出详细信息 hya_save_result=True, # 保存每轮结果 continuous_learning=False # 生产环境关闭 )

定期检查日志文件中的关键指标:

  • 识别准确率:conf_threshold调整依据
  • 操作成功率:点击和滑动执行效果
  • 资源消耗:CPU/内存使用情况

安全使用建议

  1. 合规使用:了解游戏服务条款,合理使用自动化工具
  2. 风险控制:避免长时间连续运行,设置合理休息间隔
  3. 更新维护:定期拉取最新代码,获取Bug修复和性能优化
  4. 社区支持:遇到问题时优先查阅文档和社区讨论

性能基准测试

在不同硬件配置下的参考性能:

设备类型识别延迟操作精度建议配置
高端PC100-200ms>95%全功能开启
中端PC200-300ms90-95%关闭可视化
低端PC300-500ms85-90%增加截屏间隔

开始使用

获取项目代码并开始自动化之旅:

git clone https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript cd OnmyojiAutoScript pip install -r requirements.txt python gui.py

项目采用GPL v3.0开源协议,鼓励学习、修改和分发。无论你是想要解放双手的普通玩家,还是对游戏自动化技术感兴趣的开发者,OAS都提供了完整的技术栈和实践案例。从基础配置开始,逐步探索高级功能,你会发现自动化工具不仅能提升游戏效率,更能让你专注于享受游戏的核心乐趣。

记住,最适合的配置需要结合设备性能和个人需求不断调整。建议从默认配置开始,通过小范围测试逐步优化,最终形成符合自己游戏习惯的个性化方案。技术文档和社区讨论区提供了丰富的实践案例和问题解决方案,欢迎参与贡献,共同完善这个开源项目。

【免费下载链接】OnmyojiAutoScriptOnmyoji Auto Script | 阴阳师脚本项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript

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

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

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

立即咨询