- 致编者:请牢记我们的域名wiki.mcbe-dev.net!
- 致编者:欢迎加入本Wiki的官方交流QQ群或Discord服务器!
- 基岩版1.19.31现已发布!(了解更多)
- Inner Core现已支持Xbox模组联机!(了解更多)
- 如果您是第一次来到本Wiki,欢迎注册一个账户
- 点击顶部的“编辑”或“编辑源代码”按钮即可编辑当前页面
- 请知悉:在不登录时也可以编辑和新建页面,但是您当前的IP地址会记录在编辑历史中
教程:结构包
前述[编辑]
这篇内容主要介绍基岩版的跨存档导出结构方法。和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文件夹。