this Chinese, Click to English
通过图像匹配算法,从原神客户端中获取角色在地图上的位置的DLL动态链接库
原神版本 | 地图区域 | dll版本 |
---|---|---|
1.0 | 蒙德 | - |
- | 雪山 | - |
- | 璃月 | - |
- | 稻妻I | - |
- | 稻妻II | - |
- | 稻妻III(鹤观) | - |
- | 稻妻IIII(渊下宫) | - |
- | 璃月II(层岩) | - |
- | 璃月III(地下层岩) | - |
3.0 | 须弥 | 6.1.51 |
3.1 | 须弥沙漠 | 6.4.17 |
版本 | 键盘模式 | 手柄模式 | 分辨率支持列表 |
---|---|---|---|
6.4.x | √ | × | 1920x1080 |
6.5.39 | √ | × | 1920x1080, 2560x1440, 2560x1080 |
6.5.92 | - | - | - |
7.0.1 | √ | √(DX模式下不支持) | 16:9 系列(但不包括4K及以上), 21:9 系列, 以及1920*1080以下的所有分辨率 |
bool GetTransform(float &x, float &y, float &a)
-> bool GetTransform(double &x, double &y, double &a)
bool GetPosition(double &x, double &y)
-> int GetPosition(double &x, double &y)
bool GetDirection(double &a)
-> int GetDirection(double &a)
impl
文件夹内的调用示例。安装 Visual Studio 2019 +
创建 Opencv 库的环境变量,若不使用环境变量则需要手动修改 cvAutoTrack 项目的附加包含目录
和附加库目录
$OpenCvDir = C:\projects\opencv\
下载 Opencv 4.5.0 static lib zip 并解压到任意目录
7z x ./*.zip -y -o%OpenCvDir%
Clone 代码
Git Clone https://github.com/GengGode/GenshinImpact_AutoTrack_DLL
进入项目文件夹解压资源文件
cd .\cvAutoTrack | 7z -x resource.zip
编译项目
msbuild cvAutoTrack.sln
SMAA
锁定方向
接口名称 | 接口功能 |
---|---|
verison |
获取Dll版本。 |
init |
初始化运行环境。 |
uninit |
卸载初始化时所占用的内存。 |
startServe |
(未完成)开始服务,开启循环检测线程。 |
stopServe |
(未完成)停止服务,停止循环检测线程。 |
... | ... |
SetUseBitbltCaptureMode |
设置使用Bitblt截图,默认启用,速度较快,效果好,但某些系统不支持。 |
SetUseDx11CaptureMode |
设置使用DirectX截图,效果较差,但支持win11及以上系统。 |
SetHandle |
设置原神客户端的窗口句柄。 |
SetWorldCenter |
设置映射目标地图坐标系的原点中心所在天理坐标模型中的坐标。 |
SetWorldScale |
设置映射目标地图坐标系缩放系数与所在天理坐标模型缩放系数的的比值。 |
... | ... |
DebugCapture |
获取本地视频中的UID、当前人物所在位置以及角度(箭头朝向)并保存至文本中。 |
... | ... |
GetTransformOfMap |
获取当前人物所在位置、角度(箭头朝向)及所在地图区域并重映射坐标区域。 |
GetPositionOfMap |
获取所在位置的所在地图区域并重映射坐标区域。 |
GetDirection |
获取当前角度(箭头朝向)。 |
GetRotation |
获取当前视角方位(视角朝向)。 |
GetUID |
获取在屏幕右下角显示的玩家的UID。 |
... | ... |
GetInfoLoadPicture |
获取本地图片中的UID、当前人物所在位置以及角度(箭头朝向)。 |
GetInfoLoadVideo |
获取本地视频中的UID、当前人物所在位置以及角度(箭头朝向)并保存至文本中。 |
... | ... |
GetLastErr |
获取最后设置的错误码。 |
GetLastErrMsg |
获取最后设置的错误信息。 |
由于原神游戏中地图会不断扩展,而且不同的物理区块对应的地图贴图分辨率存在差异,所以直接根据贴图像素坐标系不可取,对未来的扩展不利。
所以目前根据原神2.0版本已有的地图区块,规划出了一个较为合理且易于扩展的地图模型,称为天理坐标模型。
之后所有关于地图坐标的接口都会默认以该坐标系输出。
目前模型以游戏中城镇位置的贴图缩放为标准缩放尺寸,即没有放大缩小的尺寸。
根据该尺寸将其他贴图一同缩放到相同比例下,最后拼合成为总图,此时的缩放系数即为天理坐标模型的缩放系数。
在该缩放系数下,原神2.1版本中,总图尺寸为
之后选择位于璃月的请仙典仪祭坛中心作为世界原点,即( 0 , 0 )
。
之后为了便于Opencv的坐标计算,设定为地图从蒙德到璃月,是横坐标正方向。
地图从璃月到稻妻,是纵坐标正方向。
即
该部分区域未来会重做坐标映射,暂时只做简单说明,即地图右上角为原点,其他照例。
bool getAllInfo(double &x,double &y,double &a,int &uid);
获取所有信息,得到最新的状态数据
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。