涂装

涂装(Skins) 是一类特殊部件,启用后会将特定材质替换为其他材质。它们主要用于车辆拉花、漆面设计,以及内饰颜色与样式的选择。

涂装的优先级低于发光贴图 glowMaps ,因此若要通过涂装替换材质,必须替换掉发光贴图中定义的全部3种输出材质。 涂装优先级同样低于 deformGroups ,因此材质的破损变体也必须一并替换。

涂装在 JBeam 的根节点中被定义为全局修改器,用法与license plate 属性类似。因此,车辆的所有部件都能读取到这些涂装设置。

全局修改器

这两个修改器可以互换使用。 唯一的区别是:部分系统在控制台输出数据时,不会上报 skinName 相关信息。

string
type
涂装的名称
string
type
涂装的名称

材质规则

涂装的替换材质与普通材质一样,在 materials.json 文件中定义。 为了结构清晰,这些材质通常单独放在名为 skin.materials.json 的文件里。 涂装的具体生效逻辑,在材质的 "mapTo" 部分中定义。(为清晰起见,该值通常与名称保持一致)。 它由3 个用点分隔的部分组成:

"mapTo": "pickup.skin.ambulance",

第一部分是将要被替换的材质的 mapTo 值。 在大多数车辆中,负责车身漆面的材质,其 mapTo 值与车辆名称相同。

第二部分是材质槽(material slot)。 材质槽让不同部件可以替换不同的材质。 材质槽由调用涂装的部件所在插槽的 slotType 决定。 如果 slotType 名称里包含 skin_ "skin_" ,那么材质槽名就和这个 slotType 完全一样。如果slotTypr为"paint_design",材质槽位将命名为"skin".

材质槽可以用"skinType"属性在Jbeam中覆盖:

{
"nine_skin_taxi": {
    "information":{
        "authors":"BeamNG",
        "name":"Taxi Cab",
        "value":0,
    },
    "slotType" : "skin_nine_sedan",
    "skinType" : "skin_body",
    "skinName" : "taxi",
    },
}

当 slotType 是图表,因而无法直接用作材质槽时,该规则就会派上用场:

{
"nine_skin_twotone_custom": {
    "information":{
        "authors":"BeamNG",
        "name":"Two Tone Custom Paint",
        "value":5000
    },
    "slotType" : ["skin_nine_roadster","skin_nine_coupe","skin_nine_sedan","skin_nine_van","skin_nine_panelvan","skin_nine_pickup"],
    "skinType" : "skin_body",
    "skinName" : "twotone_custom"
},
}

第三部分是涂装名称(skin name),由上一节介绍的全局修饰符定义。 这两个修饰符可互换使用,但为清晰起见:

  • 用于修改主车身漆面的涂装,建议用 globalSkin ;

  • 其余所有情况,使用 skinName 。

其余语法规则与普通材质一致,详见:涂装系统参考 以及 material examples 寻求更多细节

动态纹理

动态纹理(Dynamic Textures) 是每辆车都自带的一种辅助涂装,支持在生涯模式中通过涂装编辑器对车辆进行喷漆改色。 其 Jbeam 语法格式应如下所示:

{
"moonhawk_skin_dynamicTextures": {
    "information":{
        "authors":"BeamNG",
        "name":"Dynamic Textures",
        "isAuxiliary": true,
        "value":1350
    },
    "slotType" : "paint_design",
    "dynDecalMaterials": ["moonhawk", "moonhawk_nosecone_alt"],
    "globalSkin" : "dynamicTextures"
  },
}

它包含一个可选的 Jbeam 区段,名为 dynDecalMaterials ,这是一个列表,里面定义了该系统会作用到的车辆材质。 如果没有设置该区段,系统会默认作用于与车辆同名的材质。

请注意: dynamicDecals (动态贴花)仅对 slotType 为 "paint_design"的槽位生效,且与 skinType 编辑器器不兼容

简易示例

一个标准的车辆涂装

Jbeam:

"pickup_skin_ambulance": {
    "information":{
        "authors":"BeamNG",
        "name":"Ambulance Livery",
        "value":5000,
    },
    "slotType" : "paint_design",
    "globalSkin" : "ambulance",
},

skin.materials.json的开始:

"pickup.skin.ambulance": {
  "name": "pickup.skin.ambulance",
  "mapTo": "pickup.skin.ambulance",
  "class": "Material",
  /* ... */
},

进阶示例

  • 替换车辆灯光视觉效果的涂装

Jbeam:

"etki_skin_lights_alt": {
    "information":{
        "authors":"BeamNG",
        "name":"Alternate Lights",
        "value":200
    },
    "slotType" : "skin_lights",
    "globalSkin" : "lights_alt"
},

skin.materials.json中所有相关的材质:

"etki_lights.skin_lights.lights_alt": {
  "name": "etki_lights.skin_lights.lights_alt",
  "mapTo": "etki_lights.skin_lights.lights_alt",
  "class": "Material",
  /* ... */
},
"etki_lights_dmg.skin_lights.lights_alt": {
  "name": "etki_lights_dmg.skin_lights.lights_alt",
  "mapTo": "etki_lights_dmg.skin_lights.lights_alt",
  "class": "Material",
  /* ... */
},
"etki_lights_on.skin_lights.lights_alt": {
  "name": "etki_lights_on.skin_lights.lights_alt",
  "mapTo": "etki_lights_on.skin_lights.lights_alt",
  "class": "Material",
  /* ... */
},
"etki_lights_on_intense.skin_lights.lights_alt": {
  "name": "etki_lights_on_intense.skin_lights.lights_alt",
  "mapTo": "etki_lights_on_intense.skin_lights.lights_alt",
  "class": "Material",
  /* ... */
},
  • 拥有skinType property的涂装

Jbeam:

"nine_skin_van_a": {
    "information":{
        "authors":"BeamNG",
        "name":"Macaroni and Beans",
        "value":0,
    },
    "slotType" : ["skin_nine_van","skin_nine_pickup"],
    "skinType" : "skin_body",
    "skinName" : "van_a",
  },

材质:

"nine_main.skin_body.van_a": {
    "name": "nine_main.skin_body.van_a",
    "mapTo": "nine_main.skin_body.van_a",
    "class": "Material",
    /* ... */
  },
上一次修订: 五月 20, 2026

还有其他问题?

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