键鼠映射到虚拟手柄:QKeyMapper+ViGEm实现PC模拟器手柄游戏的完整教程
【免费下载链接】QKeyMapper[按键映射工具] QKeyMapper,Qt开发Win10&Win11可用,不修改注册表、不需重新启动系统,可立即生效和停止。支持游戏手柄映射到键鼠,手柄摇杆控制鼠标移动,键鼠映射到虚拟游戏手柄,鼠标控制虚拟手柄移动摇杆等功能。项目地址: https://gitcode.com/gh_mirrors/qk/QKeyMapper
QKeyMapper 是一款兼容 Win10/Win11 的开源按键映射工具,支持把键盘、鼠标按键映射到 ViGEm 虚拟游戏手柄,让 PC 模拟器(Cemu、Dolphin、RPCS3 等)里的"必须用手柄才能玩"的游戏,直接用键鼠畅爽操作。全程不修改注册表、无需重启系统,映射可随时生效和停止。
一、为什么需要"键鼠 → 虚拟手柄"?🎮
不少 PC 模拟器或手柄向游戏只识别游戏手柄输入,普通键盘鼠标完全无法操作:
- Cemu / Dolphin / RPCS3 / Yuzu等主机模拟器,默认按手柄布局响应按键;
- 部分独立游戏(如动作 RPG)检测不到手柄就会限制菜单功能;
- 键位冲突场景下,用虚拟手柄的"摇杆 + 扳机"输出更贴近游戏逻辑。
QKeyMapper 借助 ViGEm 客户端库 创建系统级虚拟手柄(Xbox 360 或 PS4 类型),你按下的键盘鼠标按键会被转换成真实的手柄信号,模拟器就像接了一个实体手柄一样。虚拟手柄的底层实现可参考 qkeymapper_worker.h 中的ViGEmClient_*系列接口。
认识一下 Xbox 手柄按键布局
映射前建议先熟悉虚拟手柄的按键命名(A/B/X/Y、LT/RT 扳机、左右摇杆、方向键等),QKeyMapper 的虚拟手柄按键名与下图一一对应:
二、准备工作:安装 ViGEmBus 虚拟手柄驱动 ⚠️
虚拟手柄功能依赖 ViGEmBus 内核驱动,首次使用前需安装:
- 从 QKeyMapper 发布包解压运行程序,进入"虚拟手柄"标签页,点击安装 ViGEmBus 驱动按钮一键安装;
- 状态栏显示 ViGEmBus 可用后即可开始配置。驱动源文件见 ViGEmBusDriver.zip;
- Win10/Win11 可直接用包内驱动;Win7 系统需自行安装 ViGEmBus v1.16.116 旧版驱动(详见 README.md 注意事项)。
⚠️避坑提醒:ViGEmBus 与 vJoy 都是虚拟手柄驱动,不建议同时安装。若此前装过 vJoy 出现异常,建议卸载 vJoy 后再试。
三、选择虚拟手柄类型并创建映射 🕹️
- 在"虚拟手柄"标签页选择手柄类型X360(Xbox 360)或DS4(PS4),并设定数量(支持 1~4 个虚拟手柄);
- 模拟器中一般 Xbox 360 兼容性最好,推荐优先选择 X360;
- 右侧映射表中添加映射项:在原始按键选择键盘/鼠标按键(如
A、Mouse-L),在映射按键选择以vJoy-开头的虚拟手柄按键(如vJoy-Key1(A/×)),点击添加。
常用虚拟手柄映射键示例:
| 映射键 | 效果 |
|---|---|
vJoy-Key1(A/×) | 虚拟手柄 A 键 |
vJoy-Key11(LT)/vJoy-Key12(RT) | 左/右扳机(支持模拟量) |
vJoy-LS-Up/vJoy-RS-Left | 左/右摇杆单方向 |
vJoy-Start/vJoy-Back | 开始 / 后退键 |
vJoy-Touchpad | PS4 触摸板键(仅 DS4 类型) |
完整的参数化映射键(含摇杆半径、偏移、扳机上限等)可查阅 参数格式速查表,按键命名规则见 按键名说明文档。
四、用鼠标控制虚拟手柄摇杆 🖱️
QKeyMapper 的招牌功能之一:勾选vJoy-Mouse2LS / vJoy-Mouse2RS映射键后,移动鼠标即可驱动虚拟手柄的左/右摇杆,方向感与实体手柄一致。
在"虚拟手柄"标签页微调手感:
- X轴灵敏度 / Y轴灵敏度:数值越大越灵敏(范围 1~50000),摇杆移动太慢可成倍上调;
- 回中延时(1~1000 毫秒):停止移动后摇杆回正的时间,设为 0 表示不回中;
- X轴反转 / Y轴反转:方向相反时勾选即可;
- 直控模式:勾选后鼠标控制摇杆改为直控方式,响应更跟手。
配合键盘映射摇杆单方向(vJoy-LS-Up等)即可实现"键盘走位 + 鼠标视角"的经典操作。
五、进阶:扳机、摇杆半径等精细参数 🔧
针对赛车、FPS 等对模拟量敏感的游戏,映射键可携带方括号参数精细控制:
vJoy-LT-Max[150] -> 左扳机最大按压值限制为150 vJoy-LS-Radius[150] -> 左摇杆整体半径限定为150 vJoy-RS-Radius[U=120,R=180] -> 右摇杆上/右方向独立半径限定 vJoy-LS-Move[X=-60,Y=100] -> 左摇杆绝对偏移(左偏60、下偏100) vJoy-Key11(LT)_BRAKE[INIT=150,THR=2.0] -> 刹车起始按压值与阈值这些常量的定义位于 qkeymapper_constants.h,可结合具体游戏实测调整。
六、为不同游戏保存独立设定 💾
每个模拟器(Cemu、Dolphin、RPCS3…)需要的键位可能不同:
- 在"窗口信息"标签页录入目标模拟器的进程名/标题,开启自动匹配前台进程;
- 为每个游戏新建一套映射设定(可复制已有 Tab 快速修改),点击保存设定;
- 前台切换到对应模拟器时,QKeyMapper 自动切换匹配的键位配置,全程无需手动干预。
七、常见问题与使用建议 ✅
- 启动顺序:建议先运行 QKeyMapper 再点击"映射开始",再启动模拟器,避免按键被其他软件拦截;
- 开启系统筛选键:勾选"通用设定"中的"开启系统筛选键",可避免键盘长按连发引发的映射异常(Win10/Win11 路径:设置 → 辅助功能/轻松使用 → 键盘 → 筛选键);
- 停止映射:默认快捷键
L-Ctrl+F6可随时切换映射生效/停止,软件退出后映射自动失效,系统不留任何残留配置; - 手柄多设备支持依赖 Interception 驱动,插拔设备频繁时请留意驱动上限说明(详见 README 使用须知)。
参考资料 📚
- 项目说明:README.md
- 参数格式速查表:readme/QKeyMapper_Parameter_Format_Quick_Reference.md
- 按键名文档:readme/QKeyMapper_Keyname.md
- ViGEm 客户端头文件:QKeyMapper/ViGEm/include/ViGEm/Client.h
- SDL2 手柄后端:QKeyMapper/QJoysticks/src/SDL_Joysticks.cpp
按照以上步骤,几分钟内就能把键鼠变成模拟器里的"实体手柄"。若后续想反过来玩手柄映射到键鼠,同一套映射表换个方向配置即可,欢迎继续探索 QKeyMapper 的更多玩法 🚀
【免费下载链接】QKeyMapper[按键映射工具] QKeyMapper,Qt开发Win10&Win11可用,不修改注册表、不需重新启动系统,可立即生效和停止。支持游戏手柄映射到键鼠,手柄摇杆控制鼠标移动,键鼠映射到虚拟游戏手柄,鼠标控制虚拟手柄移动摇杆等功能。项目地址: https://gitcode.com/gh_mirrors/qk/QKeyMapper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考