操作前提:本指南会用到Niagara插件资源中的默认条带材质(DefaultRibbonMaterial)。但是,假如你已经完成了创建网格体粒子效果教程,你可以使用其中的M_Balloon材质。
在Niagara中,你需要结合使用条带渲染器以及特定模块(该模块用于指示条带为光束)。在本指南中,你将学习如何创建能够模拟光照的光束。
创建系统和发射器
在Niagara中,发射器和系统相互独立。目前推荐的工作流程是从现有发射器或发射器模板创建系统。
-
首先,在内容浏览器(Content Browser)中右键点击,创建Niagara系统(Niagara System),并选择 FX > Niagara系统(Niagara System)。之后将显示Niagara发射器(Niagara Emitter)向导。
点击查看大图。
-
选择 从选定发射器新建系统(New system from selected emitters)。然后点击 下一步(Next)。
点击查看大图。
-
在 模板(Templates) 中,选择 静态光束(Static Beam)。
点击查看大图。
-
点击 加号 图标(+),将发射器添加到发射器列表中,以便添加到系统中。然后点击 完成(Finish)。
点击查看大图。
-
将新系统命名为 BeamSystem。双击它,以便在Niagara编辑器(Niagara Editor)中打开。
-
新系统中发射器实例的默认名称为 StaticBeam,但是你可以重命名。在系统概述中点击发射器实例的名称,该字段将变为可编辑。将发射器命名为 FX_Beam。
点击查看大图。
更改渲染器设置
渲染组 位于堆栈的最后,但是你需更改一些内容,以便效果按照预期的方式显示。
-
在 系统概述(System Overview) 中,点击 渲染器(Render),在 选择(Selection) 面板中将其打开。
点击查看大图。
此系统中的发射器模板已经包含条带渲染器。在本指南的后面部分,你将添加特定模块,以便将指示条带作为光束使用。
- 用于此渲染器的材质为 DefaultRibbonMaterial。如果要使用其他材质,你可以点击下拉列表搜索并选择该材质。
-
如果你滚动到 条带渲染(Ribbon Rendering) 分段中的设置,你会找到一个名为 曲面细分(Tessellation) 的分段。在该分段中,将 曲线张力(Curve Tension) 设置为 0.5。这将影响光照效果的尖锐程度。你可以提高或降低该值,改变效果。
点击查看大图。
-
将 **BeamSystem 拖到关卡中。
当你制作粒子效果时,最好将系统拖到关卡中。这样你可以查看每项更改并在上下文中编辑。你对系统所做的任何更改都会自动传播到关卡中的系统实例。
编辑发射器更新组设置
首先,你在 发射器更新(Emitter Update) 组中编辑模块。这些是应用于发射器并更新每帧的行为。
-
在 系统概述(System Overview) 中,点击 发射器更新(Emitter Update) 组,在 选择(Selection) 面板中将其打开。
点击查看大图。
-
静态光束 发射器模板默认将 生命周期模式(Life Cycle Mode) 设置为 自身(Self) 。这意味着直接设置发射器的生命周期和循环行为,而不是由系统处理。对于此效果,你可以向值添加浮点,为 循环时长(Loop Duration) 添加一些随机性。点击 循环时长(Loop Duration) 下拉箭头,然后选择 动态输入(Dynamic Inputs)> 随机范围浮点(Random Ranged Float)。此操作将在循环时长(Loop Duration)中添加 最小值(Minimum) 和 最大值(Maximum) 字段。
点击查看大图。
-
将循环时长(Loop Duration)的最小值(Minimum)和最大值(Maximum)设置如下。
点击查看大图。
设置 数值 最小值(Minimum) 0.1 最大值(Maximum) 0.2 -
指示此效果使用光束的第一个模块是 光束发射器设置(Beam Emitter Setup) 模块。由于你从静态光束模板开始,因此已经包含此模块。对于 光束开始(Beam Start) 和 光束结束(Beam End),保留默认值。选中复选框,启用 绝对开始(Absolute Start) 和 绝对结束(Absolute End)。光束的起始位置由场景中Niagara系统的位置决定。结束位置由“光束结束位置(Beam End)”中设置的静态坐标定义。
点击查看大图。
-
要为效果添加弧线或曲线,请选中复选框,启用 使用光束切线(Use Beam Tangents)。系统显示 光束开始切线(Beam Start Tangent) 和 光束结束切线(Beam End Tangent) 设置。点击 光束开始切线(Beam Start Tangent) 的 重置为默认值(Reset to Default) (黄色小箭头)图标,将值更改为 矢量乘以浮点(Multiply Vector by Float)。光束结束切线(Beam End Tangent) 已设置为矢量乘以浮点(Multiply Vector by Float)。将光束开始切线(Beam Start Tangent) 矢量(Vector) 和 浮点(Float) 设置为以下值。
点击查看大图。
设置 数值 矢量(Vector) X:0,Y:0,Z:1 浮点(Float) 0.5 -
将光束结束切线(Beam End Tangent)矢量(Vector)和浮点(Float)设置为以下值。
点击查看大图。
设置 数值 矢量(Vector) X:0,Y:0,Z:1 浮点(Float) 1 -
在 即时生成迸发(Spawn Burst Instantaneous) 模块中,将 生成计数(Spawn Count) 值设置为 35。
点击查看大图。
编辑粒子生成组设置
然后,你将在 粒子生成(Particle Spawn) 组中编辑模块。此为首次生成粒子时应用于粒子的行为。
-
在 系统概述(System Overview) 中,点击 粒子生成(Particle Spawn) 组,在 选择(Selection) 面板中将其打开。
点击查看大图。
-
在 初始化粒子(Initialize Particle) 模块中,找到 生命周期(Lifetime) 参数。生命周期参数确定粒子消失之前的显示时长。将 生命周期(Lifetime) 设置为 0.2。此短生命周期将导致光束闪烁,从而使光照显得更真实。
点击查看大图。
- 生成光束(Spawn Beam) 模块是第二个光束特定模块。你无需为此模块设置任何内容,只需保持当前状态。
-
第三个光束特定模块为 光束宽度(Beam Width) 模块。光束宽度(Beam Width)设置为 曲线中浮点(Float from Curve)。点击第二个曲线键可显示时间(Time)和值(Value)字段。将 时间(Time) 设置为 0.5,将 值(Value) 设置为 1。要使形状看起来合适,请右键点击每个曲线键,并确保将其设置为 自动(Auto)。
点击查看大图。
- 在曲线图下方,你可以看到一些其他设置。将 缩放曲线(Scale Curve) 设置为 5。
编辑粒子更新组设置
现在,你将在 粒子更新(Particle Update) 组中编辑模块。此类行为将应用于发射器的粒子并更新每个帧。
-
在 系统概述(System Overview) 中,点击 粒子更新(Particle Update) 组,在 选择(Selection) 面板中将其打开。
点击查看大图。
-
对于 颜色(Color) 模块,将 RGB 值设置如下。
点击查看大图。
-
要断开曲线并使光束像闪电一样裂开跳跃,请点击 粒子更新(Particle Update) 的 加号 (+)图标并选择 位置(Location)> 抖动位置(Jitter Position),添加 抖动位置(Jitter Position) 模块。
点击查看大图。
-
为了使 抖动位置(Jitter Position) 模块正常运行,你需要更新光束(Update Beam)模块。点击 粒子更新(Particle Update) 的 加号 (+)图标并选择 光束(Beam)> 更新光束(Update Beam),添加 更新光束(Update Beam) 模块。在 系统概述(System Overview)中,将 更新光束(Update Beam) 模块拖到堆栈中 抖动位置(Jitter Position) 模块上方的位置。
点击查看大图。
-
现在回到 抖动位置(Jitter Position) 模块。抖动量(Jitter Amount) 的默认设置为 10,抖动延迟(Jitter Delay) 的默认设置为 0.25。但是,如果将 抖动延迟(Jitter Delay) 减小到 0.1,你将开始看到光束弯曲并呈角度锯齿状运动。如果值为 0.1,你仍然可以看到锯齿状光束下的原始弧形,这并非理想效果。要修复此问题,你必须将抖动延迟(Jitter Delay)设置为负数。将 抖动延迟(Jitter Delay) 设置为 -0.01。将 抖动量(Jitter Amount) 设置为 15。
点击查看大图。
最终结果
恭喜!你已经创建了模拟光照的光束效果。在下面的视频中,你可以看到光照光束效果的示例。你可以将光束用于各种视觉效果:激光、武器射线、特斯拉线圈等。