GyroGate

GyroGate

《赛博朋克2077》的自动、状态感知陀螺仪控制。GyroGate会监视游戏状态,并相应地调整Steam的陀螺仪至鼠标输入:步行时灵敏度全开,在载具或菜单中则关闭等。

GyroGate

了解何时停止的陀螺仪瞄准。

Steam Input 已经能把控制器的陀螺仪转换成鼠标视角,而且效果不错。但它无法知道游戏中正在发生的事情。

GyroGate 解决了这个问题。它监视游戏状态并相应地缩放陀螺仪输入——步行时全灵敏度,载具中完全禁用,以及其他任何你想要的中间状态。


功能

  • 步行时陀螺仪正常工作
  • 进入载具的瞬间禁用陀螺仪,离开载具时立即恢复
  • 菜单、物品栏、拍照模式和超梦体验不会干扰你的镜头
  • 瞄准时(ADS)可设置独立的灵敏度——包括增强灵敏度,以抵消游戏自身的腰射到瞄准的灵敏度下降
  • 真正的鼠标在陀螺仪被禁用时仍能正常工作

为什么不在 Steam 里直接设置?

因为 Steam 不知道你是否在车里。Steam Input 可以在你按住某个按钮时切换行为,但它无法对游戏中发生的任何事情做出反应。

GyroGate 完全不与 Steam 沟通。它拦截 Steam 产生的鼠标输入,并在游戏看到之前进行缩放。这就是为什么它在 GOG、Steam 和 Epic 上运行效果相同,并且除了开启陀螺仪转鼠标之外不需要任何额外的 Steam 配置。


前置要求

  • RED4ext — 必需
  • Cyber Engine Tweaks — 必需
  • Native Settings UI — 用于游戏内设置菜单。没有它模组也能运行,只是需要通过文本文件配置。
  • Mixed Input Fix强烈推荐。 否则,每次陀螺仪移动镜头时,游戏屏幕上的按键提示会切换成键盘/鼠标图标。这是游戏本身的行为,不是本模组的 bug,而那个模组正是解决此问题的。

此外,你还需要一个带有陀螺仪的控制器(DualSense、DualShock 4、Switch Pro、Steam Controller、Steam Deck),并通过 Steam Input 运行。


安装

将压缩包解压到你的《赛博朋克 2077》文件夹中。文件布局与游戏目录结构相匹配,所有内容都会放置到正确的位置:

Cyberpunk 2077/
├─ bin/x64/plugins/cyber_engine_tweaks/mods/GyroGate/init.lua
└─ red4ext/plugins/GyroGate/GyroGate.dll

Steam Input 设置 — 请务必阅读此项

GyroGate 不会创建陀螺仪输入。它只调整 Steam 发送的内容。 如果陀螺仪完全不工作,问题出在 Steam Input,而不是这个模组。

  1. 如果你在 GOG 或 Epic 上拥有该游戏,请将其作为非 Steam 游戏添加到 Steam
  2. 打开游戏中 Steam 的控制器配置
  3. 将陀螺仪行为设置为输出为鼠标
  4. 通过 Steam 启动游戏

在安装 GyroGate 之前,请确认陀螺仪能移动你的镜头。 一旦确认可行,再安装这个模组,门控功能就会开始发挥作用。按此顺序操作可以避免同时调试两个问题。


设置

主菜单 → 模组 → GyroGate

按状态陀螺仪

每个游戏状态对应的灵敏度倍率——步行、瞄准(ADS)、载具、扫描器、超梦、拍照模式、菜单。

  • 0.00 — 在该状态下完全阻止陀螺仪
  • 1.00 — 原样传递,不做修改
  • 高于 1.00 — 放大灵敏度

瞄准(ADS)技巧

这是大多数人不会想到去尝试的设置。《赛博朋克2077》在瞄准时会降低鼠标灵敏度,这会让陀螺仪在开镜瞬间感觉迟钝且不一致。

瞄准(ADS) 设置为高于 1.00 可以抵消这一点。从 1.50 左右开始是一个不错的起点——调整到腰射和瞄准手感一致为止。

一般

  • 启用 GyroGate — 总开关。关闭时,所有输入均原样传递。
  • 物理鼠标直通 — 即使陀螺仪被门控,你的真实鼠标仍可正常工作。Steam 的陀螺仪输入是无设备来源的注入输入,因此两者可以区分开来。

高级

  • 控制台日志 — 默认关闭。开启后可在 CET 控制台中实时查看状态变化。
  • 淡入 / 淡出(毫秒) — 状态切换时陀螺仪淡入淡出的速度。淡出默认设置为 0 是有意为之:当你跳进车里时,淡出会感觉像输入延迟。

热键

可在 Cyber Engine Tweaks → 绑定 中设置:

  • 开关 GyroGate — 当你需要直通输入但无法进入菜单时使用
  • 显示输入诊断信息 — 在 CET 控制台中打印钩子状态和控制器检测信息

要将这些功能映射到控制器按钮上,先在 Steam Input 中将该按钮映射为键盘按键,然后在 CET 中绑定该按键。


使用 Flick Stick 吗?

Steam 的 Flick Stick 输出也是鼠标移动,与陀螺仪完全一样,GyroGate 无法区分它们。所以任何非 1.00 的状态值也会改变你的 flick 转身角度。

如果你对 flick 操作的精确度有要求,请将你使用 flick 的状态保持为 1.00。将某个状态完全设置为 0.00 来屏蔽是没问题的——只有介于两者之间的值才会改变你的 flick。


故障排除

首先运行 显示输入诊断信息。它会报告插件是否已连接、输入钩子是否已安装,以及哪些摇杆在报告输入。

陀螺仪完全不工作 Steam Input 没有发送陀螺仪数据。先卸载 GyroGate 测试——如果那时陀螺仪仍然无效,那是你的 Steam 配置问题。

陀螺仪工作但从不进行门控 检查 red4ext/plugins/GyroGate/GyroGate.log 中是否有 "state file: first read OK" 这一行。如果缺少该行,说明 CET 没有加载 Lua 部分——请检查 Cyber Engine Tweaks 本身是否正常工作。

按键提示在控制器和键盘图标之间闪烁 安装 Mixed Input Fix

陀螺仪在某个特定状态下失灵 这是模组在正常工作。检查该状态的滑块——0.00 会完全屏蔽输入。

日志

两个日志文件在每次启动时都会写入,无论是否启用了控制台日志,因此请将它们附在任何错误报告中:

  • red4ext/plugins/GyroGate/GyroGate.log
  • bin/x64/plugins/cyber_engine_tweaks/mods/GyroGate/gyrogate-lua.log

兼容性

该插件只挂钩 Windows 输入 API,从不触碰游戏代码或游戏结构,因此被标记为运行时独立,应该能在游戏补丁更新后继续工作。

游戏状态检测位于 Lua 部分,这是一个纯文本文件。如果某个补丁导致问题,只需少量编辑即可解决,而无需重新编译。

适用于 GOG、Steam 和 Epic 平台。仅限单人游戏,因此这里没有任何涉及反作弊的代码。

已知限制

  • Flick Stick 角度偏移 会在任何非 1.00 或 0.00 的状态值下发生——请参阅上面的 Flick Stick 部分。
  • 尚不支持镜头回中。 计划在未来的版本中实现,届时会通过读取镜头的实际俯仰角来正确实现,而不是使用盲目的“看向地面”技巧。

致谢

基于 MinHook(BSD-2-Clause)和 RED4ext.SDK(MIT)构建。

陀螺仪瞄准这一概念在很大程度上归功于 Jibb Smart 的工作——如果你对陀螺仪控制还不熟悉,Gyro Controls 指南值得一读。