教學:結構包

出自Minecraft基岩版开发Wiki
結構包
獨立教學
難易度
初級
前置知識
適用版本
國際版
中國版
所有版本
實踐裝置
Windows

前述[編輯]

這篇內容主要介紹基岩版的跨存檔匯出結構方法。和Java版相比,基岩版的方法稍複雜些,需要Addon的行為包。而且請確保你有Windows版的Minecraft(不論是否為中國版),否則你會在第一步的匯出就卡住。

要想透過行為包進行跨存檔匯出結構的話,你至少需要了解結構方塊的幾種用法。直到現在(1.17.41),結構方塊有4種用法:儲存模式、載入模式、3D匯出模式、角落模式,點擊結構方塊的連結來具體檢視結構方塊的用法,並在遊戲內多加實踐。

準備.mcstructure檔案[編輯]

首先你應該把你的結構匯出,這就需要用到結構方塊。請注意,這需要在Windows上運作的基岩版,在Android或iOS裡是無法匯出的。

利用結構方塊在儲存模式或載入模式框選好你的結構,然後點擊匯出按鈕,Windows會跳出一個儲存.mcstructure的彈窗,先把它儲存到一個易找的路徑,之後還要用到這些檔案。你可以同時匯出多份檔案。

構建一個行為包框架[編輯]

首先你需要準備一個文字編輯器,我個人非常推薦你使用Visual Studio Code,並安裝擴充套件Blockception's Minecraft Bedrock Development

結構包的本質就是行為包,為此要構建一個行為包框架——manifest.json,這就是清單檔案,在這篇文章裡介紹的已經比較詳細了,這裏只貼出一個大致的模板。

{
  "format_version": 2,
  "header": {
    "description": "行为包的描述",
    "name": "行为包的名字",
    "uuid": "fca053d9-41de-4658-a2a2-9d87d6bc32e3",
    "version": [1, 0, 0],
    "min_engine_version": [1, 17, 0]
  },
  "modules": [
    {
      "description": "模块描述",
      "type": "data",
      "uuid": "57bb2629-5615-40ab-973d-01e46f77d867",
      "version": [1, 0, 0]
    }
  ]
}

然後將這個檔案儲存到一個新建的資料夾中,這就是你的行為包了。建議你可以將行為包命名為behavior_pack或BP,在後續編寫addon的時候也可以繼續沿用VSCode的擴充套件。關於更多的資訊,請見手冊:製作附加包/包的構建

完善你的行為包[編輯]

你構建了一個行為包,但還沒有任何內容。接下來我們來向這個行為包裡加入一些東西。

如果你需要行為包icon,可以準備一個pack_icon.png(最好是正方形)。

然後在manifest.json層級建立一個名為structures的資料夾(帶上s),然後把你匯出的.mcstructure檔案放進structures資料夾裡,路徑如下:

  •  <behavior_pack>
    •  manifest.json
    •  pack_icon.png
    •  structures
      •  <structure_name1>.mcstructure
      •  <structure_name2>.mcstructure
      •  <structure_name3>.mcstructure
      •  ……

匯入行為包[編輯]

接下來就是匯入行為包了。關於匯入更詳細的資訊,見手冊:製作附加包/執行、除錯與匯出。當然,我們這裏仍大致介紹一下匯入方法。

.mcpack匯入[編輯]

這個方法對國際版有效。

從manifest.json的層級以zip的形式壓縮所有檔案,並改後綴名為.mcpack,然後直接雙擊開啟。如果你是Windows國際版用户,這個方法簡單的不能再簡單了;當然如果你是安卓用户,這是一個無法識別的後綴名,請將這個檔案以文字-Minecraft開啟,如果無法以這個方法開啟,請嘗試下面的方法。

這個方法有缺點——實時修改非常麻煩,且預設匯入進全域。

資料夾匯入[編輯]

這個方法對國際版有效。

安卓用户請注意:請將你的檔案儲存路徑設定為外部!一旦你使用應用程式儲存,所有地圖檔案,Addon檔案等將需要透過Root才能變更!我們強烈建議你在外部儲存你的檔案,這也有利於你對你的地圖進行設定。如果你有過多重要地圖都存在了應用程式裡,請使用第一種方法。

Android 11用户請注意:在1.18更新後,遊戲檔案目錄被移到Android/data裡,透過手機自帶的檔案管理器無法開啟這個路徑,你可能需要其他的檔案管理器,例如ES檔案管理器。

將整個BP資料夾複製(或剪下)粘貼到下面的目錄,這將適用於全域:

平台型別 行為包路徑
Android

(1.18前)

/storage/emulated/0/games/com.mojang/

development_behavior_packs(或behavior_packs)

Android

(1.18後)

/storage/emulated/0/Android/data/com.mojang.minecraftpe/files/games

/com.mojang/development_behavior_packs(或behavior_packs)

Windows C:\Users\<使用者名稱>\AppData\Local\Packages\

Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\

games\com.mojang\development_behavior_packs(或behavior_packs)

或適用於單個地圖:

平台型別 行為包路徑
Android

(1.18前)

/storage/emulated/0/games/com.mojang/

minecraftWorlds/<對應地圖>/behavior_packs

Android

(1.18後)

/storage/emulated/0/Android/data/com.mojang.minecraftpe/files/games

/com.mojang/minecraftWorlds/<對應地圖>/behavior_packs

Windows C:\Users\<使用者名稱>\AppData\Local\Packages\

Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\

games\com.mojang\minecraftWorlds\<對應地圖>\behavior_packs

然後開啟Minecraft,看看全域資源/地圖資源是否有你的行為包,然後在地圖設定裡啟用它。

強制匯入[編輯]

這個方法對國際版和中國版有效。注意,中國版只能用這種方法,如果你是國際版用户,我強烈建議你用前兩種方法,因為這種方法和第二種大同小異且工作更多;並且這個方法只用於單個地圖的匯入,不適用於全域資源。

首先用資料夾匯入法將你的地圖放進對應的資料夾裡(是完整的走完這個流程)。對於中國版用户,路徑如下:

平台型別 行為包路徑
Android /storage/emulated/0/Android/data/com.netease.x19/files/minecraftWorlds
Windows C:\Users\<使用者名稱>\AppData\Roaming\MinecraftPE_Netease\minecraftWorlds

如果你不是在官方下載而是在渠道服下載(比如手機的應用商店),則com.netease.x19改為com.netease.mc.(渠道服名)。

然後開啟world_behavior_packs.json。這個檔案展示的內容如下:

[
    {
        "pack_id" : "f2f4031c-be39-4d42-99ee-b6e8970e64bd",
        "version" : [ 1, 0, 0 ]
    }
]

將manifest.json裏面的header-uuid粘貼到pack_id裏面,header-version粘貼到version裏面。這個過程實質上是資料夾匯入法的啟用Addon步驟,只不過是從檔案層面上的強制啟動。

中國版可能沒有這個檔案,你需要人為建立這個檔案。

除錯[編輯]

大功吿成!試一下透過結構方塊載入出你所匯出的結構。如果它能夠成功載入,就説明你成功了!以後還可以繼續沿用這個方法匯入匯出結構。如果無法載入的話,則看看以下幾點能否幫到你:

對於國際版用户:

  • 是否能夠看到你的Addon?如果看不到説明manifest.json出現問題,請檢視是否有語法錯誤或不支援的數值。如果能看到説明行為包內部出現問題,即structures資料夾。看看你的資料夾是否少了個s,或者資料夾裡是否有檔案,然後對應進行變更。

對於中國版用户:

  • 這可能會比較麻煩,因為無法確定究竟是什麼環節出了問題。比較簡單的方法是先用國際版匯入一次,確定沒有問題之後就不是行為包的問題而是world_behavior_pack.json出現了問題,確保version和pack_id都完全一致。沒有國際版的話,首先判斷manifest.json是否有問題,然後判斷world_behavior_pack.json,最後判斷structures資料夾。