附加包教程:17.附着物
本帖最后由 Cat_Anchor 于 2023-1-18 08:26 编辑前言
上期,我们学完了子包。接下来,我们即将学习附着物,就是attachables。
https://klpbbs.com/static/image/hrline/line5.png
子包
首先要说明的是,附着物存放在资源包根目录下的attachables文件夹内。附着物经常用来显示盔甲,当然也有其他用途。如果你跟着物品那一节课做了一个盔甲,但是穿上它发现并没有显示出来,那是因为你没有添加附着物。
打开attachables文件夹,新建一个以你的盔甲名称为名称的文件。打开它,写以下代码。
{
"format_version": "1.8.0",
"minecraft:attachable": {
"description": {
"identifier": "supplementary:warden_boots", //你的盔甲名称。要用标准的命名空间ID,这样才能把这个附着物和你的物品关联起来。
"materials": { //这里指定材质(不是纹理)
"default": "armor",
"enchanted": "armor_enchanted"
},
"textures": { //这里指定纹理。
"default": "textures/models/armor/warden_1", //纹理图片的路径。需要注意的是,除了护腿以外,其他3件装备可以共用一个纹理。护腿因为模型问题要单独用另一个纹理,不然会有纹理上的冲突。
"enchanted": "textures/misc/enchanted_item_glint" //默认指向原版的附魔闪光效果。
},
"geometry": {
"default": "geometry.humanoid.armor.boots" //这个是默认的靴子模型。
},
"scripts": {
"parent_setup": "variable.boot_layer_visible = 0.0;"
},
"render_controllers": [
"controller.render.armor" //这是渲染控制器的ID。在这里是controller.render.armor。
]
}
}
}
附着物就是这么一篇文档。关于模型问题,如果是头盔,模型ID是geometry.humanoid.armor.helmet,胸甲是geometry.humanoid.armor.chestplate,护腿是geometry.humanoid.armor.leggings,靴子是geometry.humanoid.armor.boots。渲染控制器一般情况下不需要改。
就这样草草结束不是什么好现象,所以我现在来演示:如何用这个附着物做刷子的动画。
{
"format_version": "1.10.0",
"minecraft:attachable": {
"description": {
"identifier": "supplementary:brush", //这是我的附加包中的刷子的ID,你要改成不一样的
"materials": {
"default": "entity_alphatest",
"enchanted": "entity_alphatest_glint"
},
"textures": {
"default": "textures/entity/brush", //为了匹配,这个要用一些特殊的方法制作纹理。如果直接指向刷子的物品纹理,那么刷子会错位。
"enchanted": "textures/misc/enchanted_item_glint"
},
"geometry": {
"default": "geometry.item" //模型,为了让刷子显示在正确位置
},
"animations": { //动画
"holding": "animation.item.holding", //一个动画,是一个键值对,键是动画的短名,值是动画的ID。
"holding_third": "animation.item.holding_third" //又一个动画
},
"scripts": {
"animate": [
{
"holding": "q.main_hand_item_use_duration <= 0.0f && c.is_first_person" //控制这个动画要在什么时候使用。这里用的是Molang表达式。
},
{
"holding_third": "q.main_hand_item_use_duration <= 0.0f && !c.is_first_person"
}
]
},
"render_controllers": [
"controller.render.item_default" //物品默认的渲染控制器。
]
}
}
}
只有这些还是不行的,还需要在资源包根目录下entity文件夹下player.json里做一些改动。其中,核心部分就是v.attack_time这个内置的变量,用来控制动画是否播放。
之后我们还会单独出一期教程,来讲解如何实现刷子动画。
https://klpbbs.com/static/image/hrline/line1.png
总结
这一期,我们学习了附着物,还提及到了动画和渲染控制器。下一期,我们将讲动画。
第十六期 第十七期 第十八期 @mc697 你要的教程
页: [1]