本站文本内容除另有声明外,均在知识共享 署名-非商业性使用-相同方式共享 3.0 协议下提供。(详细信息…

资源包

来自Minecraft Wiki
跳转至: 导航搜索

资源包(Resource pack)系统为材质包系统的API代替物,允许玩家更深度地自定义自己的Minecraft体验。资源包允许玩家自定义音乐、音效、语言文件、离开末路之地的显示文本和字体,而不用修改任何代码。

行为[编辑 | 编辑源代码]

资源包的选择菜单,上面的是 Ninety-Six ,接着是 Favorite Songs Pack,然后是默认的资源。

资源包可以放置在 .minecraft 里面的 resourcepacks 文件夹。每个资源包都由一个子文件夹或一个 .zip 文件,这个文件里面有 resourcepacks 文件夹。它被放置在文件夹里面后,就可以从选项菜单中添加资源包,这个资源包可以从“可用的资源包”移动到“已选的资源包”。“已选的资源包”下面的默认资源会始终存在,并且不能被移除。

资源包会按照列表上的顺序加载它们的资源。最下面的资源包(总是“默认”的那个)将会首先加载,然后每个资源包会代替上一个相同名称的资源。

默认资源包[编辑 | 编辑源代码]

把资源包打包为 resources.zip 的文件夹并且直接放到地图文件夹里面就可以与地图捆绑在一起了。当游玩这个地图时,资源包会自动出现在默认资源包的右上方。

通过向服务器属性文件里面 resource-pack= 一行更改为一个 .zip 文件的下载链接就能在服务器上设置默认资源包了。用户仍然可以选择使用或者选择不下载这个资源包。

主机版[编辑 | 编辑源代码]

主条目:混搭包

主机版,混搭包(等价于资源包)作为可下载内容可以在 Xbox marketplace/Playstation store 或从游戏中的可下载内容段落中下载。Mash-up 包通常会包含一个皮肤包和一个主题世界。

内容[编辑 | 编辑源代码]

Minecraft 是通过根目录里的 pack.mcmeta 来识别一个资源包的,这个文件的格式为 JSON 格式。


  • 根标签

    •  pack: 保存资源包的信息

      •  pack_format: 资源包版本。如果这个数值与当前需要的数值不匹配,则资源包就会显示一个错误,进行附加确认后才能加载资源包。在 1.9 之前需要的数值为1,在 1.91.10.22,在 1.11 中则为3

      •  description: 在资源包菜单里要显示的资源包名称。该文字将会显示为2行。如果文字太长,那么超长的部分就会被砍掉。

    •  language: 包含了要向语言菜单里添加的附加语言

      •  A language 一个语言的语言代码,其与文件夹里 .lang 的名字相同 assets/minecraft/lang

        •  name: 语言的完整名称

        •  region: 国家或地区名称

        •  bidirectional: 若为 true,语言将会从右到左显示。

根目录也包含一个叫作 pack.png 的可选图像,这个图像将会在资源包选择菜单中作为资源包的缩略图显示。

语言[编辑 | 编辑源代码]

资源包可以在 assets/minecraft/lang 文件夹里创建对应类型的 .lang 语言文件。每个文件都将会取代默认的或排序在更低位的资源包的同名文件,或者它会根据 pack.mcmeta 的定义,创建一个新的语言。

语言文件的每一行都按照 identifier=name 的格式。identifier 是游戏用于寻找某些东西的名称的标识符,这个标识符不应该被改变。name 是要显示的名字,这个名字从等号开始到这一行的结束。例如,石头在默认语言文件里是tile.stone.stone.name=Stonetile.stone.stone.name 是标识符,Stone 是要显示的名称。

只需要在语言文件里添加上要改变的显示名称的那一行就可以了,所有不在资源包里面的名字都将会从下面的资源包里加载。如果所有的资源包都没有改变这个名称的话,将会加载默认的名称。

方块模型[编辑 | 编辑源代码]

主条目:方块模型

方块模型是一些以 JSON 格式储存的,扩展名为 .json 的文件,这些文件决定了方块和物品的形状和材质。

方块使用 assets/minecraft/blockstates 的一个方块状态文件,来决定每个变种要从中加载的模型。同时,每个物品都有一个物品模型来决定它的模型,这个模型会从一个方块模型里加载,包含了它自己自定义的模型,或者使用默认的“平面”或“实体”模型。

如果没有被覆盖,那么在下面的资源包所使用的模型和方块状态仍然会被加载,这可能会导致一些材质和模型被上方的资源包使用,而没有被再次加载。

音效[编辑 | 编辑源代码]

资源包加载文件格式为 .ogg 的附加音效。每一个在资源包里面的音效都将会被下面的资源包覆盖。资源包包含一个 sounds.json 文件,其位置在 assets/minecraft 里。不像资源包里面的其它文件,sounds.json 会合并下面的和上面的资源包的音效,而不是完全覆盖每个 sounds.json 文件。

材质[编辑 | 编辑源代码]

无效或材质丢失时使用的“丢失的材质”。

要让方块或物品材质工作,那么它们的宽度和高度必须相等(如果是动态材质,那么高度要是宽度的倍数);否则,只会显示黑紫方格交错的材质。对于其它多数材质,文件会被简单的拉伸,以符合所需的尺寸。

多数固体方块会把任何透明的地方变成完全不透明的。剩余的方块和多数的实体材质一起会允许材质有空白区域。所有的半透明的物品和任何方块/实体,都会默认支持半透明。

如果一个材质文件在任何的资源包(包括默认的)里都不存在,那么这个材质将会显示为一个黑紫方格交错的材质。

动态材质[编辑 | 编辑源代码]

方块和物品材质支持动态材质,在每一帧的下面放置另外一帧就能做成动态材质了。动态材质是被一个在相同目录,相同名称,以 JSON 格式存储的 .mcmeta 文件进行控制。例如,stone.png.mcmeta 文件的文件名是 stone.png.mcmeta


  • 根标签

    •  animation: 包含了动态材质的数据的标签

      •  interpolate: 若为 true,Minecraft 将会在帧与帧之间生成一张间隔时间大于1的帧。默认为 false

      •  frametime: 设置在每个游戏刻内每一帧的时间增量。默认为 1

      •  frames: 一个帧列表。帧的显示顺序默认为从上至下。

        • 指定开始播放的帧的位置,最上面的一帧为 0

        •  A frame 为每一帧指定附加数据

          •  index: 指定开始播放的帧的位置,最上面的一帧为 0

          •  time: 这一帧的显示时间(单位:刻),覆盖上面的“frametime”。

如果资源包里没有 .mcmeta 文件,并且材质是动态的,那么游戏将会认为这个材质不是动态材质,不会从下一个包继续加载 .mcmeta 文件。如果一个维度不相同的材质没有其对应的 .mcmeta 文件,那么这个材质将会显示为黑紫方格交错的材质。

颜色图[编辑 | 编辑源代码]

颜色图是一个 256×256 像素的图片,用于告诉游戏在每个生物群系要使用的颜色。它们的位置在 assets/minecraft/textures/colormap 里。游戏包含2张颜色图,一张是 foliage.png ,指定植物如叶子(除了桦木和云杉木)和藤蔓的颜色;还有一张是 grass.png ,指定草方块的颜色。颜色图可以通过移除个别方块上的 tintindex 标签而被禁用。

字体[编辑 | 编辑源代码]

字体文件包含一个白色字符的网格,这些字符会在游戏需要时自动被 Minecraft 上色。字符大小会根据含有 Alpha 值的最后一行像素自动决定。由于探明了字体的检测方式,因此用含有1% Alpha 颜色填充字符的背景部分将会导致把字符渲染为全宽度,字符也没有可见的背景。

属性[编辑 | 编辑源代码]

assets/minecraft/textures/misc 里的材质支持用一个以 JSON 格式储存的 .mcmeta 文件来向材质应用附加效果。文件的位置与材质的位置处于同一目录,与材质的文件名也一样,除了 .mcmeta 后缀。例如,文件 pumpkinblur.png 对应的属性文件的文件名为pumpkinblur.png.mcmeta


  • 根标签

    •  texture: 包含了材质的数据

      •  blur: 指定从近距离观察时是否导致材质模糊。默认为 false

      •  clamp: 指定是否在原来的情况下以伸展材质代替平铺材质。默认为 false

如果资源包里材质文件对应的 .mcmeta 文件缺失,那么游戏将会加载默认设置,而不是从下一个资源包中继续加载 .mcmeta 文件。

文字[编辑 | 编辑源代码]

assets/minecraft/texts 里的3个 UTF-8 格式的 .txt文件储存了游戏要用来显示的文字。

文件 end.txt 含有终末之诗的文字,使用了样式代码的颜色代码来区分2个讲话人,文字 PLAYERNAME 将会被玩家名称代替。在展示完了这个文件的内容后,接着就会显示 credits.txt 的内容。

文件 splashes.txt 含有使用了换行符分隔的游戏闪烁标语。每个闪烁标语都可以用不同的文字代替,而这些闪烁标语将会代替默认的闪烁标语。

文件层次结构[编辑 | 编辑源代码]

历史[编辑 | 编辑源代码]

正式版本
1.6.1 13w24a 加入了资源包,取代了材质包的功能。Minecraft Texture Ender 是 Mojang 提供的,用于把可编译的 1.5 材质包转换为资源包。
1.6.2 修复了当使用 HD 字体时字体扭曲的问题。[1]
1.7.2 13w36a 加入了一次应用多个资源包的能力。
13w42a 把文件从 assets/minecraft/music 移动到 assets/minecraft/sounds/musicassets/minecraft/sound 里的文件也移动到 assets/minecraft/sounds
1.7.4 13w48a 移除了更改 Mojang 徽标的能力。
1.8 14w06a 加入了更改方块模型的能力。
14w07a 资源包现在可以绑定在一张地图上了。
14w25a 模型格式现在支持自定义物体模型。
现在可以分别指定方块和物品的材质。
加入了用于动态材质的 interpolate 标签。
1.8.8 pre 如果资源包版本是错误的,则资源包现在会显示一个错误。此时,资源包需要的版本号是 1
1.9 15w31a 资源包版本号被改为 2

你知道吗[编辑 | 编辑源代码]

  • 动态材质属性文件同时也包含附加的“width:”和“height:”标签来决定要平铺的像素大小,但是它们在原版游戏中没有效果,并且只被一些 Mod 材质使用。[2]

另请参阅[编辑 | 编辑源代码]

引用[编辑 | 编辑源代码]