本站文本內容除另有声明外,均在知识共享 署名-非商业性使用-相同方式共享 3.0 协议下提供。(詳情…本站文本內容除另有声明外,均在知识共享 署名-非商业性使用-相同方式共享 3.0 协议下提供。(詳情…中文Minecraft Wiki是完全公开的。请勇于擴充與修正內容!中文Minecraft Wiki是完全公开的。请勇于擴充與修正內容!Minecraft中文Wiki微博正在更新!或許有興趣去看看?Minecraft中文Wiki微博正在更新!或許有興趣去看看?想與其他用戶進行編輯上的溝通?社區專頁正是爲此創建的。想與其他用戶進行編輯上的溝通?社區專頁正是爲此創建的。翻譯或創建頁面之前,不妨看看譯名標准化Wiki條例頁面。翻譯或創建頁面之前,不妨看看譯名標准化Wiki條例頁面。需要管理員的協助?在管理員告示板留言也許可以幫到您。需要管理員的協助?在管理員告示板留言也許可以幫到您。

故事模式已不受支持。如果您已購買了故事模式,請在6月25日服務器關閉之前下載,否則您將不能下載故事模式。點擊此處查看詳情。

資源包

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

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

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

資源包的选择菜单,上面的是 Ninety-Six ,接著是 Favorite Songs Pack,然後是默認的資源。

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

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

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

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

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

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

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

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

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

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

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


  • 根標簽

    •  pack: 保存資源包的信息

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

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

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

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

        •  name: 語言的完整名称

        •  region: 國家或地區名稱

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

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

語言[編輯 | 編輯源代码]

語言源文件的获取方式

在最新的1.13版本中,語言文件的位置需要从/.minecraft/assets/indexes/中对应版本的json中寻找,比如要在1.13.2版本中找到中文簡體,则需在打开json后搜索zh_cn,之后看到如下代码:

 "minecraft/lang/zh_cn.json": 
{
"hash": "b91966bf26b0d692226dc8a09d23c90008fda270",
"size": 310384
}

然後記住hash右側的前兩位

回到.minecraft\assets\objects目錄下,找到名爲hash前两位的文件夹,找到hash后的文件名的文件,打开后就是对应的語言文件,

語言文件中,首位行加入{},然后每行结尾需加入英文逗号以作爲分隔,比如泥土

    "block.minecraft.dirt": "\u6ce5\u571f",

其中block.minecraft.dirt爲泥土的标识符,是遊戲用于寻找某些东西的名称的标识符,这个标识符不应该被改变,而\u6ce5\u571f则是“泥土”的Unicode编码,可以将此编码改爲其他中文翻译的编码以改变该方塊在遊戲内的名称

可以在資源包的assets/minecraft/lang文件夾裏創建對應類型的.json語言文件。每个文件都将会取代默认的或排序在更低位的資源包的同名文件,或者它会根据pack.mcmeta的定义,创建一个新的語言。

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

方塊模型[編輯 | 編輯源代码]

方塊模型是一些以 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
1.11 16w32a 資源包版本号被更改爲3,这个版本需要資源包的所有文件的文件名使用小写字母。
1.13 17w43a 默认資源包现在可以像其他資源包一样上下移动位置了。
17w48a 由于扁平化,資源包版本号被更改爲4
攜帶版(Alpha)
0.15.0 ?加入了塑料資源包和城市資源包。
0.15.7 加入了自然資源包。
0.15.8 加入了幻想資源包。
0.16.2 加入了卡通資源包。
攜帶版
1.0.3 加入了糖果資源包。

你知道嗎[編輯 | 編輯源代码]

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

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

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

  1. MC-17673
  2. https://twitter.com/Dinnerbone/status/552241757497622529