附加包教程第十三期——物品:盔甲基础
本帖最后由 782 于 2022-5-20 20:44 编辑物品(六)
盔甲基础
一、前言
制作自定义盔甲非常容易,但你需要做一些其他事情,因为有几个文件需要添加,并且可能涉及一点纹理。
本期教程假定读者已经基本了解第八期(物品:基础)和第十期(物品:武器基础)的内容。
提示:使用此附加包时,必须打开“假日创造者功能”实验性玩法!
static/image/hrline/line4.png
二、行为包文件示例(以胸甲为例)
路径:行为包/items/盔甲名称.json
{
"format_version": "1.16.100",
"minecraft:item": {
"description": {
//唯一标识符
"identifier": "demo:my_chestplate",
//让它在“盔甲”分类内
"category": "equipment"
},
//定义物品组件部分
"components": {
//把它放在“胸甲”物品组内
"minecraft:creative_category": {
"parent": "itemGroup.name.chestplate"
},
//在物品栏中的图标
"minecraft:icon": {
"texture": "my_chestplate"
},
//取一个名字
"minecraft:display_name": {
"value": "我的自定义胸甲"
},
//设定最大堆叠数量(此处不堆叠)
"minecraft:max_stack_size": 1,
//让它可以附魔胸甲类型的魔咒
"minecraft:enchantable": {
"value": 10,
"slot": "armor_torso"
},
//指定盔甲的护甲值
"minecraft:armor": {
"protection": 5
},
//让盔甲变得可修复
"minecraft:repairable": {
"repair_items": [{
"items": ["minecraft:stick"],
"repair_amount": "context.other->query.remaining_durability + 0.05 * context.other->query.max_durability"
//一个复杂的Molang表达式,复制就行了
}]
},
//定义物品可以穿(放)在那些槽位
"minecraft:wearable": {
"dispensable": true,
"slot": "slot.armor.chest"
},
//物品耐久度
"minecraft:durability": {
"max_durability": 200
},
//击退抗性
"minecraft:knockback_resistance": {
"protection": 0.4
}
}
}
}
这里面有一些之前没有了解到的组件:
“minecraft:armor”指定这个物品是一个盔甲。它里面可以包含两个组件:
[*]“protection”定义盔甲给予的盔甲值,填写整数。
[*]“texture_type”(具体功能未知)定义适用于盔甲的纹理类型,填写字符串。
可以是以下名称的任意一个:
none:无
leather:皮革
chain:锁链
iron:铁
diamond:钻石
gold:金
elytra:鞘翅
turtle:海龟壳
netherite:下界合金
“minecraft:wearable”定义物品可以放在那些槽位,包含两个内容:
[*]“dispensable”定义物品是否可以通过发射器发射至槽位,填写布尔值。
[*]“slot”定义物品可以放在那些槽位,填写字符串。
可以是以下名称中的任意一个:
slot.weapon.mainhand:主手
slot.weapon.offhand:副手
slot.armor.head:头盔
slot.armor.chest:胸甲
slot.armor.legs:护腿
slot.armor.feet:靴子
slot.saddle:马鞍
slot.armor:马铠
slot.hotbar:快捷栏
slot.inventory:物品栏
slot.enderchest:末影箱
slot.chest:生物(驴、骡等)驮的箱子
slot.equippable:马鞍、马铠或地毯(羊驼)
“minecraft:knockback_resistance”里面的“protection”定义了盔甲的击退抗性,填写浮点数(小数)。
最大值为1.0!
static/image/hrline/line3.png
三、物品图标示例(以胸甲为例)
{
"resource_pack_name": "demo",
"texture_name": "atlas.items",
"texture_data": {
"my_chestplate": {
"textures": "textures/items/my_chestplate"
}
}
}
如果不想自己做纹理,本期教程底部有原版所有盔甲(包括头盔、胸甲、护腿和靴子)的物品栏纹理及自定义的部分物品栏纹理。
static/image/hrline/line9.png
四、attachables文件(以胸甲为例)
如果将上面的物品加入到游戏,它可以正常显示,也能正常穿戴,但穿戴后在玩家身上不会显示纹理。
这个时候,我们就需要一个 资源包/attachables 文件夹来添加附加纹理。
路径:资源包/attachables/物品名称.json
示例:
{
"format_version": "1.8.0",
"minecraft:attachable": {
"description": {
"identifier": "demo:my_chestplate",
//这两个是默认的,必须添加
"materials": {
"default": "armor",
"enchanted": "armor_enchanted"
},
"textures": {
//这是我们盔甲纹理(用于模型)的路径
"default": "textures/models/armor/my_armor_5_1",
//这个文件是附魔纹理,在我们的资源包中不存在
//但不添加的话可能会崩溃,把它放在那就行了
"enchanted": "textures/misc/enchanted_item_glint"
},
//这个指定了模型
"geometry": {
"default": "geometry.player.armor.chestplate"
},
//隐藏玩家身体的外层纹理
"scripts": {
"parent_setup": "variable.chest_layer_visible = 0.0;"
},
//指定了物品将使用什么渲染控制器
"render_controllers": ["controller.render.armor"]
}
}
}
重点内容:
“description”中的“identifier”必须要与盔甲的标识符相同,以将其关联在一起。
“geometry”在本期会用到的是:
geometry.player.armor.helmet:玩家头盔模型
geometry.player.armor.chestplate:玩家胸甲模型
geometry.player.armor.leggings:玩家护腿模型
geometry.player.armor.boots:玩家靴子模型
拓展:
geometry.humanoid.armor.helmet:生物头盔纹理
geometry.humanoid.armor.chestplate:生物胸甲纹理
geometry.humanoid.armor.leggings:生物护腿模型
geometry.humanoid.armor.boots:生物靴子模型
此时,我们需要确保为我们的模型创建一个纹理,这些纹理存在于在 资源包/textures/models/armor中。
我们实际上需要2个纹理,一种是主盔甲,包含胸甲、头盔和靴子,另一种是护腿,单独佩戴时通常会覆盖一些靴子区域。
如果不想自己做纹理,本期教程底部有原版所有盔甲(包括头盔、胸甲、护腿和靴子)的模型纹理及自定义的部分模型纹理。
static/image/hrline/line8.png
五、效果展示
本教程仅以盔甲为例,但在本期教程底部可以找到更多盔甲的范例
static/image/hrline/2.gif
六、本期文件下载
盔甲纹理合集:
盔甲文件示例合集:
static/image/hrline/5.gif
预告:下一期会教大家如何用多套盔甲执行事件
大家的打赏是对楼主最好的鼓励!
附加包教程系列导航
上一期下一期
@lpyqzMinecraft
@泥黑木大跌
你们怎么不更了? 782 发表于 2022-5-19 20:59
@lpyqzMinecraft
@泥黑木大跌
你们怎么不更了?
真的,你们都的太厉害了。一个比一个能卷
。 lpyqzMinecraft 发表于 2022-5-19 21:02
真的,你们都的太厉害了。一个比一个能卷
。
我快的时候一天两更
满的时候一周一更
782 发表于 2022-5-19 21:05
我快的时候一天两更
满的时候一周一更
主要是懒的板牌。 不知道难不难…… 666666666666666 782 发表于 2022-5-19 20:59
@lpyqzMinecraft
@泥黑木大跌
你们怎么不更了?
忙不过来了 66666666666 :::::::::::::
页: [1]