部件可见性

部件可见性

在模型 JSON 顶层添加 visibility,可以控制模型各部件是否烘焙进最终的 BakedModel。何谓“部件”取决于模型加载器,自定义加载器可以完全忽略此字段。Forge 提供的加载器中,只有组合模型加载器和 OBJ 模型加载器使用该功能。条目格式为 "部件名称": boolean。

组合模型父级隐藏 part_two,子模型一覆盖为仅 part_two 可见,子模型二覆盖为两个部件可见;未设置的可见性逐级查询父模型,最终默认为 true。

原创说明图,依据 Forge 1.21.x 官方文档 绘制。

下面的组合模型有两个部件,第二个不会烘焙到最终模型。两个子模型覆盖可见性,分别只显示第二个部件和显示两个部件(原文说明“只显示第一个”,但示例实际设置为只显示第二个):

以下带注释的示例用于说明结构;实际 JSON 文件不支持注释和省略号,应移除并补全。

// mycompositemodel.json
{
  "loader": "forge:composite",
  "children": {
    "part_one": { "parent": "mymod:mypartmodel_one" },
    "part_two": { "parent": "mymod:mypartmodel_two" }
  },
  "visibility": { "part_two": false }
}

// mycompositechild_one.json
{
  "parent": "mymod:mycompositemodel",
  "visibility": { "part_one": false, "part_two": true }
}

// mycompositechild_two.json
{
  "parent": "mymod:mycompositemodel",
  "visibility": { "part_two": true }
}

部件可见性由模型自身的设置决定;如果没有,则递归检查父模型,直到找到条目或没有父模型。后一种情况默认为 true。

这样可以让多个模型使用同一组合模型的不同部件:组合模型指定多个组件;多个模型将其设为父模型;各子模型分别指定不同的部件可见性。

原文:Part Visibility。