Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /opt/bitnami/wordpress/wp-includes/functions.php on line 6114
MC 煉金工藝 – 2D 自訂義物品 - 八寶周的研究小屋

MC 煉金工藝 – 2D 自訂義物品

材質包不僅僅改變遊戲觀感,還可以製作超出原版的客製化內容,那具體如何製作就看後續的教學吧。

0. 前言


你是否好奇過為何有些地圖如此真實,冒險地圖如何做出特出的道具模型?這些東西都離不開材質包。

材質包不僅僅改變遊戲觀感,還可以製作超出原版的客製化內容。

那具體如何製作就看後續的教學吧,我們此篇會先以加入 2D 圖像進行展示。

1. 重點


原版的物品 model 能在 versions 中的版本執行檔中找到
作為物品圖片素材不用同樣採 16×16 但建議為正方形

2. 內容


2.1. 材質包的架構

我們進到 Minecraft 資料夾之中,首先看到 versions 並選擇某版本的 JAR 檔進行檢視。這份檔案不僅僅包含材質,還涉及遊戲的運作邏輯,但我們今天只看 assets 資料夾。

材質包的基本架構與 assets 幾乎一致,而要覆蓋原版內容就要放在 minecraft 目錄中。

我們所常用的會是 models (模型) 與 textures (材質) 。

內部共通的基礎有 block (方塊) 與 item (道具) 兩種。

那我們進入到 item 會看到很多的檔案,那由於我們主題是煉金我研究後選用[蜂蜜瓶]進行製作 ,我們先看看它的樣貌。必要會有 parent (分類) 以及 textures (材質),但要注意的是不同物質可能會有更多層的 textures,比如藥水就有兩層,而頭顱則還有個 template 進行判斷處理。

2.2. 材質包製作

我們進到 Minecraft 資料夾找到 resourcepacks,內部可以讀取的形式為 zip 或資料夾,那我們就先建立一個新的資料夾叫 alchemica-course 。

我們首先建立個檔案叫 pack.mcmeta,這是讓 Minecraft 找到版本與敘述。也能另外加上方形的 pack.png 做為封面圖片。

JavaScript
{
  "pack": {
    "pack_format": 34,
    "description": "Course pack divided from my project -- Alchemica"
  }
}

2.2.1. 原版覆蓋

接著我們模仿 versions 的執行檔架構進行增建,並將我們剛用到的蜂蜜瓶複製到專案之中的 models 。接著將 textures 的 layer0 改為 item/potions/932230 。

你可以在這邊下載此素材圖片,或者命名一個 PNG 並丟到 textures 內的 item/potions 路徑。

完成之後我們先刷新 Minecraft,載入材質包後找下 [蜂蜜瓶],可以看到圖像變了。

但這樣有個很嚴重的問題就是我們取代了整個物件,其他人要使用正常的東西都沒辦法,因此我們要進一步進行調整來匹配。

2.2.2. 模型匹配

我們回到蜂蜜瓶的 JSON, 首先記得改回原本的圖樣。

接著我們加上 override 並透過 CustomModelData 進行區分,匹配到不同的物件模型。

JavaScript
{
    "parent": "minecraft:item/generated",
    "textures": {
        "layer0": "minecraft:item/honey_bottle"
    },
    "overrides": [
        {
            "predicate": {
                "custom_model_data": 932230
            },
            "model": "potions/2d_932230"
        }
    ]
}

而關於 2d_932230 這個 model, 其實長的跟一般的 header 一模一樣。

JavaScript
{
    "parent": "item/generated",
    "textures": {
        "layer0": "item/potions/932230"
    }
}

完成後我們進到 Minecraft,按下 F3 + T 進行材質包的刷新,此時手上的蜂蜜瓶應該變回原樣。我們接著輸入以下指令取得特定的屬性物品。

JavaScript
/give @s minecraft:honey_bottle[minecraft:custom_model_data=932230]

此時可以看到兩瓶都是蜂蜜但材質與物件都分開了,透過這種方式可以造出無限可能。

3. 後話


但有些人可能覺得這藥水就是圖片在那邊浮空旋轉,我們就能透過 3D 建模的方式進行加強。

但我自己是 3D 建模白癡,所以我採用 AI 模型協助生成,不太會操作且想省時間的千萬別錯過喔。

4. 參考


[1] Pack Format — Minecraft Wiki
https://minecraft.wiki/w/Pack_format

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.