自定义模型方案
315 字约 1 分钟
2024-12-28
一、前言
我们熟知的通过资源包实现自定义模型是通过 CustomModelData 字段来实现的, 通过给一个物品设置多个不同的 CustomModelData 然后给物品指定对应的 CustomModelData ID 实现不同的模型。 这种自定义模型方案使用起来非常方便,但是间接造成了一个问题:资源包冲突。
假设 A 和 B 两个资源包同时给一个物品 I 分别设置了几个 CustomModelData,由于 Minecraft 加载资源包采用的是后者覆盖前者的原则。 那么如果 A 资源包在 B 资源包之前加载,则 I 物品的 CustomModelData 将会是 B 资源包中的设置,A 资源包的 CustomModelData 不会生效。 此时我们便无法指定 A 资源包中的 CustomModelData ID 来获取对应的模型。
虽然可以通过某些合并资源包的方式解决这个问题,但是某种程度上来说这进一步造成了资源包的混乱。
为了解决这个问题,自 1.21.4 开始 Minecraft 引入了全新的 ItemModel 字段。