物品模型映射

来自Minecraft Wiki
跳转到导航 跳转到搜索
本文章所述内容仅适用于Java版

类似于根据方块状态选择不同模型,物品模型也具有类似的条件性选择机制。玩家可通过资源包来定义某堆叠物品在何种情况下应该使用哪种烘焙模型。

定义格式[编辑 | 编辑源代码]

物品模型映射都定义在assets/<命名空间>/items/<物品ID>.jsonNBT复合标签/JSON对象*model内。每种物品都需要定义其对应的物品模型映射,否则游戏将自动设置此物品的模型为无效模型。

<物品ID>.json文件的JSON格式如下:

  • NBT复合标签/JSON对象 JSON文件根元素
    • 布尔型hand_animation_on_swap:(默认为true)玩家在快捷栏切换到此物品堆叠时是否应该渲染切换过渡动画。
    • NBT复合标签/JSON对象*model:一个物品模型映射。
      • 见下文物品模型映射
物品模型映射

很多时候,需要根据堆叠物品的某个数据或状态来选取不同烘焙模型。物品模型映射将一个与堆叠物品有关的条件和一个烘焙模型建立关联,从而实现了堆叠物品模型的条件性选取。

物品模型映射的JSON结构如下:

    • 字符串*type:(命名空间ID)物品模型映射的类型。
    • 与类型有关的其他字段。详见下文。

类型[编辑 | 编辑源代码]

物品模型映射有下列类型,不同的映射类型决定了游戏在渲染指定物品堆叠时将使用的物品模型和参数。

命名空间ID 物品模型映射行为
复合物品模型映射
composite 按照数组次序依次渲染物品模型映射
condition 根据指定的物品堆叠,计算给定的谓词,选择物品模型映射
range_dispatch 根据指定的物品堆叠,计算数值并查找数值区间,选择物品模型映射
select 根据指定的物品堆叠,计算属性值并查找枚举,选择物品模型映射
渲染物品模型映射
bundle/selected_item 渲染收纳袋内选中的物品堆叠
empty 不渲染任何物品模型
model 按照指定的参数渲染指定的物品模型
special 使用指定的硬编码渲染器渲染物品

bundle/selected_item[编辑 | 编辑源代码]

此物品模型映射类型会让游戏渲染当前收纳袋内被选中的物品堆叠。

此渲染器要求渲染的物品堆叠必须具有bundle_contents组件,否则这个渲染器不会渲染任何东西。

  • NBT复合标签/JSON对象*model
    • 字符串*typebundle/selected_item

composite[编辑 | 编辑源代码]

此物品模型映射类型会先计算数组内所有物品模型映射,再根据数组次序从后向前依次渲染。

  • NBT复合标签/JSON对象*model
    • 字符串*typecomposite
    • NBT列表/JSON数组*models:从后向前依次渲染的物品模型映射。
      • NBT复合标签/JSON对象:一个物品模型映射。

在原版资源包中,该类型的物品模型映射用于将收纳袋的前、中、后三层纹理进行组合。其中,中间层纹理由bundle/selected_item类型的物品模型映射定义。

condition[编辑 | 编辑源代码]

此物品模型映射类型会先计算物品堆叠内给定的谓词,当属性为真时选择一个物品模型映射,为假时选择另一个。

  • NBT复合标签/JSON对象*model
    • 字符串*typecondition
    • NBT复合标签/JSON对象*on_false:谓词为假时选择的物品模型映射。
      • 递归定义物品模型映射。具体格式详见上文。
    • NBT复合标签/JSON对象*on_true:谓词为真时选择的物品模型映射。
      • 递归定义物品模型映射。具体格式详见上文。
    • 字符串*property:(命名空间ID)检查给定的物品模型映射谓词类型。
    • 其他元素见下文。

可用的物品模型映射谓词如下表所示:

命名空间ID 具有附加元素 作用
broken 检查物品堆叠是否将要损坏,即当前耐久度只剩下1点;如果物品堆叠不可损坏(没有max_damagedamage组件,或具有unbreakable组件),则返回假
bundle/has_selected_item 检查玩家是否选中了此收纳袋内的物品堆叠;如果物品堆叠不包含bundle_contents组件则返回假
carried 检查玩家是否容器屏幕中使用光标选取了这个物品堆叠
custom_model_data 读取物品堆叠的custom_model_data组件获取谓词结果
component[新增:JE 1.21.5] 检查物品堆叠是否满足指定的数据组件谓词
damaged 检查物品堆叠损坏程度(damage组件)是否为0;如果物品堆叠不可损坏,则返回假
extended_view 检查当前客户端是否按下了⇧ Shift且物品在GUI内被渲染
fishing_rod/cast 检查钓鱼钩是否已经被抛出
游戏先检查玩家是否正在钓鱼,没有钓鱼时直接返回假,再检查钓鱼竿在主手还是副手上,如果都没有握住钓鱼竿默认为副手
如果物品堆叠刚好和游戏认为钓鱼竿的位置一致(如钓鱼竿不在双手中,当前物品堆叠在副手上),就返回真
has_component 检查物品堆叠是否有给定的物品堆叠组件
keybind_down 检查键位绑定是否被按下
selected 检查玩家是否在快捷栏内选择了这个物品堆叠
using_item 检查物品堆叠是否正在被使用,比如食用食物
view_entity 检查持有此物品堆叠的生物是否为当前正在作为摄像机的实体,即非旁观模式下是否为当前玩家,旁观模式下是否为当前进入视角的对应实体

其他带有附加元素的谓词如下文所示:

custom_model_data[编辑 | 编辑源代码]

读取物品堆叠的custom_model_data组件其中的NBT列表/JSON数组flags,将给定下标的布尔值作为谓词结果。

如果物品堆叠没有custom_model_data组件,或下标超过了NBT列表/JSON数组flags的长度范围,则返回假。

  • NBT复合标签/JSON对象*model
    • 布尔条件型物品模型共通字段[显示]
    • 字符串*propertycustom_model_data
    • 整型index:(值≥0,默认为0)检查给定物品堆叠custom_model_data组件中NBT列表/JSON数组flags对应下标的元素是否为真。

component[编辑 | 编辑源代码]

本段落包含会在下一次更新中出现的内容。

这些特性在Java版1.21.5的开发版本中加入。

检查物品堆叠是否满足指定的数据组件谓词。数据组件谓词类型及谓词内容参见物品子谓词

  • NBT复合标签/JSON对象*model
    • 布尔条件型物品模型共通字段[显示]
    • 字符串*propertycomponent
    • 字符串*predicate:指定数据组件谓词类型。
    • 任意类型*value:指定谓词内容。

has_component[编辑 | 编辑源代码]

检查物品堆叠是否有给定的物品堆叠组件。

  • NBT复合标签/JSON对象*model
    • 布尔条件型物品模型共通字段[显示]
    • 字符串*propertyhas_component
    • 字符串*component:(物品堆叠组件类型)检查物品堆叠是否具有此组件。
    • 布尔型ignore_default:(默认为false)当当前的物品堆叠组件内容与物品默认物品堆叠组件内容一致时是否认为此组件不存在而返回假。

keybind_down[编辑 | 编辑源代码]

检查键位绑定是否被按下。

  • NBT复合标签/JSON对象*model
    • 布尔条件型物品模型共通字段[显示]
    • 字符串*propertykeybind_down
    • 字符串*keybind:(键位的本地化键名)检查键位绑定是否被按下。

model[编辑 | 编辑源代码]

指定游戏使用哪一个物品模型进行渲染,并且指定各个着色索引使用的颜色。

  • NBT复合标签/JSON对象*model
    • 字符串*typemodel
    • 字符串*model:用于渲染的物品模型,游戏解析时转换为assets/<命名空间>/models/<路径>.json
    • NBT列表/JSON数组tints:(默认为空数组)指定物品模型各个着色索引使用的颜色,数组下标对应着色索引。
      • NBT复合标签/JSON对象:颜色提供器。
        • 字符串*type:颜色来源。
          如果typecustom_model_data,游戏将获取物品堆叠的custom_model_data组件信息。
        • 整型NBT列表/JSON数组*default:当物品堆叠不存在custom_model_data组件,或下标超过NBT列表/JSON数组colors范围时使用的着色颜色。
          • 单精度浮点数:R(红)颜色分量。
          • 单精度浮点数:G(绿)颜色分量。
          • 单精度浮点数:B(蓝)颜色分量。
        • 整型index:(值≥0,默认为0)将给定物品堆叠custom_model_data组件中NBT列表/JSON数组colors对应下标的元素作为着色颜色。
          如果typeconstant,则使用固定颜色。
        • 整型NBT列表/JSON数组*value:着色颜色。
          • 单精度浮点数:R(红)颜色分量。
          • 单精度浮点数:G(绿)颜色分量。
          • 单精度浮点数:B(蓝)颜色分量。
          如果typegrass,游戏将按照生物群系着色中的植物颜色算法,使用温度值和降水值计算颜色,颜色图使用grass.png
        • 单精度浮点数*downfall:(0≤值≤1)降水值。
        • 单精度浮点数*temperature:(0≤值≤1)温度值。
          如果typefirework,游戏将使用firework_explosion组件中整型数组colors内各个颜色的平均值作为着色颜色。
          如果typedye,游戏将获取物品堆叠的dyed_color组件信息作为着色颜色。
          如果typepotion,游戏将使用potion_contents组件中的药水颜色作为着色颜色。
          如果typemap_color,游戏将使用map_color组件信息作为着色颜色。
          如果typeteam,游戏将获取持有此物品堆叠的生物的队伍颜色作为着色颜色。
          上述5种类型均使用下列格式。
        • 整型NBT列表/JSON数组*default:游戏获取不到指定信息时(如不存在对应物品堆叠组件)使用的着色颜色。
          • 单精度浮点数:R(红)颜色分量。
          • 单精度浮点数:G(绿)颜色分量。
          • 单精度浮点数:B(蓝)颜色分量。

range_dispatch[编辑 | 编辑源代码]

此物品模型映射类型会先计算并返回物品堆叠内给定的一个数值属性,游戏会按照给定阈值从小到大排序,找到数值属性第一个超过或等于的阈值,并使用对应物品模型映射。如果数值属性小于所有阈值,则使用回落映射。

  • NBT复合标签/JSON对象*model
    • 字符串*typerange_dispatch
    • NBT列表/JSON数组*entries:定义各个阈值和对应的物品模型映射,此列表不需要排序,游戏会在运行时对这个列表排序。
      • NBT复合标签/JSON对象:一项阈值和对应的物品模型映射。
        • NBT复合标签/JSON对象*model:阈值对应的物品模型映射。
          • 递归定义物品模型映射。具体格式详见上文。
        • 单精度浮点数*threshold:阈值。
    • NBT复合标签/JSON对象fallback:回落物品模型映射。如果检查数值小于所有阈值则使用此映射。如果此项不存在,且检查数值小于所有阈值,则使用无效模型。
      • 递归定义物品模型映射。具体格式详见上文。
    • 单精度浮点数scale:(默认为1)与获取的数值属性相乘获得最后的检查数值。
    • 字符串*property:(命名空间ID)检查给定的物品模型映射数值属性类型。
    • 其他元素见下文。

游戏中共有下列物品模型映射数值属性:

命名空间ID 具有附加元素 数值来源
bundle/fullness 获取收纳袋的容量,此浮点数只会在0-1之间,如果物品堆叠没有bundle_contents组件则返回0
compass 获取指南针的指向方向
cooldown 获取物品堆叠的冷却程度;如果物品不在玩家物品栏内,则返回0
count 获取物品堆叠的物品数量
crossbow/pull 弩被拉伸的程度;如果物品堆叠没有charged_projectiles组件,或物品堆叠不在任何生物身上,则返回0
custom_model_data 读取物品堆叠的custom_model_data组件中的NBT列表/JSON数组floats
damage 获取物品堆叠的损坏程度
time 获取当前维度时间并归一化,用于时钟的渲染
use_cycle 根据物品堆叠使用进度按周期返回浮点数
use_duration 获取物品堆叠使用进度

带有附加元素的属性及其附加元素如下所示:

custom_model_data[编辑 | 编辑源代码]

读取物品堆叠的custom_model_data组件中的NBT列表/JSON数组floats,获取指定下标的浮点数。如果下标超过NBT列表/JSON数组floats的长度范围,或物品堆叠不存在custom_model_data组件,则返回0。

  • NBT复合标签/JSON对象*model
    • 值调配型物品模型共通字段[显示]
    • 字符串*propertycustom_model_data
    • 整型index:(值≥0,默认为0)获取给定物品堆叠custom_model_data组件中NBT列表/JSON数组floats对应下标的浮点数。

compass[编辑 | 编辑源代码]

读取指南针信息,计算指南针指针摆动进度作为返回值,返回值取值为0-1的闭区间。如果指向目标不存在,或指向目标和当前维度不一致,或当前位置与指向目标的距离小于1e-5时,指针摆动进度会使用随机浮点数。

  • NBT复合标签/JSON对象*model
    • 值调配型物品模型共通字段[显示]
    • 字符串*propertycompass
    • 字符串*target:指南针指向的目标。
    • 布尔型wobble:(默认为true)摆动进度是否会有额外摆动浮动。如果没有浮动,摆动进度会立刻平滑到当前的正确值,而不是在正确值附近浮动。

字符串target可用值和意义如下:

类型 作用
lodestone 读取物品堆叠的lodestone_tracker组件作为指向目标,如果没有此组件则不存在
none 不指向任何目标,指南针的摆动进度将被设置为随机数
spawn 当前维度出生点作为指向目标,如果维度类型布尔型naturalfalse则不存在
recovery 将持有此物品堆叠的玩家的上次死亡地点作为指向目标,如果玩家没有死亡过或不在玩家身上,则不存在

count[编辑 | 编辑源代码]

读取物品堆叠的物品数量作为返回值。如果物品数量大于物品最大堆叠数量,则返回物品最大堆叠数量。

  • NBT复合标签/JSON对象*model
    • 值调配型物品模型共通字段[显示]
    • 字符串*propertycount
    • 布尔型normalize:(默认为true)返回物品数量和物品最大堆叠数量之比,而不是当前的物品数量。

damage[编辑 | 编辑源代码]

读取物品堆叠的损坏值(damage组件)。如果物品没有损坏或无法损坏,则返回0。如果损坏值大于最大耐久度(max_damage组件),则返回最大耐久度。

  • NBT复合标签/JSON对象*model
    • 值调配型物品模型共通字段[显示]
    • 字符串*propertydamage
    • 布尔型normalize:(默认为true)返回物品的损坏进度(即损坏值除以最大耐久度,取值为0-1闭区间),而不是当前的损坏值。

time[编辑 | 编辑源代码]

读取当前维度的时间,计算并平滑模拟时钟摆动进度,将时钟摆动进度作为返回值返回,返回值取值为0-1的闭区间。

  • NBT复合标签/JSON对象*model
    • 值调配型物品模型共通字段[显示]
    • 字符串*propertytime
    • 字符串*source:时间获取源。可以为daytime(昼夜时间)、random(随机数)或moon_phase月相)。所有数字均在0到1的闭区间内。
    • 布尔型wobble:(默认为true)摆动进度是否会有额外摆动浮动。如果没有浮动,摆动进度会立刻平滑到当前的正确值,而不是在正确值附近浮动。

时间源字符串source指定为月相moon_phase时的返回值可参考下表:

月相 游戏内天数 返回值
EnvSprite full-moon.png:Minecraft中full-moon的精灵图 满月 8N+1 0.000
EnvSprite waning-gibbous-moon.png:Minecraft中waning-gibbous-moon的精灵图 亏凸月 8N+2 0.125
EnvSprite last-quarter-moon.png:Minecraft中last-quarter-moon的精灵图 下弦月 8N+3 0.250
EnvSprite waning-crescent-moon.png:Minecraft中waning-crescent-moon的精灵图 残月 8N+4 0.375
EnvSprite new-moon.png:Minecraft中new-moon的精灵图 新月 8N+5 0.500
EnvSprite waxing-crescent-moon.png:Minecraft中waxing-crescent-moon的精灵图 蛾眉月 8N+6 0.625
EnvSprite first-quarter-moon.png:Minecraft中first-quarter-moon的精灵图 上弦月 8N+7 0.750
EnvSprite waxing-gibbous-moon.png:Minecraft中waxing-gibbous-moon的精灵图 盈凸月 8N 0.875

use_cycle[编辑 | 编辑源代码]

读取当前物品堆叠的剩余使用时间,并对给定的周期取模作为返回值。如果物品堆叠不在任何生物身上,或生物没有使用这个物品堆叠,则返回0。

  • NBT复合标签/JSON对象*model
    • 值调配型物品模型共通字段[显示]
    • 字符串*propertyuse_cycle
    • 单精度浮点数period:(值>0,默认为1)周期。

use_duration[编辑 | 编辑源代码]

读取物品堆叠的使用时间或剩余使用时间作为返回值。如果物品堆叠不在任何生物身上,或生物没有使用这个物品堆叠,则返回0。

  • NBT复合标签/JSON对象*model
    • 值调配型物品模型共通字段[显示]
    • 字符串*propertyuse_duration
    • 布尔型remaining:(默认为false)使用物品堆叠的剩余使用时间而非使用时间。

select[编辑 | 编辑源代码]

此物品模型映射类型会先计算物品堆叠内给定的一个枚举属性,游戏会使用枚举属性值对应的物品模型映射。如果没有匹配的枚举值,则使用回落物品模型映射。

  • NBT复合标签/JSON对象*model
    • 字符串*typeselect
    • NBT列表/JSON数组*cases:定义枚举值和对应的物品模型映射。枚举值不能重复出现,否则游戏将报错Duplicate case conditions: <重复的枚举值列表>
      • NBT复合标签/JSON对象:一项枚举值列表和对应的物品模型映射。
        • NBT复合标签/JSON对象*model:阈值对应的物品模型映射。
          • 递归定义物品模型映射。具体格式详见上文。
        • 字符串[失效:JE 1.21.5]任意类型[新增:JE 1.21.5]NBT列表/JSON数组*when:匹配此映射的枚举值。
    • NBT复合标签/JSON对象fallback:回落物品模型映射。如果读取结果不匹配任何一个枚举值,则使用此映射。如果此项不存在,且读取结果不匹配任何一个枚举值,则使用无效模型。
      • 递归定义物品模型映射。具体格式详见上文。
    • 字符串*property:(命名空间ID)检查给定的物品模型映射枚举属性类型。
    • 其他元素见下文。

物品模型映射枚举属性类型如下所示:

命名空间ID 具有附加元素 枚举值格式 枚举来源
block_state 字符串字符串 读取物品堆叠的block_state组件获取方块状态数据
charge_type 弩内部包含的物品类型,检查物品堆叠的charged_projectiles组件
如果此组件为空或不存在,则为none;如果组件内物品堆叠为烟花火箭,则为rocket;其他情况下为arrow
component[新增:JE 1.21.5] 取决于组件ID 读取物品堆叠的可持久化组件
context_dimension 字符串字符串 当前玩家所在维度的命名空间ID
context_entity_type 持有此物品堆叠的实体类型
custom_model_data 读取物品堆叠的custom_model_data组件中的NBT列表/JSON数组strings
display_context 获取当前物品堆叠渲染位置,枚举值见模型 § 渲染变换
local_time 读取时间并格式为字符串
main_hand 获取玩家的主手是左手(left)还是右手(right);如果物品堆叠不在玩家身上,则为null,无法匹配
trim_material 读取物品堆叠的trim组件并获取盔甲纹饰材料;如果物品堆叠无此组件则为null,无法匹配

带有附加元素的类型如下所示:

block_state[编辑 | 编辑源代码]

读取物品堆叠的block_state组件,并获取指定方块属性的值作为返回值。如果物品堆叠不存在此组件,或方块不具有对应方块属性,则返回null,无法匹配。

  • NBT复合标签/JSON对象*model
    • 枚举条件型物品模型共通字段[显示]
    • 字符串*propertyblock_state
    • 字符串*block_state_property:获取方块的指定方块属性。

component[编辑 | 编辑源代码]

本段落包含会在下一次更新中出现的内容。

这些特性在Java版1.21.5的开发版本中加入。

读取物品堆叠的可持久化组件数据,获取此组件的数据作为返回值。指定不可持久化的组件或枚举值不符合对应组件的数据要求时此模型映射会直接加载失败。

  • NBT复合标签/JSON对象*model
    • 枚举条件型物品模型共通字段[显示]
    • 字符串*propertycomponent
    • 字符串*component:获取物品堆叠的指定组件。

custom_model_data[编辑 | 编辑源代码]

读取物品堆叠的custom_model_data组件中的NBT列表/JSON数组strings,获取指定下标的字符串。如果下标超过NBT列表/JSON数组strings的长度范围,或物品堆叠不存在custom_model_data组件,则返回null,无法匹配。

  • NBT复合标签/JSON对象*model
    • 枚举条件型物品模型共通字段[显示]
    • 字符串*propertycustom_model_data
    • 整型index:(值≥0,默认为0)获取给定物品堆叠custom_model_data组件中NBT列表/JSON数组strings对应下标的字符串。

local_time[编辑 | 编辑源代码]

读取当前时间,并根据指定时区、地区设置和日期格式获得日期字符串。此字符串每秒最多获取一次。

  • NBT复合标签/JSON对象*model
    • 枚举条件型物品模型共通字段[显示]
    • 字符串*propertylocal_time
    • 字符串locale:(默认为空字符串)时间格式化为字符串时使用的地区设置。格式可参照此文档RFC3066
    • 字符串*pattern:根据时区获取当前时间后,游戏将时间格式化为字符串的日期格式。日期格式可参照此文档
    • 字符串time_zone:(默认为系统设置的时区)获取时间使用的时区。格式可参照此文档此条目

special[编辑 | 编辑源代码]

调用游戏的硬编码渲染器渲染物品堆叠。物品堆叠渲染时的渲染变换、粒子纹理变量等可以从物品模型中获取。

  • NBT复合标签/JSON对象*model
    • 字符串*typespecial
    • 字符串*base:(命名空间ID)硬编码渲染器使用的基础物品模型。游戏会读取物品模型中的渲染变换、GUI光照和粒子纹理变量。
    • NBT复合标签/JSON对象*model:硬编码渲染的模型。
      • 字符串*type:(命名空间ID)使用的硬编码渲染器。
      • 其他元素见下文。

游戏内包含下列硬编码渲染器:

命名空间ID 具有附加元素 渲染内容
bed 渲染
banner 渲染旗帜
conduit 渲染潮涌核心
chest 渲染箱子
decorated_pot 渲染饰纹陶罐,四个面取决于pot_decorations组件
hanging_sign 渲染悬挂式告示牌
head 渲染生物头颅
shulker_box 渲染潜影盒
shield 渲染盾牌,底色和图案取决于base_colorbanner_patterns组件
standing_sign 渲染告示牌
trident 渲染三叉戟

bed[编辑 | 编辑源代码]

根据指定的纹理渲染床。

  • NBT复合标签/JSON对象*model
    • 字符串*typebed
    • 字符串*texture:(命名空间ID)渲染床使用的纹理。游戏在渲染时将纹理解析为assets/<命名空间>/textures/entity/bed/<路径>.png

[编辑 | 编辑源代码]

根据底色和banner_patterns物品堆叠组件渲染旗帜。

  • NBT复合标签/JSON对象*model
    • 字符串*typebanner
    • 字符串*color:旗帜底色,可用枚举值见颜色

chest[编辑 | 编辑源代码]

根据指定的纹理和开合程度渲染箱子。

  • NBT复合标签/JSON对象*model
    • 字符串*typechest
    • 单精度浮点数openness:(默认为0)箱子打开的程度。
    • 字符串*texture:(命名空间ID)渲染箱子使用的纹理。游戏在渲染时将纹理解析为assets/<命名空间>/textures/entity/chest/<路径>.png

hanging_sign[编辑 | 编辑源代码]

根据指定的纹理渲染悬挂式告示牌。

  • NBT复合标签/JSON对象*model
    • 字符串*typehanging_sign
    • 字符串texture:(命名空间ID)渲染悬挂式告示牌使用的纹理,如果此项不存在则根据悬挂式告示牌类型选择纹理,游戏在渲染时将纹理解析为assets/<命名空间>/textures/entity/signs/hanging/<路径>.png
    • 字符串*wood_type:悬挂式告示牌类型,可以为acacia、​bamboo、​birch、​cherry、​crimson、​dark_oak、​jungle、​mangrove、​oak、​pale_oak、​sprucewarped

head[编辑 | 编辑源代码]

按照指定的头颅类型渲染生物头颅。

  • NBT复合标签/JSON对象*model
    • 字符串*typehead
    • 单精度浮点数animation:(默认为0)头颅动画进度,控制龙首和猪灵的头渲染时动态部分的动画进度。此值仅当字符串*kinddragonpiglin时才有实际作用。
    • 字符串*kind:头颅类型,可以为creeper、​dragon、​piglin、​player、​skeleton、​wither_skeletonzombie。此项决定了游戏使用哪种动态模型渲染。
    • 字符串texture:(命名空间ID)使用指定的纹理渲染对应的头颅,游戏在渲染时将纹理解析为assets/<命名空间>/textures/entity/<路径>.png。当字符串*kindplayer时,此项会覆盖profile物品堆叠组件的设置值。

shulker_box[编辑 | 编辑源代码]

根据指定的纹理、开合程度和方向渲染潜影盒。

  • NBT复合标签/JSON对象*model
    • 字符串*typeshulker_box
    • 单精度浮点数openness:(默认为0)潜影盒打开的程度。
    • 字符串orientation:(默认为up)潜影盒的方向,可以为up、​down、​east、​south、​westnorth
    • 字符串*texture:(命名空间ID)渲染潜影盒使用的纹理。游戏在渲染时将纹理解析为assets/<命名空间>/textures/entity/shulker/<路径>.png

standing_sign[编辑 | 编辑源代码]

根据指定的纹理渲染告示牌。

  • NBT复合标签/JSON对象*model
    • 字符串*typestanding_sign
    • 字符串texture:(命名空间ID)渲染告示牌使用的纹理,如果此项不存在则根据告示牌类型选择纹理,游戏在渲染时将纹理解析为assets/<命名空间>/textures/entity/signs/<路径>.png
    • 字符串*wood_type:告示牌类型,可以为acacia、​bamboo、​birch、​cherry、​crimson、​dark_oak、​jungle、​mangrove、​oak、​pale_oak、​sprucewarped

历史[编辑 | 编辑源代码]

Java版
1.21.424w45a加入了物品模型映射。
24w46a加入了local_time枚举属性和keybind_down布尔属性以分别代替xmasshift_down布尔值属性。
加入了holder_type枚举属性。
加入了standing_signhanging_sign硬编码渲染器。
head硬编码渲染器加入了可选字段字符串texture
pre1向物品模型映射加入了布尔型hand_animation_on_swap字段。
加入了empty类型物品模型映射。
加入了team颜色来源。
head硬编码渲染器加入了可选字段单精度浮点数animation
加入了布尔属性view_entity
加入了枚举属性context_dimension,并将holder_type重命名为context_entity_type
移除了数值属性time布尔型natural_only字段,并加入了字符串source字段。
向数值属性compass字符串target字段加入了可选值none
Java版(即将到来)
1.21.525w03a加入了component枚举属性。
25w04a加入了component布尔属性。
现在枚举属性component的枚举值若来自注册表且当前数据包并未提供该值,则其将被静默忽略而不是使模型映射加载失败。

导航[编辑 | 编辑源代码]