資源包(Resource pack)系統為材質包系統的代替物,允許玩家更深度地自訂自己的Minecraft體驗。資源包允許玩家自訂音樂、音效、語言檔案、離開終末之界的顯示文字和字體,而不用修改任何代碼
行為[]
資源包可以放置在 .minecraft
裡面的 resourcepacks
資料夾。每個資源包都由一個子資料夾或一個 .zip
檔案,這個檔案裡面有 resourcepacks
資料夾。它被放置在資料夾裡面後,就可以從選項選單中加入資源包,這個資源包可以從「可用的資源包」移動到「已選的資源包」。「已選的資源包」下面的預設資源會始終存在,並且不能被移除。
資源包會按照列表上的順序載入它們的資源。最下面的資源包(總是「預設」的那個)將會首先載入,然後每個資源包會代替上一個相同名稱的資源。
預設資源包[]
把資源包打包為 resources.zip
的資料夾並且直接放到地圖資料夾裡面就可以與地圖捆綁在一起了。當遊玩這個地圖時,資源包會自動出現在預設資源包的右上方。
透過向伺服器屬性檔案裡面 resource-pack=
一行變更為一個 .zip
檔案的下載連結就能在伺服器上設定預設資源包了。使用者仍然可以選擇使用或者選擇不下載這個資源包。
主機版[]
在主機版,混搭包(等價於資源包)作為可下載內容可以在 Xbox marketplace/Playstation store 或從遊戲中的可下載內容段落中下載。Mash-up 包通常會包含一個外觀包和一個主題世界。
內容[]
Minecraft 是透過根目錄裡的 pack.mcmeta
來識別一個資源包的,這個檔案的格式為 JSON 格式。
- 根標籤
- pack: 儲存資源包的資訊
- language: 包含了要向選單裡加入的附加語言
- A language 一個語言的語言代碼,其與資料夾裡
.lang
的名字相同assets/minecraft/lang
- name: 語言的完整名稱
- region: 國家或地區名稱
- bidirectional: 若為 true,語言將會從右到左顯示。
- A language 一個語言的語言代碼,其與資料夾裡
根目錄也包含一個叫作 pack.png
的可選圖像,這個圖像將會在資源包選擇選單中作為資源包的縮略圖顯示。
語言[]
資源包可以在 assets/minecraft/lang
資料夾裡建立對應類型的 .lang
語言檔案。每個檔案都將會取代預設的或排序在更低位的資源包的同名檔案,或者它會根據 pack.mcmeta
的定義,建立一個新的語言。
語言檔案的每一行都按照 identifier=name
的格式。identifier
是遊戲用於尋找某些東西的名稱的識別碼,這個識別碼不應該被改變。name
是要顯示的名字,這個名字從等號開始到這一行的結束。例如,石頭在預設語言檔案裡是tile.stone.stone.name=Stone
,tile.stone.stone.name
是識別碼,Stone
是要顯示的名稱。
只需要在語言檔案裡加入上要改變的顯示名稱的那一行就可以了,所有不在資源包裡面的名字都將會從下面的資源包裡載入。如果所有的資源包都沒有改變這個名稱的話,將會載入預設的名稱。
方塊模型[]
方塊模型是一些使用 JSON 格式儲存的,擴展名為 .jscode
的檔案,這些檔案決定了方塊和物品的形狀和材質。
方塊使用 assets/minecraft/blockstates
的一個方塊狀態檔案,來決定每個變種要從中載入的模型。同時,每個物品都有一個物品模型來決定它的模型,這個模型會從一個方塊模型裡載入,包含了它自己自訂的模型,或者使用預設的「平面」或「實體」模型。
如果沒有被覆蓋,那麼在下面的資源包所使用的模型和方塊狀態仍然會被載入,這可能會導致一些材質和模型被上方的資源包使用,而沒有被再次載入。
音效[]
資源包載入檔案格式為 .ogg
的附加音效。每一個在資源包裡面的音效都將會被下面的資源包覆蓋。資源包包含一個 sounds.json
檔案,其位置在 assets/minecraft
裡。不像資源包裡面的其它檔案,sounds.jscode
會合併下面的和上面的資源包的音效,而不是完全覆蓋每個 sounds.jscode
檔案。
材質[]
要讓方塊或物品材質工作,那麼它們的寬度和高度必須相等(如果是動態材質,那麼高度要是寬度的倍數);否則,只會顯示黑紫方格交錯的材質。對於其它多數材質,檔案會被簡單的拉伸,以符合所需的尺寸。
多數固體方塊會把任何透明的地方變成完全不透明的。剩餘的方塊和多數的實體材質一起會允許材質有空白區域。所有的半透明的物品和任何方塊/實體,都會預設支持半透明。
如果一個材質檔案在任何的資源包(包括預設的)裡都不存在,那麼這個材質將會顯示為一個黑紫方格交錯的材質。
動態材質[]
方塊和物品材質支持動態材質,在每一幀的下面放置另外一幀就能做成動態材質了。動態材質是被一個在相同目錄,相同名稱,以 JSON 格式儲存的 .mcmeta
檔案進行控制。例如,stone.png
的 .mcmeta
檔案的檔案名是 stone.png.mcmeta
。
- 根標籤
- animation: 包含了動態材質的資料的標籤
- interpolate: 若為 true,Minecraft 將會在幀與幀之間生成一張間隔時間大於1的幀。預設為
false
。 - frametime: 設定在每個遊戲刻內每一幀的時間增量。預設為
1
。 - frames: 一個幀列表。幀的顯示順序預設為從上至下。
- 指定開始播放的幀的位置,最上面的一幀為 0
- A frame 為每一幀指定附加資料
- index: 指定開始播放的幀的位置,最上面的一幀為 0
- time: 這一幀的顯示時間(單位:刻),覆蓋上面的「frametime」。
- interpolate: 若為 true,Minecraft 將會在幀與幀之間生成一張間隔時間大於1的幀。預設為
- animation: 包含了動態材質的資料的標籤
如果資源包裡沒有 .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
。
- blur: 指定從近距離觀察時是否導致材質模糊。預設為
- texture: 包含了材質的資料
如果資源包裡材質檔案對應的 .mcmeta
檔案缺失,那麼遊戲將會載入預設設定,而不是從下一個資源包中繼續載入 .mcmeta
檔案。
文字[]
在 assets/minecraft/texts
裡的3個 UTF-8 格式的 .txt
檔案儲存了遊戲要用來顯示的文字。
檔案 end.txt
含有終末之詩的文字,使用了樣式代碼的顏色代碼來區分2個講話人,文字 PLAYERNAME
將會被玩家名稱代替。在展示完了這個檔案的內容後,接著就會顯示 credits.txt
的內容。
檔案 splashes.txt
含有使用了換行符分隔的遊戲閃爍標語。每個閃爍標語都可以用不同的文字代替,而這些閃爍標語將會代替預設的閃爍標語。
檔案層次結構[]
列表 |
---|
|
歷史[]
release | |||||
---|---|---|---|---|---|
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/music ,assets/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 | |||
攜帶版Alpha | |||||
0.15.0 | 加入塑料資源包和城市資源包。 | ||||
0.15.7 | 加入自然資源包。 | ||||
0.15.8 | 加入幻想資源包。 | ||||
0.16.2 | 加入卡通資源包。 | ||||
攜帶版 | |||||
1.0.3 | 加入糖果資源包。 |
你知道嗎[]
- 動態材質屬性檔案同時也包含附加的「width:」和「height:」標籤來決定要平鋪的像素大小,但是它們在原版遊戲中沒有效果,並且只被一些 Mod 材質使用。