mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5
712 字
2 分钟
浅析Minecraft地形生成(零)
2023-06-26

自从1.16以后,Minecraft开始允许数据包开发者通过json文件的方式,向Minecraft中注册和添加新的维度和生物群系。而在1.18更新后,自定义世界的功能变得更为强大,当然也更加复杂。本系列文章旨在以Wiki资料为基础的介绍中,结合作者本人的开发经验和研究,对Minecraft地形生成进行浅析,以帮助更多的开发者学习和使用自定义世界的功能。

我们不会满篇幅地引用源码或者介绍一些深入的知识,只会用数据包本身特有的方式,即json文件作为例子,来介绍如何使用数据包对世界生成进行设计和自定义。

总目录#

零 —— 序

引子#

在开始详细介绍前,我们需要先简要了解一下一个Minecraft世界是怎样被数据包控制的。事实上,你可以从数据包的文件夹结构中略知一二。如果你熟悉数据包的话,你应该能知道数据包的一个命名空间下可以有很多注册项,其中我们最需要关注的项则是dimensiondimension_type,以及worldgen下的各种内容。前两个决定了Minecraft中的维度,而后者则决定了这个世界(维度)应该怎样生成。而在worldgen文件夹下,你又能看到一连串令人头晕目眩的各种文件夹,不过别着急,我们将会慢慢介绍它们。根据它们的功能,我们将这些文件夹分类列在了下方。

  • 维度生成

    • dimension

    • dimension_type

  • 地形生成

    • noise

    • noise_settings

    • density_function

    • configured_carver

  • 生物群系

    • biome
  • 地物

    • configured_feature

    • placed_feature

  • 结构生成

    • processor_list

    • structure

    • structure_set

    • template_pool

在写本文的时候,正好是Minecraft 1.20.1出来的时候,所以文章的一切都会以1.20.1的格式为准。

基础准备#

首先,要使用数据包编辑世界,你首先需要了解数据包的基本框架和结构。数据包的世界生成并不需要任何命令的参与,因此不用担心命令方面的基础问题。其次,你还应当了解json文件的编写方式,以及学会阅读minecraft wiki中的json的表示格式。由于世界生成的json一般又臭又长,因此建议使用vscode中的datapack-helper plus插件进行自动补全以及格式纠正。同时,你也可以使用misode制作的在线编辑器数据包生成器 - Minecraft 1.18, 1.19, 1.20 (misode.github.io),它可以实时预览很多json文件的结果,同时也提供了大量的原版预设可供参考。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

浅析Minecraft地形生成(零)
https://alumopper.top/posts/world-generate0/
作者
Alumopper
发布于
2023-06-26
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时