Better Genshin Impact 自定义键位设置技术解析

Better Genshin Impact 自定义键位设置技术解析

better-genshin-impact 🍨BetterGI · 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动派遣 | 一键强化 - UI Automation Testing Tools For Genshin Impact better-genshin-impact 项目地址: https://gitcode.com/gh_mirrors/be/better-genshin-impact

背景介绍

Better Genshin Impact 是一款针对原神游戏的增强工具,其中一项重要功能是自动拾取物品。然而,原神游戏本身支持自定义键位设置,这导致工具内置的固定按键映射可能无法适配所有玩家的个性化设置。

技术实现原理

原神键位配置存储机制

原神将玩家的键位设置存储在Windows注册表中,具体路径为:

HKEY_CURRENT_USER\Software\miHoYo\原神\GENERAL_DATA_h2389025596

这个注册表项包含一个JSON格式的值,其中_overrideControllerMapValueList键存储了自定义键位配置。如果玩家使用默认键位,则该键为空;否则,它是一个包含键位映射信息的数组。

键位配置数据结构

键位配置采用XML格式存储,主要结构如下:

<ActionElementMap>
    <actionCategoryId>0</actionCategoryId>
    <actionId>17</actionId>
    <elementType>1</elementType>
    <elementIdentifierId>6</elementIdentifierId>
    <axisRange>0</axisRange>
    <invert>false</invert>
    <axisContribution>0</axisContribution>
    <keyboardKeyCode>102</keyboardKeyCode>
    <modifierKey1>0</modifierKey1>
    <modifierKey2>0</modifierKey2>
    <modifierKey3>0</modifierKey3>
    <enabled>true</enabled>
</ActionElementMap>

关键字段说明:

  • actionId: 表示游戏内动作类型(如17代表元素战技)
  • keyboardKeyCode: 对应的键盘按键代码
  • elementIdentifierId: 按键标识ID

实现方案

Better Genshin Impact 通过以下方式实现了自定义键位支持:

  1. 读取注册表配置:从Windows注册表中获取原神的键位设置
  2. 解析XML数据:提取玩家自定义的按键映射关系
  3. 动态按键映射:根据解析结果动态调整工具内部的按键检测逻辑

技术挑战与解决方案

挑战1:键位代码转换

原神使用自定义的键位代码系统,需要将其转换为标准的Windows虚拟键码(VK)。例如:

  • 102对应F键
  • 107对应K键

解决方案是建立一个映射表,将游戏内的键位代码转换为标准的VK代码。

挑战2:多按键组合

原神支持按键组合(如Ctrl+Shift+F),这增加了实现的复杂性。通过解析modifierKey1/2/3字段可以识别修饰键的组合情况。

挑战3:默认配置处理

当玩家使用默认键位时,_overrideControllerMapValueList为空,需要有一套默认的键位映射作为后备方案。

实际应用

在Better Genshin Impact中,自定义键位功能主要用于:

  1. 自动拾取物品的按键检测
  2. 元素战技/爆发的按键识别
  3. 其他需要模拟玩家按键操作的功能

开发者已经实现了键位配置的读取和解析功能,用户可以通过修改配置文件来适配自己的键位设置,同时需要将对应按键的图像放入指定文件夹以支持图像识别功能。

未来优化方向

  1. 图形化配置界面:提供可视化的键位设置界面,避免手动修改配置文件
  2. 自动图像适配:根据键位设置自动生成或调整识别模板
  3. 多设备支持:扩展对手柄等外设的自定义键位支持

通过这套自定义键位系统,Better Genshin Impact能够更好地适配不同玩家的操作习惯,提升工具的兼容性和用户体验。

better-genshin-impact 🍨BetterGI · 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动派遣 | 一键强化 - UI Automation Testing Tools For Genshin Impact better-genshin-impact 项目地址: https://gitcode.com/gh_mirrors/be/better-genshin-impact

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邬群彤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值