本站文本內容除另有聲明外,轉載時均必須注明出處。(詳情…本站文本內容除另有聲明外,轉載時均必須注明出處。(詳情…中文Minecraft Wiki是完全公开的。请勇于擴充與修正內容!中文Minecraft Wiki是完全公开的。请勇于擴充與修正內容!Minecraft中文Wiki微博正在更新!或許有興趣去看看?Minecraft中文Wiki微博正在更新!或許有興趣去看看?想與其他用戶進行編輯上的溝通?社區專頁正是爲此創建的。想與其他用戶進行編輯上的溝通?社區專頁正是爲此創建的。翻譯或創建頁面之前,不妨看看譯名標准化Wiki條例頁面。翻譯或創建頁面之前,不妨看看譯名標准化Wiki條例頁面。需要管理員的協助?在管理員告示板留言也許可以幫到您。需要管理員的協助?在管理員告示板留言也許可以幫到您。

資源包

来自Minecraft Wiki
跳轉至: 導航搜索

資源包(Resource pack)系統爲材質包系統的API代替物,允許玩家更深度地自定義自己的Minecraft体验。資源包允许玩家自定义材質、模型、音樂、音效、語言文件、終末之詩閃爍標語的顯示文本和字體,而不用修改任何代碼。

行爲[編輯 | 編輯源代码]

Java版1.14起默认的資源包配置
資源包的选择菜单,展示了两个已选的資源包(不包括默认資源包)和其他各种可用的資源包

資源包可以放置在.minecraft裏面的resourcepacks文件夹。每个資源包都是一个子文件夹或一个.zip文件,這個文件裏面有resourcepacks文件夾。它被放置在文件夾裏面後,就可以從選項菜单中添加資源包,这个資源包可以从“可用的資源包”移動到“已选的資源包”。“已选的資源包”下面的默认资源会始终存在,并且不能被移除。

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

默认資源包[編輯 | 編輯源代码]

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

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

Java版[編輯 | 編輯源代码]

在Java版中,旧材質(1.14前的)在名爲“Programmer Art”的資源包中可用。

基岩版[編輯 | 編輯源代码]

皮膚類似,可以在基岩版中购买或制作資源包。iOS用户截至Alpha 0.15.0可以使用.mcpack.mcworld文件在系统上下载資源包。打开这些文件后,遊戲会自动导入它们,而无需使用文件系统。

原主機版[編輯 | 編輯源代码]

原主機版,混搭包(等于資源包)作爲可下载內容可以在Xbox marketplace/Playstation store或从遊戲中的可下载內容段落中下载。混搭包通常会包含一个皮膚包和一個主題世界。

內容[編輯 | 編輯源代码]

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


  • 根標簽

    •  pack:保存資源包的信息

      •  pack_format:資源包版本。如果这个数值與当前需要的数值不匹配,则資源包就会显示一个错误,进行附加确认后才能加载資源包。在1.6.11.8.9中需要的數值爲1,在1.91.10.22,在1.111.12.2中爲3,在1.131.14.44

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

    •  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的附加音效。每一个在資源包裏面的音效都将会被下面的資源包覆盖。資源包包含一个sounds.json文件,其位置在assets/minecraft里。不像資源包裏面的其他文件,sounds.json会合并下面的和上面的資源包的音效,而不是完全覆盖每个sounds.json文件。

材質[編輯 | 編輯源代码]

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

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

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

如果一个材質文件在任何的資源包(包括默认的)中都不存在,那么这个材質将会显示爲一个黑紫方格交错的材質。(
 #f800f8和
 #000000)


动态材質[編輯 | 編輯源代码]

方塊和物品材質支持动态材質,在每一帧的下面放置另外一帧就能做成动态材質了。动态材質是被一个在相同目錄,相同名稱,以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含有使用了換行符分隔的遊戲閃爍標語。每个閃爍標語都可以用不同的文字代替,而这些閃爍標語将会代替默认的閃爍標語。

文件層次結構[編輯 | 編輯源代码]

曆史[編輯 | 編輯源代码]

Java版
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。 而且使用具有过时显示标签的資源包将导致模型看起来异常放大,并且不会在手中旋转被操纵的方塊,同时库存中的方塊被替换爲2D纹理。这类似于模型没有显示标签时发生的情况。请看這裏的例子。
1.11 16w32a 資源包版本号被更改爲3,这个版本需要資源包的所有文件的文件名使用小写字母。
1.13 17w43a 默认資源包现在可以像其他資源包一样上下移动位置了。
17w48a 由于扁平化,資源包版本号被更改爲4
1.14 18w45a 由于旧材質在材質更新中被新的取代,现在在資源包菜单中加入了"Programmer Art – The classic look of Minecraft"。
19w06a 明显提升了資源包加载的速度。[2]
攜帶版(Alpha)
0.15.0 加入了塑料資源包和城市資源包。
0.15.7 加入了自然資源包。
0.15.8 加入了幻想資源包。
0.16.2 加入了卡通資源包。
攜帶版
1.0.3 加入了糖果資源包。
基岩版
1.10.0 beta 1.10.0.3 資源包现在和世界模板分离,并能在现存世界中独立更新。

另見[編輯 | 編輯源代码]

參考[編輯 | 編輯源代码]

  1. MC-17673
  2. “It should have already affected resource pack loading! It's all the same thing internally.” – @Dinnerbone,2019年2月7日