Minecraft Java版材质包制作教程
Charon1酱
编辑于 2020年08月04日 13:25
收录于文集
共14篇

本教程为Java版专制。

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

  • Minecraft Java Edition

  • 一个纯文本编辑器

  • 一个图片编辑软件

  • 一个压缩软件

纯文本编辑器 纯文本文档,就是没有任何文本修饰的,没有任何粗体,下划线,斜体,图形,符号或特殊字符及特殊打印格式的文本,只保存文本,不保存其格式设置。将所有的分节符、分页符、新行字符转换为段落标记。 我们在资源包中会遇到许多例如xxx.mcmeta、xxx.json、xxx.properties格式的文件,这些文件都是纯文本文件,需要用纯文本编辑器进行编辑。

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

图片编辑软件

我使用的是Photoshop

但只要满足这两个要求:

  • 能够编辑和导出png格式的图片。

  • 支持alpha通道(透明度)。

都是可以使用的。

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

压缩软件

我使用的是WinRAR,大家可以使用Bandizip

cut-off

我们的首先要做的事是:

  • 让Minecraft识别并加载它

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

  • 着手修改一个简单的材质

  • 更换资源包的图标

cut-off

第一步:

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

第二步:

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

{

   "pack&#​34;:{

      "pack_format&#​34;:1,

      "description&#​34;:"2&#​34;

   }

}

了解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。

  • 放入资源包文件夹下。

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

cut-off

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

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

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

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

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

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

{

    "animation&#​34;: {

        

    }

}

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

{

    "animation&#​34;: {

        "frametime&#​34;: 3

    }

}

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

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

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

{

    "animation&#​34;: {

        "frametime&#​34;: 3,

        "frames&#​34;: [0,1,2,3,4,5,4,3,2,1]

    }

}

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

cut-off

模型&渲染

这一章理论居多,例子偏少,等内容逐渐完善,将会补充更多实例。 本章不涉及实体模型。 下面我们要做的事:

  • 建模相关教程

  • 阴影

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

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

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

{

        "from&#​34;: [-8, -12, 32],

        "to&#​34;: [24, 17, 32],

        "shade&#​34;: false,

        "rotation&#​34;: {"angle&#​34;: -45, "axis&#​34;: "x&#​34;, "origin&#​34;: [8, -12, 32]},

        "faces&#​34;: {

                "north&#​34;: {"uv&#​34;: [0, 0, 8, 8], "texture&#​34;: "#​1"},

                "east&#​34;: {"uv&#​34;: [0, 0, 8, 8], "texture&#​34;: "#​1"},

                "south&#​34;: {"uv&#​34;: [0, 0, 8, 8], "texture&#​34;: "#​1"},

                "west&#​34;: {"uv&#​34;: [0, 0, 8, 8], "texture&#​34;: "#​1"},

                "up&#​34;: {"uv&#​34;: [0, 0, 8, 8], "texture&#​34;: "#​1"},

                "down&#​34;: {"uv&#​34;: [0, 0, 8, 8], "texture&#​34;: "#​1"}

        }

}

除了上述的每个方块的照明,Minecraft还可以为方块的每个面进行一些额外的计算,来增强照明的真实性。 这个方法根据面的朝向,用不同的光照强度渲染六个面:

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

  • 环境光遮蔽

  • 面剔除

  • tintindex

  • 不透明方块

  • 渲染类型

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

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

  • 蝶舞——盆栽艺术

制作不易,求一波三连