- 致编者:请牢记我们的域名wiki.mcbe-dev.net!
- 致编者:欢迎加入本Wiki的官方交流QQ群或Discord服务器!
- 基岩版1.19.31现已发布!(了解更多)
- Inner Core现已支持Xbox模组联机!(了解更多)
- 如果您是第一次来到本Wiki,欢迎注册一个账户
- 点击顶部的“编辑”或“编辑源代码”按钮即可编辑当前页面
- 请知悉:在不登录时也可以编辑和新建页面,但是您当前的IP地址会记录在编辑历史中
模型
模型(Model)是Minecraft中表现物体形态结构的一种形式,用于定义模型数据的JSON称为几何(Geometry),几何决定了模型以什么的样式呈现出来。
文件[edit]
几何文件一般命名为<example>.geo.json,并存放于models文件夹。实体几何存储于/models/entity/路径下,方块几何存储于/models/blocks/路径下。[注 1]
相关文件[edit]
路径 | 描述 |
---|---|
/models/ | 原版几何文件的存储路径。 |
/models/mobs.json | 杂项几何存储路径。 |
组件[edit]
类型 | 名称 | 描述 | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
字符串 | format_version | 定义几何数据使用的格式版本。 | |||||||||||||||||||||
对象 | geometry.<example> | 该几何的标识符。在末尾加上: 然后再在后面加上其他几何的标识符可以继承其他几何的数据。
| |||||||||||||||||||||
对象 | description | 对该模型的定义描述。
| |||||||||||||||||||||
对象 | bones | 骨骼列表。 | |||||||||||||||||||||
字符串 | name | 定义骨骼名称。 | |||||||||||||||||||||
数组 | pivot | 定义元素的枢轴。 | |||||||||||||||||||||
数组 | rotation | 定义元素的旋转参数。 | |||||||||||||||||||||
数组 | cubes | 立方体组。 | |||||||||||||||||||||
数组 | origin | 定义元素的顶点。 | |||||||||||||||||||||
数组 | size | 定义立方体尺寸。 | |||||||||||||||||||||
数组/对象[注 4] | uv | 定义UV的参数。 | |||||||||||||||||||||
数组 | uv_size | 定义UV的尺寸。 | |||||||||||||||||||||
字符串 | material | ||||||||||||||||||||||
字符串 | material_instance | 定义材质映射面的名称。包含三个预设值:up 、down 和sides ,分别表示立方体的顶面、底面和侧面。此组件用于minecraft:material_instances 对指定映射面设置参数。
| |||||||||||||||||||||
浮点数 | inflate | 定义立方体的膨胀系数。可填写负数。 | |||||||||||||||||||||
对象 | locators | 定位器。 | |||||||||||||||||||||
字符串 | parent | 定义父级骨骼。 | |||||||||||||||||||||
布尔值 | neverRender | ||||||||||||||||||||||
布尔值 | mirror | 镜像UV。 | |||||||||||||||||||||
布尔值 | reset |
骨骼[edit]
模型由骨骼(Bone)构建,每个骨骼中可包含零个或多个立方体(Cube)。
枢轴[edit]
UV[edit]
UV用于定义立方体各个面使用的纹理。“U”和“V”分别代表纹理上的两个坐标轴,UV坐标中U代表横向坐标上的分布,V代表纵向坐标上的分布,在Minecraft中,坐标值的单位是像素。
要选取一张图片作为这个模型的纹理,需要UV对图片上选取的位置进行定义并确定选取的面积。uv
组件包含两个值,第一个值表示U坐标,第二个值表示V坐标。确定了UV后,游戏就会自动根据立方体展开图以UV坐标为原点,向正方向[注 5]延伸一定距离将展开图的面积区域框选起来。
不同UV之间的框选区域可以重叠。如果UV框选到了图片以外的区域,则会导致纹理无法正常显示。在逐面UV中,如果将UV的框选区域设置得比立方体该面所需面积大,则纹理会被拉伸,反之则会被压缩。
类型[edit]
箱型UV[edit]
箱型UV所有面的贴图全部包含于一张图片,每个立方体的UV以展开图的形式添加在这张图片中。游戏中的实体就是使用的箱型UV。
在箱型UV中,立方体展开图六个面的相对位置是固定的。下图展示了这六个面的相对位置布局:
下表列出了上方图片的注释含义:
注释 | |||
---|---|---|---|
Top | 顶面 | Bot | 底面 |
Left | 左面 | Frnt | 前面 |
Rt | 右面 | Bck | 后面 |
当几何中包含多个立方体时,例如玩家的几何模型,这些立方体的展开图会全部根据UV布局于一张图片中(浅色部分表示玩家的外层皮肤):
注释 | |||
---|---|---|---|
Head | 头部 | Hat | 头部外层 |
Body | 身体 | Jacket | 身体外层 |
lArm | 左手臂 | lSleeve | 左手臂外层 |
rArm | 右手臂 | rSleeve | 右手臂外层 |
lLeg | 左腿 | lPants | 左腿外层 |
rLeg | 右腿 | rPants | 右腿外层 |
逐面UV[edit]
逐面UV可对每个面使用的贴图进行定义。游戏中大部分方块就是使用的逐面UV。
纹理与材质映射[edit]
定位器[edit]
定位模型
你知道吗[edit]
画廊[edit]
注释[edit]
- ↑ 方块几何文件在1.16.200.52之前存储于/models/entity/路径下。
- ↑ 对几何的基本定义既可写成:也可写成:
{ "format_version": "1.12.0", "geometry.xxx": { … "bones": [ … ] } }
{ "format_version": "1.12.0", "minecraft:geometry": [ { "description": { "identifier": "geometry.xxx", … }, "bones": [ … ] } ] }
- ↑ 3.0 3.1 可不加下划线。
- ↑ 箱型UV使用数组来定义UV,逐面UV使用对象中的各种参数来定义UV。
- ↑ 在UV坐标系中,U轴的方向是从左往右,V轴的方向是从上往下。