传奇广告查询第一站 同步54.com

利用yolov5和模板匹配制作游戏自动化脚本
原创 于2026-01-05 18:07:00发布
31 阅读
0
0

大家好,今天为大家带来原神自动刷副本的脚本,先看看效果。

ae4ff506c648d35478957ce3830f0e75.gif

1、脚本思路:

1、找到进入副本的特征,根据这个特征让角色移动到挑战地点。

2、当角色到达挑战地点,找到副本挑战开始的信号。

3、挑战开始后,根据队伍预设的指令进行攻击,一直循环直到挑战成功。

4、找到挑战成功的标识,以此来结束攻击循环。

5、识别周围环境,寻找领奖位置

6、移动到领奖处,识别可以领取奖励的标志,并按照指令领奖。

2、代码前的准备:

由脚本思路中,我们需要准备通关副本的各种数据(脚本思路下划线部分)。

首先,对于其中一些简单的标识,在电脑屏幕上持续时间长且容易识别,采用模板匹配算法

模板匹配就是将特征图在一张图片里不停的移动并进行匹配,根据匹配相似度得到最高值,具体就不在这里说了。说回到简单的标识,比如,开启副本的标识,挑战位置的标识,等等。这些都是固定的标识。这些标识如下:

4b22de22b14b45d293a6534db1cec317.png

得到了这些标识,也就是所谓特征。那么我们需要将标识在一张图片里移动,找到相似度最高的值(模板匹配算法)。那么这个图片在哪里来呢?当然是我们的屏幕,但是把全屏放进去是不好的,这样运算速度比较慢,我们选择将屏幕部分区域截取下来,让这些特征在区域内进行匹配,这样大大节省了时间。

但是这些区域怎么获得呢?这个根据自己的显示屏大小来确定了。以我的为例:

602994712dbcd4d92479d77d34b7d8be.png

tree_pos为石化古树的位置(874,278),(1042,321)分别代表了这个区域左上角和右下角点在屏幕上的位置坐标。这样,将所有需要匹配的特征加载进来,已经这些匹配区域的位置信息得到,就能进行识别。

上面说完了简单的标识,对于不那么简单的标识,模板匹配就不那么好用了。例如在战斗过后,找寻领奖位置。在战斗中难免有碰撞,导致位置不一样,包括视角转动这些,在进行匹配就不那么好找了,当然可以选择降低阈值,但很多时候仍然不容易找到。选择用YOLO进行识别。效果图如下:

a873957b009ffe2300b56602be6df91f.png

至此,简单和困难的标识都得到了解决,下面着手代码的编写。

3、代码

1、对于简单标识,我们需要用模板匹配识别,先定义一个识别函数:

#匹配函数值 def get_match_value(path,pos): area = src_area(pos) tar = cv2.imread(path) res = cv2.matchTemplate(area,tar,cv2.TM_CCOEFF_NORMED) _,max_value,_,_= cv2.minMaxLoc(res) return max_value

函数输入值path,pos就是上面图里面的每一个特征的path和pos。

这里的src_area函数如下定义:


                
管理员
0
0
0
分享
上一篇: 八方向行走脚本
下一篇: 热血传奇服务端装备穿戴触发脚本
评论
历史记录
回顶部
浏览时间 游戏名称 游戏IP 开区网址
注册GM1论坛账号
  • 上传头像
注册

已有账号,

微信扫码登录
重置密码
重置密码

注册

绑定关联手机号
关联手机号