参考 https://zhuanlan.zhihu.com/p/648208410
一,基础知识
在关卡添加PCG资产
- 拖拽添加PCG Volume(Place Actors),再在PCG Component指定PCG Graph,默认大小为(1,1,1);
- 拖拽添加PCG资产(内容浏览器),默认大小为(25,25,10);
常见设置
PCG是以Component形式存在,无论是在PCG Volume中还是在蓝图中;
- Settings
- Generate,生成图表数据对应生成物,Ctrl+左击:强制刷新;
- Clean up,清除图表数据对应生成物;
- Clear PCG Link,断开生成物与组件链接,将不在影响生成物;
调试
- Debug方块,会显示点的Density、Scale、Transform信息;
- Profiling,查看性能相关的信息;
- PCG生成依靠CPU完成(点及静态网格体的生成),注意static mesh的生成过程是在主线程完成,不能对其进行多线程处理;
- static mesh的碰撞设置非常影响Spawn Static Mesh的生成时间;
二,基础节点
Blueprint
Execute Blueprint | 执行指定的蓝图类(由UPCGBlueprintElement派生); |
Control Flow
Branch | 选择两个输出中的一个,根据特定条件执行特定分支; |
Switch | 选择多个输出中的一个(Branch多输出版本,可基于 integer, enum, or string); |
Select | 选择执行输入中的一个; |
Select (Multi) | 多选择执行输入中的一个(Select多输入版本,可基于 integer, enum, or string); |
Metadata
与属性交互的节点(无论是点上还是属性集上);
Density Noise (attribute noise) | 对density设置noise; |
Filter
基于条件或每点过滤数据的节点;
Self Prunning | 基于Bounds修剪交叉重叠; |
Density Filter | 基于点密度Density进行过滤; |
Points Ops
影响点及其特性(properties)的节点;
Transform Point | 对点进行随机变换(transform、rotation、scale); 可设置为绝对值或相对值; |
Sampler
从空间数据源(如volumes、surfaces、meshes)生成点的节点;
Surface Sampler | 对surface data采样生成点;
|
Spline Sampler | 对样条线采样生成点; 在样条线内部采样需封闭; |
Mesh Sampler | 对static mesh采样生成点,计算大; 一般结合copy points使用; 激活PCG Geometry Script Interop和Geometry Script插件; |
Volume Sampler | 类似体素,在3D网格体上采样生成点; |
Copy Points | 将源复制到目标点上; |
Spatial
在数据间创建空间关系的节点,更改其内部空间数据或检索数据;
Create Points Grid | 创建网格点; |
Get Actor Data | 获取Actor信息; |
Get Spline Data | 获取样条线数据信息; |
Union | 合并数据; |
Difference | 点相减,可处理不同源点的重叠; |
Distance | 源到目标的距离; |
Normal To Density | 将点朝向转化为点的密度; |
Bounds Modifier | 更改点的Bounds相关属性; Bounds表示点的影响范围,即debug时显示的box大小; |
Projection | 将输入投影到目标上; |
World Ray Hit Query | 在物理世界内创建射线投射的表面点; |
World Volumetric Query | 从物理世界生成体积点; |
Spawner
创建数据或在给定位置放置Actor的节点;
Static Mesh Spawner | 在点位置生成static mesh; |
Subgraph
处理子图表的节点;
Subgraph | 子图表,可递归,降低复杂度和复用; |