java软件制作教程_Minecraft Java版材质包制作教程

本教程为Java版专制。

在动手制作资源包之前,请先确保拥有以下工具:Minecraft Java Edition

一个纯文本编辑器

一个图片编辑软件

一个压缩软件

纯文本编辑器

纯文本文档,就是没有任何文本修饰的,没有任何粗体,下划线,斜体,图形,符号或特殊字符及特殊打印格式的文本,只保存文本,不保存其格式设置。将所有的分节符、分页符、新行字符转换为段落标记。

我们在资源包中会遇到许多例如xxx.mcmeta、xxx.json、xxx.properties格式的文件,这些文件都是纯文本文件,需要用纯文本编辑器进行编辑。

若您的电脑未经过特殊的设置,一般打开txt文件都是使用记事本打开的。

图片编辑软件

我使用的是Photoshop

但只要满足这两个要求:能够编辑和导出png格式的图片。

支持alpha通道(透明度)。

都是可以使用的。

您也可以花点钱去steam买一个叫做Aseprite的软件,这是一个专门用于像素画的软件

压缩软件

我使用的是WinRAR,大家可以使用Bandizip5a6248719eab539b6cda4d7ca48f5a7b.png

我们的首先要做的事是:让Minecraft识别并加载它

找到原版资源文件,方便我们模仿和修改

着手修改一个简单的材质

更换资源包的图标5ca5f088d4f5648cb6aa0b03a5473418.png

第一步:

我们先在桌面建立一个文件夹,名字随你,这个名字确定了你的材质包的名字。

第二步:

我们在这个文件夹里面创建一个文本文件(txt文件),在里面写入下面的代码:

{

"pack":{

"pack_format":1,

"description":"2"

}

}

了解JSON格式的人已经知道了这个是一个JSON文件

我们需要把这个代码中的“1”,“2”替换掉

pack_format 后面的数字“1”用于表示资源包的版本,这里的版本不是你决定的版本,而是根据Minecraft版本决定的。在加载资源包时,如果资源包版本和游戏版本不匹配,就会显示出一个错误,需要进行确认后才能加载资源包。1.6.1-1.8.9是1,1.9-1.10.2是2,1.11-1.12.2是3,1.13-1.14.4是4,1.15是5。有些新手看了其他的文章说了pack_format后面的数字为Minecraft版本,就直接把版本号填了进去,我第一次也是一样。

description 为资源包的简介,后面的数字“2”可以随意修改,但是不得修改文字两端的双引号,也不能在文字中添加半角双引号。

再次强调,在代码中不能出现全角符号,一定要使用半角符号。不然游戏检测不出来。

第三步:

现在我们要去提取Minecraft原版材质。

原版材质位于“游戏目录\minecraft.\versions\版本号”的这个jar文件里面,我们需要用压缩软件打开这个jar文件(注意不是解压)。

把这个jar文件中的这个assets文件夹右击,选择解压到我们一开始创建的文件夹中。

让我们打开assets/minecraft/textures/block,然后找到我们要修改的材质。

提示:如果你实际看到的路径是assets/minecraft/textures/blocks,别担心,Minecraft的不同版本的资源路径并不相同,用你实际看到的路径即可。

打开图片编辑器,对其修改一番,并按照原名保存,覆盖掉原先的文件。

这时候我们可以把这个文件夹材质包的文件夹(也就是我们第一次建立的文件夹)放入游戏的资源包文件夹中然后就可以看到我们的材质包了。

第四步:

不想用默认的资源包图标,想要换一个好看的图标?首先我们需要一个正方形的png格式图片,必需是正常保存的png格式,别的格式把后缀改成png那不叫png格式。图片的边长应为2的次方,例如16,32, 64等。

然后改名为pack.png。

放入资源包文件夹下。

好了,我们的一个简略材质包就到此完成了。8b22ab26ef493287a87a82da4f4b89c6.png

下面,是这个教程的难点部分

我们接下来要做的是动态材质

动态材质实际上就是是逐帧绘制,竖向连接成长条的单张图案。在游戏中,自上而下逐帧播放,反复循环。一共有多少帧,每一帧播放多长时间,都是可以自定义的。

重点:因为最后一帧之后紧接着就是第一帧,所以开头和结尾最好要能接上。

然后,将刚刚修改的文件的文件名+后缀复制一下。

在这个文件夹内新建一个txt文件,名字为刚刚复制的那个名字,后缀把这个txt文件的txt改为mcmeta,然后在里面打上以下代码:

{

"animation": {

}

}

如果需要修改快慢,就打入以下代码:

{

"animation": {

"frametime": 3

}

}

在这段代码中我们添加了frametime,frametime表示材质的每一帧持续的时间(单位为0.05秒),默认值为1,也就是说一秒可以播放20帧,我们把它放慢三倍。

接下来我们注意到这张材质是上下对称的,下面的四张材质显得有些浪费,我们现在就要把这四张材质给去掉。

我们修改一下刚刚的代码,改为这样:

{

"animation": {

"frametime": 3,

"frames": [0,1,2,3,4,5,4,3,2,1]

}

}

"frames"里填写帧播放的次序,最上面的一帧是第0帧,我让它先从0帧播放到5帧,再倒着从5帧返回0帧了。

8b22ab26ef493287a87a82da4f4b89c6.png

模型&渲染

这一章理论居多,例子偏少,等内容逐渐完善,将会补充更多实例。

本章不涉及实体模型。

下面我们要做的事:建模相关教程

阴影

建模相关教程建议去mcbbs寻找

阴影:

Minecraft中方块的下部会出现阴影,有时候会非常丑,那么我们该怎么做呢?

查阅了模型相关的资料之后我们发现方块模型的element有一个叫"shade"的选项,默认情况下为true,当它为false的时候,这个元素就不会渲染阴影了。

{

"from": [-8, -12, 32],

"to": [24, 17, 32],

"shade": false,

"rotation": {"angle": -45, "axis": "x", "origin": [8, -12, 32]},

"faces": {

"north": {"uv": [0, 0, 8, 8], "texture": "#1"},

"east": {"uv": [0, 0, 8, 8], "texture": "#1"},

"south": {"uv": [0, 0, 8, 8], "texture": "#1"},

"west": {"uv": [0, 0, 8, 8], "texture": "#1"},

"up": {"uv": [0, 0, 8, 8], "texture": "#1"},

"down": {"uv": [0, 0, 8, 8], "texture": "#1"}

}

}除了上述的每个方块的照明,Minecraft还可以为方块的每个面进行一些额外的计算,来增强照明的真实性。

这个方法根据面的朝向,用不同的光照强度渲染六个面:顶面(Y+)为最大亮度

底面(Y-)为50%亮度

Z轴上的面(Z+、Z-=南、北)为80%亮度

Z轴上的面(X+、X-=东、西)为60%亮度

好了,本期教程就先到这里了,下一节我将会介绍:环境光遮蔽

面剔除

tintindex

不透明方块

渲染类型

物品展示框——附加模型包

物品标签——添加更多物品

蝶舞——盆栽艺术

制作不易,求一波三连

你可能感兴趣的:(java软件制作教程)