UID196429性别保密经验 EP铁粒 粒回帖0主题精华在线时间 小时注册时间2021-12-18最后登录1970-1-1
| 本帖最后由 782 于 2022-5-20 20:44 编辑
物品(六) 盔甲基础 一、前言
制作自定义盔甲非常容易,但你需要做一些其他事情,因为有几个文件需要添加,并且可能涉及一点纹理。
本期教程假定读者已经基本了解第八期(物品:基础)和第十期(物品:武器基础)的内容。 提示:使用此附加包时,必须打开“假日创造者功能”实验性玩法!
二、行为包文件示例(以胸甲为例)
路径:行为包/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!
三、物品图标示例(以胸甲为例)
- {
- "resource_pack_name": "demo",
- "texture_name": "atlas.items",
- "texture_data": {
- "my_chestplate": {
- "textures": "textures/items/my_chestplate"
- }
- }
- }
复制代码
如果不想自己做纹理,本期教程底部有原版所有盔甲(包括头盔、胸甲、护腿和靴子)的物品栏纹理及自定义的部分物品栏纹理。
四、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个纹理,一种是主盔甲,包含胸甲、头盔和靴子,另一种是护腿,单独佩戴时通常会覆盖一些靴子区域。
如果不想自己做纹理,本期教程底部有原版所有盔甲(包括头盔、胸甲、护腿和靴子)的模型纹理及自定义的部分模型纹理。
五、效果展示
本教程仅以盔甲为例,但在本期教程底部可以找到更多盔甲的范例
六、本期文件下载
盔甲纹理合集:
盔甲纹理合集.zip(62.69 KB, 下载次数: 47)
盔甲文件示例合集:
盔甲文件示例合集.zip(9.68 KB, 下载次数: 65)
预告:下一期会教大家如何用多套盔甲执行事件
附加包教程系列导航 上一期 下一期
|
|