UID82897性别保密经验 EP铁粒 粒回帖0主题精华在线时间 小时注册时间2021-7-23最后登录1970-1-1
| 本帖最后由 Cat_Anchor 于 2024-11-26 19:51 编辑
前言 | 来,看着这张图片。
这是什么?这是我做的第一个拼图结构。所谓拼图结构,就是若干个结构模板拼起来的大结构。
上期,我们简单解释了拼图结构。在 1.21.50.26 中,拼图结构的数据驱动功能已经被加入,所以我会开始更新相关教程。这期,我们将讲解拼图结构的生成需要的文件。 | | 拼图结构 | 为了生成一个拼图结构,我们需要在行为包根目录的 worldgen 文件夹下创建一个 jigsaw_structures 文件夹,并在其中定义拼图结构。示例如下。- {
- "format_version": "1.21.20",
- "minecraft:jigsaw": {
- "description": {
- "identifier": "complementary:debug_hallway"
- },
- "heightmap_projection": "world_surface",
- "start_height": 10,
- "start_pool": "",
- "max_depth": 5,
- "step": "underground_structures",
- "terrain_adaptation": "none",
- "biome_filters": {}
- }
- }
复制代码 以下是这些字段的描述。
字段 | 功能描述 | 类型 | identifier | 拼图结构的ID。 | 字符串 | heightmap_projection | 用于计算相对起始高度的高度图。 | 字符串 | start_height | 拼图结构开始生成的高度,配合heightmap_projection使用。 | 整数 | start_pool | 生成拼图结构时使用的第一个模板池。 | 字符串 | max_depth | 范围是[0, 20]。拼图结构生成的最大递归深度。 | 整数 | step | 拼图结构要在哪个世界生成阶段生成。 | 字符串 | terrain_adaptation | 可选,地形应该如何适应生成的拼图结构。 | 字符串 | biome_filters | 可选,拼图结构可以生成的生物群系。此项与地物文件中的同名字段写法一致。 | 列表或对象 |
| | 参数解释 | | 生成高度 | heightmap_projection
这个字段用于确定生成拼图结构时,开始计算的高度。有两个选项,分别是ocean_floor和world_surface。假设start_height为0,填写ocean_floor时,拼图结构从海平面开始生成;填写world_surface时,拼图结构从地表开始生成。
| start_height
这个字段用于决定拼图结构生成高度的偏移量,填写正数会让拼图结构从上方生成,负数同理。例如,heightmap_projection填写ocean_floor,而且start_height填写10,拼图结构将在海平面10格以上开始生成。
| 生成规模 | max_depth
这个字段用于确定生成的拼图结构的规模。原文档给出的解释为“例如,生成一个max_depth为5的放置道路的拼图结构,在从原点开始的任何给定方向上,道路长度最多为5个结构模板”。也可以参考上期附加包教程中关于拼图结构规模的描述。
| 生成阶段 | step
这个字段用于确定拼图结构应该在哪个世界生成阶段被放置,会影响处理器对方块的判断。
生成一个存档时,首先根据种子生成石头地形,然后在底层的石头变成深板岩,在顶层的石头根据生物群系变成草方块和泥土之类的方块,给低洼的地方填上水,接下来会生成矿石、各种岩石、湖和涌泉,然后是要塞,结构和地物,最后是一些植被和生物群系特性。(这里写的生成顺序不一定正确。)
那么这个拼图结构要在哪个生成阶段被放置?这就可以用这个字段指定。所有可用值和描述如下,描述根据值的翻译填写,可能不正确。
值 | 描述 | raw_generation | 原始生成 | lakes | 湖 | local_modifications | 本地修改 | underground_structures | 地下结构 | surface_structures | 地表结构 | strongholds | 要塞 | underground_ores | 地下矿物 | underground_decoration | 地下装饰 | fluid_springs | 涌泉 | vegetal_decoration | 植被装饰 | top_layer_modification | 顶层修改 |
| 地形适应 | terrain_adaptation
这个字段用于放置拼图结构后使其适应地形,可以指定掩埋一个拼图结构,此时使用地形方块覆盖整个拼图结构。例如生成的要塞如果正好暴露在大型洞穴下,会在要塞周围生成一圈石头(石头会正常地变为矿石和其他岩石),防止要塞暴露在外。虽然要塞不是拼图结构,这个字段的功能仍然与其相似。
以下就是所有可选的处理类型。
值 | 描述 | beard_box | 向上递减 | beard_thin | 从地面向上递减 | bury | 掩埋但露出一部分 | encapsulate | 完全包围 | none | 无 |
以下是这些值的解释。(注:环境方块就是那里的地形方块,比如石头。这里的密度可能是指方块的厚度。)
bury:环境方块密度将被添加到结构的所有部分,但仅在其起始部分的 Y 边界内。用于需要整体埋在地表之下,但起始结构模板露出地面的结构,例如古迹废墟。
beard_thin:环境方块密度将被添加到结构下面,而在地面以上,方块密度将被降低。
beard_box,环境方块密度将被添加到结构的下面,并且在该结构占据的整个盒子内,方块密度会被减少。该结构所占据的整个盒子内的块密度将被减少。
encapsulate:用方块包围结构的每一部分。 | | 原版示例 | 以下是原版的古迹废墟的定义文件,作为参考。我也会在下面附上解释。
- {
- "format_version": "1.21.20",
- "minecraft:jigsaw": {
- "description": {
- "identifier": "minecraft:trail_ruins"
- },
- "biome_filters": [
- {
- "test": "has_biome_tag",
- "operator": "==",
- "value": "has_structure_trail_ruins"
- }
- ],
- "step": "underground_structures",
- "terrain_adaptation": "bury",
- "start_pool": "minecraft:trail_ruins/tower",
- "max_depth": 7,
- "start_height": -15,
- "heightmap_projection": "world_surface"
- }
- }
复制代码
这个文件定义了古迹废墟拼图结构,它会在有 has_structure_trail_ruins 标签的生物群系生成。在地下结构放置过程中,它会生成,而且使用了掩埋的地形适应选项。它的最大递归深度是 7,从世界表面向下 15 格开始生成,这就是为什么这个结构通常被埋在地下。最后,它使用 minecraft:trail_ruins/tower 这个模板池作为起始模板池,也就是生成的第一个结构从这个模板池中选择。
注意,目前只有古迹废墟和试炼密室可以用 JSON 修改,其他的拼图结构使用的是旧版拼图结构系统,不能更改。 | | 后记 | 这一期,我初步讲解了拼图结构文档。在 1.21.50 版本包中出现了 worldgen 文件夹,推测拼图结构相关文件应该放在这个文件夹里。事实证明,我的推测是正确的。如果把相关文件放在正确的文件夹中,在 1.21.50.26 版本中,拼图结构就可以正常生成了。下期介绍拼图结构集。
|
|
|