*RawInput 插件为Microsoft XInput API(应用程序编程接口)不能正确处理的特定的用户定义设备提供支持,通常是操纵杆和方向盘。这些输入设备的按钮和轴可以自定义映射到游戏输入,包括插件本身创建的新输入。
启用RawInput
默认情况下不启用该插件。您可以在 插件(Plugins) 菜单的 输入设备(Input Devices) 部分中将其启用。

启用该插件后,Raw Input 部分将出现在 项目设置(Project Settings) 菜单中。

配置设备
在该部分中,您可以添加新设备。每个设备都通过供应商ID和产品ID标识,这些ID是十六进制值,位于设备的驱动程序属性中。轴(默认为8个)和按钮(默认为12个)数组将添加到控制器配置中。这样您就能够将任何控制器轴或按钮(通过数组索引指示)映射到任何 虚幻引擎 轴或键。该插件提供8个新轴("通用USB控制器轴1"到"通用USB控制器轴8")和12个新按钮("通用USB控制器按钮1"到"通用USB控制器按钮20")。每个轴和按钮都可以启用或禁用,轴也可以调转方向和偏移。

在上图中,您可以在Windows控制面板(在设备管理器下面)中看到Logitech G920的硬件ID信息。供应商ID是"VID_"后面的四位字符串(046D),产品ID是"PID_"后面的四位字符串(C262)。在RawInput中配置设备时需要该信息。
示例(载具模板)
作为示例,我们将 虚幻引擎 随附的载具模板配置为使用 Logitech G920,这是一个驱动游戏的控制器,带有方向盘和加速/制动踏板。
在RawInput中配置设备
驱动程序将方向盘报告为轴1,将制动器报告为轴3,将加速踏板报告为轴4。在RawInput插件设置中,各个输入必须输入到设备驱动程序的对应轴处的数组中。即,方向盘数据必须在数组元素1中,制动器数据必须在数组元素3中,加速踏板数据必须在数组元素4中。所有其他条目可能会被移除或标记为禁用。

由于设备输出范围与我们预期的标准控制器输出范围不符,因此将重新映射输入范围。方向盘返回0.0(左)到1.0(右)中的值,但我们需要以0.0为输入范围中间值,因此我们给它设置一个偏移值-0.5。制动器和加速踏板也返回0.0到1.0中的值,但设备使用0.0来指示按下踏板,使用1.0指示踏板抬起,而我们的项目需要相反的设置。为了进行这一调整,我们将轴值调转,然后添加偏移值1.0。
将RawInput轴映射到输入绑定

我们现在可以将新轴映射到游戏输入绑定。方向盘(在"通用USB控制器轴1"上)映射到范围[-0.5, 0.5],但我们希望它更灵敏一些,因此可以按系数3.0将它上调。同样,制动器(在"通用USB控制器轴2"上)需要沿负方向延伸,并且应该比加速踏板力量更强,因此将其调节-2.0。加速踏板(在"通用USB控制器轴3"上)无需修改,只需要添加到相应的输入绑定。通过使用RawInput和添加这些输入绑定,我们无需任何新输入绑定或对项目代码或蓝图进行任何更改,即可支持Logitech G920。