从零创建群系提供器
本教程将会讲述流水线式分布类型群系提供器的制作。
如果你还没有准备好,请在开始阅读前浏览“配置开发介绍”章节。
更多创建新群系提供器的深入教程,请参阅这个非官方开发教程,流水线式群系提供器。
如果你遇到问题或需要示例,你可以在 Github 仓库中找到本教程的参考用配置包。
设置新流水线
步骤
1. 添加流水线式群系提供器
群系提供器决定并配置生物群系在世界中的生成方式。
流水线式生物群系提供器适合将生物群系平面分布。
流水线操作先生成一个初始群系样式,随连续阶段改变到最终生成样式,如此决定生成群系的分布方式。
通过你选择的编辑器打开包验证文件。
将 biome-provider-pipeline-v2
作为依赖导入,使用版本为 1.+
。
这个附属允许我们创建一个流水线式群系提供器。
id: YOUR_PACK_ID
version: 0.6.0
addons:
...
biome-provider-pipeline-v2: "1.+"
将如下所示的高亮部分加入配置,替代当前的 SINGLE
群系提供器,着手创建群系流水线。
id: YOUR_PACK_ID
...
biomes:
type: PIPELINE
resolution: 4
resolution
决定了每个群系的 像素
(即方块)大小。
提升 resolution
的值将会提升性能,但群系之间的过渡将会变得不自然。4 是介于性能与过渡之间的平衡数值。
2. 加入流水线混合器
群系流水线需要提供混合器,让群系与群系之间有自然的曲线边界,可以缓解上一个 resolution
参数导致的锯齿状边缘。
将高亮部分添加至配置,为群系流水线添加混合器。
配置中还利用了 OPEN_SIMPLEX_2
。
id: YOUR_PACK_ID
...
biomes:
type: PIPELINE
resolution: 4
blend:
amplitude: 2
sampler:
type: OPEN_SIMPLEX_2
frequency: 0.1
blend.amplitude
决定了群系边界的弯曲程度。
blend.sampler
包含了噪声取样器及其参数,能够模糊群系之间的边缘区域。
信息
OPEN_SIMPLEX_2
与其他噪声取样器的相关文档可以在这里找到。
3. 添加流水线源
群系提供器需要一个用作初始群系样式的来源。
将高亮部分添加至配置,为群系流水线添加来源。
id: YOUR_PACK_ID
...
biomes:
type: PIPELINE
resolution: 4
blend:
amplitude: 2
sampler:
type: OPEN_SIMPLEX_2
frequency: 0.1
pipeline:
source:
type: SAMPLER
sampler:
dimensions: 2
type: CONSTANT
biomes:
- land: 1
source.sampler
通过噪声采样器分布初始群系。我们将其的值设置为 CONSTANT
,因为它就是个简单的流水线源。
source_biomes
是一个流水线群系组成的权重列表,作为初始样式。
在本示例中,我们会使用表示流水线群系的临时变量,之后会通过流水线阶段替换为实际生物群系,否则地形包不会正常载入。
提示
最好将变量生物群系全部小写,便于在替换时将其与大写的生物群系分别开来。
4. 添加流水线阶段
群系流水线需要一个阶段替换初始的变量群系。
如下高亮部分的配置可将 REPLACE
阶段加入群系流水线。
id: YOUR_PACK_ID
...
biomes:
type: PIPELINE
resolution: 4
blend:
amplitude: 2
sampler:
type: OPEN_SIMPLEX_2
frequency: 0.1
pipeline:
source:
type: SAMPLER
sampler:
dimensions: 2
type: CONSTANT
biomes:
- land: 1
stages:
- type: REPLACE
sampler:
type: OPEN_SIMPLEX_2
frequency: 0.01
from: land
to:
- FIRST_BIOME: 1
- SECOND_BIOME: 1
stages
参数包含能够修改源样式的流水线阶段。
REPLACE
流水线阶段需要的参数为 sampler
、from
和 to
。
权重列表的详细讲述可以在这里找到。
提示
你可以使用多个阶段来进一步分布群系。SELF
表示 from
中的群系。
stages:
- type: REPLACE
sampler:
type: OPEN_SIMPLEX_2
frequency: 0.01
from: land
to:
- FIRST_BIOME: 1
- SECOND_BIOME: 1
- THIRD_BIOME: 1
- type: REPLACE
sampler:
type: OPEN_SIMPLEX_2
frequency: 0.01
salt: 3423
from: FIRST_BIOME
to:
- SELF: 1
- FOURTH_BIOME: 1
在上述的示例中,land
变量会在第一个 REPLACE
阶段中被替换为 FISRT_BIOME
、SCEOND_BIOME
和 THIRD_BIOME
。在接下来的 REPLACE
阶段中,FIRST_BIOME
又会被替换为 SELF
(即 FIRST_BIOME
)和 FOURTH_BIOME
.
5. 载入地形包
到了这一步,你的包就可以正常生成多个生物群系了!你可以通过开发客户端/服务器载入你刚刚编写的包。你可以通过 /packs
命令确认插件是否显示了(验证文件中指定的)包 ID,或者在服务器/客户端启动时从日志中确认。
如果你的包出于某种原因没有载入,控制台中会出现其无法载入的报错,请仔细解读并尝试自行排除问题所在,并重新尝试之前的步骤。
如果你还是没有办法载入地形包,随时欢迎带着相关报错联系我们。
信息
/pack reload
命令不能在群系配置发生改动时使用,因为世界生成时会锁定注册的生物群系。
使用命令会导致出现 试图执行命令时发生未知错误(An internal error occured while attemping to perform this command)
提示。
客户端只需要重新创建一个世界,但服务器可能需要完全重启才可以让新生物群系载入。
提示
Biome Tool 提供了可视化群系提供器的群系分布预览,更多信息可以在这里了解。
总结
在你的包成功载入之后,你就可以生成带有多个群系的世界了!
本章节的参考配置可以在 Github 的这个地方找到。
