一台电脑两台手柄?任意 PC 游戏双人分屏的完整指南

发布时间:2026/8/22 13:09:04
一台电脑两台手柄?任意 PC 游戏双人分屏的完整指南 一台电脑两台手柄任意 PC 游戏双人分屏的完整指南【免费下载链接】UniversalSplitScreenSplit screen multiplayer for any game with multiple keyboards, mice and controllers.项目地址: https://gitcode.com/gh_mirrors/un/UniversalSplitScreenUniversal Split Screen 是一个开源的 PC 游戏分屏工具一台电脑接上两套键盘鼠标或多只手柄就能让本来只有单人模式的 PC 游戏实现本地多人同屏对战。它按玩家数量把游戏画面切块把每套输入设备分别喂给对应的玩家区域整个过程对游戏本身透明。三步完成安装与编译先克隆源码git clone https://gitcode.com/gh_mirrors/un/UniversalSplitScreen用 Visual Studio 打开 UniversalSplitScreen.sln 后按下面的顺序编译各组件各项目的后构建脚本会自动改名并复制到指定位置主程序UniversalSplitScreen用 x86 平台编译产出主应用HooksCPPx86 与 x64 各编一次得到 HooksCPP32.dll 与 HooksCPP64.dll放到主程序目录InjectorLoaderx86 与 x64 各编一次得到 IJx86.exe 与 IJx64.exe同样放进主程序目录SourceEngineUnlockerx86 编译后把 SourceEngineUnlocker.dll 复制到主程序目录供 Source 引擎游戏使用。也可以直接用 Visual Studio 的批量构建一次编完。配置如何生效程序启动时会扫描程序目录下 Config 中的全部 JSON 文件每个文件对应一套游戏选项加载进界面上方的下拉框。想支持自己的游戏照着现有格式新建一个 JSON、填好OptionsName即可被识别。预置游戏与分屏效果Config 目录已内置 13 份经过调优的预设按类型大致可以这样分类别预置游戏沙盒建造Minecraft1.14.3 与 Alternate 两套、Terraria生存冒险Dont Starve Together、Stardew Valley、Starbound动作射击Borderlands 2、Nuclear Throne策略模拟Factorio、Prison Architect引擎通用Source Engine、GoldSrc Engine其他RiftSource Engine 与 GoldSrc 这两份是通杀配置同引擎的《半条命 2》《Garrys Mod》一类游戏都可以直接套用。分屏时每个玩家拿到独立的操作视角与输入通道窗口被均分或按人数切块互不抢占。工作原理简述整条链路只有三个角色各司其职输入钩子HooksCPP一个 C 动态库注入游戏进程后接管游戏读取键位、鼠标位置的 Windows 系统调用。游戏每次问键盘它都先过一道筛子让各玩家只看到自己那部分输入。进程注入器InjectorLoader把钩子库装进目标游戏进程。这里要解释一下进程注入Windows 下往另一个程序里塞代码的唯一常规手段就是先把代码写成 DLL 再让它被加载注入器做的就是这件事32 位与 64 位游戏各有一把钥匙。窗口管理主程序内的 SplitScreenManager按玩家数量把游戏窗口切成若干区域并持续修正边界保证玩家 1 的键位不会误发给玩家 2 的区域。输入本身走的是 Raw Input——Windows 提供的原始输入接口能绕过系统级的消息轮询直接拿到设备的原始信号延迟低且与游戏自身的输入方式兼容。配置参数调优清单每个游戏预设都是一个 JSON 文件常用参数分四组参数组代表字段作用输入发送方式SendNormalKeyboardInput、SendNormalMouseInput、SendRawMouseInput、SendScrollwheel选择用普通消息、原始输入还是滚轮事件去喂游戏多数游戏用普通模式即可钩子开关Hook_GetAsyncKeyState、Hook_GetKeyState、Hook_GetForegroundWindow、Hook_FilterRawInput决定拦截哪些系统查询函数按引擎逐个开关Source 引擎一般全开窗口行为RefreshWindowBoundsOnMouseClick、DrawMouse、SendWM_ACTIVATE控制是否随点击刷新窗口边界、是否绘制系统鼠标、切换时是否激活窗口手柄Hook_XInput、Hook_DirectInput分别接管 XInputXbox 手柄与 DirectInput 两套手柄接口调优建议游戏保持窗口化或无边框模式运行全屏独占下窗口管理手段全部失效分屏分辨率按显示器实际规格设置切块过多会压低单侧帧率感觉输入有延迟时优先检查钩子开关是否与引擎匹配而不是调系统设置多显示器时建议整块屏幕分给游戏避免跨屏切割带来的错位分屏前关掉吃 CPU 的后台程序给每个玩家的输入轮询留足预算。常见问题自查现象可能原因解决办法第二套输入完全没有反应游戏以管理员运行而工具没有两边权限保持一致都用管理员身份启动分屏错位、鼠标飘到别人区域游戏处于独占全屏改为窗口化或无边框窗口再分屏手柄识别不到XInput / DirectInput 钩子未开启按实际手柄接口打开Hook_XInput或Hook_DirectInput配置文件不生效JSON 格式错误或缺少OptionsName对照现有预设检查字段名与引号重启程序重新加载项目结构与参与方式源码分成几个职责清晰的块目录 / 组件职责Core主程序协调配置加载、分屏状态、更新检查RawInput基于原始输入接口采集键盘、鼠标、手柄的原始数据SendInput把整理好的输入以系统消息形式发回给游戏UI操作界面选项下拉框、复选框、更新弹窗Config全部游戏预设 JSONHooksCPP / InjectorLoader / SourceEngineUnlocker输入钩子、进程注入器、引擎解锁均为 C 组件各有 x86 与 x64 版本项目采用 MIT 许可证参与方式不限提交 issue 反馈问题、修改或扩展代码、为新游戏编写 JSON 预设、翻译文档都可以。改动主程序时注意编译平台是 x86钩子与注入器则两个平台都要出。Universal Split Screen 的价值在于把PC 游戏没有本地多人这件事变成了纯工程问题。挑一份现成预设跑通你的第一款游戏是上手的最佳起点。【免费下载链接】UniversalSplitScreenSplit screen multiplayer for any game with multiple keyboards, mice and controllers.项目地址: https://gitcode.com/gh_mirrors/un/UniversalSplitScreen创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考