Code Monkey home page Code Monkey logo

skeathytomas / genshin_artifact_auxiliary Goto Github PK

View Code? Open in Web Editor NEW
90.0 3.0 7.0 5.37 MB

A Genshin Impact artifact rater sticking upon artifacts inside the game window. 刻晴办公桌 | 原神 | 圣遗物评分。集成在游戏窗口之上的原神圣遗物导出、评分工具,无需游戏内外来回切换对比,游戏中快速计算与查阅结果。

License: Apache License 2.0

Python 100.00%
genshin-impact ocr pyside6 python tesseract paddleocr rapidocr

genshin_artifact_auxiliary's Introduction

刻晴办公桌

GitHub downloads GitHub release (latest by date)

简介

帮你在游戏中整理圣遗物背包时更便捷地了解、查阅圣遗物的评分,然后把评分最高的圣遗物装配给希望的角色,同时支持背包面板和角色面板。多角色适配,帮你省去了记各角色有效词条、口算/按计算器的时间。

相比于其他评分工具的优势:

  1. 与游戏本身有更好的贴合性,可以让玩家对于圣遗物好坏有更加方便直观的判断。
  2. 省去了一些截图、角色装配调来调去、游戏内外来回对比的麻烦。

demo&教程视频

背包面板圣遗物

角色面板圣遗物

环境与准备

OCR 引擎

注:v0.7.0 版本开始更换 paddleocr 为 OCR 引擎,已不需要手动安装 OCR 环境。paddleocr 在识别率上有更好的效果,可以处理后续主词条、名称识别等需求。

  1. OCR引擎tesserect,安装过程详见原项目,或者参考这篇文章,安装链接tesseract-ocr-w64-setup-v5.3.0.20221214.exe(64位)。如果你使用scoop,可以使用scoop install tesseract快速安装。安装完成后,可在命令行输入tesseract检验是否安装成功。
  2. tesseract中文简体数据文件,下载完成后保存到tesseract数据目录tessdata中(如果是scoop安装的话,放在./scoop/persist/tesseract/tessdata文件夹中)。

如果你需要直接运行 python 程序

  1. Python 3.7~3.11 (作者开发环境 Python 3.11.4,onnxruntime 暂不支持 3.12)。
  2. 必备的Python包:
    1. PySide6,GUI 框架
    2. pynput,监听游戏窗口内鼠标操作
    3. pywin32,获取设备分辨率、缩放信息,用于兼容不同分辨率
    4. pyqtdarktheme,GUI 样式
    5. rapidocr-onnxruntime,paddleocr 使用 onnx 模型接口

使用打包好的 exe 程序

  1. 在 release 中下载最新的压缩包。
  2. 解压。

使用教程

  1. 打开游戏,手动在设置-图像-显示模式中调整为窗口模式。现已支持自定义窗口模式,支持窗口16:10, 16:9, 3:2分辨率,请确定游戏窗口化打开且不要最小化,在工具启动后也不要移动游戏窗口,否则捕捉窗口定位错误会使识别出错

  2. 方式1:运行打包好的程序。解压压缩包完成后,找到并用管理员模式运行 keqing.exe(必须,否则程序运行中无法监听游戏中的鼠标操作)。

keqing.exe

  1. 方式2:下载源码,使用管理员模式打开命令行工具(必须,否则程序运行中无法监听游戏中的鼠标操作),并打开程序目录,使用命令python app.py运行程序。
  2. 在主窗口中选择角色(不选的话,默认评估双爆+攻击词条)。
  3. 打开背包-圣遗物或角色-圣遗物装配(需在主程序中对应选择背包或角色),随意选择圣遗物,点击右键进行圣遗物评分,评分结果随后标记在对应圣遗物右下角,并在主程序展示副词条识别结果。
  4. 选中某个贴图结果,使用快捷键Ctrl+Z删除该贴图;使用全局快捷键Ctrl+Shift+Z删除所有贴图,可进行新一批圣遗物的评估。
  5. 支持对选中的圣遗物(主面板跟随更新)进行手动修正识别结果,点击确认修改可保存修改结果,不过我觉得还是再点一次右键比较方便。
  6. 当前屏幕上的贴图结果可通过取一个名称(比如「火伤杯」),再通过保存按钮本地储存(文档/keqing/archive.json),可从下拉框中选择已保存的结果并贴图展示(包括下次打开程序)。
  7. 使用背包模式保存圣遗物方案(取名为对应圣遗物套装名称时)支持文档/keqing/mona.json格式导出,可用于莫娜占卜铺网站导入分析圣遗物。

主程序示意

评分方法

更新了圣遗物评分方法,调整了角色的有效词条,增加了每个角色相对于固定词条的二级系数(如同样是大攻击对于一般主C和胡桃的评分系数就有所不同),删除了不同打法流派的角色。

具体每一个角色的有效词条和词条的评分系数可参考character.jsonscore.py中的配置,如与需求不符可自行前往源文件修改参数。

首次使用软件,角色评分系数配置文件character.json会复制一份到文档/keqing/character.json中,并优先使用此文件作为角色最终配置文件。如有需要修改角色配置,请修改以上文件,方便程序更新后保留用户个人配置。

评分结果参考:

  • 30分:勉强够用
  • 40分:准毕业水平
  • 50分:极品

(单个圣遗物评分结果仅供参考,具体角色强度还是要以整体角色面板和具体配队玩法为准。)

已知问题

分辨率适配

已适配游戏窗口 16:10,16:9,3:2 分辨率。分辨率适配框架已经搭好,若有分辨率适配问题,可查看程序目录中的src/grab.png识别截图是否准确,并提供一些不同分辨率的截图做坐标定位和测试了。

如使用多屏设备(如笔记本外接显示器),请把游戏窗口置于第一屏。

目前已验证无问题的分辨率:

16:10:

  • 2560 * 1600
  • 3840 * 2400

16:9:

  • 2560 * 1440
  • 1920 * 1080
  • 3840 * 2160

3:2:

  • 2160 * 1440

其他不支持的分辨率可在游戏内将显示模式调整为 1920*1080 窗口,然后重启该软件。

角色面板识别问题

背景飘过的白点和文字重叠可能会导致识别出错(感觉这个解决起来还是有点难度的,就算人眼去识别遮挡的文字可能也会出错,可能需要上下文,牵扯到数字可能就更没办法了)。

一般情况下再识别一次即可,可根据主程序面板的识别结果对比识别是否准确,手动校正与本地储存已识别结果功能正在筹备中已上线。

P.S. 更换 OCR 引擎后此问题已大幅改善。

关于GUI

暂未对滚动条进行适配,若下拉滚动条使第一行圣遗物显示不全,或者在角色面板点击靠下的圣遗物,因为游戏系统自动会移动滚动条,贴图结果可能会有垂直方向的偏移。

使用了默认的组件,某些高级整合/自改组件Bug一堆,问就是还在学,不过就问你能不能用吧。UI美化、Bug修复等1.0版本再考虑。

语言支持

  • 中文简体

声明与支持

  • 本程序不收集任何用户信息,所有数据保留在本地。
  • 理论上未对任何游戏数据进行非法获取和修改,仅通过截图和 OCR 技术实现相关分析,且没有使用自动化程序帮助玩家获取游戏内资源,应该不在官方打击范围。如若官方觉得不妥,我就删库跑路。
  • 最近在 xx 软件园之类的网站看到了自己的软件,并看到了完全对不上的功能介绍。在此声明并非本人上传,不确定是否做过恶意修改,请谨慎在 release 以外渠道下载本软件/工具(除了本人 b 站视频贴的方便 GitHub 访问困难用户的度盘链接,以及本文档留下的 QQ 群)。

如果觉得有用/帮到了您的话,欢迎推荐给您的好友!

问题反馈

使用中有任何问题可以提 Issue,最好提供下命令行的输出(如识别错误、环境错误等)。

QQ群:119633609

需求来源

  1. 如何做一个圣遗物管理系统:产品调研与分析
  2. 如何做一个圣遗物管理系统:产品需求文档

genshin_artifact_auxiliary's People

Contributors

developer20001 avatar skeathytomas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

genshin_artifact_auxiliary's Issues

3840*2160分辨率和200%缩放支持

🤔还没有吗

3840 2160
暂不支持该分辨率,请联系作者。
Traceback (most recent call last):
  File "app.py", line 4, in <module>
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 499, in exec_module
  File "location.py", line 47, in <module>
NameError: name 'row_A' is not defined
[21316] Failed to execute script 'app' due to unhandled exception!

About Multilingual Support

Is it possible to have multiple support for Japanese, English, and other languages?
I would like to use your program, but the language barrier prevents me from doing so.
Thank you in advance for your help.

建议加入0级或者低级圣遗物的潜力测评

先说一下本人对于圣遗物的管理

  1. 首先先用莫娜占卜铺的yas总体扫描圣遗物全部
  2. 导入莫娜内对角色与队伍进行细分
  3. 圣遗物总数超过1000时对圣遗物三合一处理

目前我的需求主要为在三合一时快速处理是否需要合成,建议作者能做一个相关与圣遗物潜力的计算
以下还有一些建议

  1. 希望能与yas这样的圣遗物导出工具互通,毕竟大量的计算的话还是需要导入莫娜或者自建Excel计算
  2. 识别圣遗物的不同部位,方便对不同圣遗物对应人物之间快速筛选圣遗物留取指南

暂时就想到这些了,我会积极使用并给出反馈,谢谢大佬开发此类工具,提供了一种新的圣遗物筛选方式

希望增加强化界面的支持和泛用评分的支持

1,强化选择界面选择圣遗物可以评分,这个支持新的识别区域
2,针对圣遗物可以进行泛用评分,目前工具提供了几个泛用类型,可以对一个圣遗物进行所有类型的评分,通过这个可以快速的选狗粮

需求:云游戏窗口支持请求

需求描述:主要使用云游戏进行游戏,希望能在start云游戏平台上使用这个好用的工具
实现思路建议:1.增加对STGameOpt.exe(这个是start云游戏平台的游戏窗口,start.exe是平台的登录界面)的支持,而不仅仅是yuanshen.exe;
2.增加自定义窗口范围的支持,可以有效提高工具的鲁棒性(估计要改的代码会比较多)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.