王者荣耀怎么用ai教学在玩游戏的过程中截屏,并记录手指操作。例如每100毫秒采集一次数据,每条记录包括屏幕截图、手指操作状态。我们希望训练好的AI能预测下一刻的手指操作状态,然后将预测的操作反映到游戏中。手机安卓手机,暂不考虑ios。手机截屏可以通过手机录屏的方式,先将游戏过程录制成视频文件,后面再从视频文件中获取截图。在电脑上可以用adb命令调用它。找到events中有ABS_MT开头的那个设备,它就是触摸屏啦。
王者荣耀怎么用ai教学?在玩游戏的过程中截屏,并记录手指操作例如每100毫秒采集一次数据,每条记录包括屏幕截图、手指操作状态我们希望训练好的AI能预测下一刻的手指操作状态,然后将预测的操作反映到游戏中,接下来我们就来聊聊关于王者荣耀怎么用ai教学?以下内容大家不妨参考一二希望能帮到您!
王者荣耀怎么用ai教学
在玩游戏的过程中截屏,并记录手指操作。例如每100毫秒采集一次数据,每条记录包括屏幕截图、手指操作状态。我们希望训练好的AI能预测下一刻的手指操作状态,然后将预测的操作反映到游戏中。
手机安卓手机,暂不考虑ios。
手机截屏可以通过手机录屏的方式,先将游戏过程录制成视频文件,后面再从视频文件中获取截图。一般手机都自带录屏功能。还可以从电脑上录屏,例如scrcpy(https://github.com/Genymobile/scrcpy)。一般是录不了声音的,不过我们只用截图,所以也不用录声音。
录制手指操作安卓上自带的工具getevent可以获取到各种输入事件,其中就包括屏幕的触摸事件。在电脑上可以用adb命令(不熟悉adb命令的话请自行搜索)调用它。
$ adb shell getevent -lp// 输出差不多这样子add device 6: /dev/input/event1name:"hisi_gpio_key"events:KEY (0001): KEY_VOLUMEDOWNKEY_VOLUMEUP input props:<none>add device 7: /dev/input/event6name:"huawei,ts_kit"events:KEY (0001): KEY_F1BTN_TOOL_FINGERBTN_TOUCHABS (0003): ABS_MT_TOUCH_MAJOR: value 0, min 0, max 255, fuzz 0, flat 0, resolution 0ABS_MT_TOUCH_MINOR: value 0, min 0, max 255, fuzz 0, flat 0, resolution 0ABS_MT_WIDTH_MAJOR: value 0, min 0, max 100, fuzz 0, flat 0, resolution 0ABS_MT_WIDTH_MINOR: value 0, min 0, max 100, fuzz 0, flat 0, resolution 0ABS_MT_ORIENTATION: value 0, min 0, max 255, fuzz 0, flat 0, resolution 0ABS_MT_POSITION_X: value 0, min 0, max 1080, fuzz 0, flat 0, resolution 0ABS_MT_POSITION_Y: value 0, min 0, max 1920, fuzz 0, flat 0, resolution 0ABS_MT_TRACKING_ID: value 0, min 0, max 15, fuzz 0, flat 0, resolution 0ABS_MT_PRESSURE: value 0, min 0, max 1080, fuzz 0, flat 0, resolution 0
“adb shell getevent -lp”可以列出所有输入设备,设备ID类似于“/dev/input/event...”。找到events中有ABS_MT开头的那个设备,它就是触摸屏啦。记录下设备ID,接着我们来获取触摸屏的事件。
$ adb shell getevent -l /dev/input/event6// 输出差不多这样子// type, code, valueEV_SYNSYN_MT_REPORT00000000EV_SYNSYN_REPORT 00000000EV_ABSABS_MT_PRESSURE00000076EV_ABSABS_MT_POSITION_X00000249EV_ABSABS_MT_POSITION_Y00000508EV_ABSABS_MT_TRACKING_ID00000000EV_SYNSYN_MT_REPORT00000000EV_KEYBTN_TOUCHDOWNEV_SYNSYN_REPORT 00000000EV_ABSABS_MT_PRESSURE00000063EV_ABSABS_MT_POSITION_X00000249EV_ABSABS_MT_POSITION_Y00000508EV_ABSABS_MT_TRACKING_ID00000000EV_SYNSYN_MT_REPORT00000000EV_SYNSYN_REPORT 00000000
可以搜索多点触控协议了解上面输出的含义,例如这篇https://tinylab-1.gitbook.io/linux-doc/zh-cn/input/multi-touch-protocol
更多记录触屏操作的代码可以参考https://github.com/Cartucho/android-touch-record-replay
时间对齐由于我们是分别录制的屏幕和触屏操作,后面处理数据的时候需要将截图和同一时刻的操作同步,所以在记录原始数据的时候尽可能带着时间戳。