Culaccino 发表于 2022-6-20 23:29:19

【资源包】玩家生命值显示

本人自制..技术力原因目前只显示玩家血量
后续会纳入全原版生物(除boss级)

废话不说...效果图:


本人第一次发帖..
感谢观贴

Culaccino 发表于 2022-6-23 12:55:06

教程:
编写工具 :mt管理器(推荐)
建模工具:blockbench(推荐)
贴图绘画:blockbench自带
源文件包:Minecraft 1.19 解包
(resource_packs)
使用molang : Query.health(语法是 query.health == 取值)


1.新建文件夹 并在里面新建以下文件夹
*render_controllers**models(*entity*)* *entity*

2.在entity里面添加最新的玩家实体文件(player.entity.json)

3.在render_controllers里面添加render:
示例
{
"format_version": "1.8.0",
    "render_controllers": {
    "controller.render.heart_value_1": {
      "geometry": "Geometry.heart_value",//用于显示生命值的模型
      "materials": [ { "*": "Material.default" } ],//默认material
      "textures": [ "Texture.heart_value_1" ]//将在显示生命值的模型中替换的材质
    }
}
}
render可以集中一个文件内
查询多少生命 写多少render
注:命名不冲突

4.在player.entity.json中找到第11行(不同字体行数可能不同)
"textures": {
      "default": "textures/entity/steve",
      "cape":"textures/entity/cape_invisible"
}
添加与刚刚写的render中确定的材质
"textures": {
      "default": "textures/entity/steve",
      "cape":"textures/entity/cape_invisible",
      "heart_value_1": "材质文件路径"
}

5.在player.entity.json中找到
      "geometry": {
      "default": "geometry.humanoid.custom",
      "cape": "geometry.cape"
      }
添加render中确定模型
      "geometry": {
      "default": "geometry.humanoid.custom",
      "cape": "geometry.cape",
      "heart_value": "geometry.heart_value"
      }

6.在文件尾端,找到
      "render_controllers": [
      { "controller.render.player.first_person": "variable.is_first_person" },
      { "controller.render.player.third_person": "!variable.is_first_person && !variable.map_face_icon" },
      { "controller.render.player.map": "variable.map_face_icon" }
]
在里面添加刚刚写好的render,并用上molang(检测满足条件时触发render)
      "render_controllers": [
      { "controller.render.player.first_person": "variable.is_first_person" },
      { "controller.render.player.third_person": "!variable.is_first_person && !variable.map_face_icon" },
      { "controller.render.player.map": "variable.map_face_icon" }
      { "controller.render.heart_value_1": "query.health == 1" }//释义:当玩家生命值为1时启用该render
]

7.制作显示生命值用的模型(模型命名要与在player.entity.json刚刚写的模型重名 例如geometry.heart_value) 制作完后加入到文件夹models/entity里

8.制作贴图 并加入到player.entity.json中刚刚写的材质路径中

以上内容可能对初学者不友好 见谅

Culaccino 发表于 2022-6-21 00:06:45

若有漏洞..请在评论区留言
不胜感激

ling.Aic 发表于 2022-6-21 06:42:53

哇偶~
加油~
其实如果能发个制作此包的教程。再好不过了

Culaccino 发表于 2022-6-21 07:03:48


原理:利用玩家entity文件附加模型(render).并用molang(query.health)查询生命值将附加模型显示

卖萌的孩纸 发表于 2022-6-21 19:26:48

作者太厉害啦!!
bug的话…就是…
如果玩家皮肤是角色创建器创建出来的话…用了材质包之后皮肤会变成史蒂夫
不过这也不算是材质的bug啦
因为这个bug是基岩版老bug…Mojang一直都没修

Culaccino 发表于 2022-6-21 23:23:47

卖萌的孩纸 发表于 2022-6-21 19:26
作者太厉害啦!!
bug的话…就是…
如果玩家皮肤是角色创建器创建出来的话…用了材质包之后皮肤会变成史蒂 ...

毕竟mojang的角色编辑器弄出来的相当于修改玩家的附加骨骼 这个除非用行为包绕过否则都会显示错误

EscapeBacteia 发表于 2022-6-23 08:47:02

.这能不能出个教程

ghostninja 发表于 2022-6-24 11:57:09

我要看看

无头 发表于 2022-8-2 19:38:01

这个好,这个新人必是人才
页: [1]2
查看完整版本: 【资源包】玩家生命值显示