绑定

概述

有时也称为 输入映射输入映射文件

绑定定义了哪些控制项 将触发每个动作

例如:油门绑定将 控制项与 "accelerate" 动作关联起来。

最终用户可以在 选项控制 菜单中自定义他们的绑定。

  • 单个控制项可以绑定到多个动作(动作映射的顺序将决定哪个会被触发)。
  • 单个动作可以由多个控制项触发。

文件位置

出厂绑定

出厂绑定是游戏默认附带的绑定。

当您使用 选项控制重置全部 按钮时,它们会恢复到出厂绑定状态。

它们存储在游戏安装文件夹中,有两个可能的位置:

  • 常规绑定:settings/inputmaps/*.json
  • 车辆绑定:vehicles/vehicle_directory_name/inputmaps/*.json

注意:其中一些可能已被打包在 gameengine.zip 文件中,以减少下载大小和存储空间占用。

用户绑定

当最终用户自定义他们的绑定时,这些**差异(diff)**会存储在用户文件夹 中:

  • 常规绑定:settings/inputmaps/*.diff
  • 车辆绑定:settings/inputmaps/vehicle_directory_name/*.diff

它们仅包含与默认设置相比发生的变化(哪些绑定被添加、移除或替换等)。如果删除所有 .diff 文件,游戏将恢复到默认设置。

文件命名

绑定文件的命名以标识符开头,可选地后跟一个后缀,并以扩展名结尾:标识符后缀.扩展名

  • 标识符:决定它们属于哪个控制器。
  • 后缀:从 BeamNG.drive 0.25 开始,可以包含或省略后缀,使用您想要的任意文本。这允许模组提供它们自己的默认绑定。
  • 扩展名:如上所述,可以是 diffjson

例如keyboard.jsonkeyboardGiantExcavatorMod.jsonc29b046d.diff 等。

对于标识符字段,有两种可能性:

标识符:设备类型

游戏可以识别以下任意字符串:

  • ‘mouse’ - 鼠标
  • ‘keyboard’ - 键盘
  • ‘xidevice’ - 处于 Xbox 模式的控制器(例如 Xbox 游戏手柄,或设置为使用 Xbox 模式而非 PC 模式的 PC+Xbox 方向盘)
  • ‘joystick’ - 摇杆(非 Xbox)
  • ‘wheel’ - 方向盘(非 Xbox)
  • ‘gamepad’ - 游戏手柄(非 Xbox)
  • ‘vinput’ - 虚拟输入,这是一个将来自任意来源(例如计算机中的另一个程序,或我们用于远程控制的 Android/iOS 应用)的输入进行引导的系统

标识符:USB Pidvid

游戏可以识别 USB 标识符。这些标识符看起来像 8 个十六进制字符,例如 1357acef。它们代表 4 个厂商 ID 字符 + 4 个产品 ID 字符。

重要提示: 作为模组创作者或最终用户,您无需手动计算 pidvid 名称——当您从 选项控制 菜单创建或修改绑定时,BeamNG.drive 会自动处理此事。

产品 ID 和厂商 ID 是分配给特定硬件制造商的代码,用于标识它们销售的 USB 产品。使用 pidvid 可以将绑定定制到特定的设备型号(例如“应用于所有 Logitech G27 设备”),而不是通用的控制器类型(例如“应用于任何 wheel”)。

例如,pidvid 名称 c29b046d 对应于一个罗技设备(厂商 ID 046d),以及其 G27 型号(产品 ID c29b)。

鼠标、键盘和 Xbox 控制器不支持在绑定文件名中使用 pidvid 标识符,只支持“设备类型”标识符。

文件格式

重要提示: 作为模组创作者或最终用户,您无需了解文件格式——您不应手动编写这些文件,而应使用“选项 > 控制”菜单来定义模组的出厂绑定。

绑定文件大多遵循 JSON 格式 。它们必须以左大括号 { 开头,并以右大括号 } 结尾。以下示例展示了其整体结构:

keyboard.json:
{
  "bindings": [
    {"action": "menu_select", "control": "numpad9"},
    {"action": "menu_back", "control" : "numpad7"},
    // ...
  ]
}

如您所见,这是一个简单的动作控制项 关系列表。

在某些情况下,每个绑定还有额外信息(例如绑定线性度、力反馈参数等)。我们将不详细讨论这些内容。

如果文件是具有用户绑定.diff 文件,它们内部可能还包含一个额外的 "removed" 列表,如下所示:

keyboard.diff:
{
  "bindings": [
    {"action": "menu_select", "control": "numpad3"},
    {"action": "accelerate", "control": "up", "filterType": "1"},
  ],
  "removed": [
    {"action": "menu_back", "control" : "numpad7"},
  ]
}

.diff 文件中的 "bindings" 可能用一个不同的控制项(如上例中的 menu_select)或不同的/新的参数(如上例中的 accelerate)来覆盖一个出厂绑定

除了 "bindings""removed",这些文件中可能还有其他字段,例如 "guid""name" 等。您无需担心这些。

上一次修订: 六月 22, 2026

还有其他问题?

加入我们的 Discord 服务器
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.