NateScarlet / auto-derby

🐎🖥《赛马娘》(ウマ娘: Pretty Derby)辅助脚本
MIT License
463 stars 106 forks source link

支持 adb #44

Closed NateScarlet closed 3 years ago

NateScarlet commented 3 years ago

from #42

adb和模拟器没法指定分辨率 模版匹配难度会提升

fatinghenji commented 3 years ago

不是很有道理(~但是很容易~)的解决方案: 电脑的模拟器和安卓虚拟机都可以手动设定分辨率和dpi,直接让用户按规定的分辨率和dpi使用。 ~隔壁方舟的托管就是这样解决的~

NateScarlet commented 3 years ago

现在的截图用的不是标准大小 而是 466 x 828 需要把所有数据都改成适配 540 x 960 的

这个分辨率是从它默认的窗口大小提取出来的,然后我发现它默认大小好像每次都不一样

NateScarlet commented 3 years ago

然后我自己不能用 540 x 960 因为我副屏放三行的任务栏 剩余空间没有 960 那么高

fatinghenji commented 3 years ago

现在的截图用的不是标准大小 而是 466 x 828 需要把所有数据都改成适配 540 x 960 的

好家伙,那工作量确实好大

这个分辨率是从它默认的窗口大小提取出来的,然后我发现它默认大小好像每次都不一样

?还有这种奇怪的事情?

NateScarlet commented 3 years ago

不过增大分辨率也有好处就是OCR更难出错 如果能实现后台挂机那我也不需要放副屏了

fatinghenji commented 3 years ago

现在的截图用的不是标准大小 而是 466 x 828

vmos那个安卓手机端的虚拟机支持非标准大小,下面这张图就是466X828的分辨率 image ~不过我真没想到会这么糊~

NateScarlet commented 3 years ago

我在把坐标都改成相对窗口宽度的 0b530446422134b05f75283e8ae4314a90a89154

然后后面再加上识图的时候统一缩放成 540x960 的 看精确度咋样

fatinghenji commented 3 years ago

好诶!可以放出一个测试版吗?一会到家了可以试试

NateScarlet commented 3 years ago

还没加呢 现在重构就是方便新写的功能不需要后面重新适配

fatinghenji commented 3 years ago

辛苦作者了!我是个只会提需求的笨比

Splendent commented 3 years ago

如果能支援模擬器ADB那真是幫了大忙了,畢竟在WINDWOS上用VPN有太多不便,DMM GAMES本身程式又擋vm,我身邊兩三個同事也是有相同需求; 更新這麼勤奮必須給個star⭐! 👍

NateScarlet commented 3 years ago

开发分支已经改成用 540x960 了 改了之后所有育成事件都要重新选

模版我是全部整体放大的 跑了一次育成发现非文本模版大多都能直接用

等所有功能都用过一遍再放到 master

NateScarlet commented 3 years ago

我在模拟器上装了测试了 发现模拟器窗口也不能后台点击 估计游戏不处理 windows 的点击消息

只能模拟器也通过 adb 来操作

fatinghenji commented 3 years ago

对哇,模拟器也需要通过adb

device:
  # ADB server 的端口。部分模拟器为避免冲突可能会将 ADB server 开在其他端口,
  # 此时可以更改此设置以利用模拟器自带的 ADB server。
  # adb_server: 127.0.0.1:5037

  # 需要启动 adb server 时,使用的 adb 命令
  # 为空时则尝试: 1. PATH 中的 adb;
  #               2. ADB/{sys.platform}/adb;
  #               3. 查找 Android SDK(ANDROID_SDK_ROOT 和默认安装目录)
  adb_binary:
  # 以下为部分模拟器提供的 adb 程序,不一定正确,仅供参考
  # adb_binary: D:\leidian\LDPlayer\adb.exe             # 雷电模拟器
  # adb_binary: C:\Program Files\BlueStacks\HD-Adb.exe  # BlueStacks
  # adb_binary: C:\Program Files (x86)\MuMu\emulator\nemu\vmonitor\bin\adb_server.exe  # MuMu模拟器

  # 始终选择指定设备进行操作(指定 adb devices 中列出的名称)
  # adb_always_use_device:

  # 无设备连接时进行的操作
  # 如果某个操作报告成功,则不再执行后续定义的操作
  adb_no_device_fixups:
  - run: probe_bluestacks_hyperv  # 自动探测并连接 BlueStacks Hyper-V 的 ADB 端口
  - run: adb_connect  # 连接 ADB TCP/IP 端口
    target:
    - 127.0.0.1:5555    # 大部分模拟器
    - 127.0.0.1:7555    # MuMu模拟器
    try_all: false  # 某个端口连接成功后,是否继续尝试后续定义的端口

  # 使用兼容性较好(但较慢)的截图方式
  compat_screenshot: false

  # 通过 adb 传输模拟器截图数据较慢时,尝试绕过 adbd 传输截图数据
  # 模拟器判断逻辑:1. 设备名称以 "emulator-" 或 "127.0.0.1:" 开头
  #                 2. ro.product.board 包含 goldfish(SDK emulator)或存在 vboxguest 模块
  # 可用选项:never, auto, always
  workaround_slow_emulator_adb: auto

  # 截图缓存:如果两次截图间隔小于上次截图耗时,则直接返回上次的截图
  cache_screenshot: true

隔壁明日方舟护肝助手的config文件,可以参考下 ~他们家的图形界面也用户友好,所以能安排下图形界面吗?~

NateScarlet commented 3 years ago

他们家的图形界面也用户友好,所以能安排下图形界面吗?

没空 这项目主要目的是我自己省时间 如果我花大量时间维护就本末倒置了 或者你要他们去开个赛马娘的项目

NateScarlet commented 3 years ago

图片 发现 adb 其实是可以设置分辨率的 不过如果是实机感觉改分辨率不太好 实机根本改不了

NateScarlet commented 3 years ago

虽然后台操作实现了 但是不知为啥模拟器分辨率540x960好糊

EDIT: 我改成 1920x1080 320 DPI 清晰度和桌面差不多 可能DMM版实际上渲染的像素量和窗口大小无关

NateScarlet commented 3 years ago

支持高分辨率途中发现一个bug 现在的育成事件截图区域其实都歪了 还是用的 466 宽时候的坐标

Splendent commented 3 years ago

問下,現在推薦ANDROID解析度/DPI? 在想要不要重設我的JSON來適應ANDROID

目前使用NOX PLAYER設定540x960, 120dpi,有的字需要重新辨認

NateScarlet commented 3 years ago

@Splendent

我开发测试发现 1080x1920 的清晰度和电脑差不多 dpi应该只影响模拟器显示默认窗口的大小 脚本用像素作为基本单位所以无所谓

Splendent commented 3 years ago
做了個測試,有事先清空過orc_images.local 120dpi 320dpi 480dpi
540x960 ラ需辨認 X ラ需辨認
1080x1920 正常運作 正常運作 "級"需辨認

540x960 120dpi c5e4b7fa93d2bf7b1e5eabdedf3ea541 540x960 480dpi 79bdaaeae5a2bd0af59b2d8defaaf210 1080x1920 120dpi 12533dba703c46f44a440692c6616726 1080x1920 320dpi 12533dba703c46f44a440692c6616726 1080x1920 480dpi 00c47ad07608578e2bbd5e43bfda1e36

目前應該會採用120dpi繼續跑 🐎

NateScarlet commented 3 years ago

日期的背景有可能导致误差 用白色背景的文字测试比较好

Splendent commented 3 years ago

@Splendent

我开发测试发现 1080x1920 的清晰度和电脑差不多 dpi应该只影响模拟器显示默认窗口的大小 脚本用像素作为基本单位所以无所谓

看起來是這樣沒錯 👍 以下兩份LOG為在1080x1920底下跑的辨認測試,相似度毫無差異....但無法理解上面的RA圖為什麼到了480dpi就有差異 120dpi auto_derby_120dpi.log 320dpi auto_derby_320dpi.log

其他解析度的就更慘了 900x1600 120dpi auto_derby_1600x900_120dpi.log 320dpi auto_derby_1600x900_320dpi.log

1440x2560 auto_derby_1440x2560_320dpi.log

日期的背景有可能导致误差 用白色背景的文字测试比较好

我不會弄! 😆

NateScarlet commented 3 years ago

adb 养成了个 10000 分的好歌剧 合并到主分支了

但是我自己主要还是需要用前台来挂: