警告:根据CC BY-NC-SA 3.0协议,所有从wiki搬运的资料都必须写上来源出处(中文Minecraft Wiki),否则将被视为侵权行为!详细阅读
致繁体用户:本wiki现已更新简繁更换系统,各位用户可以通过简繁切换来查看正确的繁体译名

資源包

出自 Minecraft Wiki
前往: 導覽搜尋

資源包(Resource pack)系統為材質包系統的API代替物,允許玩家更深度地自定義自己的Minecraft體驗。資源包允許玩家自定義音樂、音效、語言文件、離開末路之地的顯示文本和字體,而不用修改任何代碼。

行為[編輯 | 編輯原始碼]

資源包的選擇菜單,上面的是 Ninety-Six ,接著是 Favorite Songs Pack,然後是默認的資源。

資源包可以放置在 .minecraft 裡面的 resourcepacks 文件夾。每個資源包都由一個子文件夾或一個 .zip 文件,這個文件裡面有 resourcepacks 文件夾。它被放置在文件夾裡面後,就可以從選項菜單中添加資源包,這個資源包可以從「可用的資源包」移動到「已選的資源包」。「已選的資源包」下面的默認資源會始終存在,並且不能被移除。

資源包會按照列表上的順序加載它們的資源。最下面的資源包(總是「默認」的那個)將會首先加載,然後每個資源包會代替上一個相同名稱的資源。

默認資源包[編輯 | 編輯原始碼]

把資源包打包為 resources.zip 的文件夾並且直接放到地圖文件夾裡面就可以與地圖捆綁在一起了。當遊玩這個地圖時,資源包會自動出現在默認資源包的右上方。

通過向伺服器屬性文件裡面 resource-pack= 一行更改為一個 .zip 文件的下載連結就能在伺服器上設置默認資源包了。用戶仍然可以選擇使用或者選擇不下載這個資源包。

主機版[編輯 | 編輯原始碼]

主條目: Mash-up 包

主機版,Mash-up 包(等價於資源包)作為可下載內容可以在 Xbox marketplace/Playstation store 或從遊戲中的可下載內容段落中下載。Mash-up 包通常會包含一個皮膚包和一個主題世界。

內容[編輯 | 編輯原始碼]

Minecraft 是通過根目錄里的 pack.mcmeta 來識別一個資源包的,這個文件的格式為 JSON 格式。


  • 根標籤

    •  pack: 保存資源包的信息

      •  pack_format: 資源包版本。如果這個數值與當前需要的數值不匹配,則資源包就會顯示一個錯誤,進行附加確認後才能加載資源包。在 1.9 之前這個數值需要為1,在 1.9 則為2

      •  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]

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

引用[編輯 | 編輯原始碼]