大家好,我是 Jack 。
「王者荣耀」想必大家就算没有玩过,也都听过。
腾讯 AI Lab 开发的策略协作型“绝悟”,最强 AI 分分教你做人。
但那个是像 Alpha Go 一样,需要掌握海量数据和机器的团队,才能玩得起的。
今天,就给大家带来一个「平民版」,咱们都能玩的王者荣耀 AI。
先睹为快:
视频两倍速播放,只训练了一个「后裔」英雄,如果想用其他英雄,可以自己训练。
接下来手把手教学,你准备好了吗?
为了让我们的代码能够控制手机的「王者荣耀」,我们需要实现在电脑上操控手机。需要用到什么呢?scrcpy 和 minitouch。scrcpy 可以将安卓手机的画面投屏到电脑桌面显示屏上并进行操控。简单地说,就是可以让你在电脑上控制手机!它支持鼠标控制、键盘输入、电脑剪切板复制粘贴、拖放文件传输到手机、以及拖放 APK 文件进行安装。使用 scrcpy 你无需 ROOT 手机,也不需在手机上安装 APP,只需在系统设置里启用“USB调试”(adb 调试)即可。minitouch 提供了一个 socket 接口用在 Android 设备上的多点触摸事件以及手势。也是无需 ROOT 手机。用 scrcpy 获取游戏画面,获取 scrcpy 的句柄,然后截图,根据图片生成操作指令,然后利用 minitouch 高效地执行这些操作指令。上两天火的 DALL·E 都见到了吧?OpenAI 最新发布的,它可以魔法一般按照自然语言文字描述直接生成对应图片!
这生产效果真是堪称神奇!自然语言与视觉的壁垒正在被逐渐打通。
反过来,图片生成描述,更简单了,这样的工作几年前就用了。使用 Transformer,根据游戏图像,生成当前画面的操作描述。
首先你得有个能跑 Transformer 的显卡,安装需要的第三方库,例如 pyminitouch、pytorch 等。然后安装 scrcpy,这个安装教程很多,百度一搜一大把,将所有东西放在与下载的代码同级目录下。
需要注意的是,不同手机的 minitouch 配置可能有所不同,代码的测试机器分辨率是 1080*2160,这里需要根据自己的情况进行修改。运行文件“启动和结束进程.py”,启动scrcpy。把“训练数据截取_A.py” 中的两项改成你的设备:
启动王者荣耀进入 5v5 人机对战后,运行 “训练数据截取_A.py” 即可。https://github.com/FengQuanLi/ResnetGPT
这个项目的代码,有些凌乱,还有硬核的中文变量。
算法性能有待提高,目前打打人机还行。
后面有时间,我会做整理和升级,在这个基础上改进版本,看情况吧~
·················END·················