合并自定义资源包
通常,宠物包都包含了适用于MCPets菜单中的自定义图标或自定义指挥权杖
这些自定义物品都是基于原版物品,为其设置不同的CustomModelData来呈现与原版不同的自定义模型. 然而该功能在使用多个资源包时就会发生冲突,例如:A包的自定义物品的文件覆盖了B资源包的自定义物品文件
该教程将帮助你解决两个宠物包中共用相同原版物品作为自定义模型的资源包的合并问题 如果想深入了解有关 CustomModelData 以及如何正确处理它们的信息,请查看 MCModels 页面

查找冲突的文件
首先,找出两个包中发生冲突的文件
想要找出冲突文件实际上很简单,你只需要将两个包进行合并
例如,将 ModelEngine 资源包(./plugins/ModelEngine/resource pack)与购买的宠物包(Kingdom Cats)进行合并

打开两个包,选择其中一个包复制 assets 文件夹,粘贴至第二个包中进行合并
若系统询问您是否覆盖或忽略冲突的文件,那么这些文件便是两个资源包发生冲突的文件
若正常合并没有任何提示,则这两个资源包没有任何冲突的文件,合并后将可以正常使用
通过上述方法操作后,就能确定哪些是两个资源包可能发生冲突的文件.
处理冲突内容
找到问题所在了,接下来我们处理这些发生冲突的内容,并将其合并为可用于资源包的文件.
将所有不会引起问题的文件移至主资源包后,打开两个包中引起问题的 .json 文件 这些文件都位于 <资源包>/assets/minecraft/models/item/ 路径下
举个例子,我们将要合并 Drakonin Pack 和 Kingdom Cats Pack 这两个包 这两个包都使用了 blaze_rod.json,因此我们需要解决该文件的冲突
首先,让我们打开这两个资源包中的 blaze_rod.json,查看文件内容

两个文件中都包含了自定义物品所需的CustoModeldata数据信息.

同时请注意该文件中的语法细节. Custom Model Data 的值按 升序 排列 此外,在同一个JSON文件中,Custom Model data 的值必须是唯一的. 如果两个 CustomModeldata 的值相同,则需要更改其中一个

当你需要列出多个Custom Model Data时,在每行的结尾都需要用逗号进行分隔 只有结尾的那行 Custom Model Data 后面不需要添加逗号

如果在制作资源包时改变了文件的路径,你需要确保所显示的模型的文件路径是正确的,以确保游戏能够正确识别并应用这些模型文件.
至此,我们已经了解了有关 CustomModeldata 和 JSON 格式的基础知识,让我们将两个 blaze_rod.json 文件合并为一个文件,然后将其放入资源包中

幸运的是在该示例中,两个文件并没有相同的CustomModeldata 数值,合并起来相对还是比较容易的.
如果在同一个Json 文件中,有相同的数值,你需要为其中一个定义一个新的数值.
因为 CustomModeldata 数值在同一个Json文件中必须是唯一的
⚠️ 请注意:你可以随意更改CustomModeldata的数值,但是记得要相应的调整宠物配置中应用的CustomModeldata数值(参考下述示例)

leather_horse_armor.json 的特殊情况
ModelEngine 使用 leather_horse_armor.json 作为显示生物模型的物品.
ModelEngine 会生成一个与服务器和已安装模型完全匹配的 leather_horse_armor.json 文件,来确保所有模型都能正常显示
因此,当涉及到 leather_horse_armor.json 的冲突时,应建议始终选择服务器最新生成的leather_horse_armor.json 文件,而不是尝试合并文件,使用插件为服务器生成的最新文件,来避免出现模型显示问题.
完成最终资源包合并
对于冲突的模型文件,在处理过冲突内容后我们得到了一个新的 Json 文件,其中包含了两个资源包中该模型文件的信息. 接下来,只需要将这个新的模型文件放入资源包(路径位于:<资源包>/assets/minecraft/models/item/)中,就完成了资源包的合并!
Last updated