OnmyojiAutoScript 百鬼夜行功能异常分析与解决方案
问题背景
OnmyojiAutoScript(简称OAS)是一款针对《阴阳师》手游的自动化脚本工具,其中包含百鬼夜行模式的自动操作功能。近期有用户反馈在执行百鬼夜行任务时遇到了异常情况:脚本能够正常进入百鬼夜行界面,但无法自动执行撒豆操作。
错误现象分析
根据用户提供的日志和截图,我们可以观察到以下关键信息:
- 脚本成功识别并进入了百鬼夜行界面
- 在执行过程中出现了OpenCV的图像匹配错误
- 错误提示显示:"error: (-215:Assertion failed) _img.size().height <= _templ.size().height && _img.size().width <= _templ.size().width"
- 从日志中可以看到source数组的shape为(0, 143, 3),表明y维度为0
技术原因解析
这个问题的根本原因在于图像处理环节出现了异常:
-
OpenCV匹配机制:脚本使用OpenCV的matchTemplate函数进行模板匹配时,要求源图像(img)的尺寸必须小于等于模板图像(templ)的尺寸。当这个条件不满足时,就会抛出该异常。
-
图像截取异常:从日志中可以看到,source数组的y维度为0,这表明在图像截取或处理过程中出现了异常,导致获取到的图像高度为0。
-
可能的触发因素:
- 模拟器窗口缩放导致分辨率异常
- 图像处理过程中的坐标计算错误
- OpenCV库本身在某些特殊情况下的处理异常
解决方案
根据项目维护者的建议和问题分析,我们推荐以下解决方案:
-
模拟器设置调整:
- 确保模拟器窗口保持原始分辨率,不要进行任何缩放操作
- 避免使用全屏模式,保持窗口化运行
-
环境重置:
- 重启电脑,确保所有相关进程干净启动
- 重新安装OAS脚本,确保文件完整性
-
备选方案:
- 尝试更换其他模拟器或设备
- 检查显卡驱动是否为最新版本
预防措施
为了避免类似问题的再次发生,建议用户:
- 严格按照项目文档中的环境要求配置模拟器
- 避免在脚本运行时调整窗口大小或分辨率
- 定期更新脚本到最新版本
- 在执行自动化任务前,先手动确认游戏界面显示正常
技术深入
对于开发者或对技术细节感兴趣的用户,可以进一步了解:
- OpenCV的模板匹配机制对图像尺寸有严格要求,这是出于算法效率和安全性的考虑
- 在自动化脚本中,稳定的图像采集是基础,任何显示异常都可能导致后续处理失败
- 游戏UI的变动可能会影响脚本的识别效果,需要及时更新资源文件
通过以上分析和解决方案,大多数用户应该能够解决百鬼夜行功能的异常问题。如果问题仍然存在,建议收集更详细的日志信息以便进一步排查。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考