附加包教程:6.物品(一)
准备
在行为包根目录下打开items文件夹,新建一个文件。命名就是你的物品的英文名,这样比较好管理。你也可以新建一个文件夹,把它命名英文名,把所有相关的文件都放进去,方便管理。这对于方块和实体也适用。
第一个物品
现在就可以开始了。在你新建的文件里写以下代码。
{
"format_version": "1.21.50", //这个是格式版本,写物品时只能用这个版本能用的语法。建议保持一个比较新的版本号,如1.21.50。
"minecraft:item": {
"description": {
"identifier": "以后这里我称为“命名空间ID”", //前面写一个附加包名称,加上英文冒号,后面写具体的这个物品的英文名(例如test_pack:test_item),这个要牢记。
"menu_category": {
"category": "items", //定义物品位于创造模式物品栏下的哪个标签页。construction是建筑,equipment是装备,items是物品,nature是自然,none是不在创造模式物品栏中显示。
"group": "minecraft:itemGroup.name.bed", //创造模式物品栏标签页下的组,填写物品组的本地化键名,如果是 1.21.60+ 那么还要在前面加一个 minecraft: 作为命名空间。找不到对应物品组时,不会放进任何物品组中。
"is_hidden_in_commands": false //物品是否在命令列表中隐藏,例如是否可以通过命令获取。设为true后将不能用命令获得此物品。
}
},
"components": { //这就是这个物品拥有的功能的列表,叫“组件”。
"minecraft:icon": "test_name"
}
}
}
上面我给出的示例文档里描述的是一个命名空间是test_pack:test_item的物品,有一个组件,分别指定了图标和创造模式物品栏分类。如果想要创造功能更丰富的物品,就必须借助更多组件,甚至脚本的帮助。所以,下期我将列出所有可用的组件。使用时,直接重复并粘贴到与示例组件同级的位置就好了。
minecraft:icon:这个组件可以指定物品的纹理图标(就是这个物品长啥样)。要想指定纹理,首先确定纹理短名,短名可以随便起(英文名,建议与这个物品的命名空间ID保持一致)。每个短名都指代一个路径,而这个路径指向图片。简单地说,这个物品告诉基岩引擎,“我的纹理叫 test_name!”基岩引擎就跑去登记表那里,问“test_name 对应哪个路径?”登记表回答,“是 textures/items/test 路径!”基岩引擎就去这个路径指向的纹理,把纹理贴到物品上。
渲染
这一期我们不仅会列出如何创建一个最基础的物品,还要谈到如何让这个物品有纹理。
打开资源包根目录下的textures文件夹,创建item_texture.json,把下面的代码粘贴进去。
{
"texture_data": {
"test_name": { //这里写之前起的短名。
"textures": "textures/items/test" //这里就是你的纹理的路径。不需要后缀,只需要保证它指向了一张正方形的图片即可。
}
}
}
在textures文件夹下新建items文件夹,打开,随便一张正方形图片扔进去,改名成你刚才写的名字(刚才的示例里是test,那就改成test.png)。其实这里没那么严格,照片格式只要是.png、.jpg中的一种就好了。然而我建议你把图片转换格式成.png。是转换格式,不是单纯改后缀!
在基岩版1.19.51.01中,物品纹理过大会导致渲染错误,需要用附着物和模型改变渲染大小才能修复这个问题,例如64像素大小的物品需要0.01的scale值,所以建议避免过大的物品纹理。
在基岩版1.19.60.24中,物品纹理的大小可以大于16*16,而且不是正方形也没关系。这些物品在外观上会被缩放到一个适当的位置,然后像普通物品一样渲染。以后的版本中可能会再次出现此漏洞。
打开游戏,你应该能找到你新增的物品,用着你刚才添加的图片,不过它的名字看起来像是乱码。如果要让它显示成正常名字,那就退出游戏,打开资源包根目录下的texts文件夹,创建一个叫zh_CN.lang的文件。
打开它,输入以下这行内容。
item.命名空间ID=物品名字
其中,命名空间ID就是上文提到的“test_pack:test_item”,物品名字随便写,可以用§改变格式,但是不能用\n换行,而且在末尾的用 Tab 打出来的制表符显示的时候会被自动删掉。
一行代表一个本地化键名和物品名字的对应关系。如果要写注释,注释要以##开头,而且只会持续到这一行结束。
再次打开游戏,应该就能正常地看到一个物品了。