Skip to main content
Version: 1.20.x

面数据

在原版的“元素”模型中,可以在元素级别或面级别指定有关元素面的附加数据。未指定自己的面数据的面将返回到元素的面数据,或者如果在元素级别未指定面数据,则返回到默认值。

要将此扩展用于生成的物品模型,必须通过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,这将使几何体完全透明。

如果颜色值为常量,则可以用BlockColorItemColor替换着色。

方块亮度和天空亮度

分别使用block_lightsky_light条目指定方块和/或天空的亮度值将覆盖四边形的相应亮度值。两个值都默认为0。这些值必须在0-15(包括0-15)的范围内,并且在渲染面时被视为相应光照类型的最小值,这意味着相应光照类型在世界中的较高值将覆盖指定值。

指定的亮度值纯粹是客户端的,既不影响服务器的亮度级别,也不影响周围方块的亮度。

环境光遮挡

指定ambient_occlusion标志将为四边形配置环境光遮挡(AO)。默认为true。该标志的行为相当于原版格式的顶级ambientocclusion标志。

环境光遮挡的效果
环境光遮挡在左侧启用,在右侧禁用,通过“平滑光照”图形设置演示

!!! 注意 如果顶级AO标志设置为false,则在元素或面上将该标志指定为true将无法覆盖顶级标志。

```js
{
"ambientocclusion": false,
"elements": [
{
"forge_data": {
"ambient_occlusion": true // 无效
}
}
]
}
```