如何从指定位置加载模型

Aminor_z


版本信息
你使用的系统:windows 10 64位
你是用的JDK: 1.8
你使用的IDE:IntelliJ IDEA
你使用的IDE版本: 2019.3
Forge版本: 1.15.2-31.2.33
Minecraft版本: 1.15.2

简述
如何从指定位置加载模型,如从这个位置加载:
resources/assets/modid/models/item/material/qwq.json

由来
参照的沉浸工艺的资源目录


发现
immersiveengineering\models\item\material\coal_coke[例].json
能够通过parent:ie_item_base.json实现加载
该文件位于immersiveengineering\models\item\ie_item_base.json

以下位涉及文件的内容
coal_coke.json

{
	"parent":"immersiveengineering:item/ie_item_base",
	"textures": {
		"layer0":"immersiveengineering:items/material_coal_coke"
	}
}

ie_item_base.json

{
	"parent":"item/generated"
}

我的尝试
仿照沉浸工艺的结构,我设置了如图的Resource 目录
image
test_item.json

{
	"parent":"oneMod:item/item_base",
	"textures": {
		"layer0":"oneMod:items/test_item"
	}
}

item_base.json

{
	"parent":"item/generated"
}

发现游戏中test_item并不能加载模型,但如果将其放置在item/目录下,能够加载

我的目的
如何从二级、三级目录下加载模型文件
item/dir/model.json
block/dir/dir/model.json

我的其他状况
注册了test_item,并能在游戏中出现,但在 我的尝试 中无模型、材质
一切正常


FledgeXu


很简单,在你的注册名前面加一个文件夹的名字就行。
举例来说

public static final RegistryObject<Item> obsidianAltar = ITEMS.register("test/obsidian_altar", () -> new BlockItem(BlockRegistry.obsidianAltar.get(), new Item.Properties().group(ItemGroup.BUILDING_BLOCKS)));
item
└── test
    └── obsidian_altar.json

1 directory, 1 file

这里的加载流程是:游戏先根据的你注册名获取相对应的模型文件,然后通过模型文件中的textures加载对应的材质文件。 - neutrino


system


该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。