Minecraft基岩版包含Android、iOS、Windows 10。這其中官方提供了跨平台通用性高、不同版本相容性佳的「模組」,就稱之為Add-on。
Add-on可以細分為行為包(Behavior Pack)與資源包(Resource Pack),二者可以個別獨立運作,也能合在一起提供更多樣化的內容。
以下是官網的圖片,充分解釋了Add-on的概念: 自訂你的世界。
製作Add-on很簡單,只是套用幾個屬性的話不用寫太多程式,而且也能在手機上做。
本文參考中文Wiki編寫,一些詳細的資料可自行前往觀看。
下面的範例中,會結合行為包和資源包,把原版遊戲的豬改成有苦力怕的臉,並且會像苦力怕一樣爆炸。
1. 製作行為包#
第一步: 製作行為包的工具
- 程式碼編輯器: 電腦使用Visual Studio Code,手機使用Acode。這二個都會自動抓程式語法錯誤,打錯字也不怕。
- Photoshop或其他繪圖軟體: 畫材質用的
- 遊戲原版資源包(下載)、原版行為包(下載),裡面有很多程式碼可以參考。
- Minecraft主程式。最好是Windows 10版的,可以一邊開發一邊看結果。
第二步: 行為包的資料夾
就跟資源包一樣,行為包以資料夾形式存在,首先找到development_behavior_packs這個資料夾:
Windows版本路徑為:C:\Users\使用者名稱\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang
Android版路徑為:內部儲存空間/games/com.mojang/development_behavior_packs
iOS路徑為: 檔案APP/我的iPhone/Minecraft/games/com.mojang/development_behavior_packs
在這裡新增一個資料夾,直接取名叫做測試用行為包。

接下來新增一個文字文件,取名叫做「manifest.json」,以後檔案的後綴名都是以.json為主。
(如果你看不到檔案後綴,請按檢視>勾選「顯示副檔名」)

這個檔案能讓遊戲辨識到我們的行為包!
使用Visual Studio Code開啟這個檔案,輸入以下內容:
{
"format_version": 2,
"header": {
"name": "測試用行為包",
"description": "測試用行為包",
"uuid": "d3cc68c8-72cc-443c-a296-503116b46e74",
"version": [
1,
0,
0
],
"min_engine_version": [
1,
16,
0
]
},
"modules": [
{
"type": "data",
"uuid": "23a2e8d8-a3a2-4dce-a599-9b5213f8e96a",
"version": [
1,
0,
0
]
}
]
}name就是行為包名稱。description為行為包的說明欄位。
整個檔案可以分成二個部分: header、modules,注意到了嗎,二部分都有一項名為「UUID」的欄位? UUID是一種幾乎不會重複的英數字組合,你可以使用這個網站立即取得一個UUID。
在這裡,寫在第6行的UUID就變成了這個行為包的一個「識別代號」,可以確保與其他人做的不會重複。
需要注意的是,這個檔案中,二個UUID都必須不同才行。如果你還做了其他資源包,UUID也不能一樣。
modules下面有一個"type":“data”,如果填入"data"遊戲會判定為行為包,“resources"則是資源包。
第三步: 行為包的圖示
為你的行為包製作一個圖示吧! 開啟繪圖軟體,畫一個圖示,最好是正方形的,儲存檔案到剛才的資料夾,檔名叫做「pack_icon.png」。
或者也可以直接從官方的範本包裡面複製pack_icon.png過來使用。

接著開啟Minecraft,在設定>存放的行為包裡面,應該就會看到行為包已經出現在列表中了!

現在可以開始製作行為包了。
第四步: 開始製作內容
以豬會像苦力怕爆炸來說,我們只要把苦力怕的這種「行為」移植到豬身上就可以了。
參考原版行為包的檔案結構,我們可以發現,控制豬的行為是在Vanilla_Behavior_Pack/entities/pig.json這個檔案,而苦力怕為creeper.json。
在我們行為包的資料夾新增一個entities資料夾,把pig.json複製過來。

打開檔案我們會看到…落落長的程式碼。
我們要先了解一下基本檔案結構 (Visual Studio按一下行數旁邊的>可以展開或收合大括號的內容)
實體的行為是由一條一條的組件構成的,這些組件定義了實體能做什麼。
實體的行為檔案分成三大部分:
component_groups:{}
components:{}
events:{}

通常遊戲會先載入components裡列出的組件,例如血量、走路AI等。
components或events裡面會有一個判斷條件的組件,條件符合後才會把component_groups裡對應的組件加進來,例如設定殭屍溺水後變成沉屍的這個動作。
那麼我們要怎麼加入「會向玩家衝過來、並爆炸」的屬性呢?
從原版行為包開啟creeper.json,找到"nearest_attackable_target”:{}這個組件,把大括號裡面的都複製下來。

按Ctrl+f,搜尋pig.json中的"minecraft:behavior.random_look_around",把複製過來的貼在},後面。

creeper.json中搜尋「minecraft:target_nearby_sensor」同樣複製到pig.json裡面。
所以random_look_around後面的程式碼目前應該會長這樣:

為了讓豬會主動追殺玩家,還要從creeper.json複製"minecratt:attack"和 “minecraft:behavior.melee_attack” 這二個組件,貼到pig.json。

在creeper.json中搜尋"minecraft:start_exploding"這個組件,還有"minecraft:stop_exploding"
然後在pig.json中搜尋"events"後貼上:

再從creeper.json複製"minecraft:exploding"這個組件,在pig.json中找到components_groups:{},在{後貼上。

為了讓豬像苦力怕一樣爆炸時膨脹(變大),在"minecraft:explode":{}後面加一條
"minecraft:scale":{
"value": 2
}
完成了,可以開始測試行為包了。
啟用行為包,請按編輯世界>按下啟用行為包

開創造模式,生出豬後切成生存,你就會看到豬豬自爆了。

二、製作資源包#
製作資源包的步驟跟行為包十分類似(一~三步驟),manifest.json這個檔案之中的"data"改成"resources"就行了,記得二個UUID也要不一樣。
我們自製的資源包要改放到com.mojang/development_resource_packs
資源包玩家應該比較熟悉,最簡單的功能就是改材質,而進階玩法就是改實體模型、加入自訂音效、粒子效果、新增方塊等。
如果我們要修改豬的材質,參考原版資源包的架構,豬的材質是在Vanilla_Resource_Pack/textures/entity/pig/pig.png
所以在我們的資源包資料夾中新增textures資料夾,裡面再新增entity資料夾,再新增pig資料夾
接著把畫好的皮膚放進去,取名pig.png。

編輯世界>啟用資源包


三、打包Addon#
以上我們都把檔案放在遊戲提供的資料夾內,遊戲會自動讀取也方便修改。那如何分享呢?
官方提供了二種檔案格式: .mcpack 和 .mcaddon 便於分享你的Add-on。
如何製作? 其實只要先把行為包和資源包的資料夾壓縮成一個檔案,再把副檔名改一下就行了。

把.zip改成.mcaddon,就會變成Minecraft的圖示了! 連點二下遊戲就會開啟,就會自動開啟匯入,不用再解壓縮找要放哪個資料夾了。

