在介绍如何使用PCG之前,我们需要先了解3个重要的的概念Point、Volume、Attribute。
1.1Point
Points(点):3D空间中的坐标点,由PCG图表生成,常用于生成网格体。点包含变换、边界、颜色、密度、陡度和种子等信息。可以为它们分配由用户自定义的属性值。
举例介绍Point在程序化生成的用法:
例1 . 场景中创造一片森林
1.在地面撒点
2.过滤点
3.点替换成Mesh
把点想象成树的种子,过滤点相当于种子的存活率,最终成为森林。
例2. 利用点在样条线上的分布,制作围栏
1.绘制一条曲线并在曲线上每2米生成一个点
2. 点替换成Mesh
1.2Volume
Pcg Volume(体积)用于在特定范围内程序化地生成内容。常用于自动生成森林、城市等大规模环境。
举例介绍Volume在程序化生成的用法:
例1 .利用Volume表现植物之间的竞争关系
植物之间的竞争关系,包括对光照、水分、土壤养分等资源的争夺。当植物无法在这些竞争中获得足够的生存资源时,它们的生长会受到限制,导致生长缓慢、叶片变黄、最终枯死。
(参考:https://www.youtube.com/watch?v=7yXJRswO5Oc)
首先,植物从种子慢慢生长成大树
树木强劲的生长阻止了附近植物的生长
结果的大树的根部不会开花
利用Volume去除树下面的点
例2 . 利用Volume去除形状的点群
首先在场景中标识曲线,然后在曲线内生成点群,最后使用Difference去除重叠的部分。
1.3Attribute在程序化生成的用法
点只有位置信息,没有体积和大小。点颜色深浅代表存活的概率。点在Pcg中点包含了位置、旋转、缩放、密度、距离等等很多信息,非常有用。
举例介绍Attribute在程序化生成的用法:
比如河中的石头,靠近上方的石头大而粗糙,下方的小而圆。这里用到了距离(Distance)属性。首先 将距离的属性添加到每个点上。然后,根据距离改变资产的大小,或者改变不同的模型资产。
例1.通过距离属性剔除围栏附近的点。
利用Point Filter 将超过指定距离的点删除。
使用 PCG
要从插件设置中启用以下插件。启用插件后重新启动引擎。
创建PCG
要创建 PCG,要从内容浏览器中点击右键选择“PCG”>“PCG Graph”。
双击打卡PCG Graph,空白处点击右键输入Landscape,然后将 Landscape 项目连接到 Surface Sampler。右键单击“Surface Sampler”并启用“调试”。
将刚才创建的PCG Graph,拖放到一个带有地形的初始关卡。在PCG接触的地形中会放置一个黑白盒子。这个盒子只是一个预览,同时每个盒子都有自己的坐标值,可以在属性(Attributes)中查看。
下面将黑白的盒子替换成实际的mesh网格体。创建一个静态物体生成器(Static Mesh Spawner)在PCG Graph 中。
调整HierarchicallnstancedStaticMesh,选择树的模型。
调整树的位置和大小,使它看起来更随机一些。
添加变化点节点(TransformPoints)添加随机值来变换属性.
这样,PCG的基础就是添加各种不同的属性来改变mesh放置的信息。
PCG 允许使用来自各种物体(如地形、样条线和网格)的信息进行复杂的放置。返回搜狐,查看更多