BE教程

附加包教程第八期——物品:基础

7***Lv.3 中级会员 发表于 2022-5-8 · 最后回复 2023-5-1 IP:江苏省 6,625 10
AI 速览2026-10-11 07:29 生成

附加包教程第八期讲解物品基础:行为包与资源包文件写法

这是附加包教程系列的第八期,主题是自定义物品的基础实现。内容从行为包与资源包两个角度出发,介绍物品定义文件的路径、格式与常用组件,包括手持显示、堆叠数量、附魔光效等行为设置,以及物品类别、渲染偏移、图标纹理等资源设置。还讲解了物品纹理与纹理短名称文件、语言文件的配置方式,适合正在学习基岩版附加包、想从零做出第一个自定义物品的玩家参考。

获取方式
  • 行为包物品文件示例,347 B,与资源包同名需区分
  • 资源包物品文件示例,297 B,配合行为包使用
  • item_texture.json 纹理短名称文件示例,180 B
  • 行为包 format_version 使用 1.10,高级组件后续会用 1.16.100
  • 物品 identifier 必须带命名空间
  • max_stack_size 不可大于 64,不可堆叠设为 1
  • 纹理短名称填写时不要带文件后缀名
  • 需同时导入并激活行为包与资源包,否则物品无纹理
本卡片由 AI 阅读本帖后生成,可能存在疏漏,请以帖子正文为准。
本帖最后由 782 于 2022-6-6 18:20 编辑


物品(一)
基础

一、简介
物品既需要一个行为包文件来确定物品的作用,也需要一个资源包文件来确定物品的外观。
在本期教程中,我们将会理解物品的基础组件。

二、行为包文件示例与详解
路径:行为包/items/物品名称.item.json
示例:
  1. {
  2.     "format_version": "1.10",
  3.     "minecraft:item": {
  4.         "description": {
  5.             "identifier": "demo:my_item"
  6.         },
  7.         "components": {
  8.             "minecraft:hand_equipped": false,
  9.             "minecraft:stacked_by_data": true,
  10.             "minecraft:foil": false,
  11.             "minecraft:max_stack_size": 64
  12.         }
  13.     }
  14. }
复制代码

详解:
“format_version”定义文件使用的版本,填写字符串。
在这里,我们将使用1.10,
以后学到高级的物品组件时,会使用1.16.100。

“description”里面的“identifier”定义了物品的名称,填写字符串
一定要使用命名空间!

“components”定义了物品的功能:
  • “minecraft:hand_equipped”定义物品是否“装备”在手中,填写布尔值。
    这控制了物品在玩家等生物手上的显示方式。
    例如,木剑能在手上“装备”,但苹果不能。
  • “minecraft:stacked_by_data”定义此具有不同数据值的物品是否能够堆叠,填写布尔值。
  • "minecraft:foil"定义物品上是否会有附魔的光芒,填写布尔值。
    例如,附魔武器将此组件设置为true。
  • “minecraft:max_stack_size”物品的最大堆叠数量,填写整数。
    看到这里,你是不是觉得可以做终极堆叠了?当然不行,因为它不能大于64。
    对于不可堆叠的物品,请将此设置为1。

如果你现在导入并激活附加包后进入游戏,物品将正常存在,但它没有纹理。
可以通过执行“/give @s 物品名称”命令来测试物品。
现在,让我们在资源包文件夹中定义物品的纹理和其他资源文件。

三、资源包文件示例与详解
路径:资源包/items/物品名称.item.json
示例:
  1. {
  2.     "format_version": "1.10",
  3.     "minecraft:item": {
  4.         "description": {
  5.             "identifier": "demo:my_item",
  6.             "category": "Nature"
  7.         },
  8.         "components": {
  9.             "minecraft:icon": "my_icon",
  10.             "minecraft:render_offsets": "tools"
  11.         }
  12.     }
  13. }
复制代码


详解:
“format_version”和行为包文件中的一样,填写字符串。

在“description”下设置相同的标识符“identifier”,填写字符串。
就像在物品的行为包文件中一样,这会将物品的资源包文件与行为包文件联系起来。

“category”定义物品栏中物品的类别,填写字符串。
可以设置为“Nature”(自然)、“Equipment”(装备)、“Construction”(建筑)或“Items”(物品)。

资源文件中的“components”现在定义物品的显示方式:
  • “minecraft:render_offsets”定义了物品应该如何呈现,填写字符串。
    它可以设置为几乎任何原版物品名称,例如“apple”。
  • “minecraft:icon”定义了物品的纹理,填写字符串。
    接下来,让我们更深入地研究一下物品纹理。


四、物品纹理与纹理短名称
要定义物品纹理的短名称(在物品上使用纹理),首先需要创建纹理。
创建一个正方形图像,并将其保存到 资源包/textures/items/图像名称.png。
现在让我们在textures文件夹创建一个定义物品纹理短名称的文件:item_texture.json,
下面示例中,以textures/items/my_item.png作为纹理。
路径:资源包/textures/item_texture.json
示例:
  1. {
  2.     "resource_pack_name": "demo",
  3.     "texture_name": "atlas.items",
  4.     "texture_data": {
  5.         "my_icon": {
  6.             "textures": "textures/items/my_item"
  7.         }
  8.     }
  9. }
复制代码

详解:
“resource_pack_name”是资源包的名称,填写字符串。
不用填写真实的资源包名称,可以将其设置为命名空间或其他字符。

“texture_name”定义此文件包含哪些类型的纹理,填写字符串。
由于这个文件针对于项目,我们将其设置为“atlas.items”即可。

我们在“texture_data”对象中定义所有项目纹理短名称。
“my_icon”是添加的路径为“textures/items/my_item”纹理的缩写,注意不要有后缀名!
这是在物品资源包文件的 minecraft:icon组件中定义的纹理名称。

五、定义.lang文件
物品创建成功后,在游戏中会显示lang代码,
我们只需要在 资源包/texts/zh_CN.lang 文件中添加lang代码与定义即可。
示例:
  1. item.demo:my_item.name=我的第一个物品
复制代码


六、本期文件下载
行为包物品文件示例:  my_item.item.json (347 Bytes, 下载次数: 72)
资源包物品文件示例:  my_item.item.json (297 Bytes, 下载次数: 65)
item_texture.json文件示例:  item_texture.json (180 Bytes, 下载次数: 46)

预告:下一期会带大家创建一个可食用的物品
大家的打赏是对楼主最好的鼓励!


附加包教程系列导航
上一期  下一期
回复 10 最早 最新 只看楼主
您需要登录后才可以回帖 登录 | 立即注册
本版积分规则