教程:制作资源包

来自Minecraft Wiki
跳转到导航 跳转到搜索
  本教程介绍的是为Java版制作资源包。关于基岩版上的行为包,请见“Tutorial:制作行为包”。
本文章所述内容仅适用于Java版
此教程已确认至少适用于Java版1.20.6

请帮助我们检查该内容是否仍在最新版本有效。

资源包可以修改Minecraft的纹理、模型、动画、声音、用户界面和语言。本教程将介绍制作资源包的基本方法,以及所需要遵循的格式要求。

概述[编辑 | 编辑源代码]

Minecraft将资源包放置在.minecraft/resourcepacks。资源包可以是文件夹或zip压缩文件。本教程只展示前一种形式的制作流程;要制作压缩文件形式的资源包,可以在制作完成后,将对应的文件夹压缩为一个zip文档。

禁止事项[编辑 | 编辑源代码]

在制作及发布资源包时,不得违反Mojang StudiosMinecraft使用条款,包括但不限于:

  • 发布Minecraft版本或其修改版本,使得没有从Mojang购买Minecraft的人可以进行游戏。
  • 以任何方式发布Minecraft的反编译源代码。

所需要的工具[编辑 | 编辑源代码]

资源包及其中的各文件有着特定的格式,需要使用适当的软件才可以打开。下面列出了创建资源包所需的软件。

  • 文件解压程序:要解包获取Java版的纹理和其他资源文件,需要文件解压程序。若使用Windows系统,可以使用使用BandizipWinRAR或者7-Zip。若使用macOS,可使用系统自带的解压缩功能。
  • 文本编辑器:要编辑资源包所使用的文本文件,可以使用任何文本编辑器,如Windows自带的记事本。但考虑到多数文件有严格的格式要求,建议使用集成开发环境(IDE),例如Visual Studio Code,以提供格式检查等功能,减少文件编写出错。

若要编辑纹理:

  • 图像编辑器:要编辑纹理文件,必须使用支持透明度的图像编辑器。这意味着不应使用Windows 10及更早的版本自带的画图软件。可以使用GIMP(GNU图像处理程序)、Paint.NET等开源软件,或其他支持透明度的软件。

若要编辑模型:

  • 3D模型编辑器:要编辑模型,可以使用任何3D模型编辑器;但对于编写Minecraft资源包,建议使用Blockbench,因为它可以较为方便地将模型输出为.json格式。

若要编辑游戏音效:

  • 音轨编辑器:资源包中的语言文件使用.ogg格式,编辑这一格式的文件需要使用音轨编辑器,如Audacity

创建资源包[编辑 | 编辑源代码]

下面将会创建资源包的基本结构。在完成该步后,游戏应当能正常识别所创建的资源包。

.minecraft/resourcepacks文件夹创建一个新文件夹,将其命名为资源包的预期名称,然后打开它。该文件夹即包含了资源包的全部内容。

创建pack.mcmeta[编辑 | 编辑源代码]

在该文件夹内,新建文本文档,并将其重命名为pack.mcmeta。该文件向游戏标记此资源包的存在,并包含了资源包的有关信息:

  • 资源包支持的游戏版本。
  • 资源包的简介,在资源包菜单中显示。
  • 资源包所添加的自定义语言(如有)。
  • 其他与资源包加载逻辑相关的内容(如有)。

重命名时,请确保文件扩展名为.mcmeta,而不是.txt可能会弹出“如果要改变文件扩展名,可能会导致文件不可用。”的警告;选择“是”。

扩展名相关注意事项

若使用的是Microsoft Windows并且看不到文件扩展名,对于Windows 11,可以在文件资源管理器的“查看”→“显示”菜单中找到“文件扩展名”选项并开启;对于Windows 8、Windows 8.1或Windows 10,可以通过转到其中的“查看”菜单并勾选“文件扩展名”复选框来启用它。

对于Windows 7,可在左上方点击“组织”,弹出下拉菜单中选择“文件夹和搜索选项”,或在菜单栏上点击“工具”,在工具下拉菜单里选择“文件夹选项”;然后在弹出的窗口中切换到“查看”选项卡,找到并取消勾选“隐藏已知文件类型的扩展名”选项,最后点击“确定”应用设置。

若使用的是macOS,在文件上右键,选择:“文件”→“显示简介”,点击“名称与扩展名”旁边的箭头来展开,取消勾选“隐藏扩展名”,或在访达界面按⌘ Command + ,打开偏好设置→高级→显示所有文件扩展名。

编写pack.mcmeta[编辑 | 编辑源代码]

在文本编辑器中打开pack.mcmeta,并复制或键入以下内容:

{
    "pack": { 
        "pack_format": X,
        "description": "Tutorial Resource Pack"
    }
}

以上是该文件中必需的内容。对于其他可选内容,参见资源包 § 资源包元数据

注意:本文件使用JSON格式。若文件中缺少特定的格式标记符,资源包可能无法被识别。

pack_format

用所需的Minecraft版本对应的数值,替换pack_format后面的X。Minecraft版本与该数值的对应关系如下:


编号 版本
1 1.6.1快照13w24a1.8.9
2 1.9快照15w31a1.10.2
3 1.11快照16w32a1.12.2快照17w47b
4 1.13快照17w48a1.14.4快照19w46b
5 1.15预发布版1.15-pre11.16.1预发布版1.16.2-pre3
6 1.16.2发布候选1.16.2-rc11.16.5
7 1.17快照20w45a1.17.1快照21w38a
8 1.18快照21w39a1.18.2
9 1.19快照22w11a1.19.2
11 1.19.3快照22w42a22w44a
12 1.19.3快照22w45a1.19.4快照23w07a
13 1.19.4预发布版1.19.4-pre11.20快照23w13a
14 1.20快照23w14a23w16a
15 1.20快照23w17a1.20.1
16 1.20.2快照23w31a
17 1.20.2快照23w32a1.20.2-pre1
18 1.20.2预发布版1.20.2-pre21.20.3快照23w41a
19 1.20.3快照23w42a
20 1.20.3快照23w43a23w44a
21 1.20.3快照23w45a23w46a
22 1.20.3预发布版1.20.3-pre11.20.4快照23w51b
24 1.20.5快照24w03a24w04a
25 1.20.5快照24w05a24w05b
26 1.20.5快照24w06a24w07a
28 1.20.5快照24w09a24w10a
29 1.20.5快照24w11a
30 1.20.5快照24w12a
31 1.20.5快照24w13a1.20.5-pre3
32 1.20.5预发布版1.20.5-pre41.20.6
33 1.21快照24w18a24w20a
34 1.21快照24w21a1.21.1
35 1.21.2快照24w33a
36 1.21.2快照24w34a24w35a
37 1.21.2快照24w36a
38 1.21.2快照24w37a
39 1.21.2快照24w38a24w39a
40 1.21.2快照24w40a
41 1.21.2预发布版1.21.2-pre11.21.2-pre2
42 1.21.2预发布版1.21.2-pre31.21.3
43 1.21.4快照24w44a
44 1.21.4快照24w45a
45 1.21.4快照24w46a
46 1.21.4预发布版1.21.4-pre11.21.4
47 1.21.5快照25w02a
48 1.21.5快照25w03a
49 1.21.5快照25w04a
50 1.21.5快照25w05a
51 1.21.5快照25w06a
52 1.21.5快照25w07a
53 1.21.5快照25w08a25w09b
54 1.21.5快照25w10a
55 1.21.5预发布版1.21.5-pre11.21.5
56 快照25w15a及以上

随着更多游戏版本更新发布,该数值可能增加或更改。该数值为3或更高值(1.11及以上版本)时,资源包内所有文件名只能有小写字母。

对于1.20.223w31a)及更高版本,可以在"pack_format": X,的下一行添加字段"supported_formats": [ m, n ],,来使资源包同时支持多个游戏版本,其中m是支持的最低资源包版本号,n是最高资源包版本号。

"description"

简介可以留空,或填写有关内容。换行需要使用\n。特殊字符可以使用Unicode转义字符输入;可以在此处查找字符对应的Unicode码位,以生成对应的转义字符。例如,字母“Þ”可以使用\u00DE来代替;注意应使用反斜杠\而不是正斜杠/

在简介中,Minecraft只支持字符U+0000-FFFF。[需要验证]

测试资源包[编辑 | 编辑源代码]

成功创建资源包后的资源包菜单

上一步完成后,应当得到一个可以被游戏识别,但没有实际内容的资源包。此时,应当测试该资源包能否正常加载,以提前发现潜在的编写问题。

启动Minecraft并打开选项,然后单击“资源包”。应当得到如右图所示的界面,其中包含新创建的资源包。选中新资源包并将其加入已选列表中,然后点击“完成”按钮。待加载进度页面消失后,该资源包便已成功加载。

在成功加载资源包之后,若在同一资源包中进行改动,可以使用快捷键F3 + T快速重新加载资源包。

故障排除

若资源包未在该菜单中显示,检查pack.mcmeta是否正确的。尤其要检查是否缺少大括号、冒号、逗号、引号或方括号。对于每个左大括号、左中括号或前引号,必须有对应的右大括号、右中括号或后引号。

pack.png[编辑 | 编辑源代码]

如果未指定图标,则资源包旁边将显示默认的圆石图标。若在资源包的根目录中包含名为pack.png的图片,游戏将选取该图片作为资源包的缩略图。如果pack.png为非正方形图片,Minecraft会截取其中的方形部分。[需要更多信息]

为资源包添加内容[编辑 | 编辑源代码]

在完成上一步后,资源包的基本结构已经构建完成;然而,资源包内还没有添加内容。下面将会介绍资源文件的添加位置,以及不同类型的资源文件的添加方法。

assets文件夹[编辑 | 编辑源代码]

在资源包文件夹中创建名为assets的文件夹。这是绝大多数资源文件放置的位置,也是Minecraft读取资源的位置;只有pack.mcmetapack.png应当放置在资源包的根目录。如果在其他位置放置了资源文件,这些文件将不会被读取。

命名空间文件夹

assets文件夹下应放置命名空间文件夹。该文件夹的名称即为相应命名空间的名称。命名空间可以区分不同来源的文件,避免文件冲突或相互覆盖。

若需修改或替换原版资源文件,用于修改的文件应该位于minecraft命名空间文件夹下;新添加的内容应放在另一命名空间文件夹中。本教程中使用custom作为新增内容的命名空间。实际制作资源包时,始终应使用有意义且不易重复的命名空间名称,以防止加载多个资源包时命名空间冲突。

获取原版资源文件[编辑 | 编辑源代码]

若需编辑多个已有资源文件,或便于浏览文件,可以从client.jar中复制一份原版资源文件,以便查阅。同时,这也可以用作原始资源文件的留档,以防编辑资源包时意外损坏文件。

打开.minecraft/versions,在其中找到所需的游戏版本对应的文件夹,在该文件夹中找到.jar后缀的文件并解压。可以右击该文件,在“打开方式”选项中选择解压缩软件;若没有合适的软件,可以将该文件的副本的扩展名更改为.zip再尝试解压。

更改纹理[编辑 | 编辑源代码]

主条目:/纹理

纹理组成游戏中方块、物品、实体上的图案,以及不同页面的背景。这些文件大多是图像文件,但也包括一些用于描述纹理的文本文件。部分纹理可以是动态的,即纹理带有动画。动态纹理相关的内容也包含在这一部分。与纹理相关的所有资源文件都放置在assets/<命名空间>/textures中。

Minecraft使用的部分字体也是通过纹理搭载的。关于修改字体的有关内容,参见自定义字体

更改模型[编辑 | 编辑源代码]

主条目:/模型

模型组成游戏中方块、物品、实体的形状。可以用资源包修改大多数方块的模型;然而,实体和少数方块的模型不可更改,只能更改与之关联的纹理。与模型相关的资源文件放置在assets/<命名空间>/texturesassets/<命名空间>/blockstates中。

更改或添加声音[编辑 | 编辑源代码]

主条目:/音效和音乐

音乐是在游戏中播放的背景声音。音效是游戏中的交互操作产生的声音。二者都可以用资源包更改。与声音相关的资源文件包含assets/<命名空间>/sounds.json,以及放置在assets/<命名空间>/sounds中的文件。

更改或添加文本[编辑 | 编辑源代码]

主条目:/语言和文本

文本是在Minecraft游戏各处显示的文字,可用资源包修改。语言是Minecraft显示文本时所支持的语种。除了少数文本(如终末之诗),绝大多数文本都支持本地化。除游戏已支持的语言外,通过资源包还可以添加新的语言。与文本相关的所有资源文件都放置在assets/<命名空间>/lang中;新增语言相关的内容放置在pack.mcmeta中。

将资源包整合到存档中[编辑 | 编辑源代码]

若想在单人游戏的某存档中默认加载某资源包,可以按如下步骤进行:

  1. 若资源包为文件夹形式,将其打包为名为resources.zip的文件。若资源包已为压缩包形式,直接将其重命名为该形式。
  2. .minecraft/saves中,找到所需存档所对应的文件夹,在该文件夹中放置上一步制作的压缩包。

此后,在打开该存档时游戏将会自动应用该资源包。

服务器[编辑 | 编辑源代码]

服务器资源包[编辑 | 编辑源代码]

服务器的所有者可以为服务器设置资源包。

  1. 若资源包为文件夹形式,将其打包为zip压缩文件。不能是其他压缩文件格式。
  2. 将该资源包上传到文件托管网站上,如MCPacks.
  3. 复制该资源包的下载链接。注意:若使用自行搭建的托管网站,或非专为Minecraft设计的网站,确保本步获取的是下载的直链。此外,使用兼容Java 8u51的SSL证书,以避免启动器(对旧版本游戏)自动安装的Java运行时拒绝证书[1]
  4. server.properties中,找到形如resource-pack=的一行,并将上一步获取的链接粘贴在其后。
  5. 可选:将同一文件中的require-resource-pack属性设置为true,以强制加入服务器的玩家使用该资源包。
  6. 保存以上修改,并重启服务器。

完成以上步骤后,在玩家加入服务器时,将会询问是否加载该资源包;若玩家同意,游戏将会自动下载并加载该资源包。

服务器图标[编辑 | 编辑源代码]

服务器的所有者可以修改在多人游戏界面中,服务器前显示的图标。

  1. 创建一张大小为64×64像素的png图像文件,并将其保存为server-icon.png。支持透明度。
  2. 将该文件放置在服务器的根目录下。
  3. 重启服务器。

完成以上步骤后,服务器前应当会显示所添加的图标。

参考[编辑 | 编辑源代码]

  1. MC-143768 — “无法通过Let's Encrypt证书使用服务器资源包。” — 漏洞状态为“无法复现”。

导航[编辑 | 编辑源代码]