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。
感谢大家的帮助,我希望这能帮助未来的模组制作者实现他们的梦想。 :)
由于锻造标准最近发生了变化,很难在这个网站上找到适用的帖子,所以我自己发了一篇。我正在尝试向项目添加 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。
感谢大家的帮助,我希望这能帮助未来的模组制作者实现他们的梦想。 :)