面数据
在原版的“元素”模型中,可以在元素级别或面级别指定有关元素面的附加数据。未指定自己的面数据的面将返回到元素的面数据,或者如果在元素级别未指定面数据,则返回到默认值。
要将此扩展用于生成的物品模型,必须通过forge:item_layers模型加载程序加载该模型,因为原版物品模型生成器没有扩展为读取此附加数据。
面数据的全部值都是可选的。
元素模型
在原版的“元素”模型中,面数据应用于指定它的面,或者指定它的元素中没有自己的面数据的所有面。
!!! 注意
如果在面上指定了forge_data,它将不会继承元素级forge_data声明中的任何参数。
可以通过本例中展示的两种方式指定附加数据:
{
  "elements": [
    {
      "forge_data": {
        "color": "0xFFFF0000",
        "block_light": 15,
        "sky_light": 15,
        "ambient_occlusion": false
      },
      "faces": {
        "north": {
          "forge_data": {
            "color": "0xFFFF0000",
            "block_light": 15,
            "sky_light": 15,
            "ambient_occlusion": false
          },
          // ...
        },
        // ...
      },
      // ...
    }
  ]
}
生成的物品模型
在使用forge:item_layers加载程序生成的物品模型中,为每个纹理层指定面数据,并应用于所有几何体(前/后向四边形和边四边形)。
forge_data字段必须位于模型JSON的顶层,每个键值对将人脸数据对象与层索引相关联。
在以下示例中,层1将着色为红色并以全亮度发光:
{
  "textures": {
    "layer0": "minecraft:item/stick",
    "layer1": "minecraft:item/glowstone_dust"
  },
  "forge_data": {
    "1": {
      "color": "0xFFFF0000",
      "block_light": 15,
      "sky_light": 15,
      "ambient_occlusion": false
    }
  }
}
参数
颜色
使用color条目指定颜色值将该颜色作为色调应用于四边形。默认值为0xFFFFFFFF(白色,完全不透明)。颜色必须是压缩为32位整数的ARGB格式,并且可以指定为十六进制字符串("0xAARRGGBB")或十进制整数文字(JSON不支持十六进制整数文字)。
!!! 警告 四种颜色分量与纹理的像素相乘。省略alpha分量相当于将其设为0,这将使几何体完全透明。
如果颜色值为常量,则可以用BlockColor和ItemColor替换着色。
方块亮度和天空亮度
分别使用block_light和sky_light条目指定方块和/或天空的亮度值将覆盖四边形的相应亮度值。两个值都默认为0。这些值必须在0-15(包括0-15)的范围内,并且在渲染面时被视为相应光照类型的最小值,这意味着相应光照类型在世界中的较高值将覆盖指定值。
指定的亮度值纯粹是客户端的,既不影响服务器的亮度级别,也不影响周围方块的亮度。
环境光遮挡
指定ambient_occlusion标志将为四边形配置环境光遮挡(AO)。默认为true。该标志的行为相当于原版格式的顶级ambientocclusion标志。

环境光遮挡在左侧启用,在右侧禁用,通过“平滑光照”图形设置演示
!!! 注意 如果顶级AO标志设置为false,则在元素或面上将该标志指定为true将无法覆盖顶级标志。
```js
{
  "ambientocclusion": false,
  "elements": [
    {
      "forge_data": {
        "ambient_occlusion": true // 无效
      }
    }
  ]
}
```