WorldGen - 分支节点

WorldGen - 分支节点

从位置提供者跨位置生成分支的新密度

世界生成

--已更新至第五版本!--

这是一种全新的密度资源,可以实现位置节点之间的相互连接!

此模组仍在开发中,主要用于以下项目:
https://www.curseforge.com/hytale/mods/a-natural-terrain-pack

重要提示!

1. 节点编辑器

请按照以下步骤在节点编辑器中查看分支密度:

下载并启用以下模组:
https://www.curseforge.com/hytale/mods/renode
用文本编辑器打开生物群系 JSON 文件,并将以下行修改为如下内容:

节点编辑器设置图示

2. 性能优化

3D 分支线需要大量数学运算,因此为提升性能,建议配合使用 yOverride 节点(利用更快的 2D 运算),或在需要 3D 线时使用 ySampled 节点!未来版本将持续优化性能!

路径类型

有效的路径类型包括:"ALL"、"MIN" 和 "RESTRICTED_MIN"

  • "ALL":在位置节点最大距离范围内将所有位置分支连接在一起。

ALL 模式示例

  • "MIN":在最大距离范围内,仅将分支连接到最小值的位置节点。每个位置节点的值由 PositionNoiseValues 输入决定。建议像缓存 CellValue 返回类型一样缓存输入噪声。

MIN 模式示例
此示例中,PositionNoiseValues 输入向东南方向递减。

  • "RESTRICTED_MIN":尝试连接到同时满足最小值且大于自身值的位置节点。这有助于创建更连贯的路径,同时也能产生不规则图案。如果不存在大于自身值的位置,则按 "MIN" 模式连接到最小值位置。

RESTRICTED_MIN 示例1RESTRICTED_MIN 示例2
第一个示例使用随机 PositionNoiseValues,第二个示例使用到中心距离的 PositionNoiseValues,在中心周围创建独特的环形图案。

示例配置

最常见的应用场景(如桥梁、藤蔓等每个位置生成一个随机分支)是将 PathType 设置为 "MIN",并将 SimplexNoise 输入到 PositionNoiseValues 中实现随机化!

在节点编辑器和 JSON 中的配置如下:

示例配置图示

{
  "Type": "BranchingDensity",
  "Positions": {
    "Type": "Imported",
    "Name": "ImportedPositions"
  },
  "DistanceFunction": {
    "Type": "Euclidean"
  },
  "MaxDistance": 25,
  "PositionNoiseValues": {
    "Type": "Cache",
    "Inputs": [{
       "Type": "SimplexNoise3D",
      "ScaleXZ": 5,
      "ScaleY": 5
    }]
  },
  "PathType": "MIN"
}

根据实际情况,主要需要修改的值是 "ImportedPositions" 和 "MaxDistance"。若在洞穴中使用此示例,建议将 PathType 改为 "RESTRICTED_MIN"。