基礎Add-On製作教學!行為包+資源包

最後更新:2021/07/21

Minecraft版本: 1.17.2 (Add-on比較少有版本問題)

Minecraft基岩版包含Android、iOS、Windows 10。這其中官方提供了跨平台通用性高、不同版本相容性佳的「模組」,就稱之為Add-on。
Add-on可以細分為行為包(Behavior Pack)與資源包(Resource Pack),二者可以個別獨立運作,也能合在一起提供更多樣化的內容。
以下是官網的圖片,充分解釋了Add-on的概念: 自訂你的世界。

製作Add-on很簡單,只是套用幾個屬性的話不用寫太多程式,而且也能在手機上做。
本文參考中文Wiki編寫,一些詳細的資料可自行前往觀看。

下面的範例中,會結合行為包和資源包,把原版遊戲的豬改成有苦力怕的臉,並且會像苦力怕一樣爆炸。

文章目錄:
  • 一、製作行為包
  • 二、製作資源包
  • 三、打包分享

一、製作行為包

第一步: 製作行為包的工具
  • 程式碼編輯器: 電腦使用Visual Studio Code,手機使用Acode。這二個都會自動抓程式語法錯誤,打錯字也不怕。
  • Photoshop或其他繪圖軟體: 畫材質用的
  • 遊戲原版資源包(下載)、原版行為包(下載),裡面有很多程式碼可以參考。
  • Minecraft主程式。最好是Windows 10版的,可以一邊開發一邊看結果。
第二步: 行為包的資料夾
就跟資源包一樣,行為包以資料夾形式存在,首先找到development_behavior_packs這個資料夾:

Win10版本路徑為: C:\Users\使用者名稱\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\development_behavior_packs

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的圖示了! 連點二下遊戲就會開啟,就會自動開啟匯入,不用再解壓縮找要放哪個資料夾了。


想學更多嗎? 來看進階的系列教學吧!
 

留言

發佈留言

此網誌的熱門文章

Minecraft基岩版多人連線教學: 方法一覽

【詳細解說】什麼是Minecraft基岩版,跟Java版有什麼差?

Minecraft基岩版安裝模組(Add-On)&資源包&光影教學