本站文本内容除另有声明外,转载时均必须注明出处。(详情…本站文本内容除另有声明外,转载时均必须注明出处。(详情…中文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的文件夹。您可以将这些包复制到本地文件夹,以便能够在行为和资源包菜单中看到它们并将它们添加到其他世界。