可以和Houdini说拜拜了

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最核心的工作逻辑

在这里插入图片描述

  1. Input: 获取PCGVolume范围内的场景信息,并输入给PCGGraph。
  2. Surface Sampler: 筛取PCGVolume范围指定的信息。
  3. Static Mesh Spawner: 场景加工或装饰。
  4. 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的“卧槽感”已经油然而生,后续文章中,我会继续介绍这个强大的工具。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐