简单资源包制作教程 您所在的位置:网站首页 nook2软件资源包 简单资源包制作教程

简单资源包制作教程

2023-08-15 19:06| 来源: 网络整理| 查看: 265

一、认识资源包结构

一个完整的资源包应包含以下几部分

一个简易资源包

包装:位于.minecraft\resourcepacks文件夹下的文件夹或zip压缩包

assets文件夹:资源包主体、资源文件位置

pack.mcmeta:资源包说明文件,也是MC识别资源包的唯一依据

pack.png:可省略,资源包封面图片

资源包内文件在游戏中的对应关系

在上述资源包的pack.mcmeta内,有如下代码

{

   "pack":{

      "pack_format":7,

      "description":"\u00A76\u00A7l个人自制材质\n\u00A77版本:beta 0.05"

   }

}

pack_format为资源包版本号。在上图中资源包变红、加载时出现提示也是因为版本号7与游戏版本1.18.1不符。但是不同版本的存储路径在很多地方都具有一致性,所以标红并不一定会影响资源包工作,资源包能否正常工作仅由assets文件夹内的文件决定

当然作为强迫症,我们不希望资源包报错,截至目前的所有资源包版本号如下:1.6.1(13w24a) – 1.8.9为1,1.9(15w31a) – 1.10.2为2,1.11(16w32a) – 1.12.2(17w47b)为3,1.13(17w48a) – 1.14.4(19w46b)为4,1.15(1.15-pre1) – 1.16.1(1.16.2-pre3)为5,1.16.2(1.16.2-rc1) – 1.16.5为6,1.17(20w45a)– 1.17.1(21w38a)为7,1.18(21w39a)– 1.18.2(1.18.2-rc1)为8,1.19(22w11a)以后为9

注:由于MOJANG在1.13数据扁平化中大幅度修改了资源储存路径,因此1.12及以下与1.13及以上一般不互通

description为资源包描述,可省略。特殊格式及颜色的使用方式请自行查阅MCWIKI上的格式化代码部分,在这里不做讲解。

重要!!!当我在各种MC群答疑的时候,见过无数次这种情况导致的自制资源包无法使用:

在压缩用文件夹包装的资源包时,误将包装文件夹也压缩进了压缩包

一定要注意,包装压缩包内部直接是assets文件夹及pack.mcmeta

二、资源包入门---文件替换

大多数普通的音源包、纹理包,都是对原有的素材进行直接替换

替换,就需要我们掌握如何找到被替换素材名称及路径的方法。接下来我会以音频、纹理为例,演示如何寻找这些内容。

在MC中,素材被分为两个路径存储。(以1.18为例,其余版本同理)

纹理和模型等小体积文件储存于.minecraft\versions\1.18\1.18.jar内;音频等大文件储存于.minecraft\assets文件夹内,使用时请注意

2.1 替换音效文件

首先我们前往MCWIKI查询自己想要替换的声音事件名称

前往MCWIKI中sounds.json界面,搜索我们得到的声音事件名,得到音频路径

声音文件存储于assets文件夹内。而assets文件夹内文件是以hash命名,故我们打开.minecraft\assets\indexes\1.18.json,搜索我们刚得到的音频路径,得到完整路径和hash值

如果我们需要提取该音频,复制hash值,前往.minecraft\assets\objects文件夹搜索

更名为banjo.ogg即可得到该音频

替换时,首先在资源包assets文件夹内,创建刚得到的完整路径

minecraft/sounds/note/

将你要替换的音频命名为banjo.ogg放入即可

上述方法虽然稳定,但比较复杂,实际上大多数情况直接在.minecraft\assets\indexes\1.18.json内搜索目标方块/生物名字的关键字即可

2.2 替换纹理文件

纹理文件存储在1.18.jar中,直接用解压工具打开jar

纹理文件比音频文件更好找一些,因为文件直接用原名存储,不需要检索hash值。同时大多数方块直接是以 方块名.png 保存纹理文件

为增加挑战性,下面让我们替换末地烛粒子

打开1.18.jar\assets\minecraft\particles\end_rod.json

得到末地烛粒子图片名 glitter_?.png

易知纹理文件应存储在assets\minecraft\textures,粒子的英文为particle

在资源包内创建assets\minecraft\textures\particle目录,将同名图片放入即可

三、资源包进阶---json修改

3.1 粒子

继续讨论上文的末地烛粒子

1.18.jar\assets\minecraft\particles\end_rod.json中的代码是什么意思呢?

对于此粒子,其json含义为在粒子生命周期内,自上而下依次展示列表中的png文件,以形成动态效果

那么我们可不可以自己编辑这个列表,改变图片数目、展示顺序等实现更高度的自定义呢?

资源包内创建assets\minecraft\particles\end_rod.json,内容如下

修改材质如下(红绿渐变)

效果如下

光影!

3.2 方块状态与方块模型

方块材质是怎么被加载的?部分红石原件在激活和未激活时有不同材质(如中继器激活/熄灭),我们能不能制作可以自定义不同状态展示不同材质的资源包?

首先我们要了解材质被加载的机理

拆包1.18.jar,我们可以看到如下文件夹

blockstates定义方块状态,内部json文件定义方块在每种状态时加载的模型(models)

models定义模型,内部json文件定义该模型调用什么纹理(textures)

下面以音符盒激活发光为例

重要!!!发光纹理功能依赖optifine,不支持iris等

前往MCWIKI查询音符盒方块状态

按照目录在资源包blockstates内创建note_block.json,内部代码如下

根据powered状态的true/false,分出两个model

分别创建资源包models文件夹内的note_block.json与note_block_on.json,内部代码如下

textures内分别定义:破坏时粒子调用的纹理,上下东西南北纹理(可用”all“:”xxx“一项全部代替,但同时失去了令六个面显示不同材质的功能)

下面定义发光纹理

创建assets\minecraft\optifine\emissive.properties文件,内部代码如下

其含义为,令以_e结尾的材质文件表现出发光状态。注意发光纹理强制为统一亮度,无法控制发光强度。(此功能依赖optifine,确保设置项 品质/自发光纹理 为开)

在调用a.png时,若存在a_e.png,则在显示a.png的同时在其上覆盖渲染发光的a_e.png(即透过发光纹理上存在的透明像素点仍可看到原纹理,用此方法可以控制像素点是否发光)

创建以_e为结尾的发光纹理

noteblock_sn_on.pngnoteblock_sn_on_e.png

最终texture文件夹内纹理如下

同理,也可以根据音符盒note、instrument方块状态制作资源包

根据不同音高显示不同颜色的RGB音符盒

在model中分别定义六个面的不同纹理

不同面显示不同纹理的音符盒

3.3 sounds.json

如果只是替换原有的音频似乎有点不够爽,我们可不可以随意的添加各种音频呢?

以创建一个包含完整钢琴88键的资源包为例

创建assets\minecraft\sounds.json,内部部分代码如下

以如下代码片段为例

"piano.21.ffff": {

        "replace": true,

        "sounds": [

            {

                "name": "ffff/ffff_21",

                "stream": false,

                "pitch": 1,

                "volume": 0.6667

            }

        ]

    },

piano.21.ffff:声音事件名,用playsound指令即可调用

"replace": true,:非关键参数,可省略,也可直接复制(详情可查阅MCWIKI中sounds.json词条)

name:音频文件存储路径,"name": "ffff/ffff_21",表示该音频路径为assets\minecraft\sounds\ffff\ffff_21.ogg

"stream": false:非关键参数,可省略,也可直接复制

pitch:伸缩变调,1则为原音调,范围为0.5-2,可包含两个八度(音符盒可以理解为不需要指令的playsound,敲击就是改变pitch参数)

来自wiki音符盒词条

 volume:音量,范围为0-1

根据name项定义的音频路径准备好音频

若在输入命令时有自动补全提示,则资源包已经开始正常工作

3.4 动态材质

不知你是否观察过命令方块的材质,如果你仔细观察,会发现命令方块的材质竟然是动态的!中间的亮点会按照一定规律循环亮起。那么,我们是否可以利用材质包给其他材质添加动态效果呢?

拆包1.18.jar,我们发现命令方块不仅有纹理png,还有一个mcmeta文件

内部代码如下

interpolate:控制不同帧之间是否有过渡渐变效果(此项默认为false)

frametime:每帧持续时间,单位为刻

而命令方块的纹理png也与众不同,其并不是1:1的正方形

对于此1:4的png,按宽度将长度自上而下分成四个不同帧,再由mcmeta文件控制,每10tick切换一次,同时有过渡效果使之不生硬

掌握了这些知识,我们就来制作一个自己的动态材质

目标是给石头添加动态材质,注意mcmeta文件的文件名为xxx.png.mcmeta

注:在应用动态发光纹理时,_e发光纹理与普通纹理分立控制互不影响,可以其中一方为动态也可两者都是,互不干扰

仅底图为动态,不干扰发光仅发光纹理为动态尾声

本教程在这里就结束了,如有谬误欢迎指正和补充

如果以后有时间可能考虑更新应用PBR技术的资源包制作教程?

发几张自制的 皇家音符盒 资源包截图

屏幕空间反射PBR+自发光纹理

法线贴图



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有