Minecraft 如何制作修改和制作方块模型
请注意时效性!文章创建于:2022-08-28
本教程使用的blockstates和models文件为1.8.9的资源,
可能不适用于新版本!
请拥有一定JSON基础和材质包制作基础再进行阅读!
Blockstates和Models文件夹
解压1.8.9.jar,你可以发现里面有asstes这个文件夹,这个是各种资源存储的地方,包括Models和Blockstates。
Models是指模型,Blockstates是指方块状态,而Models是在Blockstates之中被调用的,
Blockstates
这是已激活的中继器的Blockstates,其中记录了他全部的状态,如在1tick延迟,2tick延迟下的状态。
1 |
|
就拿第一行的来说,delay表示延迟,facing表示方向,locked表示是否被锁存。
而最重要的就是后面的model,这个属性指定了中继器在此情况下要加载哪个模型。
另外,这个model是可以在Models文件夹被找到的。
接下来就以repeater_on_1tick这个模型讲一下。
1 |
|
Models
这个就是它的模型文件了,
1 |
|
Ambientocclusion
ambientocclusion
具体有什么用不知道,但是翻译过来是环境光遮蔽。
Textures
1 |
|
textures
对象之下表示在此模型文件中要调用的一切贴图文件。
拿particle
举例。
1 |
|
"blocks/repeater_on"
其实是贴图文件的位置,你可以在textures文件夹找到对应的文件。
"particle"
表示该贴图的名字、代号,并且名字只在本模型文件内生效。
而elements
中需要调用的就是"particle"
,也就是贴图的名字、代号。
Elements
elements
是一个集合类对象,表示模型的各种部件的集合,或者就叫各种部件,并且指定了部件的大小,使用的材质。
1 |
|
from
to
表示这个部件的长宽高。
因为部件实际上就是一个指定了长宽高的长方体,所以只需要用到2个顶点就可以表示它的大小了。
1 |
|
faces
表示这个部件六个面使用的材质、贴图,如up
面,north
面…
拿up
面举例子,uv
,表示使用该贴图的哪个地方,它实际上是一个长方形的两个顶点的集合,也就是说:
1 |
|
注意下,这个y并不是高度,是宽度。
如果你的uv超过或者低于这个面的大小,那么就会分别出现压缩和拉伸的问题。