如何在《救赎之路》中使用CPU粒子效果

作者: Hao Zhang,暗星游戏 2019-03-20
Unreal游戏引擎4.19版本的发布,可以使得游戏可以更好地利用Intel多核心处理器的性能,以提供更精彩的游戏体验。这里以《救赎之路》这款优秀的国产独立游戏为例说明如何在游戏中使用CPU粒子效果来实现这一目标。

为什么要使用CPU粒子?

众所周知,Unreal游戏引擎中的粒子效果,既可以使用GPU来实现,又可以使用CPU来实现,并且GPU粒子可以支持的数量大大超过CPU粒子,那我们为什么还要使用CPU粒子呢?因为GPU粒子虽然在数量上有着绝对的优势,但并不能支持所有粒子特性,比如我们接着来要使用的光照模块。同时,强大的多核心CPU处理性能也可以分担一部分GPU的压力。

概述

我们在游戏的初始场景中,添加了一些蜡烛装饰物,以便更好地渲染游戏氛围。我们希望蜡烛提供的光照可以根据火苗动态调整。实现上,通过使用CPU粒子来实现蜡烛的火焰效果,通过CPU粒子的光照模块来实现动态的光照效果。

图1. 蜡烛预览

图2. 游戏画面表现

准备蜡烛模型

蜡烛的制作主要分为两部分,第一部分是蜡烛模型的制作,包括蜡烛的网格以及材质等内容,这些内容一般由美术人员通过专门的3D建模等软件来制作,这里我们直接导入制作好的内容,预览效果如下:

图3. 蜡烛模型预览

这里并没有为不同的蜡烛制作不同的模型,而是将三根不同的蜡烛制作成了一个模型以简化制作与使用。

第二部分是蜡烛火苗的制作,也是这篇文章介绍的主要内容,下面将逐步介绍它的制作过程。

制作火苗材质

制作火苗效果首先需要制作火苗材质,也就是火苗的主要视觉表现,后续它将作为粒子材质使用。火苗材质中实现了火苗燃烧时的抖动效果,通过对火苗原始纹理进行噪声纹理叠加来实现的。

图4. 火苗材质

制作火苗粒子

图5. 火苗粒子参数

接下来,我们新建一个Particle System,选择required模块,指定发射器使用的材质为之前制作的火苗材质,并设置屏幕对方方式为PSA Rectangle,以实现始终朝向摄像机的效果以及可以通过SizeX, SizeY来控制火苗的形状(长宽比例)。

图6. 设置材质以及屏幕对齐方式

然后,我们通过Initial Size模块的初始大小来设置火苗的初始大小,选取Distribution Vector Constant分布,然后只设置X, Y即可,因为粒子始终朝向摄像机,Z轴设置内容并不会生效。

图7. 设置粒子初始大小

最后,我们通过设置粒子spawn模块的产生速率以及Lifetime模块的粒子生存时间,来尽可能模拟出真实的火苗效果。

图8. 设置粒子产生速率

图9. 设置粒子的生存时间

添加粒子光照

制作好了粒子的基础效果之后,我们就可以给发射器添加Light模块,来实现火苗的光照效果了,光照会伴随着火苗的生命周期。我们可以通过Brightness Over Life来设置光照亮度根据粒子的生命周期变化情况;可以通过设置Radius Scale来设置光照半径;通过Light Exponent来设置光照的强度。

图10. 添加光照模块

此外,我们还可以通过Color Over Life模块来设置粒子颜色以及粒子光照颜色。

图11. 设置粒子以及光照颜色

整合预览

目前为止,火苗跟蜡烛的模型内容都已经准备好了,我们需要将二者结合起来,才可以很方便地将其添加到游戏场景中去。这部分内容我们通过创建Blueprint class来完成,创建时使用Actor作为父类。然后,将蜡烛模型导入,再添加制作好的火苗粒子系统。由于我们的蜡烛模型有3根儿蜡烛,我们这里需要添加3个火苗的粒子系统,并且调整好火苗与模型的相对位置。

图12. 蜡烛制作预览

现在,蜡烛装饰物的主要制作内容已经基本完成,我们可以将制作好的Actor,直接摆放到测试关卡中看一下在游戏中的效果了。

图13. 蜡烛关卡预览

素材下载

文章中制作素材由《救赎之路》开发团队暗星工作室提供,由英特尔协助整理完成。为了方便广大游戏开发者学习借鉴,暗星工作室授权英特尔提供制作素材免费下载,希望对大家能有所帮助。如果使用中遇到任何问题,也欢迎与我们取得联系。

合作者: Hao Zhang,暗星游戏
原文地址:https://software.intel.com/zh-cn/articles/use-unreal-engine-particle-effects-on-the-cpu
最新评论
暂无评论
参与评论

商务合作 查看更多

编辑推荐 查看更多