用 Python 自動玩王者榮耀,簡直太秀了!
騰訊 AI Lab 開發(fā)的策略協(xié)作型“絕悟”,最強(qiáng) AI 分分教你做人。
但那個是像 Alpha Go 一樣,需要掌握海量數(shù)據(jù)和機(jī)器的團(tuán)隊,才能玩得起的。
今天,就給大家?guī)硪粋€「平民版」,咱們都能玩的王者榮耀 AI。
先睹為快:
視頻兩倍速播放,只訓(xùn)練了一個「后裔」英雄,如果想用其他英雄,可以自己訓(xùn)練。
今天繼續(xù)手把手教學(xué),你準(zhǔn)備好了嗎?
1. 實現(xiàn)原理
為了讓我們的代碼能夠控制手機(jī)的「王者榮耀」,我們需要實現(xiàn)在電腦上操控手機(jī)。
需要用到什么呢?scrcpy 和 minitouch。
scrcpy 可以將安卓手機(jī)的畫面投屏到電腦桌面顯示上并進(jìn)行操控。
簡單地說,就是可以讓你在電腦上控制手機(jī)!它支持鼠標(biāo)控制、鍵盤輸入、電腦剪切板復(fù)制粘貼、拖放文件傳輸?shù)绞謾C(jī)、以及拖放 APK 文件進(jìn)行安裝。
使用 scrcpy 你無需 ROOT 手機(jī),也不需在手機(jī)上安裝 APP,只需在系統(tǒng)設(shè)置里啟用“USB調(diào)試”( adb 調(diào)試) 即可。
minitouch 提供了一個 socket 接口用在 Android 設(shè)備上的多點觸摸事件以及手勢。也是無需 ROOT 手機(jī)。
用 scrcpy 獲取游戲畫面,獲取 scrcpy 的句柄,然后截圖,根據(jù)圖片生成操作指令,然后利用 minitouch 高效的執(zhí)行這些操作指令。
所以關(guān)鍵在于,如何根據(jù)圖片生成操作指令。
沒錯,用 Transformer。
上兩天火的 DALL·E 都見到了吧?OpenAI 最新發(fā)布的,它可以魔法一般按照自然語言文字描述直接生成對應(yīng)圖片!
比如輸入文本:鱷梨形狀的扶手椅。
AI 生成的圖像:

這生產(chǎn)效果真是堪稱神奇!自然語言與視覺的壁壘正在被逐漸打通。

反過來,圖片生成描述,更簡單了,這樣的工作幾年前就用了。
使用 Transformer,根據(jù)游戲圖像,生成當(dāng)前畫面的操作描述。

比如前進(jìn)、攻擊、釋放技能。
2. 算法測試
首先你得有個能跑 Transformer 的顯卡,安裝需要的第三方庫,例如 pyminitouch、pytorch 等。
然后安裝 scrcpy,這個安裝教程很多,百度一搜一大把,將所有東西放在與下載的代碼同級目錄下。

下載訓(xùn)練好的模型文件。
還是老規(guī)矩,我將代碼和模型打包了,方便大家直接下載(提取碼:jack)。
https://pan.baidu.com/s/19kjTuX4DeTVE3B3HGw0uOw
需要注意的是,不同手機(jī)的 minitouch 配置可能有所不同,代碼的測試機(jī)器分辨率是 1080*2160,這里需要根據(jù)自己的情況進(jìn)行修改。
配置好環(huán)境后,就可以運行代碼了。
運行文件“啟動和結(jié)束進(jìn)程.py”,啟動scrcpy。把“訓(xùn)練數(shù)據(jù)截取_A.py” 中的兩項改成你的設(shè)備:

啟動王者榮耀進(jìn)入 5v5 人機(jī)對戰(zhàn)后,運行 “訓(xùn)練數(shù)據(jù)截取_A.py” 即可。
趕快自己體驗一波吧!訓(xùn)練一個你最愛的英雄!
項目地址:https://github.com/FengQuanLi/ResnetGPT
3. 寫在最后
這個項目的代碼,有些凌亂,還有硬核的中文變量。
算法性能有待提高,目前打打人機(jī)還行。
后面有時間,我會做整理和升級,在這個基礎(chǔ)上改進(jìn)版本,看情況吧~
