可以和Houdini说拜拜了
文章目录
- 0. 概述
- 1. 启动插件
- 2. 工作逻辑
- 2.1 添加PCGVolume
- 2.2 创建PCGGraph
- 2.3 编写PCGGraph逻辑
- 小结
0. 概述
Unreal Engine 5.2全新推出了程序化资源生成框架即Procedural Content Generation Framework下文简称PCG, 开发者可以通过PCG程序快速生成宏大且复杂的游戏场景。以往这种程序化资源(场景)的生成需要借助Houdini来实现,有了PCG,真的可以和Houdini说拜拜了!
优点:
- 简单
- 灵活
- 高效
- 高度可复用
相对于Houdini的程序化生成技术:
- 原生集成度更好
- 对UE5用户更友好
- 可调试性更好
- 免费
1. 启动插件
PCG目前以插件形式存在,需要在Plugins中启动Procedural Content Generation Framework,它下面的Procedural Content Generation Framework Geometry Script Interop是PCG和Geometry Script 交互的插件,可以根据项目需要启动。
2. 工作逻辑
2.1 添加PCGVolume
PCGVolume是PCG范围限定体积,PCG会在PCGVolume的范围内进行采样,从而作为程序化资源生成的输入参数
2.2 创建PCGGraph
在PCGVolume的PCGComonent组件上添加/创建PCGGraph(PCG蓝图),就好像在Character的Mesh组件上添加动画蓝图一样。PCGGraph就是PCG逻辑的核心。
2.3 编写PCGGraph逻辑
以下是一个简单的PCGGraph,它揭示了PCGGraph最核心的工作逻辑
- Input: 获取PCGVolume范围内的场景信息,并输入给PCGGraph。
- Surface Sampler: 筛取PCGVolume范围指定的信息。
- Static Mesh Spawner: 场景加工或装饰。
- Output: 结果输出。
我们可以看到Output节点可以连接多个输入源,这些输入源可以视为PCGGraph中不同的层(Layer)。
- Surface Sampler
Surface Sampler节点在PCGGraph中非常常用,它负责对区域内的表面进行采样并生成随机点。本例中的3个Surface Sampler节点,我分别设置了不同的密度和随机种子。
和Surface Sampler功能相类似的还有如下Sampler(采样)系列节点:
- Static Mesh Spawner
Static Mesh Spawner节点顾名思义就是生成静态Mesh了,它的意义很明了并且有很多参数可供调节。本例中的3个Static Mesh Spawner节点,我分别添加了1个(实际每层可以添加若干个)不同的几何体。
和Static Mesh Spawnerr功能相类似的还有如下Spawner(生成)系列节点:
此时,运行程序我们就可以看到到,高低不平的场景地面上,随机散落了3中不同形状的几何体。
小结
本文仅演示了一个 PCG简单范例,通过简单的设定和逻辑,便轻松实现了一些游戏元素在场景中的自由摆放,相信大家对PCG的“卧槽感”已经油然而生,后续文章中,我会继续介绍这个强大的工具。