本站文本內容除另有聲明外,均在知識共享 署名-非商業性使用-相同方式共享 3.0 協議下提供。(詳情…本站文本內容除另有聲明外,均在知識共享 署名-非商業性使用-相同方式共享 3.0 協議下提供。(詳情…中文Minecraft Wiki是完全公開的。請勇於擴充與修正內容!中文Minecraft Wiki是完全公開的。請勇於擴充與修正內容!Minecraft中文Wiki微博正在更新!或許有興趣去看看Minecraft中文Wiki微博正在更新!或許有興趣去看看想與其他用戶進行編輯上的溝通?社區專頁正是為此創建的。想與其他用戶進行編輯上的溝通?社區專頁正是為此創建的。翻譯或創建頁面之前,不妨看看譯名標準化Wiki條例頁面。翻譯或創建頁面之前,不妨看看譯名標準化Wiki條例頁面。需要管理員的協助?在管理員告示板留言也許可以幫到您。需要管理員的協助?在管理員告示板留言也許可以幫到您。

教程/製作行為包

出自 Minecraft Wiki
前往: 導覽搜尋
Information icon.svg
此特性為基岩版獨有。

概述[編輯 | 編輯原始碼]

這篇文章和「資源包教程」有類似之處,當然我們也建議您最好先了解一下如何創建一個資源包,這篇教程可能會忽略一些與資源包的共同點。下面會講解如下內容:

  • 簡述JSON數據格式
  • 如何創建行為包
  • 如何改變怪物行為

如果你看過站內關於pig.json的修改教程,那麼可能會輔助閱讀本篇文章。

所需時間[編輯 | 編輯原始碼]

完成本教程大約需要1個半至2小時。

所需工具[編輯 | 編輯原始碼]

跟隨下面給出的步驟繼續教程:

文本編輯器[編輯 | 編輯原始碼]

可以使用任意一種文本編輯器,但我建議你使用一些編程用的IDE。在PC上,Notepad++是一個非常不錯的選擇,不僅免費,而且能夠對編程語法進行高亮顯示,你可以從[1]下載。如果你想有效管理多個文件,建議使用Visual Studio Code。而在iOS上,用Textcode Viewer則是不錯的選擇,如果你的iOS設備已經越獄,也可以嘗試使用iFile或者Filza。對於Android系統來講,MT管理器將是一個不錯的選擇。

文件管理器[編輯 | 編輯原始碼]

可以使用任何一種文件管理器。我建議:Windows可以用系統自帶的文件管理器(但是請你安裝好壓縮和解壓用的軟體,如WinRAR,7z等)。iOS設備上則可以用文件全能王(英文名FileMaster);Android可以使用ES文件管理器,最新的ES文件管理器還具備了代碼糾錯功能,但美中不足的是其編寫代碼系統很不好用,僅推薦作為文件管理器。

JSON數據格式[編輯 | 編輯原始碼]

參見:教程/NBT與JSON§JSON的語法

在開始製作行為包之前,我們需要先快速了解一下JSON是怎麼運作的。我們不會去太過於深入JSON技術的一些細節,但是如果你希望了解更多,你可以參閱[2]

JSON里由兩種不同的數據結構所組成:

  • 鍵值對
    • 例如:"name": value
  • 對象數組
    • 例如:["value1", "value2", ...]

你可以創建一個由鍵值對組成的對象。值也可以是數組或對象。

對象範例[編輯 | 編輯原始碼]

{
  "minecraft:scale": {
    "value": 0.5
  }
}

上面的對象由一個字符串組成,其中"minecraft:scale"是鍵(該對象的名稱),值是另一個鍵值對("value": 0.5)。

帶列表的對象範例[編輯 | 編輯原始碼]

{
  "minecraft:health": {
    "value": 10,
    "max": 20
  }
}

帶數組的對象範例[編輯 | 編輯原始碼]

{
  "minecraft: type_family": {
    "family": [
      "monster",
      "undead"
    ]
  }
}
注意

鍵與值之間總是使用冒號分開,值之間則使用逗號分開。另外,每一個左花括號{必須用右花括號關閉},即不允許只出現一個左花括號但是沒有右花括號的情況;方括號[]、雙引號""同理。這一點非常重要!請務必記住。如果上述符號沒有封閉,將可能造成錯誤的結果,讓你的JSON代碼無法執行。

幸運的是,我們可以使用一些在線的工具網站來幫助我們檢查JSON,你可以使用[3]或如果訪問速度較慢,也可以使用國內類似的網站如[4]來檢查你JSON的合法性;你只需要複製你的JSON代碼到該頁面,然後點擊右邊的檢查按鈕(√)即可。如果檢查按鈕顯示為綠色,則說明你的JSON正常,反之,如果檢查按鈕為紅色,他將嘗試告訴你錯誤的原因。注意!這個網站只能檢查這個JSON是否有錯誤比如漏掉大括號或者中括號等,即使通過也並不能代表你的JSON能夠在遊戲裡正確的運行!我們也會檢查你在json文件中寫的注釋,注釋在json中通常是無效的,但是當你在文檔中寫了「//注釋」的時候工具也會告訴你「JSON文件無效」,記得在使用工具檢查代碼前先移除所有注釋!

創造一個行為包[編輯 | 編輯原始碼]

行為包作為Add-Ons的一部分,允許你更改一個實體的行為來達到全新的表現效果。不過目前僅支持添加或修改一個實體已經存在的行為(當然這個實體也應該是存在的)。這個簡單的教程將向您展示如何將苦力怕的爆炸行為添加到豬身上,不過在修改豬之前,我們要先讓別人知道自己是這個Add-Ons的作者。

當然,下面的步驟你也可以用在一個材質包上:

  • 將原版行為包複製下來並放到一個專門的資料夾中,命名為「教程行為包」
  • 在此尋找行為包資料夾(Windows 10版):C:\Users\帳戶名稱\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\behavior_packs
  • (安卓版)SDCard/games/com.mojang/behavior_packs
  • 創建一個名為manifest.json的JSON文件

manifest.json[編輯 | 編輯原始碼]

你可以在這個manifest找到你需要的內容。

manifest.json
{
  "header": {
    "pack_id": "e3c5a9be-1cfc-4a74-9f70-9213bab32090",
    "name": "教程数据包",
    "packs_version": "0.0.1",
    "description": "教程资源包5",
    "modules": [
      {
        "description": "未使用",
        "version": "0.0.1",
        "uuid": "14d5fb6b-ef0a-47e5-8a98-d615709c1a03",
        "type": "data"
      }
    ],
    "dependencies": [
      {
        "description": "依赖于教程材质包",
        "version": "0.0.1",
        "uuid": "891f5751-bb0e-47c6-91f0-fdc4e76949ef",
        "type": "resources"
      }
    ]
  }
}

當然,你完全可以把「manifest.json」複製進你的行為包資料夾並修改它。如果你需要讓你行為包配套材質綁定到行為包上,就要讓行為包中「dependencies」裡面的「uuid」 和材質包中modules的「uuid」相同。

注意

單從文件名稱和大致結構看來材質包和行為包的「manifest.json」似乎是完全一樣的。但是modules中的「type」決定了它是那種類型的包,行為包對應「data」,材質包對應「resources」。不過與此同時,你需要讓header和modules的UUID不同,同樣的材質包的所有UUID也不能和行為包重合。如果真的出現相同的情況,則會導致只能導入其中一個包。即使該資源包僅有manifest.json也是可以成功導入的,因此導入的成功與否並不代表資源包的內容是否正確。若manifest出現錯誤,則會出現<該資源包無法解析>的字樣,因此若沒有可用的代碼驗證工具,可上sojson.com將代碼複製進網址後進行在線格式驗證

製作一個圖標[編輯 | 編輯原始碼]

為行為包製作圖標的過程其實是和為資源包製作圖標一樣的, 可以在創建資源包中查看細節。當然,資源包和行為包圖標一樣也是可以的。

測試自己的行為包[編輯 | 編輯原始碼]

現在可以嘗試運行了!創建一個新的世界,在創建世界頁面的左邊可以看到行為包選項,點進去之後找到你導入的行為包並選中。如果有彈窗就點確定,行為包會導致這個世界不再能夠獲得成就:

CBPPicture 2.png

請記住,每當您更改行為包時,您都需要創建一個新世界,因為遊戲會在創建世界時製作行為包的副本。同樣,如果您修改世界資料夾中包含的加載項,則可以避免這種情況。請記住,如果你這樣做,你需要手動將它複製回com.mojang / behavior_packs資料夾,如果你想將這個包應用到其他世界。

設定JSON文件結構[編輯 | 編輯原始碼]

現在我們的這個包所需的東西已經準備好了,讓我們把這些json文件放進一個資料夾里。

  • 在這個名為"tutorial_behavior_pack"的資料夾里,新建一個名為「entities」的資料夾。

我們將要把所有改變實體行為的json文件放在entities資料夾內。我們開始吧。首先,把pig.json從\Vanilla_Behavior_Pack\entities\pig.json複製出來,然後,把它粘貼到entities資料夾裡面。現在pig.json已經複製完了。把它用你選擇的文本編輯器打開。

實體JSON概述[編輯 | 編輯原始碼]

在我們修改JSON代碼前,讓我們首先簡要地看看我們的實體.json怎麼建立。

Minecraft實體JSON有4個部分:

minecraft:entity[編輯 | 編輯原始碼]

這是每個生物的主要對象,接下來所有行為behavior和事件event都是這個對象中包含的值。

entity.json偽代碼
{
  "minecraft:entity": {pig} scale 11.111
    "format_version": 0.1,
    "component_groups": { component groups go here },
    "components": { components go here },
    "events": { events go here }
  }
}
注意

Minecraft中,這不是有效的json!這只是一個如何編寫一個可用實體json的示例。如果你查看一下現有的pig.json你將會注意到「component groups go here(在這填寫組件)」這一部分事實上已經寫入了真正的組件。

注意2

format_version是用來告訴Minecraft該讀取哪個版本的JSON。當我們升級JSON文件並添加新組件時,應當告訴遊戲它需要尋找對應版本。這是通過修改format_version後的版本號來完成的。

所以,請你儘可能不改變這個數字,因為當Minecraft的預設JSON更新時,你也需要更新你的JSON來適應新的變化。一旦你改變了你的JSON,你就需要改變這個版本號。你應該把官方已更新的JSON複製過來,做好你自己的修改後再覆蓋回去。

(囉嗦一堆就是告訴你別用自己的版本號,去用官方的。)

組件組(Component groups)[編輯 | 編輯原始碼]

用於定義一組行為,用於簡單地去除或增加多個行為,對於改變生物狀態十分有用(例如幼年豬與成年豬行為的轉換)。

在pig.json中含有pig_baby、pig_adult兩個複合標籤組。可以看到,只有當某個組件組當前被加入這個實體中時,這個組件組才會運行。因此,當這隻豬是幼年豬時,pig_baby這個組件組將會被加入並運行,而pig_adult則不會。

組件(Components)[編輯 | 編輯原始碼]

用於定義該種生物的共有行為。

可以看到「minecraft:identifier」和「minecraft:type_family」存在於這一部分,因為我們希望每一種豬都有這些行為。

事件(Events)[編輯 | 編輯原始碼]

事件用於加入或移除複合標籤組。事件被我們加入的組件或者Minecraft本身的代碼所觸發。

事件可以使用randomize函數在不同結果之間進行選擇(請參閱pig.json中的「minecraft:entity_spawned」)。 請注意,randomize的權重可以增加到100以上。這是因為它們不是百分比! 如果你把成年豬的比重設定為23,然後將小豬的比重設定為100,那麼你將有23/123的機會獲得成年豬和100/123的機會獲得一頭小豬。

「note:」的組件[編輯 | 編輯原始碼]

minecraft:identifier[編輯 | 編輯原始碼]

這個語句對每一個實體來說都是必要的。它告訴遊戲你的JSON對哪些實體有效。

請注意:標識符(identifier)必須被正確命名!如果亂輸你可能會遇到一些不可描述的事情或是實體大罷工。不知道/不確定如何命名?請參考原版行為包中關於那個實體的JSON文件。(在/Vanilla_Behavior_Pack/entities/)

minecraft:type_family[編輯 | 編輯原始碼]

它為實體設定族類型。族類型利用多種多樣的要素,選擇特定的實體。具體例子請參考「minecraft:rideable」和「minecraft:breedable」。

minecraft:entity_spawned[編輯 | 編輯原始碼]

當你規定的的實體生成時,這個語句會被觸發。 在pig.json中有一個隨機化函數,可以隨機地生成大豬或小豬。你可以閱讀它來加深理解。

正式開始吧![編輯 | 編輯原始碼]

添加組件[編輯 | 編輯原始碼]

現在我們已經明白了一個實體是如何被設定的;是時候魔改一下關於豬的代碼了!

找到creeper.json和pig.json文件(在Vanilla_Behavior_Pack/entities/)然後分別打開它們。你眼前應該有兩個分離的窗口(這樣便於來回切換)。

首先,讓豬找到一個受害者。你可以往pig.json的組件對象中寫入"minecraft:nearest_attackable_target"和"minecraft:target_nearby_sensor"來達到這一目的。

然後,豬要找目標。在組件對象中找到"minecraft:behavior.random_look_around"。它應該剛好在"events"小節之前。

最後,爆炸吧!從creeper.json中複製」target_nearby_sensor」和 「nearest_attackable_target」組件,粘貼到pig.json的」random_look_around」組件之後。(下邊有詳細代碼,自己看)


pig.json 片段:

...

"minecraft:behavior.random_look_around": {
  "priority": 9
},
"minecraft:behavior.nearest_attackable_target": {
  "priority": 1,
  "entity_types": [
    {
      "filters": { "other_with_families": "player" },
      "max_dist": 16
    }
  ], 
  "must_see": true
},
"minecraft:target_nearby_sensor": {
  "inside_range": 3.0,
  "outside_range": 7.0,
  "on_inside_range": {
    "event": "minecraft:start_exploding",
    "target": "self"
  },
  "on_outside_range": {
    "event": "minecraft:stop_exploding",
    "target": "self"
  }
}

...

注意下最後的括弧後沒加逗號,這是因為 "minecraft:target_nearby_sensor"是最後一個組件(話說完了,不用逗號)。

minecraft:nearest_attackable_target[編輯 | 編輯原始碼]

這個組件讓實體在你定義的限制下攻擊最近的目標。下面是一些設定的說明。

  • Priority – 優先級,設定這個組件的重要程度。優先級數越高,組件就越可能優先運行(比如兩個組件衝突時)。
  • Entity_types – 選擇你定義的實體,把它/它們設定為目標。(上邊提到過)
  • Max_dist – 最大距離。目標在這個範圍內才能被追蹤和攻擊。
  • Must_see – 必須被看見。目標必須在玩家的視野範圍內,才會被你設定的實體攻擊。

在上面的代碼中,我們選定了玩家作為目標。當玩家走進以豬為中心16塊為半徑的區域時,就會遭到追擊。

minecraft:target_nearby_sensor[編輯 | 編輯原始碼]

目標靠近傳感器。在你設定的範圍內如果有目標,這個組件就會被觸發。

  • Inside_range – 設定「內部範圍」的距離
  • Outside_range – 設定「外部範圍」的距離
  • On_inside_range – 當目標進入「內部範圍」,觸發這個函數內的語句。
  • On_outside_range – 當目標脫離「外部範圍」,觸發該函數內的語句。

上面的代碼中,我們想要利用on_inside_range和on_outside_range觸發"minecraft:start_exploding"(開始爆炸)和"minecraft:stop_exploding"(停止爆炸)。當然現在啥也不會發生,因為我們還沒添加這兩個事件呢!(下面就要講怎麼添加事件)

添加事件[編輯 | 編輯原始碼]

在pig.json中滾動到「events」對象底部並在"minecraft:on_unleash"的右花括號後添加一個逗號。我們將添加新的開始/停止爆炸事件。

從creeper.json複製"minecraft:start_exploding"和"minecraft:stop_exploding"事件,粘貼到pig.json。pig.json看起來應該像這樣(新的文本以綠色高亮)。

pig.json 片段:

...

"minecraft:on_unleash": {
  "remove": {
    "component_groups": [
      "minecraft:pig_leashed"
    ]
  }
},
"minecraft:start_exploding": {
  "remove": {
    "component_groups":[
      "minecraft:hunting"
    ]
  },
  "add": {
    "component_groups": [
      "minecraft:exploding"
    ]
  }
},
"minecraft:stop_exploding": {
  "remove": {
    "component_groups": [
      "minecraft:exploding"
    ]
  },
  "add": {
    "component_groups": [
      "minecraft:hunting"
    ]
  }
}

... 現在我們帶來了苦力怕的事件,但它需要一些清理。我們的豬不需要一個狩獵組件組。因此我們可以從start_exploding移除「remove」部分,從stop_exploding移除「add」部分。現在我們的代碼看起來像這樣:

pig.json 片段:

...

"minecraft:on_unleash": {
  "remove": {
    "component_groups": [
      "minecraft:pig_leashed"
    ]
  }
},
"minecraft:start_exploding": {
  "add": {
    "component_groups": [
      "minecraft:exploding"
    ]
  }
},
"minecraft:stop_exploding": {
  "remove": {
    "component_groups": [
      "minecraft:exploding"
    ]
  }
}

...

注意兩個事件都在添加和移除一個組件組叫做「minecraft:exploding」。我們的pig.json還沒有這個組件組呢!

添加組件組[編輯 | 編輯原始碼]

向上滾動到pig.json的頂部到「component_groups」部分。找到最後一個組件組,該組應該是pig_leashed,並在其右大括號中添加逗號。現在輸入以下內容,或者從creeper.json複製「minecraft:exploding」組件組。Pig.json現在應該如下所示(綠色新代碼):

pig.json 片段

...

  "minecraft:pig_leashed": {
    "minecraft:behavior.move_towards_restriction": {
      "priority": 2,
      "speed_multiplier": 1.0
    }
  },
  "minecraft:exploding": {
    "minecraft:explode": {
      "fuseLength": 1.5,
      "fuseLit": true,
      "power": 3,
      "causesFire": false
    }
  }
},
"components": {
  "minecraft:damage_sensor": {

...

minecraft:explode[編輯 | 編輯原始碼]

fuseLength – 這個實體在引信點燃時爆炸所需的時間(以秒為單位)

fuseLit – 添加此組件時引信是否自動點燃

power – 這決定了所造成的傷害,以及爆炸半徑的大小

causesFire – 這決定了爆炸是否會導致附近的方塊著火

讓我們在這個群組中添加一個「scale」組件,這樣我們的豬在它爆炸之前就會變大!在「explode」組件的結束大括號中添加一個逗號,並輸入以下內容(綠色的新文本):

pig.json 片段

...

  "minecraft:exploding": {
    "minecraft:explode": {
      "fuseLength": 1.5,
      "fuseLit": true,
      "power": 3,
      "causesFire": false
    },
    "minecraft:scale": {
      "value": 2      
    }
  }
},
"components": {
  "minecraft:damage_sensor": {

...

minecraft:scale[編輯 | 編輯原始碼]

Value – 實體正常規模的倍率。值為2將使比例加倍,值為.5將使比例減半等。

測試我們的行為包[編輯 | 編輯原始碼]

  • 啟動遊戲
  • 創建新世界
  • 設定世界為創造模式
  • 打開作弊
  • 單擊行為包
  • 在右側列表中找到「Tutorial Behavior Pack」並單擊它
  • 單擊創建世界
  • 從創造模式的背包中拿出豬的生怪蛋,並生成一隻豬(或者輸入/summon pig)
  • 跑離20方塊左右
  • 使用指令將模式切換為生存模式:/gamemode s
  • 沖向那隻豬
  • 如果豬像苦力怕一樣爆炸,那麼,恭喜你,你成功製作了一個行為包!

恭喜![編輯 | 編輯原始碼]

您只是簡單接觸到了行為包的可能性!!如果您希望能夠做的不僅僅是爆炸,請查看實體組件參考指南以查看可以添加到實體的其他行為和組件!您還可以隨時查看如何為示例設定Vanilla的行為包,如果您的遊戲版本為1.8以上,您還可以嘗試自定義實體,1.12以上可嘗試自定義物品和合成表以及生態域(高級)。


注意實體特有的不可更改行為[編輯 | 編輯原始碼]

目前為止,並不是實體的所有行為均可更改,在最新基岩版內,大部分實體行為已經可以進行更改了,但仍有部分行為並未放置在實體行為文件中,例如女巫扔藥水的特性就沒有寫在其行為文件里。而這些特有行為往往都是為某些生物量身定做的,例如界伏蚌的半方塊狀態以及瞬移,終界使者的躲避弓箭和水,凋零怪的召喚時蓄力以及半血召喚凋零骷髏,發射藍色凋零骷髏頭,和死後爆炸等,以及岩漿立方怪和史萊姆的死後分裂,甚至還有終界使者,烈焰使者等生物行走的粒子效果。這些行為均未記錄在行為文件中。以前的時候可能無可奈何,但是基岩版1.8更新以後,我們可以通過"runtime_identifier": "minecraft:实体ID"代碼【在1.10版本更新後,越來越多的原版特性被加入到行為包當中,包括瞬移,分裂等】(來源:MINECON Earth 2018官方展示行為包中的鴨子行為代碼),來獲取某個實體的特有行為,下面給出一個例子:

{
  "format_version": "1.8.0",
  "minecraft:entity" {
    "description": {
      "identifier": "dfsteve:ditto",
      "runtime_identifier": "minecraft:rabbit",
      "is_spawnable": true,
      "is_summonable": true,
      "is_experimental": false
    },
    ...
  },
  ...
}

其中我把一個自定義實體的運行標識符設定為"rabbit",則該自定義實體便擁有了兔子的一些特性,其中甚至包括彩蛋。此外還有其他實例,例如:

Steve upside down.jpg

自定義實體史蒂夫繼承了原版生物特性,用Grumm命名使其倒立了,即便如此,你仍不能改變一個實體原來的特性,僅能為其增加新的特性。

當然,對於我們行為包作者來說,我們希望未來這些特性會逐步加入到行為文件中供我們開發,這將對我們的開發起著重要作用,例如界伏蚌的半方塊特性以及凋零怪的血條,用途很廣泛。總之,希望官方把行為包功能做得越來越完善。

挑戰[編輯 | 編輯原始碼]

既然你已經有了一些基礎的經驗,你可以挑戰一下下列任務:

  • 使殭屍可以被玩家騎乘;
    • 再嘗試讓玩家能夠用某種東西控制殭屍的方向。(提示:可以參照豬的item_controllable以及controlled_by_player組件)
  • 使村民在持有弓時轉變為骷髏。(提示:可以參照狼的tameable組件和村民的transformation組件。)
  • 改變太陽和月亮的材質(和材質包類似)
  • 用桶對著苦力怕獲得岩漿桶
  • 使牛可以發射地獄幽靈的烈焰彈。

排查故障[編輯 | 編輯原始碼]

如果您的JSON更改似乎在遊戲中不起作用,請檢查以下內容:

  • 確保您已正確輸入所有內容。拼寫錯誤和標點丟失會導致不必要的行為!
  • 確保.json文件位於正確的資料夾中並正確命名!
    • 您應該有一個名為entities的資料夾,其中包含所有.json文件
  • 確保您的實體具有正確的標識符
    • 如果您不確定它應該是什麼,請檢查Vanilla Minecraft行為包中的.json文件
    • Vanilla的.json文件可以在/Vanilla_Behavior_Pack/entities中找到
  • 如果您的實體行為很奇怪,無AI,甚至懸浮,敲擊或者其他行為後實體會垂直升天或者下墜,並穿過方塊,這可能是代碼格式正確但與該實體衝突的結果,嘗試刪除多餘不合理行為

進階:自定義實體[編輯 | 編輯原始碼]

此板塊為製作行為包的進階功能,僅適合1.8以上的基岩版本。此板塊暫時僅做簡單概述,隨時歡迎補充。

  • 自定義實體的行為文件格式與一般的行為文件格式幾乎一樣,但生物ID以及所屬行為包需要改動,自定義實體的行為代碼的標準開頭為:
{
  "format_version": "1.8.0",
  "minecraft:entity" {
    "description": {
      "identifier": "dfsteve:ditto",
      "runtime_identifier": "minecraft:rabbit",
      "is_spawnable": true,
      "is_summonable": true,
      "is_experimental": false
    },
    ...
  },
  ...
}

其中,"dfsteve:ditto"的意思是這個實體的ID為ditto,屬於dfsteve行為包,將其改動後自定義實體就成功了(1.8版本需打開實驗性玩法)。

  • 自定義實體如果想要自然生成,需"is_summonable": true,其生成文件儲存於spawn_rules資料夾內,具體儲存格式可以在原版行為包中查看。
  • 動畫文件很重要,其隸屬於材質資源包,動畫文件主要包含以下幾個部分:
    • animation_controllers
    • animations
    • entity
    • render_controllers

具體製作方法由於是新興技術,歡迎大家補充不足,具體製作可以在遊戲內最新原版資源包中查看,(僅針對1.10以上)。

  • 總結:自定義實體需要有自定義行為以及自定義動畫和模型,貼圖,音效等,行為包擁有了自定義實體功能後,正在逐漸向著mod的方向過渡。

進階:自定義物品與合成表[編輯 | 編輯原始碼]

基岩版支持了自定義物品(1.10),方塊(1.10)和合成表(1.12),具體方法做以下概述。[編輯 | 編輯原始碼]

  • 自定義物品的大致格式,你需要創建一個items資料夾放入行為包內,接著像這樣格式,自定義你的物品。
{
  "format_version": "1.10",
  "minecraft:item": {
    "description": {
      "identifier": "morecreeper:golden_money"
    }
  }
}

你可以為物品添加諸如食物屬性等一系列特性。

  • 添加的物品還需要添加材質文件才能顯示,可在遊戲中使用/give指令獲取自定義物品。
  • 自定義合成表前,你需要創建一個名為recipes的資料夾,放入行為文件里,接著需要創建類似這樣的文件。命名為XXXX.json,其內部大概為
{
  "format_version": "1.12",
  "minecraft:recipe_shaped": {
    "description": {
    "identifier": "minecraft:acacia_boat"
    },

    "tags": [ "crafting_table" ],
    "pattern": [
      "#P#",
      "###"
    ],
    "key": {
      "P": {
        "item": "minecraft:wooden_shovel"
      },
      "#": {
        "item": "minecraft:planks",
        "data": 4
      }
    },
    "result": {
      "item": "minecraft:boat",
      "data": 4
    }
  }
}

這是船的合成配方,其中P指代的是木鏟,#指代的是木材,tags指代的是合成的場所。 本頁面暫做概述,歡迎補充。

傳播和分享[編輯 | 編輯原始碼]

現在你已經創建了一個行為包。想與朋友分享?照著下面做。

  • 定位你的行為包文件
    • Windows系統:(C:\Users\帳戶名稱\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\behavior_packs\tutorial_behavior_pack)
    • Android系統:(/storage/emulated/0/games/com.mojang/behavior_packs/)
    • iOS系統:下載一個可以壓縮文檔的軟體,如「解壓專家」,在上面可以新建,導入各種文件。首先打開safari,從wiki上點擊下載vanilla行為包,等待上面白條走完後,螢幕上出現下載好的文件,然後點擊「用其他應用打開」並保存到「我的iPhone/解壓專家/myfolders」,然後打開解壓專家,可以看到原始行為包了。魔改完後,按照格式壓縮成zip文檔並把後綴名改成.mcpack,在軟體里長按該文件,在彈出框中選擇"分享",然後選「在minecraft中打開」就可以測試了,也可以用QQ打開,分享給聯繫人。
  • 選擇已有的文件和資料夾
  • 右擊,選擇「發送到」->zip壓縮文檔
  • 把生成的文件重命名為tutorial_behavior_pack.mcpack
    • 確定文件擴展名為.mcpack
    • 可能會彈出窗口問你是否確定修改擴展名,選「是」

你現在可以給你的朋友.mcpack文件了! 當他們打開它時,Minecraft會在它還沒有運行時啟動,然後它將導入你的資源包供他們使用!

注意

您可以通過刪除resource_packs資料夾中的副本(首先進行備份!),然後打開mcpack導入它來測試是否可行。 如果它不起作用,請確保在製作.mcpack zip壓縮文檔時選擇了resource_pack的內容而不是資料夾本身。

注意2

如果您的行為包引用資源包,則mcpack也不會自動包含該資源包,即使您已將行為pack_manifest賦予該包的依賴性。如果您具有資源包依賴關係,也為資源包創建.mcpack,或創建一個世界並添加要導出的行為和資源包,然後導出該世界。導入該世界時,該世界的保存資料夾將包含該世界的behavior_packs和resource_packs的資料夾。您可以將這些包複製到本地資料夾,以便能夠在行為和資源包菜單中看到它們並將它們添加到其他世界。