开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[BE教程] 附加包教程:17.附着物

 发表于 2023-1-17 08:20:00 来自手机|显示全部楼层|阅读模式 IP:山西省
本帖最后由 Cat_Anchor 于 2023-1-18 08:26 编辑

前言

上期,我们学完了子包。接下来,我们即将学习附着物,就是attachables。
子包

首先要说明的是,附着物存放在资源包根目录下的attachables文件夹内。附着物经常用来显示盔甲,当然也有其他用途。如果你跟着物品那一节课做了一个盔甲,但是穿上它发现并没有显示出来,那是因为你没有添加附着物。
打开attachables文件夹,新建一个以你的盔甲名称为名称的文件。打开它,写以下代码。

  1. {
  2.   "format_version": "1.8.0",
  3.   "minecraft:attachable": {
  4.     "description": {
  5.       "identifier": "supplementary:warden_boots", //你的盔甲名称。要用标准的命名空间ID,这样才能把这个附着物和你的物品关联起来。
  6.       "materials": { //这里指定材质(不是纹理)
  7.         "default": "armor",
  8.         "enchanted": "armor_enchanted"
  9.       },
  10.       "textures": { //这里指定纹理。
  11.         "default": "textures/models/armor/warden_1", //纹理图片的路径。需要注意的是,除了护腿以外,其他3件装备可以共用一个纹理。护腿因为模型问题要单独用另一个纹理,不然会有纹理上的冲突。
  12.         "enchanted": "textures/misc/enchanted_item_glint" //默认指向原版的附魔闪光效果。
  13.       },
  14.       "geometry": {
  15.         "default": "geometry.humanoid.armor.boots" //这个是默认的靴子模型。
  16.       },
  17.       "scripts": {
  18.         "parent_setup": "variable.boot_layer_visible = 0.0;"
  19.       },
  20.       "render_controllers": [
  21.         "controller.render.armor" //这是渲染控制器的ID。在这里是controller.render.armor。
  22.       ]
  23.     }
  24.   }
  25. }
复制代码

附着物就是这么一篇文档。关于模型问题,如果是头盔,模型ID是geometry.humanoid.armor.helmet,胸甲是geometry.humanoid.armor.chestplate,护腿是geometry.humanoid.armor.leggings,靴子是geometry.humanoid.armor.boots。渲染控制器一般情况下不需要改。

就这样草草结束不是什么好现象,所以我现在来演示:如何用这个附着物做刷子的动画。

  1. {
  2.   "format_version": "1.10.0",
  3.   "minecraft:attachable": {
  4.     "description": {
  5.       "identifier": "supplementary:brush", //这是我的附加包中的刷子的ID,你要改成不一样的
  6.       "materials": {
  7.         "default": "entity_alphatest",
  8.         "enchanted": "entity_alphatest_glint"
  9.       },
  10.       "textures": {
  11.         "default": "textures/entity/brush", //为了匹配,这个要用一些特殊的方法制作纹理。如果直接指向刷子的物品纹理,那么刷子会错位。
  12.         "enchanted": "textures/misc/enchanted_item_glint"
  13.       },
  14.       "geometry": {
  15.         "default": "geometry.item" //模型,为了让刷子显示在正确位置
  16.       },
  17.       "animations": { //动画
  18.         "holding": "animation.item.holding", //一个动画,是一个键值对,键是动画的短名,值是动画的ID。
  19.         "holding_third": "animation.item.holding_third" //又一个动画
  20.       },
  21.       "scripts": {
  22.         "animate": [
  23.           {
  24.             "holding": "q.main_hand_item_use_duration <= 0.0f && c.is_first_person" //控制这个动画要在什么时候使用。这里用的是Molang表达式。
  25.           },
  26.           {
  27.             "holding_third": "q.main_hand_item_use_duration <= 0.0f && !c.is_first_person"
  28.           }
  29.         ]
  30.       },
  31.       "render_controllers": [
  32.         "controller.render.item_default" //物品默认的渲染控制器。
  33.       ]
  34.     }
  35.   }
  36. }
复制代码

只有这些还是不行的,还需要在资源包根目录下entity文件夹下player.json里做一些改动。其中,核心部分就是v.attack_time这个内置的变量,用来控制动画是否播放。
之后我们还会单独出一期教程,来讲解如何实现刷子动画。
总结

这一期,我们学习了附着物,还提及到了动画和渲染控制器。下一期,我们将讲动画。


苦力怕论坛,感谢有您~
 发表于 2023-1-17 09:12:26 来自手机|显示全部楼层 IP:山西省
@mc697 你要的教程
2#2023-1-17 09:12:26回复收起回复
苦力怕论坛,感谢有您~

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

粤公网安备 44200002445329号 | 由 木韩网络 提供云服务 | GMT+8, 2024-10-20 11:13

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4 粤ICP备2023071842号