- 致编者:请牢记我们的域名wiki.mcbe-dev.net!
- 致编者:欢迎加入本Wiki的官方交流QQ群或Discord服务器!
- 基岩版1.19.31现已发布!(了解更多)
- Inner Core现已支持Xbox模组联机!(了解更多)
- 如果您是第一次来到本Wiki,欢迎注册一个账户
- 点击顶部的“编辑”或“编辑源代码”按钮即可编辑当前页面
- 请知悉:在不登录时也可以编辑和新建页面,但是您当前的IP地址会记录在编辑历史中
手册:制作附加包/物品
引言[edit]
基岩版1.12更新中,Mojang正式向开发者提供了自定义物品的相关接口。但由于当时 Mojang在附加包方面的开发重心仍在于开放自定义实体的相关接口上,故物品接口在很长的一段时间里都处于“极不完善”的状态。
直至1.16.100.56 beta版本,自定义物品相关接口才得到了大幅增强,同时自该版本起,Mojang摒弃了资源包中的物品配置文件,使物品的定义更加便捷且架构更加合理。
因1.16.100以后的新版物品结构简单,定义方便,功能多样,故本教程仅介绍新版物品的定义方法。
简介[edit]
一个完整的物品应该由两部分组成:
- 物品资源(物品的纹理、名称)
- 物品行为(物品的行为、属性、赋命名空间标识符等)
在本教程中,我们将创建一个简单的物品。在第一节中,我们将学习如何定义物品行为;在第二节中,我们将给这个物品分配纹理、名称。
物品行为[edit]
要定义一个物品的行为,你需要在行为包中的 items
文件夹下新建JSON文件,并将其命名为<物品ID>.json
。
物品的基本架构如下:
{
"format_version": "1.16.100",//格式版本
"minecraft:item": {
"description": {
}, //描述
"components": {
}, //组件
"events": {
} //事件
}
}
描述 (description) 对象储存了用于描述该物品的基础信息,其中最重要值的便是identifier
,其定义了物品的赋命名空间标识符。
其详细数据结构见此。
格式版本(format_version)决定游戏以何种版本的规则读取文件,不同的格式版本的组件、事件写法可能不同。
组件(components)对象决定物品的行为,你可以选择并添加需要的组件属性,例如添加minecraft:foil
组件可以让物品具有附魔光芒、添加minecraft:food
组件可以让物品可以被食用。
完整的组件列表见此。
事件(events)对象储存了该物品可能用到的所有事件,其可以由特定的触发器组件触发或者由组件内的触发器参数触发,对于初学者,可暂时忽略这部分。
添加新物品[edit]
首先我们在行为包文件根目录下新建一个名为items
的文件夹,所有的物品文件将储存于此文件夹中,你也可以创建子文件夹以分类物品文件。
新建一个文本文档,将其后缀改为.json
,并修改文件名称为标识符后半部分。在这之后,我们可以向其中写下这些内容以定义一个基础物品。
在你的物品JSON文件里添加以下内容:
{
"format_version": "1.16.100",
"minecraft:item": {
"description": {
"identifier":"wiki:custom_item",//该物品赋命名空间标识符,出现重复的标识符会被识别为同一物品。
"category": "items"
},
"components": {
"minecraft:icon": {
"texture": "wiki.custom_item"//定义纹理,填短名称
},
"minecraft:creative_category": {
"parent": "items"
}//物品创造模式分组,在不同格式版本写法不同
}
}
}
进入游戏,你会发现自己的物品没有纹理且有一个奇怪的名称,这是因为我们还没有定义物品的资源。
物品资源[edit]
现在我们有了一个物品,本节我们将要给这个物品添加纹理与名称。
添加纹理[edit]
纹理存储在资源包中,为了方便访问,我们需要给纹理定义一个短名称。
首先,我们需要一个16×16的.png
图片文件作为纹理,并将其放入资源包的textures/items
文件夹中。
接着我们需要给这个纹理分配短名称,所有物品短名称都存储在资源包/textures/item_texture.json
,其中包含短名称及其分配纹理的列表,添加以下内容:
{
"resource_pack_name": "示例资源包",//资源包名称
"texture_name": "atlas.items",//纹理类型,不可更改
"texture_data": {
"wiki.custom_item": {//纹理短名称,应与minecraft:icon组件中填写的值相同
"textures": "textures/items/custom_item"//纹理路径,不带.png后缀
}
}
}
添加名称[edit]
最后,我们要为物品添加一个好听的名字。游戏会为这个物品分配一个形似item.<物品标识符>
的翻译键,我们只需要在语言文件中定义它即可。
首先在资源包中新建名为texts
的文件夹,在其中新建名为zh_CN.lang
的文本文件,输入以下内容:
item.wiki:custom_item=自定义物品
更多信息见Manual:制作附加包/本地化
你知道吗[edit]
- 自定义物品的Json文件名称并不要求必须与物品ID相同。
- 物品纹理并不强制要求分辨率为16×16,但若不是专门制作高清资源包的话,建议物品贴图大小不要超过128*128,既节省精力,又节省空间和性能。