本站文本内容除另有声明外,均在知识共享 署名-非商业性使用-相同方式共享 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.111.12中為3,在1.134

      •  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
1.11 16w32a 資源包版本號被更改為3,這個版本需要資源包的所有文件的文件名使用小寫字母。
攜帶版(Alpha)
0.15.0 加入了塑料資源包和城市資源包。
0.15.7 加入了自然資源包。
0.15.8 加入了幻想資源包。
0.16.2 加入了卡通資源包。
攜帶版
1.0.3 加入了糖果資源包。

你知道嗎[編輯 | 編輯原始碼]

  • 動態材質屬性文件同時也包含附加的「width:」和「height:」標籤來決定要平鋪的像素大小,但是它們在原版遊戲中沒有效果,並且只被一些 Mod 材質使用。[2]

另請參閱[編輯 | 編輯原始碼]

參考[編輯 | 編輯原始碼]

Promotional Content