UID82897性别保密经验 EP铁粒 粒回帖0主题精华在线时间 小时注册时间2021-7-23最后登录1970-1-1
| 本帖最后由 Cat_Anchor 于 2023-1-18 08:26 编辑
前言
|
上期,我们学完了子包。接下来,我们即将学习附着物,就是attachables。
| | 子包
|
首先要说明的是,附着物存放在资源包根目录下的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这个内置的变量,用来控制动画是否播放。
之后我们还会单独出一期教程,来讲解如何实现刷子动画。
| | 总结
|
这一期,我们学习了附着物,还提及到了动画和渲染控制器。下一期,我们将讲动画。
|
|
|