地物¶
地物(Feature)是Minecraft基岩版世界生成系统中的基本装饰单元,用于在世界生成过程中向已生成的地形中放置树木、矿石、水池、植物、岩石等各类自然景观元素。
概述¶
世界生成分为两个主要阶段:地形生成和地物放置。在地形生成阶段,游戏根据噪声函数和生物群系信息创建基础地形轮廓。在地物放置阶段,地物系统在基础地形上按照预定义的规则添加各类装饰元素,使世界更加丰富多样。
地物定义文件以JSON格式编写,存放在行为包的features/目录中。地物通过地物规则(Feature Rule)来控制其在世界中的放置位置和条件。
地物类型¶
基岩版提供了多种内置的地物类型:
单方块地物¶
单方块地物(Single Block Feature)在世界中放置一个单独的方块,可以指定放置条件(如只在空气中放置、只在特定方块上方放置等)。
矿石地物¶
矿石地物(Ore Feature)用于在地下生成矿石脉。矿石地物定义了矿石方块类型、脉的大小、替换目标方块等参数。
树地物¶
树地物(Tree Feature)用于生成树木。树地物定义了树干和树冠的方块类型、树干高度范围、树冠形状等参数。
散植地物¶
散植地物(Scatter Feature)用于在一定范围内随机散布其他地物。散植地物可以指定散布的密度和范围。
聚合地物¶
聚合地物(Aggregate Feature)将多个地物组合为一个,按顺序或并行放置。
序列地物¶
序列地物(Sequence Feature)按顺序依次尝试放置多个地物,如果某个地物放置失败,则中止后续放置。
加权随机地物¶
加权随机地物(Weighted Random Feature)从一组候选地物中按权重随机选择一个进行放置。
搜索地物¶
搜索地物(Search Feature)在指定范围内搜索满足条件的位置来放置地物。
结构地物¶
结构地物(Structure Feature)用于在世界中放置预制的结构(如村庄建筑、废弃矿井等)。
地物规则¶
地物规则(Feature Rule)定义了地物在世界中的放置条件和位置。地物规则文件存放在行为包的feature_rules/目录中,以JSON格式编写。
地物规则主要包含以下信息:
- 放置阶段(Placement Pass):指定地物在世界生成流程中的放置时机。
- 条件(Conditions):指定地物放置所需满足的生物群系过滤器或其他条件。
- 分布(Distribution):指定地物在区块中的散植方式,包括水平和垂直方向的坐标分布。
- 关联地物(Places Feature):指定由该规则放置的地物标识符。
放置阶段¶
地物的放置按照预定义的阶段顺序执行。同一阶段内的地物同时处理,不同阶段之间严格按序执行。主要的放置阶段包括:
first_pass:最早执行的放置阶段。before_underground_pass:地下装饰之前。underground_pass:地下装饰。surface_pass:地表装饰。after_surface_pass:地表装饰之后。final_pass:最后执行的放置阶段。