UE5.2预览版PCG工具:基础知识(01) ; 样条线(02)
Game艺视界原创文章原创 15059 0
实名

通过了实名认证的内容创造者

发布于 2023-4-28 16:16:30

您需要 登录 才可以下载或查看,没有账号?注册

x

本期笔记分享surface sampler:表面采样器
Transform Points:点变换;移动、旋转、缩放
Density Filter:密度过滤器
DensityNoise:密度噪波
StaticMesh Spawner:网格生成器

PCG非常适合创建大量程序资产放置它的核心是 PCG 图表,你需要创建一个新的图表

7b81265ad8c5d3ebaebb42df0ba692b6.png

输入可以拆分开并且有各种各样的不同的东西,目前关于该系统的文档几乎为零。我们要做的是生成一堆点,然后使用这些点并将资产放置在点所在的位置,如果你熟悉Houdini 点云,这是本质上非常相似的概念

53d052acce511bae7675946e483161d1.png

surface sampler:表面采样器
我们要做的是我们添加一个称为表面采样器的新音符,在该表面采样器中我们插入地形,基本上它所做的是它采用地形,并且只是在网格模式中分布点你可以配置点和东西之间的间距有多大,然后我们要做的是将它拖到一个空地图中,这就像来自虚幻的初始景观地图,如果你选择了点击生成按钮,你需要真正开始生成,点击“生成Generate” 然后按“D”调试信息。生成的点默认是随机的



覆盖整个地形,但是它可能变得非常昂贵




Transform Points:点变换;移动、旋转、缩放

本质上做的是它允许你随机化或者喜欢在点上添加额外的东西,所以我们可以做的就像



查看点随机位置



想让东西粘在景观上,所以像植物、树木和岩石一样,它们基本上应该在景观上,即使我随机化,我也想把它们重新放在景观上,现在有一个叫做景观项目的注释它是景观上的项目点重置了所有的点






Density Filter:密度过滤器



现在你可以看到,如果我选择密度过滤器,它有一个下限和一个上限 将它设置为 0 和 1然后所有的点都通过,如果我将它设置为非常高的值那么只有密度值在 0.9 和 1 之间的点通过,你可以设置任意数值



DensityNoise:密度噪波
我已经过滤掉了它,然后我在它上面放了密度噪声并且它有点重新应用所有类似的随机值到密度,所以这是一种可以重新随机化数据集的方法,您还可以选择是否只想覆盖该值或使用在顶部添加的最小最大值或相乘所以嗯任何你需要



也可以修改密度甚至是负值,这样你就可以乘以或加上负值



StaticMesh Spawner:网格生成器
点插入网格生成器,我们还需要添加需要的网格;这样我们就有了三个实例我们添加的大小,我们改变了比例,你可以看到树木的比例也不同



我现在注意到的一件事他仍然与地形与景观对齐 看起来有点滑稽,来到我们变换点设置我们旋转; 我们还可以添加其它网格体使其变得丰富



【02】样条线

我们同样创建一个pcg然后我们创建一个样条线,它的工作方式是你可以给它一种你可以告诉它从哪里获取这些植物数据,默认情况下它设置为服务,因此如果您将脊柱组件添加到 PCG 卷,在我们的案例中它会使用这些组件,我认为在大多数情况下您可能希望获得所有世界演员,这意味着它将搜索所有演员并检查它们是否有spine 组件,在这种情况下,您可以按名称或类别按标签选择




我们需要创建新的蓝图




添加样条线




我们将其标记为测试线



现在这些数据应该被 PCG 收集,以便在样条曲线上获得额外的点,我们使用样条曲线采样器,已经可以看到有在样条曲线上生成一些点,它们通常具有它们占用的线段的大小或长度,所以有一些不同的设置,例如您可以使用距离,它将沿样条曲线放置点非常具体的距离,如果你增加它会减少点如果你降低它它会更多点,如果你关闭你的样条所以在样条中去闭环。然后你也可以在内部使用并且响应点在样条曲线内部,所以我会做一个二维投影并用点填充它,为了更好地看到这些点



我要把它插入一个变换点节点,这样我就可以把它们缩放得更小一些,我要确保它是一个固定的比例,我们将只缩放 0.4



我基本上在这些植物中生成了森林生物群落,所以我可以在下面有不同的斑块,我想做的是让森林逐渐向中心生长,就像边缘一样森林的重复较小的灌木和树木,中心应该是更大的树和更少的落差,我所做的是在这个植物采样器上,你可以绘制出从边界到样条线中心的距离,以便你需要的工作在脊柱采样器上使用这条曲线,它是内部密度衰减曲线,如果你添加两个点,一个在0处,一个在1处,这只是一个线性进展,你可以看到密度属性被设置为一个在最中心的边缘和零



嗯,你显然可以重新映射,在我们的例子中,有一个节点叫做密度重新映射,我会很快把它放进去,所以这基本上是开始和结束输入,然后是结束输出的开始和您可以做的就是像这样简单地反转这些值



或者通过反转这两个值直接在样条曲线上进行操作(1,0)我们现在得到相同的结果嗯嗯有很多不同的方法来重新映射东西



问题是当样条曲线变大时,这就像密度曲线一样,就像按样条曲线的大小归一化一样,所以当你使样条曲线变大时,曲线就像距离变长,我想为我做的森林与有点固定距离的边缘,第一个边缘有一个固定的固定距离,第一个是中心基本上开始的地方,如果你制作更大的森林,它们不应该比较小的森林有更长的淡入淡出,所以我使用另一个样条采样器基本上使用相同的样条,但是这个将放在样条上。所以这将在围绕样条线创建大量点,边缘周围的样条周围创建很多点(边缘到中心的距离不相等我们需要处理这个问题)



然后我们可以做的是做一个距离(Distance),所以从这个网格这样的中心点到边界点的空间距离,我要把它放在这里你可以检查距离上的设置密度,在这种情况下看起来什么都没有发生是因为最大距离。然后你可以看到它现在有一个非常像这个从0到1的距离是一千,而且无论你做的森林有多大或多小这将是完全相同的



另一件事是穿过森林的路径为此我将创建只是为了演示另一个蓝图,并且基本上做同样的事情禁用勾选并添加一个 spline对手对于这个我将启用缩放向导可视化,并将其称为路径



我们将添加样条数据和样条采样器的另一个组合但在这种情况下我们将设置样条数据的标签到路径,所以它只能在通过时拾取



刚才创建好的放入到场景中穿过我们的森林;我要处理这条样条线,本质上是沿着曲线创建点,然后从森林中的点中减去它们
我要做的第一件事是调整缩放值




所以要去掉这里的点,或者我们可以使用这个差,我们想从三个点中减去路径点并且对于为了工作,你需要将密度函数设置为二进制,我将停止预览样条线






可以看到有一条穿过森林的路径,这就是你如何使用样条线



嗯,有一些警告,所以如果我想做第二条路径,我只是要复制把它移到这里,你可以看到什么都没有发生,那是因为如果你得到了样条数据,就会有一个选择多个的复选框,所以默认情况下,它只会选择我能找到并使用的第一个演员



但如果你想拥有不止一个并且你可以看到一个从样条数据中采样样条点,我们得到它们并且类似地对于森林补丁我会说如果你想要



点击阅读原文观看视频版
坚持与您分享最有价值“干货”内容,本期分享就到这里,我们下期见!


微信公众号:Game艺视界
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表