开启辅助访问     
收藏本站

站内搜索

搜索

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

[BE教程] 附加包教程:12.模型

 发表于 2023-1-13 08:08:01 来自手机|显示全部楼层|阅读模式 IP:山西省
本帖最后由 Cat_Anchor 于 2025-8-21 10:15 编辑

前言
上期,我们学习了所有方块组件。由于上期留下了一些疑问,我打算先解决这些疑问,再继续讲方块。今天我们来学习上次开头频繁提到的一个词——模型。
模型结构
打开资源包根目录,打开models文件夹,打开blocks文件夹。这里用于存放方块模型。退到models文件夹下,打开entity文件夹,这里用于存放实体模型。然而,这都不是固定的,把方块模型放实体文件夹里,把实体模型放方块文件夹里,也没什么不行。总之,怎么开心怎么来。还要明确的是,模型文件一般不是手写出来的,而是程序生成的。模型文件的后缀是 .json,与其他文件一样。
下面,我放一段上次的教程,帮助回忆和理解。

现在我们就来说说这个模型ID是什么。
随便打开一个别人做的模型文件,你就明白了。这里我放一个我做的在下面。
  1. {
  2.   "format_version": "1.12.0", //代码格式版本
  3.   "minecraft:geometry": [ //这个数组里存储了若干个模型
  4.     { //一个模型
  5.       "description": {
  6.         "identifier": "geometry.test_block", //这里的geometry.test_block就是模型ID,不能与其他模型ID重复,必须以geometry.开头。
  7.         "texture_width": 16, //纹理宽度
  8.         "texture_height": 16, //纹理高度
  9.         "visible_bounds_width": 2,
  10.         "visible_bounds_height": 1.5,
  11.         "visible_bounds_offset": [0, 0.25, 0]
  12.       },
  13.       "bones": [ //这个数组里有若干个立方体组
  14.         {
  15.           "name": "bb_main", //模型名字
  16.           "pivot": [0, 0, 0], //枢轴点,用于旋转时的中心点
  17.           "cubes": [ //这个数组里有若干个立方体
  18.             { //一个立方体
  19.               "origin": [-6.83283, -1.41096, -1], //立方体的起始点
  20.               "size": [2, 2, 2], //立方体的大小
  21.               "pivot": [-5, 2, 1], //立方体的枢轴点(也就是旋转的中心)
  22.               "rotation": [-34.34782, 11.23074, 2.64456], //立方体的旋转角度
  23.               "uv": { //立方体的纹理uv占用
  24.                 "north": {"uv": [0, 0], /*这个数组表示占用纹理的起始点*/ "uv_size": [2, 2] /*这个数组表示占用纹理的大小*/ }, //下同。
  25.                 "east": {"uv": [0, 0], "uv_size": [2, 2]},
  26.                 "south": {"uv": [0, 0], "uv_size": [2, 2]},
  27.                 "west": {"uv": [0, 0], "uv_size": [2, 2]},
  28.                 "up": {"uv": [2, 2], "uv_size": [-2, -2]},
  29.                 "down": {"uv": [2, 2], "uv_size": [-2, -2]}
  30.               }
  31.             }
  32.           ]
  33.         }
  34.       ]
  35.     }
  36.   ]
  37. }
复制代码


这个程序可以制作模型文件和动画文件(建议电脑打开,手机也可以)。
物品渲染变换
在基岩版 1.21.20 中加入了一项功能,物品渲染变换,仅对方块模型有效,可以指定这个方块作为物品时的渲染设置。渲染设置可以控制方块在物品栏 UI 里、玩家头上、第一人称左手上、第一人称右手上、第三人称左手上、第三人称右手上、作为物品漂浮在地面上、物品展示框中和嵌入到另一方块时的大小、旋转和缩放。embedded 字段加入于 1.21.110.25。
以下是代码,这个对象应该与 bones 对象同级。
  1. "item_display_transforms": {
  2.   "gui": {
  3.     "translation": [0, 0, 0],
  4.     "rotation": [30, 225, 0],
  5.     "scale": [0.625, 0.625, 0.625],
  6.     "rotation_pivot": [0, 0, 0],
  7.     "scale_pivot": [0, 0, 0],
  8.     "fit_to_frame": true
  9.   },
  10.   "firstperson_righthand": {
  11.     "translation": [0, 0, 0],
  12.     "rotation": [0, 45, 0],
  13.     "scale": [0.4, 0.4, 0.4],
  14.     "rotation_pivot": [0, 0, 0],
  15.     "scale_pivot": [0, 0, 0]
  16.   },
  17.   "firstperson_lefthand": {
  18.     "translation": [0, 0, 0],
  19.     "rotation": [0, -135, 0],
  20.     "scale": [0.4, 0.4, 0.4],
  21.     "rotation_pivot": [0, 0, 0],
  22.     "scale_pivot": [0, 0, 0]
  23.   },
  24.   "thirdperson_righthand": {
  25.     "translation": [0, 2.5, 0],
  26.     "rotation": [75, 45, 0],
  27.     "scale": [0.375, 0.375, 0.375],
  28.     "rotation_pivot": [0, 0, 0],
  29.     "scale_pivot": [0, 0, 0]
  30.   },
  31.   "thirdperson_lefthand": {
  32.     "translation": [0, 2.5, 0],
  33.     "rotation": [75, 45, 0],
  34.     "scale": [0.375, 0.375, 0.375],
  35.     "rotation_pivot": [0, 0, 0],
  36.     "scale_pivot": [0, 0, 0]
  37.   },
  38.   "ground": {
  39.     "translation": [0, 3.0, 0],
  40.     "rotation": [0, 0, 0],
  41.     "scale": [0.25, 0.25, 0.25],
  42.     "rotation_pivot": [0, 0, 0],
  43.     "scale_pivot": [0, 0, 0]
  44.   },
  45.   "fixed": {
  46.     "translation": [0, 0, 0],
  47.     "rotation": [0, 0, 0],
  48.     "scale": [0.5, 0.5, 0.5],
  49.     "rotation_pivot": [0, 0, 0],
  50.     "scale_pivot": [0, 0, 0]
  51.   },
  52.   "head": {
  53.     "translation": [0, 0, 0],
  54.     "rotation": [0, 0, 0],
  55.     "scale": [1, 1, 1],
  56.     "rotation_pivot": [0, 0, 0],
  57.     "scale_pivot": [0, 0, 0]
  58.   },
  59.   "embedded": {
  60.     "translation": [0, 0, 0],
  61.     "rotation": [0, 0, 0],
  62.     "scale": [0.75, 0.75, 0.75],
  63.     "rotation_pivot": [0, 0, 0],
  64.     "scale_pivot": [0, 0, 0]
  65.   }
  66. }
复制代码

字段功能描述类型
item_display_transforms在不同情况下方块的渲染。对象
gui在物品栏或快捷栏中时。对象
firstperson_righthand第一人称右手时。对象
firstperson_lefthand第一人称左手时。对象
thirdperson_righthand第三人称右手时。对象
thirdperson_lefthand第三人称左手时。对象
ground作为物品在地面漂浮时。对象
fixed在物品展示框中时。对象
head戴在玩家头部时。对象
embedded嵌入另一方块时。对象
translation平移,其中数值的范围是[-80.0, 80.0]。数组
rotation旋转,其中数值的范围是[-360.0, 360.0]。数组
scale缩放,其中数值的范围是[0.0, 4.0]。数组
rotation_pivot旋转枢轴点,其中数值的范围是[-80.0, 80.0]。数组
scale_pivot缩放枢轴点,其中数值的范围是[-80.0, 80.0]。数组
fit_to_frame是否平移并缩放到物品栏中单个物品的边框。布尔值

总结
这一期,我们简单地学完了模型。下一期,我们简单讲讲战利品表。


苦力怕论坛,感谢有您~

本版积分规则

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

QQ群

访问手机版

访问手机版

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

| 由 木韩网络 提供支持 | GMT+8, 2026-6-13 18:44

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

Powered by Discuz! X3.4