当前位置: 首页 > news >正文

【UE Niagara】实现闪电粒子效果的两种方式

目录

效果

步骤

方式一(网格体渲染器)

(1)添加网格体渲染器

(2)修改粒子显示方向

(3)添加从上到下逐渐显现的效果

(4)粒子颜色变化

方式二(条带渲染器)

(1)设置条带宽度

(2)设置粒子颜色 

(3)设置粒子生命周期

(4)添加从上到下逐渐显现效果

(5)粒子颜色变化

(6)修改粒子宽度


效果

步骤

方式一(网格体渲染器)

新建一个Niagara系统,选择空模板

这里命名为“NS_Lighting”

(1)添加网格体渲染器

打开“NS_Lighting”,先删除“Sprite渲染器”

添加“网格体渲染器”

网格体选择一个平面,勾选材质重载,显示材质为在上一篇文章(【UE 材质】闪电材质)中制作的闪电材质“M_Lighting”

添加一个“Spawn Burst Instantaneous”模块来生成一个粒子

此时在预览窗口中已经可以看到生成的粒子

如果想要修改粒子大小,只需在“Initial Particle”模块中调整Mesh大小就行

(2)修改粒子显示方向

添加一个“Initial Mesh Orientation”模块

设置“Mesh Orientation Mode”为None,“Rotation”设置为(0.25,0,0)

此时可以看到粒子绕X轴旋转了90°

(3)添加从上到下逐渐显现的效果

打开材质“M_Lighting”,通过添加如下节点就可以实现通过值改变显示范围

效果如下所示

如果想在粒子系统中通过参数修改材质显示范围,就需要将该常量节点替换为“DynamicParameter”

可以设置一下“DynamicParameter”节点的引脚名称和默认值

回到Niagara系统中,添加一个“Dynamic Material Parameters”模块,设置材质参数“Mask”为一个从0到1的曲线

此时效果如下

可以看到变化速度太慢,我们可以将粒子的生命周期由5s改为0.2s

设置每隔1s生成1次

此时效果如下

(4)粒子颜色变化

为了能够在粒子系统中修改材质颜色和不透明度,我们需要回到材质“M_Lighting”中,将之前的三维常量节点替换为“Particle Color”节点

回到Niagara系统中,在“Initial Particle”模块中,设置一下粒子的初始颜色

添加一个“Scale Color”模块,用于动态修改粒子的自发光程度

此时效果如下

方式二(条带渲染器)

新建一个Niagara系统,模板选择“Dynamic Beam”

选中“条带渲染器”,设置材质为“M_Lighting”

(1)设置条带宽度

修改一下条带宽度

(2)设置粒子颜色 

在“Initialize Particle”模块中设置一下粒子的初始颜色

设置粒子更新颜色

(3)设置粒子生命周期

粒子循环生成的周期时间设置为1s

粒子出现时长为0.2s

设置一下条带粒子结束生成时的位置

(4)添加从上到下逐渐显现效果

为了实现粒子从上到下逐渐显现的效果,需要添加一个“Dynamic Material Parameter”模块,设置参数“Mask”的值为从0到1的曲线

(5)粒子颜色变化

修改粒子的自发光程度变化

(6)修改粒子宽度

如果我们直接增大条带粒子宽度,会发现效果失真

我们需要在材质中添加如下节点

此时我们再修改条带粒子宽度即可

最终效果如下所示

http://www.lryc.cn/news/290313.html

相关文章:

  • js数组/对象的深拷贝与浅拷贝
  • HCIA学习第六天:OSPF:开放式最短路径优先协议
  • 从四个方面来解决企业在项目管理中遇到的各类问题
  • 使用代码取大量2*2像素图片各通道均值,存于Excel文件中。
  • React16源码: React中commit阶段的commitBeforeMutationLifecycles的源码实现
  • 压制二元组的总价值
  • 【习题】保存应用数据
  • Flask框架小程序后端分离开发学习笔记《5》简易服务器代码
  • “计算机视觉处理设计开发工程师”专项培训(第二期)
  • R语言学习case7:ggplot基础画图(核密度图)
  • Ubuntu18配置Docker
  • Keil/MDK平台 - 结构体成员指针注意事项
  • 一款超级好用的远程控制APP,你值得拥有
  • NumPy必知必会50例 | 18. 使用 NumPy 解决线性方程组:数学问题的实用解决方案
  • C/C++编码问题研究
  • 二刷代码随想录|Java版|回溯算法3|子集问题
  • mongodb config
  • pytorch 实现中文文本分类
  • 【MySQL】聚合函数和内置函数
  • python第五节:集合set(4)
  • 知识笔记(一百)———什么是okhttp?
  • Electron桌面应用实战:Element UI 导航栏橙色轮廓之谜与Bootstrap样式冲突解决方案
  • Nuget包缓存存放位置迁移
  • 键盘上Ins键的作用
  • css display 左右对齐 技巧
  • 【Linux操作系统】:Linux开发工具编辑器vim
  • Good Trip Codeforces Round 921 (Div. 2) 1925D
  • 推荐一款Linux、数据库、Redis、MongoDB统一管理平台!
  • TensorFlow2实战-系列教程6:迁移学习实战
  • 怎样开发adobe indesign插件,具体流程?