教程:制作资源包
请帮助我们检查该内容是否仍在最新版本有效。
资源包可以修改Minecraft的纹理、模型、动画、声音、用户界面和语言。本教程将介绍制作资源包的基本方法,以及所需要遵循的格式要求。
概述[编辑 | 编辑源代码]
Minecraft将资源包放置在.minecraft/resourcepacks
。资源包可以是文件夹或zip压缩文件。本教程只展示前一种形式的制作流程;要制作压缩文件形式的资源包,可以在制作完成后,将对应的文件夹压缩为一个zip文档。
禁止事项[编辑 | 编辑源代码]
在制作及发布资源包时,不得违反Mojang Studios的Minecraft使用条款,包括但不限于:
- 发布Minecraft版本或其修改版本,使得没有从Mojang购买Minecraft的人可以进行游戏。
- 以任何方式发布Minecraft的反编译源代码。
所需要的工具[编辑 | 编辑源代码]
资源包及其中的各文件有着特定的格式,需要使用适当的软件才可以打开。下面列出了创建资源包所需的软件。
- 文件解压程序:要解包获取Java版的纹理和其他资源文件,需要文件解压程序。若使用Windows系统,可以使用使用Bandizip、WinRAR或者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版本与该数值的对应关系如下:
随着更多游戏版本更新发布,该数值可能增加或更改。该数值为3或更高值(1.11及以上版本)时,资源包内所有文件名只能有小写字母。
对于1.20.2(23w31a)及更高版本,可以在"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.mcmeta
和pack.png
应当放置在资源包的根目录。如果在其他位置放置了资源文件,这些文件将不会被读取。
- 命名空间文件夹
在assets
文件夹下应放置命名空间文件夹。该文件夹的名称即为相应命名空间的名称。命名空间可以区分不同来源的文件,避免文件冲突或相互覆盖。
若需修改或替换原版资源文件,用于修改的文件应该位于minecraft
命名空间文件夹下;新添加的内容应放在另一命名空间文件夹中。本教程中使用custom
作为新增内容的命名空间。实际制作资源包时,始终应使用有意义且不易重复的命名空间名称,以防止加载多个资源包时命名空间冲突。
获取原版资源文件[编辑 | 编辑源代码]
若需编辑多个已有资源文件,或便于浏览文件,可以从client.jar
中复制一份原版资源文件,以便查阅。同时,这也可以用作原始资源文件的留档,以防编辑资源包时意外损坏文件。
打开.minecraft/versions
,在其中找到所需的游戏版本对应的文件夹,在该文件夹中找到.jar
后缀的文件并解压。可以右击该文件,在“打开方式”选项中选择解压缩软件;若没有合适的软件,可以将该文件的副本的扩展名更改为.zip
再尝试解压。
更改纹理[编辑 | 编辑源代码]
纹理组成游戏中方块、物品、实体上的图案,以及不同页面的背景。这些文件大多是图像文件,但也包括一些用于描述纹理的文本文件。部分纹理可以是动态的,即纹理带有动画。动态纹理相关的内容也包含在这一部分。与纹理相关的所有资源文件都放置在assets/<命名空间>/textures
中。
Minecraft使用的部分字体也是通过纹理搭载的。关于修改字体的有关内容,参见自定义字体。
更改模型[编辑 | 编辑源代码]
模型组成游戏中方块、物品、实体的形状。可以用资源包修改大多数方块的模型;然而,实体和少数方块的模型不可更改,只能更改与之关联的纹理。与模型相关的资源文件放置在assets/<命名空间>/textures
和assets/<命名空间>/blockstates
中。
更改或添加声音[编辑 | 编辑源代码]
音乐是在游戏中播放的背景声音。音效是游戏中的交互操作产生的声音。二者都可以用资源包更改。与声音相关的资源文件包含assets/<命名空间>/sounds.json
,以及放置在assets/<命名空间>/sounds
中的文件。
更改或添加文本[编辑 | 编辑源代码]
文本是在Minecraft游戏各处显示的文字,可用资源包修改。语言是Minecraft显示文本时所支持的语种。除了少数文本(如终末之诗),绝大多数文本都支持本地化。除游戏已支持的语言外,通过资源包还可以添加新的语言。与文本相关的所有资源文件都放置在assets/<命名空间>/lang
中;新增语言相关的内容放置在pack.mcmeta
中。
将资源包整合到存档中[编辑 | 编辑源代码]
若想在单人游戏的某存档中默认加载某资源包,可以按如下步骤进行:
- 若资源包为文件夹形式,将其打包为名为
resources.zip
的文件。若资源包已为压缩包形式,直接将其重命名为该形式。 - 在
.minecraft/saves
中,找到所需存档所对应的文件夹,在该文件夹中放置上一步制作的压缩包。
此后,在打开该存档时游戏将会自动应用该资源包。
服务器[编辑 | 编辑源代码]
服务器资源包[编辑 | 编辑源代码]
服务器的所有者可以为服务器设置资源包。
- 若资源包为文件夹形式,将其打包为zip压缩文件。不能是其他压缩文件格式。
- 将该资源包上传到文件托管网站上,如MCPacks.
- 复制该资源包的下载链接。注意:若使用自行搭建的托管网站,或非专为Minecraft设计的网站,确保本步获取的是下载的直链。此外,使用兼容Java 8u51的SSL证书,以避免启动器(对旧版本游戏)自动安装的Java运行时拒绝证书[1]。
- 在
server.properties
中,找到形如resource-pack=
的一行,并将上一步获取的链接粘贴在其后。 - 可选:将同一文件中的
require-resource-pack
属性设置为true
,以强制加入服务器的玩家使用该资源包。 - 保存以上修改,并重启服务器。
完成以上步骤后,在玩家加入服务器时,将会询问是否加载该资源包;若玩家同意,游戏将会自动下载并加载该资源包。
服务器图标[编辑 | 编辑源代码]
服务器的所有者可以修改在多人游戏界面中,服务器前显示的图标。
- 创建一张大小为64×64像素的png图像文件,并将其保存为
server-icon.png
。支持透明度。 - 将该文件放置在服务器的根目录下。
- 重启服务器。
完成以上步骤后,服务器前应当会显示所添加的图标。
参考[编辑 | 编辑源代码]
导航[编辑 | 编辑源代码]
[隐藏] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|