1. Wiki
  2. /物品
  3. /你的第一个自定义物品

你的第一个自定义物品

为 Minecraft Bedrock 制作一个红宝石物品:物品文件、图标纹理、语言文件中的名称,以及如何用 /give 获取它。

在本指南中,你将制作一颗红宝石:一颗简单的闪亮宝石,最多可堆叠 64 个,会出现在创造模式物品栏中,并拥有自己的名称和图标。它暂时还没什么特别的功能,但你以后做的每一把剑、每一种食物、每一件盔甲,都是从这个文件开始的。

有两种做法。快捷方式在手机上几分钟就能搞定;手动方式会带你看遍每个文件,让你明白其中的原理。

快捷方式:GodCraft

GodCraft 会帮你生成物品文件、纹理、名称和包文件。你完全不用打开 JSON 文件。

  1. 打开工坊,在你的附加包中添加一个物品。
  2. 在像素编辑器中绘制图标,或者从原版纹理开始重新上色。
  3. 输入名称,选择你想要的设置,比如堆叠数量。
  4. 点击导出。GodCraft 会写好清单文件、UUID 和语言文件,并生成一个可以在 Minecraft 中打开的 .mcaddon。

好奇这个 .mcaddon 里面有什么?继续往下看。

手动制作

你需要一个已经搭建好的行为包(BP)和资源包(RP)。如果还没有,请先按照项目搭建操作。所有示例都使用命名空间 myname。请把它出现的每个地方都换成你自己的小写简称。

下面是你要创建或修改的文件:

文件包作用
items/ruby.jsonBP声明物品存在以及它的行为
textures/items/ruby.pngRP图片
textures/item_texture.jsonRP给图片起简称
texts/en_US.langRP玩家看到的名称

第 1 步:物品文件

在行为包中创建一个名为 items 的文件夹,并添加这个文件:

BP/items/ruby.json
{
  "format_version": "1.26.30",
  "minecraft:item": {
    "description": {
      "identifier": "myname:ruby",
      "menu_category": {
        "category": "items"
      }
    },
    "components": {
      "minecraft:icon": {
        "textures": {
          "default": "myname_ruby"
        }
      },
      "minecraft:display_name": {
        "value": "item.myname:ruby.name"
      },
      "minecraft:max_stack_size": 64
    }
  }
}

我们来逐部分看看。

  • format_version 告诉游戏你的文件遵循哪个版本的物品规则。请使用较新的版本,这样所有新组件都能用。
  • identifier 是物品的唯一 ID,格式永远是 namespace:name。新物品千万不要用 minecraft 命名空间:那是游戏自己的。
  • menu_category 决定物品在创造模式物品栏中的位置。category 可以是 construction、nature、equipment、items 或 none(隐藏)。你还可以加一个 group,比如 "minecraft:itemGroup.name.sword",把它放进已有的分组里。
  • components 是物品获得各种功能的地方。每个组件就是一项功能。

这里用到的三个组件:

  • minecraft:icon 选择图片。default 是你将在第 3 步的 item_texture.json 中定义的简称,不是文件路径。
  • minecraft:display_name 设置名称。这里它指向语言文件中的一个键,所以名称可以被翻译。
  • minecraft:max_stack_size 是一格能放多少个。使用 1 到 64 之间的数字。

一项功能,一个组件

想让物品像附魔书一样闪光?添加值为 true 的 minecraft:glint。想让它在岩浆中不被烧毁?添加 minecraft:fire_resistant。每个组件都有自己的参考页面,列出了它的所有字段。

第 2 步:纹理

画一张 16x16 像素的 PNG,保存到你的资源包中:

RP/textures/items/ruby.png
A 16x16 PNG with a transparent background

背景要保持透明,否则图标会变成一个方块。如果你刚接触像素画,像素纹理里有让小图片更好看的技巧。

第 3 步:注册纹理

游戏不会通过路径从物品直接读取 PNG 文件。而是由 item_texture.json 给每张图片起个简称,物品再使用这个简称。创建(或打开)这个文件:

RP/textures/item_texture.json
{
  "resource_pack_name": "myname",
  "texture_name": "atlas.items",
  "texture_data": {
    "myname_ruby": {
      "textures": "textures/items/ruby"
    }
  }
}

注意两点:

  1. 键 myname_ruby 和物品图标组件中的 default 值一致。
  2. 路径末尾没有 .png。

以后添加更多物品时,把它们都作为额外的条目放进这个文件的 texture_data 中。不要再建第二个 item_texture.json。

第 4 步:名称

打开(或创建)英文语言文件,添加一行:

RP/texts/en_US.lang
item.myname:ruby.name=Ruby

= 前面的部分必须和 minecraft:display_name 的 value 完全一致。后面的部分就是玩家看到的名称。Lang 文件是纯文本:每行一个条目,不加引号,也不加逗号。

第 5 步:测试

  1. 把两个包复制到 Minecraft 中,或者导出它们(见导出与安装)。
  2. 新建一个世界,在设置中启用两个包。
  3. 打开聊天栏,输入 /give 命令:
聊天栏
/give @s myname:ruby 64

你应该会得到一整组带有你的图标、名为“Ruby”的红宝石。在创造模式世界中,你还能在物品栏的物品标签页里找到它。

出问题时

你看到的现象最可能的原因
/give 提示物品不存在标识符有拼写错误,或行为包没有启用
物品图标是粉黑色的item_texture.json 中的键和图标不一致,或路径错误
名称显示成 item.myname:ruby.namelang 键不一致,或 lang 文件不在 texts 中
包里的东西都没加载JSON 语法错误,比如少了逗号

在 Minecraft 的创作者设置中打开内容日志,就能看到准确的错误信息。更多解决方法见故障排查。

下一步?

你的红宝石还只是个普通物品。现在给它安排点用处吧:

想看看 Mojang 是怎么做自己的物品的,可以浏览原版物品。

物品: 指南

We use cookies to improve your experience and analyse site traffic. Learn more