本教程介绍的是为Java版制作资源包。关于基岩版上的行为包,请见“Tutorial:制作行为包”。
本文章所述内容仅适用于Java版。
此教程已确认至少适用于Java版1.20.6。
请帮助我们检查该内容是否仍在最新版本有效。
目录
1 概述
1.1 禁止事项
1.2 所需要的工具
2 创建资源包
2.1 pack.mcmeta
2.2 pack.png
3 为资源包添加内容
3.1 命名空间规范
3.2 获取原版资源文件
3.3 更改纹理
3.4 更改模型
3.5 更改或添加声音
3.6 更改或添加文本
4 在存档中自动加载
5 服务器
5.1 服务器资源包
5.2 服务器图标
6 参考
7 导航
资源包可以修改Minecraft的纹理、模型、动画、声音、用户界面和语言。本教程将介绍制作资源包的基本方法,以及所需要遵循的格式要求。
概述[编辑 | 编辑源代码]
Minecraft将资源包放置在.minecraft/resourcepacks。资源包可以是文件夹或zip压缩文件。本教程只展示前一种形式的制作流程;要制作压缩文件形式的资源包,可以在制作完成后,将对应的文件夹压缩为一个zip文档。
禁止事项[编辑 | 编辑源代码]
在制作及发布资源包时,不得违反Mojang Studios的Minecraft使用条款,包括但不限于:
发布Minecraft版本或其修改版本,使得没有从Mojang购买Minecraft的人可以进行游戏。
以任何方式发布Minecraft的反编译源代码。
所需要的工具[编辑 | 编辑源代码]
资源包及其中的各文件有着特定的格式,需要使用适当的软件才可以打开。下面列出了创建资源包所需的软件。
文件解压程序:要解包获取Java版的纹理和其他资源文件,需要文件解压程序。
若使用Windows系统,可以使用Bandizip、WinRAR或者7-Zip等解压软件。
若使用macOS,可使用系统自带的解压缩功能。
文本编辑器:要编辑资源包所使用的文本文件。
可以使用任何文本编辑器,如Windows自带的记事本。
Visual Studio Code:地图或MOD作者常用的编辑器,有众多插件可用,可提供代码自动补全等功能。
图像编辑器:要编辑纹理文件,必须使用支持透明度的图像编辑器。这意味着不应使用Windows 10及更早的版本自带的画图软件。
Aseprite:专为像素图像所设计的软件,在Minecraft和各游戏制作社区中较流行。
Photoshop:比较专业且功能强大的图像处理软件,广泛用于各行各业。可用于绘制Minecraft高清纹理。
GIMP:开源的免费软件,可一定程度上替代Photoshop。
Paint.NET:轻量级开源软件,支持透明度。
模型编辑器
Blockbench:当前社区流行的编辑器。它可以较为方便地将模型输出为.json格式。其中的功能不止编辑模型,还可以编辑模型纹理,绘制皮肤等。
音轨编辑器:资源包中的语言文件使用.ogg格式,编辑这一格式的文件需要使用音轨编辑器。
Audacity。
创建资源包[编辑 | 编辑源代码]
参见:资源包 § 文件结构
资源包选择界面
按照如下步骤,先找到资源包的存储位置:
打开游戏,点击“选项”,找到“资源包”按钮并点击。
在“选择资源包”界面中,点击左下角的“打开包文件夹”。
在打开的目录中,新建一个文件夹,该文件夹也即你所新建的资源包。
确保新建的资源包有如下结构:
<你的资源包>
assets
pack.mcmeta
pack.mcmeta[编辑 | 编辑源代码]
参见:资源包 § 资源包元数据
为了让游戏识别数据包,你必须创建pack.mcmeta文件。其中可包含以下资源包信息:
资源包可能支持的游戏版本。
资源包的简介,在资源包菜单中显示。
资源包所添加的自定义语言(如有)。
其他与资源包加载逻辑相关的内容(如有)。
在文本编辑器中打开pack.mcmeta,并复制或键入以下内容:
{
"pack": {
"pack_format": 55,
"description": "我的测试资源包"
}
}
本文件使用JSON格式。若文件中缺少特定的格式标记符,资源包可能无法被识别。
简介中如需换行,可使用\n。特殊字符可以使用Unicode转义字符输入;可以在此处查找字符对应的Unicode码位,以生成对应的转义字符。例如,字母“Þ”可以使用\u00DE来代替;注意应使用反斜杠\而不是正斜杠/。
pack_format值用于提醒用户资源包所适配的版本,并不代表资源包在其他版本不能正常使用(这取决于资源包的具体结构)。该编号和Minecraft版本的对应关系如下:
编号
版本
1
1.6.1快照13w24a到1.8.9
2
1.9快照15w31a到1.10.2
3
1.11快照16w32a到1.13快照17w47b
4
1.13快照17w48a到1.14.4快照19w46b
5
1.15预发布版1.15-pre1到1.16.2预发布版1.16.2-pre3
6
1.16.2发布候选1.16.2-rc1到1.16.5
7
1.17快照20w45a到1.18快照21w38a
8
1.18快照21w39a到1.18.2
9
1.19快照22w11a到1.19.2
11
1.19.3快照22w42a到22w44a
12
1.19.3快照22w45a到1.19.4快照23w07a
13
1.19.4预发布版1.19.4-pre1到1.20快照23w13a
14
1.20快照23w14a到23w16a
15
1.20快照23w17a到1.20.1
16
1.20.2快照23w31a
17
1.20.2快照23w32a到1.20.2-pre1
18
1.20.2预发布版1.20.2-pre2到1.20.3快照23w41a
19
1.20.3快照23w42a
20
1.20.3快照23w43a到23w44a
21
1.20.3快照23w45a到23w46a
22
1.20.3预发布版1.20.3-pre1到1.20.5快照23w51b
24
1.20.5快照24w03a到24w04a
25
1.20.5快照24w05a到24w05b
26
1.20.5快照24w06a到24w07a
28
1.20.5快照24w09a到24w10a
29
1.20.5快照24w11a
30
1.20.5快照24w12a
31
1.20.5快照24w13a到1.20.5-pre3
32
1.20.5预发布版1.20.5-pre4到1.20.6
33
1.21快照24w18a到24w20a
34
1.21快照24w21a到1.21.1
35
1.21.2快照24w33a
36
1.21.2快照24w34a到24w35a
37
1.21.2快照24w36a
38
1.21.2快照24w37a
39
1.21.2快照24w38a到24w39a
40
1.21.2快照24w40a
41
1.21.2预发布版1.21.2-pre1到1.21.2-pre2
42
1.21.2预发布版1.21.2-pre3到1.21.3
43
1.21.4快照24w44a
44
1.21.4快照24w45a
45
1.21.4快照24w46a
46
1.21.4预发布版1.21.4-pre1到1.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快照25w08a到25w09b
54
1.21.5快照25w10a
55
1.21.5预发布版1.21.5-pre1到1.21.5
56
1.21.6快照25w15a
57
1.21.6快照25w16a
58
1.21.6快照25w17a
59
1.21.6快照25w18a
60
1.21.6快照25w19a
61
1.21.6快照25w20a
62
1.21.6快照25w21a
63
1.21.6预发布版1.21.6-pre1到1.21.7发布候选1.21.7-rc1
64
1.21.7发布候选1.21.7-rc2及以上
在1.20.2(23w31a)及更高版本中,可以设置版本区间。
例如,在1.21.5中:
{
"pack": {
"pack_format": 55,
"description": "我的测试资源包",
"supported_formats": [0, 65]
}
}
这表示该数据包可能支持版本编号为0到65的所有Minecraft版本。
以上步骤完成后,在资源包选择界面,你将看到你所编写的数据包。将其设置为“已选”资源包,游戏将尝试加载该数据包。
故障排除
若资源包未在该菜单中显示,检查pack.mcmeta是否正确的。尤其要检查是否缺少大括号、冒号、逗号、引号或方括号。对于每个左大括号、左中括号或前引号,必须有对应的右大括号、右中括号或后引号。
pack.png[编辑 | 编辑源代码]
参见:资源包 § 资源包图标
原版风格的资源包图标
为了让你的资源包更独特,你还可以在你的资源包根目录中添加一个pack.png图片文件,游戏将选取该图片作为资源包的缩略图。如果pack.png为非正方形图片,Minecraft会将其变为方形,但原始图像可能被拉伸变形。
默认资源包图标也是可以通过资源包修改的,文件路径参见本节对应的主条目。
如你想要制作原版风格的资源包图标,可以通过BlockBench建模并截图实现:
打开BlockBench,选择Java版物品或方块模型。
创建一个16×16×16大小的正方体模型,并添加纹理。
将其Y轴位置偏移设置为-1.5。
在顶部菜单栏中,选择“视图”,然后选中“高级截屏”。
选择预设类型为“等距左(2:1)”,设置分辨率128×128,缩放设置为36,然后点击确定。
将得到的预览图保存。
使用BlockBench制作类似于原版风格的资源包图标
为资源包添加内容[编辑 | 编辑源代码]
在完成上一章节的内容后,资源包基本结构已经构建完成;然而,资源包内还没有实际的内容。
在一般情况下,你可以通过参考数据包 § 文件结构来获悉要修改的资源文件路径。
在以下章节中,我们将介绍一种更直观的办法。但在添加内容前,我们还必须要了解一下命名空间规范。
命名空间规范[编辑 | 编辑源代码]
命名空间是资源包内容所必须的上层目录。你可以在assets目录中添加多个命名空间:
<你的资源包>
assets
<命名空间1>
<命名空间2>
...
pack.mcmeta
与数据包一样,资源包也通过命名空间来组织结构。
命名空间字符串应由小写字母和下划线组成。
如果命名空间为minecraft,这意味着其中的所有文件都可能覆盖掉原版的同名资源文件。
如果命名空间为其他自定名称,这意味着其中的所有文件都可能主动覆盖或被其他同名命名空间中的同名资源覆盖。
对于社区中的所有资源包,可以按照使用目的将其中的命名空间分为以下几种类型:
<你的资源包>
assets
minecraft:原版命名空间,用于修改原版模型、纹理等。
<其他自定义命名空间>:可能被其他命名空间所依赖,也可能作为单独的资源包测试内容存在。在原版技术性开发中,这还可能和同命名空间的数据包相对应。
...
pack.mcmeta
如果你是原版资源包作者,则创建minecraft命名空间,并添加或修改其中原版同名文件即可。
如果你是MOD作者,则命名空间需要和相应MOD的jar包中的命名空间以及文件结构匹配。
如果你是地图、数据包或模型作者,则要留意不要将你的自定义命名空间和原版命名空间中相同类型的资源混淆。
获取原版资源文件[编辑 | 编辑源代码]
原版命名空间中的结构是怎样的?你可以从client.jar中复制一份原版资源文件来直接使用。
打开你的启动器路径,找到.minecraft/versions
选择一个版本目录(这将决定你所创建的资源包适用于哪个版本)
使用压缩软件打开相应版本的jar文件(先不用解压,因为这里面还有很多不需要的文件)。
找到其中的assets目录,将其提取并覆盖为你的资源包的assets目录。
更改纹理[编辑 | 编辑源代码]
主条目:/纹理
纹理组成游戏中方块、物品、实体上的图案,以及不同页面的背景。这些文件大多是图像文件,但也包括一些用于描述纹理的文本文件。部分纹理可以是动态的,即纹理带有动画。动态纹理相关的内容也包含在这一部分。与纹理相关的所有资源文件都放置在assets/<命名空间>/textures中。
Minecraft使用的部分字体也是通过纹理搭载的。关于修改字体的有关内容,参见自定义字体。
更改模型[编辑 | 编辑源代码]
主条目:/模型
模型组成游戏中方块、物品、实体的形状。可以用资源包修改大多数方块的模型;然而,实体和少数方块的模型不可更改,只能更改与之关联的纹理。与模型相关的资源文件放置在assets/<命名空间>/textures和assets/<命名空间>/blockstates中。
更改或添加声音[编辑 | 编辑源代码]
主条目:/音效和音乐
音乐是在游戏中播放的背景声音。音效是游戏中的交互操作产生的声音。二者都可以用资源包更改。与声音相关的资源文件包含assets/<命名空间>/sounds.json,以及放置在assets/<命名空间>/sounds中的文件。
更改或添加文本[编辑 | 编辑源代码]
主条目:/语言和文本
文本是在Minecraft游戏各处显示的文字,可用资源包修改。语言是Minecraft显示文本时所支持的语种。除了少数文本(如终末之诗),绝大多数文本都支持本地化。除游戏已支持的语言外,通过资源包还可以添加新的语言。与文本相关的所有资源文件都放置在assets/<命名空间>/lang中;新增语言相关的内容放置在pack.mcmeta中。
在存档中自动加载[编辑 | 编辑源代码]
在地图开发中,往往希望资源包和地图存档一同发布,玩家进入后便自动加载其中的资源包。
在世界选择界面中,选中一个世界,点击“编辑”。
点击“打开世界文件”。
将你的资源包拖入(如果不是压缩文件,则应压缩为zip格式的压缩包)。
将压缩资源包命名为resouces.zip。
此后,在打开该存档时游戏将会自动应用该资源包。
服务器[编辑 | 编辑源代码]
参见:Server.properties § Minecraft服务器属性
服务器资源包[编辑 | 编辑源代码]
服务器的所有者可以为服务器设置资源包。
若资源包为文件夹形式,将其打包为zip压缩文件。不能是其他压缩文件格式。
将该资源包上传到文件托管网站上,如MCPacks.
复制该资源包的下载链接。注意:若使用自行搭建的托管网站,或非专为Minecraft设计的网站,确保本步获取的是下载的直链。此外,使用兼容Java 8u51的SSL证书,以避免启动器(对旧版本游戏)自动安装的Java运行时拒绝证书[1]。
在server.properties中,找到形如resource-pack=的一行,并将上一步获取的链接粘贴在其后。
可选:将同一文件中的require-resource-pack属性设置为true,以强制加入服务器的玩家使用该资源包。
保存以上修改,并重启服务器。
完成以上步骤后,在玩家加入服务器时,将会询问是否加载该资源包;若玩家同意,游戏将会自动下载并加载该资源包。
服务器图标[编辑 | 编辑源代码]
服务器的所有者可以修改在多人游戏界面中,服务器前显示的图标。
创建一张大小为64×64像素的png图像文件,并将其保存为server-icon.png。支持透明度。
将该文件放置在服务器的根目录下。
重启服务器。
完成以上步骤后,服务器前应当会显示所添加的图标。
参考[编辑 | 编辑源代码]
↑ MC-143768 — “无法通过Let's Encrypt证书使用服务器资源包。” — 漏洞状态为“无法复现”。
导航[编辑 | 编辑源代码]
查
论
编教程
新手教程
下载、安装与购买
成功地启动游戏
菜单屏幕
游戏术语
计量单位
不该做的事
新手生存
新手指南
第一天
第二天
第三天
提示与技巧
饥饿管理
生存注意事项
庇护所
庇护所
沙漠
微型
最佳居住生物群系
最佳建筑材料
建筑与结构
房屋类型
导航
综合
无聊的时候做什么
跑酷
空置域
伪和平
节省时间的小窍门
在水下利用TNT破坏方块
成就指南[仅BE]
进度指南[仅JE]
最佳附魔指南
拓殖
战斗
完成冒险
双持
探索洞穴
利用碰撞箱
马
使用地图
测量距离和角度
采矿技术
钻石
化石
远古残骸
下界快速旅行
下界传送门
支柱跳跃
幻翼防护
生成骑士
穿越和破坏基岩
防卫僵尸围城[仅JE]
考古
不可破坏的末地水晶
使用更少的末地水晶重生末影龙
透视镜
挂机池
整理物品
潜影盒储存
物品运输
生物运输
自动化烧炼
选择燃料
爆炸室
凋灵笼
光速船[仅BE]
无材料消耗转换药水类型[仅BE]
在超平坦世界中管理史莱姆
减少摔落伤害
Minecraft和教育
视频
游戏直播
村民和交易
村庄生存
创建村庄
村庄机制
治愈僵尸村民
村民养殖
村民交易所
流浪商人陷阱
建筑
给工程添加美感
空气闸
建筑术语
建造游轮
建造大都市
建造过山车
建造安全的家园
建造水建筑
建造几何体
防御
家具
电梯
带釉陶瓦的图案
建造地板
像素艺术
牧场
屋顶类型
弧形屋顶
屋顶建造指南
暗门
建造居住地
水下建筑
墙壁和桥墩
水闸
调色板
建造蹦床
挑战
获得潮涌核心
冒险模式生存
挑战自定义地图
制作自定义地图
征服神殿和神庙
触发及战胜袭击
征服掠夺者前哨站
征服堡垒遗迹
征服林地府邸
征服海底神殿
征服试炼密室
征服下界要塞
征服末地城
探索深暗之域和远古城市
打败末影龙
打败凋灵
极限模式
超极限模式
在一个地区中长期生存下去
沙漠生存
在无限沙漠中生存
下界生存
从零开始下界生存
末地生存
雷暴生存
超平坦世界生存[仅JE]
岛屿生存
空岛生存
在和平难度中收集资源
速通
游荡生存
无限石头生存
愚人节版本生存[仅JE]
22w13oneBlockAtATime
24w14potato
农场
方块和物品
紫水晶
骨粉
仙人掌
农作物(小麦、胡萝卜、马铃薯、甜菜根、火把花和瓶子草)
西瓜、南瓜
紫颂果
圆石、石头或玄武岩
可可豆
泥土
滴水石锥
鸡蛋
鱼
花朵
蛙明灯
蜂蜜
冰
海带
肉
蘑菇
音乐唱片
下界疣
黑曜石
袭击农场
1.21前
海泡菜
雪
甘蔗
甜浆果
原木、树苗和苹果
海龟鳞甲
藤蔓
羊毛
药水
经验
基岩
方块和物品复制
铁轨复制机[仅JE]
TNT复制[仅JE]
零刻作物催熟技术[仅BE]
生物
刷怪塔
怪物磨床
刷怪笼陷阱
动物(猪、牛、绵羊)
烈焰人
洞穴蜘蛛
苦力怕
闪电苦力怕
溺尸
末影人
山羊
守卫者
铁傀儡
岩浆怪
以物易物
潜影贝
史莱姆
鱿鱼
海龟
村民
女巫
流浪商人
凋灵骷髅
僵尸猪灵
悦灵
红石
基础红石
基本逻辑门
高频电路
计时器
抽奖箱
漏斗
通用物品分类器
机械
侦测器稳定器
密码锁
随机发生器
红石机械
红石音乐
红石技巧
鲁布·戈德堡机械
探测器
方块更新感应器
比较器更新感应器
昼夜探测器
矿车
矿车
火车站
储存
数字化存储系统
陷阱
陷阱
陷阱设计
雪傀儡防御炮
TNT大炮
活板门利用
活塞
活塞使用
活塞电路
无延迟科技
飞行器
半连接性[仅JE]
零刻活塞[仅JE]
无头活塞[仅JE]
高级红石
光照操纵
高级红石电路
算术逻辑
计算器
时钟
摩尔斯码
打印机
红石计算机
红石电报机
多人游戏
玩法
游玩服务器
PvP
Java版1.9前、基岩版
基地
隐藏箱子
起床战争
空岛战争
猎人游戏
服务器管理
防止恶意破坏
服务器监狱
服务器商店
雪球菜单
架设服务器
架设Java版服务器
架设基岩版服务器
服务器架设脚本[仅JE]
服务器启动脚本
FreeBSD启动脚本
OpenBSD启动脚本
Ubuntu启动脚本
WebSocket服务器[仅BE]
架设Mod服务器[仅JE]
架设Hamachi服务器
架设Spigot服务器
虚拟硬盘服务器
使用ngrok搭建服务器
架设ZeroTier服务器
本地局域网联机
服务器维护
使用LeviLamina架设服务器[仅BE]
技术性
Minecraft帮助FAQ
自定义皮肤
地图
自定义地图
下载地图
使用MCEdit刷新旧区块[仅JE]
强制打开存档[仅JE]
降级存档
资源包
制作资源包
纹理
音效和音乐
语言和文本
模型
加载资源包
数据包[仅JE]
制作数据包
实例:射线投射
视线魔法
自定义物品
安装数据包
自定义世界生成
自定义结构生成
自定义盔甲纹饰
附加包[仅BE]
基岩版开发指南
制作资源附加包
高级
基岩版实体文档
修改实体模型
制作行为包
自定义实体
自定义方块
自定义物品
自定义附加包语言文件
自定义音效
命令格式
仅Java版
生成下落的方块
文本组件
NBT命令标签
物品堆叠组件
记分板
SNBT
NBT路径
命令方块
结构方块
用命令操控实体
NBT与JSON
自定义命令触发
目标选择器
游戏安装
仅Java版
提高帧率
更新Java
修复Apache Log4j2漏洞
编写启动器
快照版本安装
获取崩溃报告
查看游戏日志
仅基岩版
Minecraft URL Scheme
汇报漏洞
在U盘中使用旧版启动器运行游戏
恢复损坏的地图数据
修复因数据包损坏的世界
在Google Drive上运行游戏
将游戏数据保存到Dropbox云端
仅限地图数据
在ChromeOS上运行Java版
过时教程
到达边境之地
获取崩溃报告(旧版)
无数据包生存
升级LWJGL
更新Minecraft
命令统计值
村民养殖(村庄与掠夺前)
村庄链
水道
水车
仅英文
自定义纹理包
基于门的铁傀儡陷阱
人工湖
矿车加速器
中继器重启系统
水梯
无延迟电路
教程
新手手册
高难度通关配装总结
成就指南
高塔指南
常见问题
教程
新手手册
基地建设指南
资源收集指南
单位阵容组合
注:作下划线标记的教程为中文原创教程。