本站文本內容除另有聲明外,轉載時均必須註明出處。(詳情…本站文本內容除另有聲明外,轉載時均必須註明出處。(詳情…中文Minecraft Wiki是完全公開的。請勇於擴充與修正內容!中文Minecraft Wiki是完全公開的。請勇於擴充與修正內容!Minecraft中文Wiki微博正在更新!或許有興趣去看看Minecraft中文Wiki微博正在更新!或許有興趣去看看想與其他用戶進行編輯上的溝通?社區專頁正是為此創建的。想與其他用戶進行編輯上的溝通?社區專頁正是為此創建的。翻譯或創建頁面之前,不妨看看譯名標準化Wiki條例頁面。翻譯或創建頁面之前,不妨看看譯名標準化Wiki條例頁面。需要管理員的協助?在管理員告示板留言也許可以幫到您。需要管理員的協助?在管理員告示板留言也許可以幫到您。
各位用戶:為了讓我們能更好了解您的需求,提供更優良的服務,請幫助我們填寫一份問卷。編者問卷讀者問卷(需要花費7分鐘左右)

Hi Gamepedia users and contributors! Please complete this survey to help us learn how to better meet your needs in the future. We have one for editors and readers. This should only take about 7 minutes!

教程/製作行為包

從 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文件管理器還具備了代碼糾錯功能,但美中不足的是其編寫代碼系統很不好用,僅推薦作為文件管理器。推薦使用MT管理器,功能比較齊全。

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的資料夾。您可以將這些包複製到本地資料夾,以便能夠在行為和資源包菜單中看到它們並將它們添加到其他世界。