news 2026/6/16 10:26:53

阴阳师百鬼夜行智能控制:从图像识别到决策算法的技术深度解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
阴阳师百鬼夜行智能控制:从图像识别到决策算法的技术深度解析

阴阳师百鬼夜行智能控制:从图像识别到决策算法的技术深度解析

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

阴阳师自动化脚本(Onmyoji Auto Script)为阴阳师玩家提供了一套完整的游戏自动化解决方案,其中百鬼夜行功能通过计算机视觉和智能决策算法,实现了式神碎片的自动化收集。该功能解决了手动操作效率低下、时机把握不精准等核心痛点,主要面向追求效率的技术爱好者和进阶玩家。

技术挑战:游戏自动化中的精准识别难题

百鬼夜行场景中存在多重技术挑战:式神移动轨迹随机、UI界面动态变化、网络延迟影响操作时机。传统基于坐标点击的方法无法适应这些复杂场景,需要更智能的解决方案。

图像识别技术的核心实现

项目采用基于模板匹配和深度学习结合的混合识别方案。在tasks/Hyakkiyakou/assets.py中定义了详细的图像规则:

# 式神选择区域定义 C_HSELECT_1 = RuleClick(roi_front=(200,318,115,273), roi_back=(200,318,115,273), name="hselect_1") C_HSELECT_2 = RuleClick(roi_front=(570,307,142,285), roi_back=(570,307,142,285), name="hselect_2") C_HSELECT_3 = RuleClick(roi_front=(934,298,115,306), roi_back=(934,298,115,306), name="hselect_3") # 关键界面元素识别 I_HINVITE = RuleImage(roi_front=(139,593,63,39), roi_back=(105,535,129,147), threshold=0.8, method="Template matching", file="./tasks/Hyakkiyakou/hya/hya_hinvite.png") I_HACCESS = RuleImage(roi_front=(1059,554,100,100), roi_back=(1059,554,100,100), threshold=0.8, method="Template matching", file="./tasks/Hyakkiyakou/hya/hya_haccess.png")

技术要点roi_frontroi_back参数分别定义了前景区和背景区,通过双重验证确保识别准确性。threshold=0.8表示匹配度达到80%即视为识别成功。

控制方案对比:Windows消息与ADB触控的深度分析

技术维度Windows消息控制ADB直接触控(minitouch)适用场景
通信机制Windows API消息队列直接Android设备通信实时性要求
延迟表现50-100ms10-30ms高速操作
窗口依赖必须前台运行后台运行支持多任务处理
跨平台性Windows独占Windows/macOS/Linux开发环境
实现复杂度中等较高维护成本
稳定性受系统负载影响设备级稳定长时间运行

自动化脚本的GUI界面采用FluentUI组件库构建,提供直观的操作体验和配置管理

智能决策算法:从式神识别到撒豆策略

式神稀有度权重系统

tasks/Hyakkiyakou/config.py中定义了完整的权重配置体系:

class HyakkiyakouConfig(ConfigBase): hya_sp: float = Field(default=1., description='SP式神权重') hya_ssr: float = Field(default=1., description='SSR式神权重') hya_sr: float = Field(default=0.7, description='SR式神权重') hya_r: float = Field(default=0.3, description='R式神权重') hya_n: float = Field(default=0.0, description='N卡权重') hya_g: float = Field(default=0.0, description='呱太权重')

⚡️算法优化:权重系统允许玩家根据个人需求调整优先级。例如,专注于SP/SSR收集的玩家可以将hya_sphya_ssr设为1.0,而hya_n设为0.0。

实时跟踪与预测算法

核心跟踪器在tasks/Hyakkiyakou/script_task.py中实现:

@cached_property def tracker(self) -> Tracker: hyakkiyakou_models = self._config.hyakkiyakou_models conf = hyakkiyakou_models.conf_threshold nms = hyakkiyakou_models.iou_threshold args = { 'conf_threshold': conf, # 置信度阈值 'iou_threshold': nms, # NMS阈值 'precision': 'fp32', # 模型精度 'inference_engine': 'onnxruntime', # 推理引擎 'debug': debug_info, } return Tracker(args=args)

📊性能指标conf_threshold控制识别置信度(默认0.6),iou_threshold控制非极大值抑制阈值(默认0.7),这两个参数直接影响识别准确性和误报率。

实战配置:从环境搭建到参数调优

环境准备与快速启动

  1. 模拟器配置要求

    • 分辨率:1280×720或1920×1080
    • 内存分配:≥4GB
    • VT虚拟化:必须开启
  2. ADB连接验证

# 检查设备连接 adb devices # 预期输出:emulator-5554 device
  1. 项目部署
# 克隆仓库 git clone https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript cd OnmyojiAutoScript # 安装依赖 pip install -r requirements.txt

核心参数配置详解

module/config/argument/task.yaml中配置任务参数:

Hyakkiyakou: enable: true control_method: minitouch # 推荐使用minitouch方案 bean_speed: 50 # 撒豆速度(1-100) screenshot_interval: 300 # 截图间隔(毫秒) max_runtime: 1200 # 最大运行时间(秒)

🔧调试配置

class DebugConfig(ConfigBase): hya_show: bool = Field(default=False, description='显示跟踪结果') hya_info: bool = Field(default=False, description='输出调试信息') continuous_learning: bool = Field(default=False, description='持续学习模式') hya_interval: float = Field(default=300, description='截图间隔')

FluentUI提供的按钮组件配置界面,展示了自动化脚本中控制参数的调节方式

性能优化:从基础设置到高级调优

识别准确率提升方案

优化维度基础配置优化配置效果提升
置信度阈值0.60.7-0.8减少误识别
NMS阈值0.70.6-0.65提高密集目标识别
截图间隔300ms200-250ms提升响应速度
模型精度FP32INT8(未来)推理速度提升

撒豆策略优化算法

tasks/Hyakkiyakou/agent/focus.py中实现的智能决策逻辑:

  1. 优先级计算:根据式神稀有度权重和当前豆子数量动态调整
  2. 轨迹预测:基于历史移动数据预测式神下一步位置
  3. 时机选择:结合网络延迟和设备性能计算最佳撒豆时机
def calculate_throw_strategy(self, shikigami_list, bean_count): """计算最优撒豆策略""" strategies = [] for shiki in shikigami_list: # 计算每个式神的优先级分数 priority_score = self._get_rarity_weight(shiki.rarity) distance_score = self._calculate_distance_score(shiki.position) timing_score = self._predict_timing_score(shiki.movement) total_score = priority_score * 0.5 + distance_score * 0.3 + timing_score * 0.2 strategies.append({ 'target': shiki, 'score': total_score, 'bean_cost': self._calculate_bean_cost(shiki.rarity) }) # 选择最优策略 return sorted(strategies, key=lambda x: x['score'], reverse=True)[0]

故障诊断:问题定位与解决方案

常见问题排查树

百鬼夜行功能异常 ├── 识别失败 │ ├── 检查游戏版本是否匹配 │ ├── 验证图像资源文件完整性 │ └── 调整conf_threshold参数 ├── 控制失效 │ ├── 确认ADB连接状态 │ ├── 切换control_method方案 │ └── 检查模拟器权限设置 └── 性能问题 ├── 降低截图频率 ├── 关闭调试输出 └── 优化设备资源配置

日志分析与调试技巧

脚本在logs/目录下生成详细运行日志,关键信息包括:

  1. 识别日志:显示每个式神的识别置信度和位置
  2. 决策日志:记录撒豆决策过程和权重计算
  3. 性能日志:统计每帧处理时间和内存使用情况

⚠️重要提示:当遇到识别率下降时,首先检查tasks/Hyakkiyakou/hya/目录下的图像资源文件是否与当前游戏版本匹配。

轮播组件展示了自动化脚本中多任务切换和状态展示的界面设计理念

技术演进:从当前实现到未来规划

短期优化路线(1-3个月)

  1. 模型轻量化:将当前FP32模型转换为INT8量化模型,提升推理速度30-50%
  2. 多设备协同:支持同时控制多个模拟器实例,实现并行碎片收集
  3. 自适应参数:基于实时性能数据动态调整识别阈值和操作间隔

中期功能扩展(3-6个月)

  1. 强化学习集成:引入RL算法优化撒豆策略,基于历史数据学习最优时机
  2. 异常状态恢复:自动检测游戏崩溃、网络断开等异常并执行恢复流程
  3. 云端配置同步:支持多设备间的配置同步和进度共享

长期技术愿景(6个月以上)

  1. 端到端学习:直接从游戏画面学习最优操作策略,减少人工规则定义
  2. 跨游戏适配:将核心技术框架抽象化,支持其他游戏的自动化需求
  3. 社区模型共享:建立玩家贡献的识别模型库,提升泛化能力

社区贡献与最佳实践

开发环境搭建

# 1. 安装开发依赖 pip install -r requirements-dev.txt # 2. 运行测试套件 pytest tests/Hyakkiyakou/ # 3. 生成新的图像资源 python dev_tools/get_images.py --task Hyakkiyakou

图像资源贡献指南

当游戏UI更新时,需要更新识别图像:

  1. 截图规范:使用1280×720分辨率,PNG格式保存
  2. 命名规则hya_功能_描述.png(如hya_hinvite.png
  3. ROI标注:使用dev_tools/get_images.py工具自动生成坐标

性能基准测试

项目提供了完整的性能测试框架:

# 运行基准测试 python -m tests.benchmark Hyakkiyakou # 输出示例: # 平均识别延迟:45ms # 撒豆准确率:92.3% # 内存占用:<200MB

通过本文的技术深度解析,我们可以看到阴阳师自动化脚本的百鬼夜行功能不仅提供了实用的自动化解决方案,更展示了计算机视觉和智能决策算法在游戏自动化领域的创新应用。无论是追求效率的普通玩家,还是对技术实现感兴趣的开源贡献者,都能从这个项目中获得有价值的经验和启发。

技术要点总结

  • 混合识别方案平衡了准确性和性能需求
  • 权重系统提供了高度可定制的策略配置
  • 模块化设计便于功能扩展和维护
  • 完善的调试工具支持快速问题定位

随着项目的持续演进,百鬼夜行自动化技术将为更多阴阳师玩家带来高效、智能的游戏体验,同时也为游戏自动化领域的技术发展提供了有价值的参考案例。

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

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

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

Ubuntu 22.04安装STM32CubeMX完整指南:解决依赖、配置与调试

1. 项目概述&#xff1a;为什么要在Ubuntu上安装STM32CubeMX&#xff1f; 如果你是一名嵌入式开发者&#xff0c;或者正在学习STM32单片机&#xff0c;那么STM32CubeMX这个图形化配置工具大概率是你绕不开的。它就像乐高积木的说明书&#xff0c;能帮你把复杂的时钟树、外设初…

作者头像 李华
网站建设 2026/6/16 10:22:50

操作系统页式虚存实验详解:从原理到FIFO/LRU/Clock算法实现

1. 项目概述&#xff1a;从“头歌”到页式虚存&#xff0c;一次深入内核的实践如果你正在学习操作系统&#xff0c;尤其是内存管理这一块&#xff0c;那么“页式虚存”这个概念绝对是你绕不过去的核心。最近在“头歌”这个实践平台上&#xff0c;一个名为“课堂练习4.4&#xf…

作者头像 李华
网站建设 2026/6/16 10:21:51

TinyVLM:MCU上的零样本目标检测技术解析

1. TinyVLM技术解析&#xff1a;MCU上的零样本检测革命在边缘计算领域&#xff0c;微控制器&#xff08;MCU&#xff09;因其极低的功耗和成本优势&#xff0c;成为物联网设备的首选计算平台。然而传统计算机视觉模型动辄需要数百MB内存&#xff0c;与MCU通常仅有的KB级存储资源…

作者头像 李华
网站建设 2026/6/16 10:20:09

【Kafka源码解读和使用指南】第89篇:实时数据同步平台的Kafka实战——MySQL CDC与Kafka的最佳组合

上一篇【第88篇】日志收集平台的Kafka实战——百亿日志的接入、传输与清洗 下一篇【第90篇】Kafka在微服务中的最佳实践——事件驱动架构设计全攻略 摘要 数据库里一条记录变了&#xff0c;怎么让ES、Redis、数据仓库同步感知&#xff1f;传统的定时全量同步太重了&#xff0c…

作者头像 李华
网站建设 2026/6/16 10:18:59

50道大厂高频Redis面试题

IT策士 10余年一线大厂经验&#xff0c;专注 IT 思维、架构、职场进阶。我会在各个平台持续发布最新文章&#xff0c;助你少走弯路。 准备 Redis 面试&#xff0c;最怕碎片化背诵。我为你整理了 50 道大厂高频 Redis 面试题&#xff0c;覆盖数据结构、缓存、持久化、高可用、分…

作者头像 李华