Forge 1.11 纹理问题

Forge 1.11 Texturing Problems

由于锻造标准最近发生了变化,很难在这个网站上找到适用的帖子,所以我自己发了一篇。我正在尝试向项目添加 texture/model,但在编译时,我看到了:

我使用以下代码注册模型,在初始化阶段通过客户端代理调用:

Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(modid + ":" + item.getUnlocalizedName().substring(5), "inventory"));

"item" 和 "modid" 已在上述范围内正确定义。

这是我的标准物品模型,物品继承自,位于 src/main/resources/assets/ultramc/models/item:

{
"thirdperson_righthand": {
"rotation": [ 0, 0, 0 ],
"translation": [ 0, 3, 1 ],
"scale": [ 0.55, 0.55, 0.55 ]
},
"firstperson_righthand": {
"rotation": [ 0, -90, 25 ],
"translation": [ 1.13, 3.2, 1.13],
"scale": [ 0.68, 0.68, 0.68 ]
}
}

...和位于同一地点的实际子模型:

{
"parent":"ultramc:item/basic_item",
"textures": {
    "layer0":"ultramc:items/iron_nugget"
}
}

有问题的纹理是位于 src/main/resources/assets/ultramc/textures/items 的 16x16 png 文件,名为 iron_nugget.png。

我不确定我做错了什么,我非常仔细地学习了教程。任何帮助将不胜感激。谢谢!

编辑:

这是我的源文件夹,因为为什么不呢。

https://i.stack.imgur.com/6vSKj.png

尝试像这样注册项目:

Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(item.getUnlocalizedName(), "inventory"));

我不确定,但这应该可行!

-LPMG

我终于明白了。

首先,"basic item" JSON 是个坏主意。使用 item/generated 完全没问题。这是供将来可能需要的代码:

{
    "parent": "item/generated",
    "textures": {
        "layer0": "modid:item_name"
    }
}

此外,有一件事:纹理不应该在 assets.modid.textures.items 之下,而应该简单地在 assets.modid.textures 之下,除非你想将 "layer0" JSON 更新为 [=14] =].哎呀,你可以在你的纹理文件夹下有一个完整的组织系统,只要你把它放在模型文件中它就可以工作。

最后一点建议:确保模型文件名与您的项目的未本地化项目名称完全相同,否则将无法使用。哦对了,纹理也应该始终是 .png。

感谢大家的帮助,我希望这能帮助未来的模组制作者实现他们的梦想。 :)