PC游戏分屏工具快速指南:用 Universal Split Screen 实现本地多人同屏 [特殊字符]
2026/8/22 19:45:02 网站建设 项目流程

PC游戏分屏工具快速指南:用 Universal Split Screen 实现本地多人同屏 🎮

【免费下载链接】UniversalSplitScreenSplit screen multiplayer for any game with multiple keyboards, mice and controllers.项目地址: https://gitcode.com/gh_mirrors/un/UniversalSplitScreen

朋友来家里想一起玩,但PC游戏只支持单人,两个人只能轮流来。Universal Split Screen 是一款开源的 PC 游戏分屏工具,把一个游戏窗口切成两到四份,并把第二套键盘、鼠标、手柄的输入分别路由到对应的分区。

它解决什么问题

这是一个 Windows 桌面程序,不修改任何游戏文件:你开两到四个游戏副本,它负责分屏摆放窗口和分发输入,游戏自身完全无感知。x86 与 x64 位的游戏进程都能处理。

5 分钟跑通分屏

  1. 克隆源码:
git clone https://gitcode.com/gh_mirrors/un/UniversalSplitScreen
  1. 用 Visual Studio 打开UniversalSplitScreen.sln,选 x86 平台,用 Batch build 一次性编译全部 5 个项目(主程序、HooksCPP、InjectorLoader、StartupHook、SourceEngineUnlocker),各项目的 post-build 会自动改名并复制到指定位置。
  2. 运行主程序,从下拉列表选一套预置配置,给每个游戏窗口绑定对应的键盘、鼠标或手柄,点 Start;用设定好的结束键退出分屏。

能力全景

使用场景实际效果
双人左右或上下分屏自动缩放定位窗口,两人各占半个屏幕
四人同屏窗口切分为四份,每人绑定独立设备
双手柄对战XInput 钩子按索引把手柄分配给对应窗口,上限 4 个
超过 4 个手柄DInput 转 XInput 翻译钩子,把超出的手柄映射进 XInput 槽位
需多开副本的游戏Source/GoldSrc 引擎单实例互斥锁解锁后,可从 exe 再启动一份

仓库预置 13 套游戏配置,覆盖 Source 引擎、GoldSrc 引擎、Minecraft、Terraria、无主之地 2、异星工厂等。

原理一分钟速览

打个比方:它像酒店前台,游戏只认"自己那间房"的输入,工具站在系统和游戏之间,把每个设备的操作交给正确的房间。

  • Raw Input API:系统级输入流,比游戏更早拿到键盘鼠标数据。
  • 进程注入:把钩子 DLL 拷进游戏进程,游戏调用"读输入"的系统函数时被重定向。
  • API 钩子:如拦截GetCursorPos,让游戏看不到其他玩家的鼠标位置。

动手配置 🛠

  • 配置目录UniversalSplitScreen/Config/:每个 JSON 是一组选项,程序启动时从主程序目录下的config子文件夹加载。给新游戏做配置时,复制一份现有 JSON,改OptionsName,再按游戏需要调整各项钩子开关。
  • Hook_XInput:用手柄时必须为true,否则启动分屏时程序会警告且手柄不响应。
  • LeftOffset / TopOffset / ExtraHeight:控制分屏窗口的左距、顶距与高度补偿,窗口被任务栏挤下时可用ExtraHeight补高。
  • EndVKey:结束分屏的虚拟键码,预置配置里为 35,对应 Insert 键。

避坑清单

  • 注入报错 0xC0009898→ 游戏位数与注入的钩子 DLL 不匹配 → 确认游戏是 32 位还是 64 位,程序会按进程自动选对应版本的 DLL,报错时先看它提示的位数。
  • 手柄绑定后没反应→ 没启用 XInput 钩子 → 勾选Hook_XInput再重新开始分屏。
  • 第 5 个手柄连不上→ Windows XInput 槽位只有 4 个 → 同时启用Hook_XInputHook_DInput走翻译钩子。
  • Source 引擎游戏开不了第二份→ 引擎互斥锁禁止重复启动 → 用主程序里的解锁功能释放单实例互斥(预置配置已填好如hl2_singleton_mutex),再从 exe 启动第二个实例。

生态与参与

  • MIT 许可,见 LICENSE.md。
  • 门槛最低的贡献是给新游戏写配置:在 UniversalSplitScreen/Config/ 放一份 JSON,字段含义可对照OptionsStructure.cs
  • 值得细看的模块:UniversalSplitScreen/RawInput/(输入捕获与路由)、StartupHook/(游戏启动阶段的钩子)、easyhook/(钩子库)。
  • 排查问题先看主程序的日志,每次注入的结果码和窗口映射都会打在里面。

写在最后

对没有原生分屏的 PC 游戏来说,本地多人同屏这一步由它补上。编译一次、选一套预置配置,就能和朋友试一把。

【免费下载链接】UniversalSplitScreenSplit screen multiplayer for any game with multiple keyboards, mice and controllers.项目地址: https://gitcode.com/gh_mirrors/un/UniversalSplitScreen

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询