在本指南中,你将制作一件红宝石胸甲,并学会把它扩展成完整的四件套。盔甲是第一种行为包和资源包都要承担重要工作的物品:BP 决定它提供多少保护,RP 决定它穿在玩家身上的样子,而不只是物品栏里的样子。
本指南建立在你的第一个自定义物品的基础上。如果你还不熟悉图标、纹理和 lang 文件,请先阅读那篇。
快捷方式:GodCraft
GodCraft 会一次做好全部四件,包括穿戴外观,让你跳过本指南中最麻烦的文件。
- 打开工坊,在你的附加包中添加一个盔甲。
- 在像素编辑器中绘制图标和穿戴纹理。
- 为每一件设置护甲值、耐久度和修复材料。
- 点击导出,然后在游戏中试穿这套盔甲。
准备好看文件了吗?我们开始吧。
盔甲的工作原理
每件盔甲都需要三样东西:
| 部分 | 包 | 作用 |
|---|---|---|
| 物品文件 | BP | 放在哪个槽位、提供多少保护、耐久度 |
| 图标 | RP | 物品栏中的小图片 |
| 附着物 | RP | 穿戴时绘制在身上的 3D 模型和纹理 |
我们使用命名空间 myname。请在所有地方把它换成你自己的。
手动制作
第 1 步:物品文件
{
"format_version": "1.26.30",
"minecraft:item": {
"description": {
"identifier": "myname:ruby_chestplate",
"menu_category": {
"category": "equipment",
"group": "minecraft:itemGroup.name.chestplate"
}
},
"components": {
"minecraft:icon": {
"textures": {
"default": "myname_ruby_chestplate"
}
},
"minecraft:display_name": {
"value": "item.myname:ruby_chestplate.name"
},
"minecraft:max_stack_size": 1,
"minecraft:wearable": {
"slot": "slot.armor.chest",
"protection": 7
},
"minecraft:durability": {
"max_durability": 500
},
"minecraft:enchantable": {
"slot": "armor_torso",
"value": 12
},
"minecraft:repairable": {
"repair_items": [
{
"items": ["myname:ruby"],
"repair_amount": "query.max_durability * 0.25"
}
]
},
"minecraft:tags": {
"tags": ["minecraft:is_armor"]
}
}
}
}重点部分:
minecraft:wearable让它成为盔甲。slot是穿戴的位置,protection是它在生命值上方的护甲栏中增加的护甲点数。每个完整的护甲图标是 2 点。minecraft:durability是它损坏前能承受多少次攻击。minecraft:enchantable使用盔甲槽位名称,这样保护等盔甲附魔就能附在上面。minecraft:repairable让玩家可以在铁砧上用红宝石修复它。minecraft:tags把它标记为盔甲。minecraft:max_stack_size为 1。放进盔甲槽时本来就只能放 1 个,但写明会更清楚。
第 2 步:另外三件
把胸甲文件复制三份,在每份中修改这些值:
| 部位 | slot(wearable) | slot(enchantable) | 钻石盔甲的护甲值,供对比 |
|---|---|---|---|
| 头盔 | slot.armor.head | armor_head | 3 |
| 胸甲 | slot.armor.chest | armor_torso | 8 |
| 护腿 | slot.armor.legs | armor_legs | 6 |
| 靴子 | slot.armor.feet | armor_feet | 3 |
记得同时修改标识符、图标和显示名称,并选择对应的创造模式分组(用 helmet、leggings 或 boots 代替 chestplate)。
第 3 步:穿戴纹理
穿在身上的盔甲使用一张和图标不同的、更大的纹理。它的布局和原版盔甲文件一样:一张包裹身体的 64x32 PNG。原版把每套盔甲分成两层:
- 第 1 层(
ruby_1.png):头盔、胸甲和靴子。 - 第 2 层(
ruby_2.png):护腿。
64x32 PNG: the helmet, chestplate and boots parts64x32 PNG: the leggings parts要把布局弄对,最简单的方法是以原版的 diamond_1.png 和 diamond_2.png 为基础,在上面重新绘制。绘制技巧见像素纹理。
第 4 步:附着物
附着物告诉游戏,物品被穿戴或手持时要在玩家身上画什么。在资源包中创建一个 attachables 文件夹:
{
"format_version": "1.10.0",
"minecraft:attachable": {
"description": {
"identifier": "myname:ruby_chestplate",
"materials": {
"default": "armor",
"enchanted": "armor_enchanted"
},
"textures": {
"default": "textures/models/armor/ruby_1",
"enchanted": "textures/misc/enchanted_actor_glint"
},
"geometry": {
"default": "geometry.humanoid.armor.chestplate"
},
"scripts": {
"parent_setup": "variable.chest_layer_visible = 0.0;"
},
"render_controllers": ["controller.render.armor"]
}
}
}逐行解释:
identifier必须和物品 ID 完全一致。游戏就是靠它把附着物和物品关联起来的。materials和enchanted纹理让盔甲附魔后显示紫色光效。textures.default是你的穿戴纹理,不带.png。geometry使用内置的原版盔甲模型,所以你不需要自己做 3D 模型。parent_setup隐藏该身体部位的原版盔甲层,这样就不会有东西画在你的盔甲上面。render_controllers使用原版盔甲控制器。
其他几件需要修改三个值:
| 部位 | geometry | parent_setup | 纹理 |
|---|---|---|---|
| 头盔 | geometry.humanoid.armor.helmet | variable.helmet_layer_visible = 0.0; | ruby_1 |
| 胸甲 | geometry.humanoid.armor.chestplate | variable.chest_layer_visible = 0.0; | ruby_1 |
| 护腿 | geometry.humanoid.armor.leggings | variable.leg_layer_visible = 0.0; | ruby_2 |
| 靴子 | geometry.humanoid.armor.boots | variable.boot_layer_visible = 0.0; | ruby_1 |
第 5 步:图标和名称
在 item_texture.json(texture_data 内)中为每件添加一个图标,并把 16x16 的图标保存到 RP/textures/items/:
"myname_ruby_helmet": { "textures": "textures/items/ruby_helmet" },
"myname_ruby_chestplate": { "textures": "textures/items/ruby_chestplate" },
"myname_ruby_leggings": { "textures": "textures/items/ruby_leggings" },
"myname_ruby_boots": { "textures": "textures/items/ruby_boots" }item.myname:ruby_helmet.name=Ruby Helmet
item.myname:ruby_chestplate.name=Ruby Chestplate
item.myname:ruby_leggings.name=Ruby Leggings
item.myname:ruby_boots.name=Ruby Boots测试
- 把包加载到世界中(见导出与安装)。
- 对每一件运行 /give,例如
/give @s myname:ruby_chestplate。 - 穿上它,看看护甲栏。在电脑上按 F5,或在设置中切换视角,从外面看看效果。
盔甲看不见?
如果护甲栏增加了但看不到盔甲,说明 BP 没问题,问题出在附着物上。检查附着物的 identifier 是否和物品 ID 一致,以及纹理路径是否正确。
出问题时
| 你看到的现象 | 最可能的原因 |
|---|---|
| 穿不上 | 缺少 minecraft:wearable,或 slot 拼错了 |
| 穿上后看不见 | 附着物的标识符或纹理路径错误 |
| 看起来乱七八糟 | 穿戴纹理的布局和原版 64x32 盔甲纹理不一样,或这件用错了层 |
| 身上是粉黑色 | 附着物中的纹理路径指向了不存在的文件 |