Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于游戏资源在覆盖层标注的一点想法 #102

Open
wwbweibo opened this issue Nov 28, 2023 · 1 comment
Open

关于游戏资源在覆盖层标注的一点想法 #102

wwbweibo opened this issue Nov 28, 2023 · 1 comment
Labels
功能请求 New feature or request 奇思妙想 奇思妙想

Comments

@wwbweibo
Copy link
Contributor

完成这个功能需要以下几个前置条件

  1. 获取到游戏内资源的清单和目录,可以通过米游社大地图的api获得;
  2. 玩家在游戏中的位置, 目前另一个开源项目 cvAutoTrack 完成了基于视觉方案的玩家位置跟踪,这个项目空荧酒馆也在用来最终玩家位置显示在覆盖层的地图上,位置追中的精度还是可以信赖的;
  3. 游戏上可修改的覆盖层,当前项目已经有了;

这样我们就可以考虑将游戏中的资源添加到覆盖层上,从而避免采集资源的时候频繁的切出去看地图

关于实现方案,我目前想到了三种

  1. 在游戏中打开地图时添加上用户筛选的资源。但是这个方案有一个很大的局限是,cvAutoTrack的位置跟踪在大地图打开时无法完成,所以只能拉取到打开大地图之前的位置,默认此时的位置是地图正中间的位置,这会导致用户在拖拽地图之后的资源位置错误;
  2. 类似空荧酒馆的做法,在覆盖层上直接展示米游社大地图,但是这会导致游戏内交互失效;
  3. 用户在筛选资源后直接在大世界展示距离玩家最近的资源,类似于游戏内任务跟踪的做法。 但是由于从米游社获取到资源位置和cvAutoTrack获取到的位置都没有Z轴的坐标,所以只能展示平面上的相对的位置和距离

不知道各位大佬还有没有更好的实现方案,或者说在现有可以实现的方案上,更偏向于哪一种

@huiyadanli
Copy link
Member

地图遮罩我这边暂时的想法是:

  1. 获取到游戏内资源的清单和目录,应该会直接选择对接空荧酒馆的数据,米游社大地图更新速度和准确程度都不太行。
  2. 玩家在游戏中的位置, 通过大地图匹配而不是小地图匹配拿到当前位置,参考 genshin_impact_assistant 把整个大地图缩小后作为模板进行匹配,在YUV色彩空间下。(提瓦特大地图素材来自cvAutoTrack)
  3. 遮罩反倒感觉是难点,尤其是拖动地图的时候素材点随着移动这块。

cvAutoTrack 会尝试单独拿出其小地图匹配的 SURF 算法进行集成(dllimport),不过是用于路线追踪、自动拾取对接空荧酒馆等功能的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
功能请求 New feature or request 奇思妙想 奇思妙想
Projects
Status: 备忘录
Development

No branches or pull requests

3 participants