当人工智能碰到阴阳师

写在前面

好久都没有更新博客了,项目也好,临近期末也好,最近确实有很多事情。说来也巧,因为项目组里有心理系的成员,所以说听到一个说法,大致说的是“在DDL前玩耍会更加的快乐”。~~这并不是我玩阴阳师的理由。~~

制作背景

其实经历过我们这个年龄所属的游戏时代的人们应该都知道,早期的游戏操作简单,图像以静态居多,或是由几帧静态图片构成的动态画面。对于这类游戏来说,脚本可以轻易地接管人类的操作。这也是为什么这么多人喜欢用脚本而不是外挂的原因,对于脚本来说,它完全模拟的是鼠标点击或者键盘的输出。但是对于外挂来说,则是进入内存修改数据。

想法萌生

对于阴阳师这款游戏来说,别的玩法过于"肝”我都能接受。唯独其中的一个叫“百鬼夜行”的玩法我尤其不能接受。这样的玩法普遍存在一个什么问题呢,那就是耗时长、收益低,操作重复。但是对于“百鬼夜行”这样的画面,普通的脚本是治不了它的了,因为在整个过程中,式神种类繁多且动作随机。 于是,最早的一批用代码解决的办法出现了,那就是修改数据。网友利用修改本地数据文件以达到百发百中、只增不减的效果。但是这种操作终究是破坏游戏平衡的。那么,有没有一种不修改数据也能模拟人眼来识别出式神的操作呢?也许,目标检测是一个不错的选择。

代码原理

整个步骤可以说是非常的简单 1. 玩几局“百鬼夜行”并同时录屏,从中收集“百鬼夜行”中式神、buff、式神头顶灯笼的图片,去除掉其中的废帧(指式神被砸中的那几帧),整个数据集越多越好、越清楚越好。 2. 建立神经网络,通过神经网络和数据集训练模型,确保训练出来的模型能够正确识别式神的种类。 3. 结合目标检测算法,可以做到在玩“百鬼夜行”的时候实时采样并标记,返回当前式神的坐标。 4. 利用PyAutoGUI实现点击屏幕

以上的代码就能够模拟出人选择式神并丢出豆子的操作

Continue....