为了增加场景的细节层次感,在PCG中可以采用纵向分层次构建内容的方法,即:先构建比较醒目的目标(本文称之为目标锚点),然后再构建目标锚点周围的细节。以在场景中摆放石头为例:先在场景中放置一些醒目的大石头(甚至是山体),然后在山体周围散落一些小的碎石。
典型的例子就是《Electric Dreams》中ForestExample场景的构建,在这个场景中使用了两种节点构建次级细节内容,分别是Import Data Table
和Create Points Grid
Import Data Table
Import Data Table
可以导入一个预定义的DataTable
,格式如下:
DataTable
数据和Point
中Property
的对应关系:
Import Data Table
节点中自带了一个预定义的Data Table,这个Data Table可以在下面的目录中找到:
“/Engine/Plugins/Experimental/PCG/Content/BP_Elements/Resources/UnitDiscPointData.uasset”
这个Data Table定义了一个圆盘(碟)形:
这个碟形自带放射状的Density渐变,很方便我们使用Density Filter
进行过滤
在ForestExample场景中使用Import Data Table
构建次级细节的例子
Create Points Grid
Create Points Grid
可以根据给定的位置大小等参数创建一个由Point组成的二维(三维)矩阵:
这个矩阵并不携带标志着位置(距离)信息的Density:
但是我们可以通过如下的逻辑,通过Distance To Density
计算出矩阵和目标锚点之间的位置关系
在ForestExample场景中使用Create Points Grid
构建次级细节的例子: