霍尔效应:模拟键盘移动

霍尔效应:模拟键盘移动

在Minecraft中实现真实的模拟WASD移动。将霍尔感应按键按下一部分时缓慢行走;完全按下时达到全速。

大多数承诺“慢走”的 Minecraft 模组都是用热键开关来实现的。HE-Keyboard 则采用手柄的方式——通过读取按键的实际按压力度。霍尔效应键盘会为每个按键报告连续的 0.0–1.0 压力值;本模组将这些值直接输入到 Minecraft 的移动系统中。

结果是:轻触 W 键即可缓慢前行。用力按到底即可疾跑。通过调节 A 和 D 的相对力度,可以以自定义角度潜行。过渡极其顺滑,因为底层信号是模拟的,而非阶梯式的。

功能

  • 模拟 WASD — 部分按键按下 = 部分行走速度,并带有正确的对角移动归一化处理,确保模拟对角移动不会快于基本方向移动。
  • 实时 HUD 覆盖层 — 一个可切换的右下角面板,显示所有当前按下的模拟按键及其 0.00–1.00 的压力值。非常适合验证安装和调整触发阈值。
  • 游戏内 SDK 状态面板 — 打开配置界面即可一目了然地查看 SDK 运行时是否已加载以及连接了多少个 HE 键盘。无需再翻找 logs/latest.log 来调试安装问题。
  • 非移动按键不受影响 — 跳跃、潜行、疾跑、攻击、使用、快捷栏等操作均与原版完全一致。只有 WASD 四个移动键被改为模拟输入。
  • 安全回退机制 — 没有插入键盘或缺少 SDK?模组只会记录一条警告并保持不干预。原版 WASD 仍可正常使用。
  • 仅客户端 — 服务器端无需安装任何内容。可安全用于任何原版 / NeoForge 服务器,无论是否安装模组。

支持的键盘

任何 Wooting Analog SDK 能读取的设备:

  • Wooting 键盘 — 在 Windows、macOS 和 Linux 上原生支持。只需安装 Wootility 即可。
  • NuPhy Field75 HE、DrunkDeer A75+、Keychron Q1 / Q3 / Q5 / K2 HE、Lemokey P1 HE、Madlions MAD60 / MAD68HE — 通过社区 Universal Analog Plugin 支持,该插件以供应商后端的形式集成到 Wooting SDK 中。Windows 和 Linux 开箱即用——现在macOS 也已支持,通过我们的插件分支:我们修复了其 HID 层中的四个 macOS 错误(已使用 Keychron Q5 HE 在游戏中验证),并且这些修复已合并到上游,因此官方插件将在未来版本中采用这些修复。
  • Razer Huntsman V2 / V3 Pro Analog — 也通过 Universal Analog Plugin 支持,但仅限 Windows:Razer 的模拟模式需要 Razer Synapse,而该软件在 macOS 或 Linux 上不存在。

Minecraft 兼容性

  • 1.21.x – 1.21.11(不支持 1.21.9)以及 26.1 / 26.1.1 / 26.1.2 / 26.2

安装步骤

**1. 安装 Wooting Analog SDK 运行时。**模组需要系统上存在 Wooting Analog SDK 的原生库——它会自动加载该库,但不会捆绑它。(在 macOS 上,SDK 以两个 dylib 文件形式提供,分别是 SDK 本身和一个轻量级 C-API 包装器;在 Windows 和 Linux 上,一个一体化 SDK 库即可提供相同的 API。模组会处理您平台提供的任何形式。)

  sudo cp libwooting_analog_sdk.dylib /usr/local/lib/
  sudo cp libwooting_analog_wrapper.dylib /usr/local/lib/
  sudo xattr -d com.apple.quarantine /usr/local/lib/libwooting_analog_sdk.dylib
  sudo xattr -d com.apple.quarantine /usr/local/lib/libwooting_analog_wrapper.dylib

两个 xattr 命令都是必需的——macOS Gatekeeper 会阻止从互联网下载的未签名 dylib,直到清除该属性。

  • Linux: 从发布页面安装 .deb 包(它会设置 HID 访问所需的 udev 规则)。对于非 Debian 发行版,请手动解压归档文件,并按照 SDK 文档进行 udev 设置。

2.(可选)安装 Universal Analog Plugin,如果您的 HE 键盘来自 Razer、NuPhy、DrunkDeer、Keychron、Madlions 或 Lemokey。在 Windows / Linux 上,请从 https://github.com/AnalogSense/universal-analog-plugin 获取并按照其安装步骤操作。在 macOS 上,请改用我们的修复版构建,来自 https://github.com/KrookedLilly/universal-analog-plugin(上游插件的 macOS 支持存在问题;我们的分支修复了该问题,且修复已合并到上游)。无论哪种方式,它都会作为供应商后端集成到 Wooting SDK 中——无需在模组端进行任何配置。Wooting 键盘可跳过此步骤。

**3. 将匹配的模组 jar 文件放入您的 mods/ 文件夹。**根据上方兼容性表选择与您 Minecraft 版本匹配的 jar 文件。

4. 启动 Minecraft 并验证。 打开 Mods → HE-Keyboard → Config。顶部的状态面板应显示:

  • SDK runtime: loaded(绿色)—— SDK 库已找到,JNA 绑定成功。
  • Devices connected: N —— SDK 当前检测到的 HE 键盘数量。

如果看到 SDK runtime: not found,则说明 SDK 库可能未安装(或在 macOS 上未清除 xattr 属性)。当有缺失时,面板会显示针对特定操作系统的安装提示。

就这样。在世界中尝试轻按 W 键——您会立即感受到不同。

未捆绑的内容及原因

Wooting Analog SDK 采用 MPL 2.0 许可证。直接捆绑其原生二进制文件会引入特定平台的签名/打包要求(macOS 公证、Linux udev 规则、MPL 源代码可用性文档),并将每次 SDK 补丁更新变成一次完整的模组重新发布。让 SDK 独立于模组 jar 之外,您可以独立更新它,对所有人都更简洁。

如果您的键盘已能与 Wootility 配合使用,那么本模组也一定能正常工作。

如果您喜欢这个模组,欢迎访问 KrookedLilly.com 查看我们的其他游戏和应用。