🏗️ 生成(Generation)#
#bs.generation:help
生成包含自然地貌的多样化地形和景观。
“美是数的和谐。”
—佚名
观看演示
🔧 函数#
你可以在下方找到此模块中的所有可用函数。
二维平面形状#
- #bs.generation:gen_shape_2d
以指定位置为原点遍历二维平面。每一步运行都有回调,用户可以直接在回调中操作 X 和 Y 坐标。
- 输入:
执行
at <实体>或positioned <x> <y> <z> rotated <rot>:形状的原点。函数宏:
参数
run: 每一步运行的回调命令,每一步调用中可以读取这些分数:
$generation.x bs.lambda: 这一步的x坐标。$generation.y bs.lambda: 这一步的y坐标。
width: 生成形状的宽度。
height: 生成形状的高度。
with: 形状设置
direction: 形状的生成平面(
xz,xy,或zy,默认:xz)。spacing: 生成形状中方块的间隔(默认:1)。
limit: 限制每tick最多运行多少步(默认:256)。
- 输出:
状态:回调在世界中的适当坐标处执行。
- #bs.generation:gen_simplex_shape_2d
以指定位置为原点,使用单纯形噪声算法,在二维平面上生成形状。每一步生成都有回调,可以在这个过程中自定义行为。
- 输入:
执行
at <实体>或positioned <x> <y> <z> rotated <rot>:形状的原点。函数宏:
参数
run: 每一步运行的回调命令,每一步调用中可以读取这些分数:
$generation.noise bs.lambda: 噪声值,范围在[-1000, 1000]。$generation.x bs.lambda: 这一步的x坐标。$generation.y bs.lambda: 这一步的y坐标。
width: 生成形状的宽度。
height: 生成形状的高度。
with: 形状设置
direction: 形状的生成平面(
xz,xy,或zy,默认:xz)。spacing: 生成形状中方块的间隔(默认:1)。
limit: 限制每tick最多运行多少步(默认:256)。
size: 噪声的粒度,数字越低细节越多(默认:32)。
seed: 噪声的种子,方便重现结果(默认:随机)。
- 输出:
状态:回调在世界中的适当坐标处执行。
- #bs.generation:gen_fractal_shape_2d
以指定位置为原点,使用分形噪声算法,在二维平面上生成形状。每一步生成都有回调,可以在这个过程中自定义行为。
- 输入:
执行
at <实体>或positioned <x> <y> <z> rotated <rot>:形状的原点。函数宏:
参数
run: 每一步运行的回调命令,每一步调用中可以读取这些分数:
$generation.noise bs.lambda: 噪声值,范围在[-1000, 1000]。$generation.x bs.lambda: 这一步的x坐标。$generation.y bs.lambda: 这一步的y坐标。
width: 生成形状的宽度。
height: 生成形状的高度。
with: 形状设置
direction: 形状的生成平面(
xz,xy,或zy,默认:xz)。spacing: 生成形状中方块的间隔(默认:1)。
limit: 限制每tick最多运行多少步(默认:256)。
size: 噪声的粒度,数字越低细节越多(默认:32)。
seed: 噪声的种子,方便重现结果(默认:随机)。
分数
$random.fractal_noise_2d.octaves bs.in:要组合的噪声层数(默认:2)。频程越多细节越多。persistence: 每个倍频程的贡献,更高的值细节更多(默认:0.5)。
lacunarity: 每个倍频程的频率增长,值越高频率增长越快(默认:2.0)。
- 输出:
状态:回调在世界中的适当坐标处执行。
示例:使用高度图生成3D地形。此函数采用线性方法;为了生成更有趣的地形,考虑根据不同范围对噪声值进行缩放。查看此视频以获取有关地形生成的更多见解:
# Once
function #bs.generation:gen_fractal_shape_2d {width:64,height:64,run:"function mypack:generate",with:{}}
# mypack:generate
execute store result storage bs:ctx y int .01 run scoreboard players add $random.fractal_noise_2d bs.out 1000
function mypack:fill with storage bs:ctx
# mypack:fill
$fill ~ ~ ~ ~ ~$(y) ~ stone
制作人员:Aksiome
💬 这对你有帮助吗?
欢迎在下方留下你的问题和反馈!
