Repository navigation
Motion Stabilizer v2.8.0
MotionStabilizer v2.8.0
✨ 新增功能 / New Features
- XInput 手柄控制动态圆点:左摇杆 = WASD 移动角色、右摇杆 = 鼠标转向角色。裸机支持 Xbox 系手柄;DualSense、Switch Pro 等需经 Steam Input(Steam 设置 → 控制器 → 勾选"Xbox 配置支持")或 BetterJoy 等工具转接后可用。被动轮询摇杆状态,不向系统注入任何输入。
- 摇杆死区可调:0–50% 自定义死区(默认 15%),老手柄的摇杆漂移不再导致圆点自走,设置随配置文件保存。
- 热键 OSD 提示:游戏内按下热键时,屏幕顶部显示 1 秒操作反馈(开关状态、形状、颜色、显示模式、分屏、目标显示器等),中英文自动切换。
- 首次运行快捷键占用提示:默认快捷键 F1–F7、F9、F10 未加修饰键,程序运行期间会被全局拦截。首次启动弹出知情确认(仅提示一次;重置全局设置也不会重复打扰),并引导到「快捷键绑定」页面修改。
- 窗口模式跟随前台窗口:窗口(Window)模式下,叠加层实时跟随前台窗口的移动、缩放与切换,不再锁死在配置变化时的旧位置。
🧪 改进 / Improvements
- 异常处理重构:内部错误写入日志文件(error.log,含完整堆栈),弹窗仅显示简短信息;同类异常连发自动节流,不再连环弹窗抢占游戏焦点。
- 对话框全面键盘化:所有弹窗支持 Enter 确认、Esc 取消(自动取非破坏侧),默认按钮自动聚焦并挂接属主窗口,高度随内容自适应。
- 游戏内弹窗可见性:主窗口隐藏(在游戏中)时若有弹窗等待处理,顶部显示 2 秒 OSD 提示,不再被游戏画面遮挡而不自知。
- 时钟坐标越界提示:位置输入 X/Y ≥ 1000 时,顶部显示 2 秒 OSD"时钟位置可能超出屏幕范围"。
- 分辨率 / 显示器变化行为优化:进出游戏全屏、切换刷新率等布局不变的场景不再重置时钟与准星位置(辛苦拖好的位置保住了);仅当坐标真正越界(如移除显示器)时才夹回屏幕内。
- 托盘启动优化:勾选"首次运行时最小化到托盘"后,启动不再闪现任务栏图标。
- 开关文案如实化:"程序关闭时自动保存设置"更名为"自动保存设置变更"——该开关实际同时控制使用中与退出时的自动保存。
- 快捷键绑定管理:捕获输入框中按 Esc 取消输入(不再误清绑定)、Delete 解除绑定;页面提示文案同步更新。
- 手柄连接状态明确化:勾选手柄控制时自动探测——区分"未检测到手柄 / 已连接但无响应数据 / XInput 不可用"三种状态并分别给出处理指引(含 Steam Input 转接指引),不再静默失效;手柄后接入立即生效,无需重启。
- 266 个单元测试全部通过 ✅(新增手柄输入数学与槽位选择、OSD 文案映射、坐标夹回、紧凑表面决策等测试)
🐛 bug修复 / Bug Fixes
- 修复窗口(Window)模式下叠加层不跟随前台窗口、必须随便改动一次设置才刷新的问题
- 修复热键 OSD 显示瞬间被叠加画布重建清空、以及"仅动态圆点"紧凑模式下 OSD 不可见的问题
- 修复手柄控制完全失效的问题:Steam Input / BetterJoy 等转接工具残留的僵尸虚拟手柄(报告"已连接"但无任何数据)会占用低槽位、永久遮蔽真实手柄——现在摇杆读取优先选择有实际数据的槽位,僵尸手柄不再挡路
- 修复风险弹窗按 Alt+F4 关闭会被当作"同意启用"的问题(现在必须显式点击确认)
- 修复确认"不再提示"后,重置全局默认设置会让风险警告重新出现的问题
- 修复异常弹窗直接展示完整堆栈、异常持续时连环弹窗的问题
- 修复快捷键捕获框中按 Esc 误清空绑定的问题(Esc 现为取消输入)
🏗️ 架构 / Architecture
- 绑定名常量化:快捷键绑定名收敛为
HotkeyNames单一来源,注册侧与 OSD 映射侧共享,改名即编译错误 - 纯逻辑抽取:紧凑表面决策(ShouldCompactSurface)、坐标越界夹回、OSD 文案映射(OsdTextBuilder)、XInput 槽位选择与探测分类等从窗口/页面代码中抽出,全部具备单元测试覆盖
下载与使用 / Download & Usage
- 下载
MotionStabilizer-v2.8.0-win-x64.zip - 解压到任意目录
- 双击
MotionStabilizer.exe即可运行 - 重点 !!!:在游戏中请使用快捷键操控叠加层、准星和时钟
⚠️ 注意事项
- 全屏独占模式:部分游戏的全屏独占模式(Exclusive Fullscreen)下叠加层可能无法显示。请将游戏切换为无边框模式或窗口模式即可正常使用。
- 管理员权限说明:如果 Steam 或游戏以"管理员身份"运行,MotionStabilizer 也需要以管理员身份运行,否则动态圆点可能不跟随鼠标、全局热键也可能失效。这是 Windows 的权限隔离机制,不是程序故障。
- 手柄 / 键盘安全:手柄与键盘控制功能严禁在带有 Vanguard、EAC、BattlEye 等反作弊系统的联机游戏中使用(转接工具产生的虚拟手柄同样请勿用于联机游戏),仅限单机游戏开启。
- 手柄无响应数据提示:若勾选手柄控制后弹出此提示,表示手柄已连接但未收到输入数据——请确认手柄已开机唤醒、Steam Input / BetterJoy 转接正常,或重新插拔手柄。
🔐 校验 / Checksum
SHA-256:E5AE71E963FB9A9AB9992298304C4277BF79B82BBB53726F7727745F2CF3DE62
certutil -hashfile MotionStabilizer-v2.8.0-win-x64.zip SHA256