2018年9月7日

Niagara增强功能和示例概览

作者 Wyeth Johnson, Lead Technical Artist, Epic Games

虚幻引擎4.20中,我们发布了大家期待已久的VFX编辑器Niagara的测试版,该编辑器最终会取代级联。新一代VFX模拟工具极富前瞻性,使美术们无需程序员的协助就可创建视觉效果并对其进行微调。Niagara本质上是提供模块化粒子效果设计方法的编辑器,它极其灵活,使美术们可以全面控制粒子模拟和粒子渲染。
 

立即下载测试版

Niagara中包含很多令人惊叹的功能,虽然尚处于测试阶段,无法用于实际开发工作,但我们希望大家积极试用。开始之前,你需要通过插件管理器启用Niagara插件

在这篇文章的余下部分中,我们将探讨Niagara与原先的级联有何不同并将简单介绍它的功能。

Niagara究竟是什么?我们为何打造它?

总体来讲,Niagara是可全面程控的轻量级的VFX编辑器,提供基于节点的编辑和创建功能,以及便于复用和继承的模块化VFX堆栈。它支持HLSL(高级着色语言)表达式、到虚幻流程的其他方面(例如,静态和骨架网格体信息)的数据接口,并引入了Sequencer时间轴等新工具。

WhatExactlyIsNiagara_01.png

Niagara具有极高的可定制性,因为粒子发射器——粒子系统的构件——现在具有可在粒子系统中任意互联的独特属性。这使你能够通过将粒子属性与所选的特性挂钩来驱动VFX模拟的不同方面。例如,可以使用动态输入将加速度、颜色、大小或方向等粒子属性与粒子速度、两个对象间的距离或骨架网格体上骨骼的运动等任意数据相关联。通过编辑器中包含的预构建模块,我们提供对所有常用粒子属性的完全访问权,你只需自己编写新的可重复使用的模块(随后可包含在未来创建的任意数量的效果中)就可以添加新的行为。

在从级联到Niagara的过渡中,将粒子看作装有各个属性的桶将非常有帮助。每个属性——粒子的颜色、大小、速度或你创建的随机属性,例如用于表示粒子与创建它的系统的距离的属性——都是一个工具,不仅可以作为可设置的属性来使用,还可以作为用于驱动模拟或渲染的其他方面的数据来使用。首次使用Niagara编辑器的美术们需要考虑矢量、变换、单位测量值、布尔定律以及“如果发生了这种情况,那么就应该让那种情况发生”等简单的逻辑流程。幸运的是,我们提供的工具和模块具有易于理解、便于操作的用户界面,使你可以直接与所有这些变量进行对话。

在Niagara中,我们将发射器设计为保存在内容浏览器中的独立Actor。这会创建模块化工作流,而且意味着可以与你要创建的其他Niagara系统共享数据。只需制作一个满意的火花四溅效果,就可以在任意数量的发射器中重复使用它。需要稍微优化一下?修改源发射器之后,如果你愿意,那些更改可以在整个项目内传播或仅停留在要修改的单个系统的本地。总的来说,这可以让美术们更加快速地进行牵涉广泛的相关编辑,为他们省去很多麻烦。

效仿视频编辑行业,Niagara也引入了Sequencer时间轴。它充当时间顺序预览机制,使你可以以发射器相对时间为单位前后拉动。以可视化方式控制效果的节奏,设置用于生成或爆炸的关键帧,以及通过拉动来错开发射器时机。也可以调整期望的每秒帧数(FPS),方便你以微小幅度快进帧以便于通过预览视口仔细观察。

具体示例

Epic启动程序上的“虚幻引擎学习(Unreal Engine Learn)”选项卡中的Niagara内容示例(Niagara Content Examples)中包含大量Niagara模拟示例。它们分别展示了该工具的多个不同的方面,包括Sprite和网格体渲染、属性混合、表达式、碰撞、光束、网格体重现、事件等等。

SpecificExamples_01.png

使用模拟中的任意数据混合属性

如前文中所述,理解Niagara的最基本方法是将其看作属性的大容器。其中一些是粒子级别的属性(颜色、大小);一些是发射器级别的属性(粒子系统在世界场景中的位置以及它的朝向);一些是引擎本身包含的属性(自引擎启动以来经过的时间以及用户是否提供输入)。

Niagara内容示例(Niagara Content Examples)长廊中一个极为直接的示例就很好地体现出了这一点,该示例中包含的粒子在逐步远离拥有它们的发射器的中心时,其颜色和大小会不断改变。你将在各个不同的示例中观察到这种类型的控制,因为粒子朝向、速度、比例、颜色和应用到粒子本身的材质的参数都是通过来自模拟或从蓝图或游戏代码传入的相关数据动态控制的。

ArbitraryData_01.png

考虑到Niagara的设计方法,如果我们提供的预设模块无法满足你的需求,你可以创建自定义效果并进行共享。

光束

虽然在级联中光束是其自己的对象,但是在Niagara中,它们只是一种以可视化方式将粒子连接起来的方法。这增强了它们的可编程性并使它们能够受到力和模拟的任意其他方面的影响,因为光束的每个分段自身仍是模拟的点,与任何其他粒子一样。我们提供对应固定端点的静态光束预设值,也提供端点和切线会逐帧重新计算的动态光束。

DynamicBeams_01.png

Niagara的当前测试版提供可处理光束的设定模块,以展示可以哪些方式对其行为进行微调和自定义。

渲染粒子的新方法

在Niagara运行完一个模拟后,它可以使用该数据驱动多个渲染器。例如(再次涉及到光束),你可以选择只渲染组成光束的个体粒子,只渲染光束的总体条带形状或者同时渲染两者。运行一个模拟就能够多次对它进行渲染,无论从视觉效果角度还是性能优势角度与级联比较,这都是一项出色的功能。

基本碰撞事件

如果你计划构造彼此碰撞或与其他网格体碰撞的粒子,我们也提供了一些基本粒子碰撞模块,让你迅速上手。你将留意到我们将这些模块分成了不同的模块化数据块,使你能够对弹跳和静止行为等方面进行微调,更重要的是,不需要让粒子以预先确定的方式对碰撞作出反应就可将碰撞的结果公开给用户。这使你能够全面控制检测到碰撞时将会发生什么。希望粒子在碰撞时改变颜色,但是不希望它反弹?选择权在你手中。

CollisionEvents_01.png

总结

Niagara是具有极高可定制性和可编程性的强大工具,使你能够创建复杂的视觉效果,同时还具有轻量型和相对易于使用的特点。现在你可以下载测试版并抢先试用。不过请放心,我们将持续改善它,以便修复问题并使其性能更加卓越。我们希望提供一些可覆盖任何普通VFX美术的基本需求的较简单的模块,并通过数据接口将同等数量的引擎方面公开给模拟,为高级用户提供使一切趋于完美所需的全部控制功能。

启用插件后,期待你向我们提供反馈,帮助我们对它进行改进。请持续关注未来的直播,我们将继续深入介绍该工具的作用和功能。