• Forge论坛

导航页

  • 主页
  • 向文档做出贡献
  • 入门
    • 概述
    • 模组文件
    • 规划你的模组结构
    • 版本号
  • 核心概念
    • 注册表
    • 端位(Sides)
    • 事件
    • 模组生命周期
    • 资源
    • 国际化与本地化
  • 方块
    • 概述
    • 方块状态
  • 物品
    • 概述
    • BlockEntityWithoutLevelRenderer
  • 网络
    • 概述
    • SimpleImpl
    • 实体的同步
  • 方块实体
    • 概述
    • BlockEntityRenderer
  • 游戏特效
    • 粒子效果
    • 音效
  • 数据储存
    • Capabilities
    • Saved Data
    • 编解码器(Codecs)
  • 图形用户界面
    • 菜单(Menus)
    • 屏幕(Screens)
  • 渲染
    • 模型扩展
      • 概述
      • 根变换
      • 渲染类型
      • 部分可见度
      • 面数据
        • 元素模型
        • 生成的物品模型
        • 参数
    • 模型加载器
      • 概述
      • 烘焙模型
      • 变换
      • 物品重载
  • 资源
    • 客户端资源(Assets)
      • 概述
      • 模型
        • 概述
        • 纹理色调
        • 物品属性
    • 服务端数据(Data)
      • 概述
      • 配方
        • 概述
        • 自定义配方
        • 原料
        • 非数据包配方
      • 战利品表
      • 全局战利品修改器
      • 标签
      • 进度
      • 条件性加载数据
  • 数据生成
    • 概述
    • 客户端资源(Assets)
      • 模型提供者
      • 语言提供者
      • 音效提供者
    • 服务端数据(Data)
      • 配方提供者
      • 战利品表提供者
      • 标签提供者
      • 进度提供者
      • 全局战利品修改器提供者
      • 数据包注册表对象提供者
  • 杂项功能
    • 配置
    • 键盘布局
    • 游戏测试
    • Forge更新检查器
    • 调试分析器
  • 进阶主题
    • 访问转换器
  • 向Forge做出贡献
    • 概述
    • Pull Request准则
  • 旧版本
    • 概述
    • 移植到当前版本

面数据

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

要将此扩展用于生成的物品模型,必须通过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将无法覆盖顶级标志。

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

Built with MkDocs using a custom theme. Hosted by Read the Docs.
Enable Dark Theme