教學:製作附加包/物品/1.16.100

出自Minecraft基岩版开发Wiki


1.16.100
系列教學
所屬系列
難易度
初級
前置知識
適用版本
國際版
實踐裝置
WindowsAndroid
所需軟體

引言[編輯]

基岩版1.12更新中,Mojang正式向開發人員提供了自訂物品的相關介面。但由於當時 Mojang在附加包方面的開發重心仍在於開放自訂實體的相關介面上,故物品介面在很長的一段時間裡都處於「極不完善」的狀態。

直至1.16.100.56 beta版本,自訂物品相關介面才得到了大幅增強,同時自該版本起,Mojang摒棄了資源包中的物品組態檔,使物品的定義更加便捷且架構更加合理。

因1.16.100以後的新版物品結構簡單,定義方便,功能多樣,故本教學僅介紹新版物品的定義方法。

簡介[編輯]

一個完整的物品應該由兩部分組成:

  • 物品資源(物品的紋理、名稱)
  • 物品行為(物品的行為、屬性、賦命名空間識別碼等)

在本教學中,我們將建立一個簡單的物品。在第一節中,我們將學習如何定義物品行為;在第二節中,我們將給這個物品分配紋理、名稱。

物品行為[編輯]

要定義一個物品的行為,你需要在行為包中的 items資料夾下新建JSON檔案,並將其命名為<物品ID>.json

物品的基本架構如下:

{
  "format_version": "1.16.100",//格式版本
  "minecraft:item": {
    "description": {
    }, //描述
    "components": {
    }, //组件
    "events": {
    } //事件
  }
}

描述 (description) 物件儲存了用於描述該物品的基礎資訊,其中最重要值的便是identifier,其定義了物品的賦命名空間識別碼

其詳細資料結構見此

格式版本(format_version)決定遊戲以何種版本的規則讀取檔案,不同的格式版本的元件、事件寫法可能不同。

元件(components)物件決定物品的行為,你可以選擇並加入需要的元件屬性,例如加入minecraft:foil元件可以讓物品具有附魔光芒、加入minecraft:food元件可以讓物品可以被食用。

完整的元件列表見此

事件(events)物件儲存了該物品可能用到的所有事件,其可以由特定的觸發器元件觸發或者由元件內的觸發器參數觸發,對於初學者,可暫時忽略這部分。

新增物品[編輯]

首先我們在行為包檔案根目錄下新建一個名為items的資料夾,所有的物品檔案將儲存於此資料夾中,你也可以建立子資料夾以分類物品檔案。

新建一個文字文件,將其後綴改為.json,並修改檔案名稱為識別碼後半部分。在這之後,我們可以向其中寫下這些內容以定義一個基礎物品。

在你的物品JSON檔案裡加入以下內容:

{
    "format_version": "1.16.100",
    "minecraft:item": {
        "description": {
            "identifier":"wiki:custom_item",//该物品赋命名空间标识符,出现重复的标识符会被识别为同一物品。
            "category": "items"
        },
        "components": {
            "minecraft:icon": {
                "texture": "wiki.custom_item"//定义纹理,填短名称
            },
            "minecraft:creative_category": {
                "parent": "items"
            }//物品创造模式分组,在不同格式版本写法不同
        }
    }
}

進入遊戲,你會發現自己的物品沒有紋理且有一個奇怪的名稱,這是因為我們還沒有定義物品的資源。

物品資源[編輯]

現在我們有了一個物品,本節我們將要給這個物品加入紋理與名稱。

加入紋理[編輯]

紋理儲存在資源包中,為了方便存取,我們需要給紋理定義一個短名稱。

首先,我們需要一個16×16的.png图檔作為紋理,並將其放入資源包的textures/items資料夾中。

接著我們需要給這個紋理分配短名稱,所有物品短名稱都儲存在资源包/textures/item_texture.json,其中包含短名稱及其分配紋理的列表,加入以下內容:

{
	"resource_pack_name": "示例资源包",//资源包名称
	"texture_name": "atlas.items",//纹理类型,不可更改
	"texture_data": {
	    "wiki.custom_item": {//纹理短名称,应与minecraft:icon组件中填写的值相同
	       "textures": "textures/items/custom_item"//纹理路径,不带.png后缀
        }
	}
}

加入名稱[編輯]

最後,我們要為物品加入一個好聽的名字。遊戲會為這個物品分配一個形似item.<物品标识符>的翻譯鍵,我們只需要在語言檔案中定義它即可。

首先在資源包中新建名為texts的資料夾,在其中新建名為zh_CN.lang的文字檔,輸入以下內容:

item.wiki:custom_item=自定义物品

更多資訊見Manual:製作附加包/在地化

你知道嗎[編輯]

  • 自訂物品的Json檔案名稱並不要求必須與物品ID相同。
  • 物品紋理並不強制要求解析度為16×16,但若不是專門製作高清資源包的話,建議物品貼圖大小不要超過128*128,既節省精力,又節省空間和效能。