如何将两个游戏控制器的输入混合和匹配到一个“虚拟”控制器中?

peS*_*HIr 5 windows virtual

对以下情况进行图像处理:

  1. 您使用的是 Windows XP(即使下面显示的对话框是 Vista 屏幕截图)。
  2. 您有两个物理 USB 游戏控制器,我们称它们为 A 和 B。
  3. 您有一款软件,它显然以传统方式访问操纵杆,只能识别并允许使用单个操纵杆。
  4. 使用本软件时,您希望同时使用两个控制器,例如:
    • 使用 A 的左拇指杆和 B 的右拇指杆
    • 使用 A 中的 #1、#2 和 #6 按钮以及 B 中的 #2 和 #8 按钮

我想这个问题一定已经在某个地方的硬核游戏中出现了,并且可以使用一种“虚拟游戏控制器驱动程序”或其他软件。理想情况下,这将显示为 Windows 中的游戏控制器,并允许使用物理连接控制器上可用的任何输入来创建复合虚拟控制器,如上所述进行虚拟设置。

Windows 旧版操纵杆对话框

如果是这种情况,我很想知道从哪里得到这个。如果没有,欢迎任何有关尝试进行此操作的指示。我想我必须阅读 DirectInput 并清除我接下来不存在的 C++ 技能?

就像 Runeborg 回答的那样,如果我希望发生这种情况,现在看来我可能不得不尝试编写自己的“虚拟游戏控制器设备驱动程序”。:-(

快速更新:在 smartgamer 上问过同样的问题,希望那里的另一群人可能会提出现有的答案。

Run*_*org 2

如果你想让它对所有 Windows 应用程序通用,我想你必须编写自己的虚拟游戏控制器设备驱动程序。这个gamedev.net 线程似乎掌握了一些线索。了解Johnny Chung Lee 的 Wiimote 魔法Wiimote 项目也可能很有趣。Johnny Chung 还链接到Nintendo Wiimote 的托管库

如果您深入挖掘的话,Wii 项目应该包含足够的信息。除了通过拦截消息以某种方式作为应用程序和窗口之间的中间件插入之外,我真的想不出任何其他方法。