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

签署人: Zhuoshi Sun IDZSupport KS

已发布:02/18/2019   最后更新时间:01/25/2019

合作者: Hao Zhang,暗星游戏

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

为什么要使用CPU粒子?

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

概述

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

Candle object in Unreal Engine environment
图1. 蜡烛预览

Entry screen of game Sinner
图2. 游戏画面表现

准备蜡烛模型

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

Candle object preview view
图3. 蜡烛模型预览

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

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

制作火苗材质

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

Adding material flame component in U I
图4. 火苗材质

制作火苗粒子

Particles added to flame component in U I
图5. 火苗粒子参数

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

set material in U I
图6. 设置材质以及屏幕对齐方式

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

Set particle distribution in details panel
图7. 设置粒子初始大小

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

Set particle rate in details panel
图8. 设置粒子产生速率

Set particle survival time in details panel
图9. 设置粒子的生存时间

添加粒子光照

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

Add the light module
图10. 添加光照模块

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

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

整合预览

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

Candle object preview
图12. 蜡烛制作预览

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

Candle object with knight preview
图13. 蜡烛关卡预览

游戏视频

如果你觉得在测试关卡的预览还不够,我们可以看一下在最终游戏中的效果对比。

素材下载

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

下载地址:https://github.com/prcdrd/CandleInSinner.

产品和性能信息

1

英特尔的编译器针对非英特尔微处理器的优化程度可能与英特尔微处理器相同(或不同)。这些优化包括 SSE2、SSE3 和 SSSE3 指令集和其他优化。对于在非英特尔制造的微处理器上进行的优化,英特尔不对相应的可用性、功能或有效性提供担保。该产品中依赖于微处理器的优化仅适用于英特尔微处理器。某些非特定于英特尔微架构的优化保留用于英特尔微处理器。关于此通知涵盖的特定指令集的更多信息,请参阅适用产品的用户指南和参考指南。

通知版本 #20110804