物品材质与模型

在上一节中我们已经成功添加了第一个物品,当然那个物品还很丑,在这一节中我们将会为它添加模型和材质。

首先按照如下目录在resources下创建文件夹。

resources
├── META-INF
│   └── mods.toml
├── assets
│   └── boson
│       ├── models
│       │   └── item
│       └── textures
│           └── item
└── pack.mcmeta

其实assets下就是一个属于Mod的材质包,具体的目录结构等,读者可以自行寻找当前游戏版本的材质包制作教程学习。

接下来我们来添加模型文件,首先在在models下的item里,创建一个和你添加的物品,有着相同注册名的JSON文件,在我们的例子里就是obsidian_ingot.json

内容如下:

{
  "parent": "item/generated",
  "textures": {
    "layer0": "boson:item/obsidian_ingot"
  }
}

这里的内容非常简单:"parent": "item/generated”指定了这个模型的「父模型」是什么,而"layer0": "boson:item/obsidian_ingot”指定了具体的材质。boson:代表这个是在我们自己的assets文件下,item/obsidian_ingot代表了是textures/item/obsidian_ingot.png这张图片。

模型文件的详细格式大家可以自行阅读Wiki

接下来我们在textures/item/obsidian_ingot.png下放入我们制作好的材质文件,请注意材质文件的比例是1:1,并且最好不要大于32x32像素。

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

创建完成的目录树如下:

resources
├── META-INF
│   └── mods.toml
├── assets
│   └── boson
│       ├── models
│       │   └── item
│       │       └── obsidian_ingot.json
│       └── textures
│           └── item
│               └── obsidian_ingot.png
└── pack.mcmeta

启动游戏之后你就可以看见我们有了模型和材质的物品了。

image-20200427113433338

开发小课堂

一个方便的工具用来制作方块和物品等模型:BlockBench