资源包制作教程及其常见问题 #1 方块与物品篇 - [MC]我的世界原版 (Minecraft) - MC百科

资源包制作教程及其常见问题 #1 方块与物品篇 - [MC]我的世界原版 (Minecraft) - MC百科

观前提醒

本教程适用于 Minecraft 1.20.1,在其他版本不保证完全适用。

本教程仅介绍方块与物品相关的制作。

准备工作

如需要更改或绘制纹理,就一个可以编辑 png 文件的软件。推荐使用 Photoshop、Aseprint 或 paint.net。

*注:Aseprint可通过前往Github自行构建或前往Steam购买,或者可以使用其fork:LibreSprite。

如需要更改模型,更改方块选择时的状态,修改物品位置等,就需要一个可以编辑 json 文件以及编辑 json 来进行建模的软件。推荐使用 Visual Studio Code 和 Blockbench。

如需要将资源包打包成压缩文件或通过解压原版 jar 文件来观察其文件结构或获取纹理,就需要一个可以压缩文件的软件。推荐使用 Bandzip。

文件结构 & 创建资源包

通过解压缩原版 Jar 文件,我们可以发现,assets 文件夹中存在一个名为 minecraft 的文件夹,这便是原版 mc 的命名空间。其中包含绝大部分游戏中的纹理、模型等文件。

如需要更改方块与物品的纹理或模型,我们通常只需要保留以下文件夹:

blockstates 父模型文件夹(方块状态映射文件夹),决定不同状态的方块(如朝向)所使用的模型;

models 模型文件夹,决定物品或方块所使用的模型或纹理;

textures 纹理文件夹,决定物品或方块的纹理。

接下来,我们开始创建一个新的资源包。

首先,打开版本文件夹中的资源包文件夹(resourcepacks),或通过 选项 > 资源包 > 打开资源包文件夹 来打开。

创建一个新的文件夹,命名随意。

资源包文件夹一般由 2 至 3 个文件组成,结构如下:

pack.mcmeta:资源包描述文件,包含资源包在资源包选择界面中的简介,资源包的兼容版本等。

pack.png:可选,为资源包的封面。

assets:即上文所介绍的文件夹,包含绝大部分游戏中的纹理、模型等文件。

接下来,我们打开 assets 文件夹,新建一个名为 minecraft 的文件夹,这是原版 mc 中的命名空间,可以理解为其包含文件的所属项目的名字,具体可前往 Minecraft 中文 Wiki 查看,本文不多赘述。

自行创建或粘贴从原版 Jar 粘贴来的 3 个文件夹(blockstates、models、textures)

检查是否无误,具体结构如下所示:

pack.mcmeta

pack.png(可选)

assets

minecraft

blockstates(可选)

models(可选)

textures(可选)

pack.mcmeta 文件

本文仅介绍如何填写简介与版本号等常用功能,如果想了解其更深层的用法,请前往 Minecraft 中文 Wiki。

模板:

{ "pack": { "pack_format": 1, "description": "test" }} *由于MCMOD中代码格式无 JSON,所以格式填的是 Javasript,但实际格式为JSON。

其中 "pack_format" 为设定的资源包的适用版本(即资源包版本号),1为所填的值,其格式为JSON中的键值对。

下面列出了一些常用的资源包版本号:

1.16.5:6;

1.17:7;

1.18.2:8;

1.19.2:9;

1.19.4:13;

1.20.1:15;

1.20.4:22;

1.21.1:34。

注意:资源包版本号如与实际游玩版本不同会发出警告,这个警告只是提示,一般忽略即可。

"description" 为资源包在资源包列表中的描述,可使用格式化文本,资源包列表中最多显示两行。

pack.png 文件

即资源包列表中显示的资源包图标。

可选,如不添加则显示原版默认图标。

如添加,最好为正方形。

方块与物品的模型、纹理的工作原理

修改物品和方块的模型之前,我们还需要了解它们是如何工作的。

blockstates 文件夹

首先,打开 blockstates 文件夹,它负责决定所有每个方块不同状态所使用的模型(方块状态映射)

注意:本文只对 blockstates 的 variants 做介绍,如想了解另一种方块状态映射(multipart)请前往 Minecraft 中文 Wiki 查看。

就以铁砧举例:(位于 assets/minecraft/blockstates/anvil.json)

注意:json 文件请勿使用中文等特殊字符命名,否则会导致在进行打包后游戏无法识别的问题。建议使用小写英文字母与下划线进行命名。

{ "variants": { "facing=east": { "model": "minecraft:block/anvil", "y": 270 }, "facing=north": { "model": "minecraft:block/anvil", "y": 180 }, "facing=south": { "model": "minecraft:block/anvil" }, "facing=west": { "model": "minecraft:block/anvil", "y": 90 } }}其中 "variants" 为直接指定方块状态的方块状态映射。

并且,"variants" 还包含多个 facing(铁砧朝向),这就是铁砧的状态,可以在 F3 中找到:

可以看到,此时铁砧的 facing 为 south。

重新查看上文铁砧的方块状态代码代码,其中 "facing=south" 时(即候选模型)使用的模型就是 "model": "minecraft:block/anvil",也就此时图片中铁砧的模型。

查看代码中铁砧的其他状态,我们可以看到它们都多出了一个 "y":<数值>,这时模型就会相对 y 轴旋转<数值>度(必须为 90° 的倍数)。

models 文件夹

接下来,打开 models 文件夹,它负责决定物品或方块所使用的模型。

其中包含 2 个文件夹:

item:决定物品所使用的模型(直接受游戏调用);

block:决定方块所使用的模型(在 blockstates 中被调用)。

接下来,我们使用 Blockbench 打开金合欢木船的 model(json)文件(位于 assets/minecraft/models/item/acacia_boat.json)

*注:只是推荐使用 Blockbench 进行编辑,当然如果你想手搓 JSON 文件也不是不行。

我们可以观察到左下角就是调用的纹理。

texture 文件夹

打开 texture 文件夹,它负责存储模型所调用的纹理。

其中包含多个个文件夹,我们只介绍部分:

block:包含所有方块的纹理;

entity:包含大部分实体与方块实体的纹理;

environment:包含太阳、月亮等纹理;

font:包含原版字体纹理;

gui:包含原版 GUI 纹理;

item:包含所有物品纹理;

map:包含地图的界面等纹理;

misc:包含带上南瓜头后的遮罩纹理等;

mob effect:效果图标的纹理;

models:盔甲的纹理;

painting:画的纹理;

particle:粒子效果的纹理。

其中的纹理文件为 png 格式。

注意:png 文件请勿使用中文等特殊字符命名,否则会导致在进行打包后游戏无法识别的问题。建议使用小写英文字母与下划线进行命名。

打包与分发

资源包可以多种方式在资源包文件夹被游戏识别,其中常见的两种方式:

zip压缩文件:可使用压缩软件将文件夹压缩为zip压缩文件。

注意:如文件夹中文件命名包含中文等特殊字符,会导致压缩为zip文件无法被识别。

文件夹:可直接将资源包以文件夹形式存储。

当然,我们也可以在与 assets 同级的文件夹中放入一些想说的话或者协议信息等:

pack.mcmeta

pack.png(可选)

assets

想说的话.md 或 README.txt 等(可选)

相关推荐