资源包(Resource Pack)系统为材质包系统的API替代品,允许玩家更深度地自定义自己的Minecraft体验。资源包允许玩家自定义材质、模型、音乐、声音、语言文件、终末之诗、菜单界面UI、闪烁标语的显示文本和字体,而不用修改任何代码。[1]
中文名
资源包外文名
Resource Pack
登场作品
资源包Java版
编辑
语音
资源包行为
自Java版1.14起默认的资源包配置。
资源包的选择菜单,展示了两个已选的资源包(不包括默认资源包),一个不支持的资源包和其他各种可用的资源包。
资源包可以放置在.minecraft里面的resourcepacks文件夹。每个资源包都是一个子文件夹或一个.zip文件,这个文件里面有resourcepacks文件夹。它被放置在文件夹里面后,就可以从选项菜单中添加资源包,这个资源包可以从“可用的资源包”移动到“已选的资源包”。“已选的资源包”下面的默认资源会始终存在,并且不能被移除。
资源包会按照列表上的顺序加载它们的资源。最下面的资源包(总是“默认”的那个)将会首先加载,然后每个资源包会代替上一个相同名称的资源。默认资源包[编辑 | 编辑源代码]
首先将资源包打包为resources.zip,然后将这个zip文件放入地图文件夹里就可以与地图捆绑在一起了。当游玩这个地图时,资源包会自动出现于默认资源包的右上方。
通过向服务器属性文件里面resource-pack=一行更改为一个.zip文件的下载链接就能在服务器上设置默认资源包了。用户仍然可以选择使用或者选择不下载这个资源包。
旧材质(材质更新前的)在名为“Programmer Art”的资源包中可用。
资源包文件结构
(资源包名称)pack.mcmeta
pack.png
assetsiconsicon_16x16.png
icon_32x32.png
minecraft.icns
(命名空间)sounds.json
blockstates(blockstate).json
font(字体)
iconsicon_16x16.png
icon_32x32.png
minecraft.icns
lang(语言).json
modelsblock(模型).json
item(模型).json
particles(粒子).json
sounds(声音).ogg
shaderspost(post).json
program(fragment shader).fsh
(program).json
(vertex shader).vsh
texts(文本).txt
texturesblock(材质).png
colormap(材质).png
effect(材质).png
entity(材质).png
(实体种类)(材质).png
environment(材质).png
font(材质).png
gui(材质).png
advancements(材质).png
backgrounds(材质).png
container(材质).png
creative_inventory(材质).png
presets(材质).png
title(材质).png
background(材质).png
item(材质).png
map(材质).png
misc(材质).png
mob_effect(材质).png
modelsarmor(材质).png
painting(材质).png
particle(材质).png
资源包内容
Minecraft是通过根目录里的pack.mcmeta来识别一个资源包的,这个文件的格式为JSON格式。根标签pack:保存资源包的信息pack_format:资源包版本。如果这个数值与当前需要的数值不匹配,则资源包就会显示一个错误,进行附加确认后才能加载资源包。在1.6.1(13w24a)至1.8.9中需要的数值为1,在1.9(15w31a)至1.10.2中为2,在1.11(16w32a)至1.12.2(1.13:17w47b)中为3,在1.13(17w48a)至1.14.4(1.15:19w46b)中为4,在1.15(1.15-pre1)至1.16.1(1.16.2:1.16.2-pre3)中为5,在1.16.2(1.16.2-rc1)至1.16.5为6,在1.17(20w45a以上)则为7。
description:在资源包菜单里要显示的资源包名称。该文字将会显示为2行。如果文字太长,那么超长的部分就会被砍掉。
description: 包含一个原始JSON文本对象,它将在资源包菜单中显示为包描述。与string标签description具有相同的行为,但是它们不能一起存在。
language:包含了要向语言菜单里添加的附加语言。A language 一个语言的语言代码,其与文件夹里.lang的名字相同assets/minecraft/lang。name:语言的完整名称。
region:国家或地区名称。
bidirectional:若为true,语言将会从右到左显示。
根目录也包含一个叫作pack.png的可选图像,这个图像将会在资源包选择菜单中作为资源包的缩略图显示。
资源包语言
可以在资源包的assets//lang文件夹内创建.json类型的语言文件。每个文件可以取代优先级低的或默认的同名文件,或者创建由pack.mcmeta定义的新语言。
.json文件里的每一行都是标准的JSON格式"标识符":"名称",其后紧接一个逗号。
标识符是游戏寻找的某个特性的名称,它不应该被更改。
名称是显示的名称内容。例如,默认语言文件里的石头是"block.minecraft.stone":"Stone",其中block.minecraft.stone
Stone是标识符,
是显示的名称。空行会被忽略。文件必须是正确的JSON语法,这意味着它以一个{开始,在每个键值对(最后一个除外)后有一个逗号,并以一个}结束。
语言文件只需要添加资源包确实要修改的内容。任何不在资源包内的名称都会从下面的包中加载,或者如果没有包修改了名称,则从默认资源中加载。
资源包模型
模型是一些以JSON格式储存的,扩展名为.json的文件,这些文件决定了方块和物品的形状和材质。
方块使用assets/minecraft/blockstates的一个方块状态文件,来决定每个变种要从中加载的模型。同时,每个物品都有一个物品模型来决定它的模型,这个模型会从一个方块模型里加载,包含了它自己自定义的模型,或者使用默认的“平面”或“实体”模型。
如果没有被覆盖,那么在下面的资源包所使用的模型和方块状态仍然会被加载,这可能会导致一些材质和模型被上方的资源包使用,而没有被再次加载。
资源包音效
资源包加载文件格式为.ogg或.fsb的附加音效。每个在资源包里面的音效都会覆盖下面的资源包。资源包包含一个sounds.json文件,其位置在assets/minecraft里。与资源包其他的文件不同,sounds.json会合并其上一个资源包的音效,而不是完全覆盖每个sounds.json文件。
资源包材质
要让方块或物品材质正常显示,那么它们的宽度和高度必须相等(如果是动态材质,那么高度要是宽度的倍数);否则,只会显示黑紫方格交错的材质。对于其他多数材质,文件会被简单的拉伸,以符合所需的尺寸。
多数固体方块会把任何透明的地方变成完全不透明的。一些拥有类似于拼贴的透明区域方块(类似于草),会把所有不透明度低于10%的像素变成全透明像素,其他像素变成完全不透明像素。其他方块渲染材质会保留半透明区域。所有的半透明的物品和任何方块/实体,都会默认支持半透明。
如果一个材质文件不存在于任何的资源包(包括默认资源包)中,那么这个材质将会显示为一个黑紫方格交错的材质。
资源包动态材质
方块和物品材质支持动态材质,在图片的每一帧的下面放置另外一帧就能做成动态材质了。动态材质是被一个在相同目录,相同名称,以JSON格式存储的.mcmeta文件进行控制。例如,stone.png的.mcmeta文件的文件名是stone.png.mcmeta。根标签animation:包含了动态材质的数据的标签interpolate:若为 true,Minecraft 将会在帧与帧之间生成一张间隔时间大于1的帧。默认为false。
width:方块的宽度,以直接比例而不是像素为单位。这在原版中没有使用,但是可以被mod使用以具有不是完整正方形的帧。
height:方块的高度,以直接比例而不是像素为单位。这在原版中没有使用,但是可以被mod使用以具有不是完整正方形的帧。
frametime:设置在每个游戏刻内每一帧的时间增量。默认为1。
frames:一个帧列表。帧的显示顺序默认为从上至下。指定开始播放的帧的位置,最上面的一帧为 0
A frame 为每一帧指定附加数据index:指定开始播放的帧的位置,最上面的一帧为 0
time:这一帧的显示时间(单位:刻),覆盖上面的“frametime”。
如果资源包里没有.mcmeta文件,并且材质是动态的,那么游戏将会认为这个材质不是动态材质,不会从下一个包继续加载.mcmeta文件。如果一个维度不相同的材质没有其对应的.mcmeta文件,那么这个材质将会显示为黑紫方格交错的材质。
资源包村民
其材质assets/minecraft/textures/entity/villager
和assets/minecraft/textures/entity/zombie_villager里。支持后缀名为.mcmeta的JSON格式文件用于指明可应用于帽子层的附加效果,位于相同目录,与对应材质文件有相同名称。例如,文件profession/farmer.png可以附带具有一个名为profession/farmer.png.mcmeta的文件。
如果文件夹中不存在对应的.mcmeta文件,而材质文件中存在材质,则游戏将加载默认设置,而不是从下方的资源包里加载.mcmeta文件。
资源包颜色图
颜色图是一个 256×256 像素的图片,用于告诉游戏在每个生物群系要使用的颜色。它们的位置在assets/minecraft/textures/colormap里。游戏包含2张颜色图,一张是foliage.png,指定植物如树叶(除了桦木和云杉木)和藤蔓的颜色;还有一张是grass.png,指定草和草方块的颜色。颜色图可以通过移除个别方块上的tintindex标签而被禁用。
资源包杂项
assets/minecraft/textures/misc里的材质支持用一个以JSON格式储存的.mcmeta文件来向材质应用附加效果。文件的位置与材质的位置处于同一目录,与材质的文件名也一样,除了.mcmeta后缀。例如,文件pumpkinblur.png对应的属性文件的文件名为pumpkinblur.png.mcmeta。根标签texture:包含了材质的数据blur:指定从近距离观察时是否导致材质模糊。默认为false。
clamp:指定是否在原来的情况下以伸展材质代替平铺材质。默认为false。
mipmaps:材质的自定义mipmap值。
如果资源包里材质文件对应的.mcmeta文件缺失,那么游戏将会加载默认设置,而不是从下一个资源包中继续加载.mcmeta文件。[1]
资源包文本
在assets/minecraft/texts里的3个 UTF-8 格式的.txt文件储存了游戏要用来显示的文本。
文件end.txt含有终末之诗的文本,使用了样式代码的颜色代码来区分2个讲话人,文本PLAYERNAME将会被玩家名称代替。在展示完了这个文件的内容后,接着就会显示credits.txt的内容。
资源包字体
字体文件指位于资源包中assets//font目录下的JSON文件。该文件内含提供每个字符对应的资源位置和额外信息的列表。
minecraft:default给出了默认字体,而minecraft:alt给出了附魔台所用的默认字体。 提供字体时的资源位置应当包含文件扩展名。根标签providers: 提供加入该字体的信息的列表。提供字体的信息。内容取决于“type”标签的值。type: 该字体提供者的信息,可为以下选项之一。bitmap: 位图字体file: 欲使用文件的资源位置,以assets//textures开始。
height: 可选。该字符的高度,以像素为单位。可以为负。该标签与源材质中使用的区域不相关,仅用于重新调整显示结果。
ascent: 该字体的上伸高度(基线至最高点的距离),以像素为单位。 这个值会使得字体的显示结果出现垂直偏移。
chars: 一个字符串列表,包含该字体替换的字符及其在材质中的位置。列表所有元素的字符数必须相同。该列表中的一项元素对应材质等距分割的一行,每一个元素中的字符对应等距的一列。
legacy_unicode: 旧版Unicode字体。该字体格式已废弃且仅在“强制Unicode字体”选项打开时才会优先使用。sizes: assets//font目录下的资源位置,给出一个描述每个字符的水平起讫位置(从0至15)的二进制文件。目标文件的拓展名必须为.bin。
template: assets//textures目录下的资源位置,给出该字体应当使用的材质文件。游戏会将该标签中的%s 替换为被替换字符的十六进制代码的前两个字符,因此单个此种类的字体提供者可以指向多个贴图文件。
ttf: TrueType字体.[需要更多信息]file: assets//font目录下的TrueType字体文件的资源位置。
shift: 该字体提供者的字体偏移。左侧偏移
下方偏移
size: 欲渲染的字体大小。
oversample: 欲渲染的分辨率。
skip: 欲排除的字符串或字符串数组。
字体材质表会基于每行中的字符个数自动缩放。为了与Unicode块保持一致,部分材质表可能为16个字符宽。
资源包基岩版
编辑
语音
与皮肤类似,可以在基岩版中购买或制作资源包。iOS用户截至Alpha 0.15.0可以使用.mcpack和.mcworld文件在系统上下载资源包。打开这些文件后,游戏会自动导入它们,而无需使用文件管理应用。[1]
资源包你知道吗
编辑
语音
Java版Alpha v1.2.2到1.14使用的默认资源包的pack.png是Java版Alpha v1.2.2中种子3257840388504953787在坐标约x=49,z=0的截图,它在2020年9月5日 4:04(UTC)[5]被“Minecraft@Home”社区的玩家发现。此时,距离它的发布已经过去了近10年的时间。[6]
词条图册
更多图册
参考资料
1.
资源包 - Minecraft Wiki,最详细的官方我的世界百科
.Minecraft Wiki[引用日期2021-05-29]