UE4 Niagara粒子系统基础笔记

2023-11-09

目录

Niagara基础概念

Niagara官方建议

Niagara堆栈面板

Niagara渲染模式&材质

Niagara和蓝图

Niagara常用模块

Niagara常用技巧

Niagara ModuleScript


Niagara基础概念

  • 插件启用NiagaraNiagara Extras

  • 创建粒子发射器Niagara Emitter 粒子管理系统Niagara System

    • Fx - Niagara Emitter

    • 右键Emitter - Create Niagara System

    • 一个System 可以包含多个 Emitter,用于组合粒子效果

       

  • Niagara VFX系统共有四大核心组件

    • 系统:Niagara系统包含多个发射器,结合后可产生一种效果。例如制作烟花效果,可能需要多次爆发。为此需创建多个发射器,并放置在名为Firework的Niagara系统中

    • 发射器:Niagara发射器包含模块。其用途单一,但可重复使用。Niagara发射器的一大独特之处在于,可使用模块堆栈创建模拟,并在同一发射器中以多种方式进行渲染。继续以烟花效果为例,可创建一个发射器,其中包含用于火花的sprite渲染器,和用于火花之后流光效果的条带渲染器

    • 模块:Niagara模块是Niagara VFX的基础层级。模块将与一般数据通信、封装行为,与其他模块堆栈,并写入函数。 使用高级着色语言(HLSL)编译模块,但可用节点在图表中进行可视化编译

    • 参数:Niagara模拟中的数据的抽象表现。共有四种参数:

      • 基元(Primitive):此类参数定义不同精度和通道宽度的数值数据。

      • 枚举(Enum):此类参数定义一组固定的指定值,并取其中一个指定值

      • 结构体(Struct):此类参数定义一组基元和列举类型的组合。

      • 数据接口(Data Interfaces):此类参数定义从外部数据源中提供数据的函数。此可为UE4其他部分中的数据,或外部应用程序中的数据

  • Niagara工作流程

    1. 创建发射器:将模块放入堆栈,以便定义外观效果以及要采取的操作等。每个模块都有自己的分组,五大主要分组:

      • 发射器生成(Emitter Spawn):放置的模块定义发射器首次生成时的效果

      • 发射器更新(Emitter Update):放置的模块随时间持续影响发射器

      • 粒子生成(Particle Spawn):放置的模块定义发射器中生成粒子时的效果

      • 粒子更新(Particle Update):放置的模块用于随时间持续影响粒子

      • 事件处理(Event Handlers):你可以在一个或多个用于定义特定数据的发射器中创建"生成"事件。然后你可以在其他发射器中创建监听事件,这些发射器会根据生成的事件触发特定行为(用于发射器通信)

         

    2. 创建系统:你可以将各个单独的发射器组成一个系统,从而合力表现整体视觉效果。 有些模块是特定于系统的;还可以利用Niagara编辑器的时间轴(Timeline)面板来管理系统中所包含的发射器的计时

    3. 创建模块(新建Niagara未提供的模块,可以复用的“粒子函数” --- ModuleScript)

       

Niagara官方建议

  • 尽量使用继承复用Niagara库中已有的发射器

  • 尽量避免创建模块,可以使用Niagara的动态输入避免新建模块

  • 使用Micro表达式适用于无需新模块的一次性功能

  • 使用事件进行粒子、发射器、系统间的通信

  • 使用数据接口访问任意外部数据:包括网格体数据、音频、外部DDC信息、代码对象和文本容器

  • 使用Houdini创建的数据导出成常见格式CSV,在UE4中可导入Niagara

 

Niagara堆栈面板

  • Emitter Selection面板详解

    •  

    • 不同的组会采用颜色编码

      • 橙色(Orange) 用于发射器级模块。 发射器设置(Emitter Settings)发射器属性 项目位于本组中。 发射器生成(Emitter Spawn):首帧中发生的情况。发射器更新(Emitter Update):发射器更新时,首帧后发生的情况

      • 绿色(Green)用于粒子级模块。粒子生成(Particle Spawn):创建粒子时发生的情况。 粒子更新(Particle Update):粒子生命周期内发生的情况

      • 红色(Red) 用于渲染级别。Niagara将模拟与渲染解耦。这意味着可一次性创建模拟行为,然后将多个渲染器指定到该模拟

      • 蓝色(Blue)用于粒子系统。 系统设置(System Settings): 此分组包括用户参数(User Parameters)和系统属性(System Properties)项目。系统生成(System Spawn):创建系统时发生的情况。 系统更新(System Update):系统生命周期内发生的情况

 

Niagara渲染模式&材质

  • 四种渲染模式:SpirateLightMeshRibbon

  • Facing Mode: Sprite通常Face Camera, Mesh通常Velocity

  • Spirate渲染:每个粒子为材质的2D贴图效果,最常用模式

    • Alignment:通常Velocity Aligned

    • Facing Mode: 通常Face Camera

  • Mesh渲染: 每个粒子为3D模型+材质效果

    • Facing Mode: 通常Velocity

    • Render添加mesh render, 附mesh + override材质

    • 相关模块

      • MeshOrientation(初始旋转)

      • MeshSizeScale(mesh缩放)

  • Ribbon渲染(由粒子组成的带状,用于做各种轨迹效果

    • Render添加Ribbon render,附材质

    • 相关模块

      • Beam Emitter Setup(带状产生的起始点,常提供给蓝图控制)

        • Beam start/end位置信息需要勾上世界绝对位置选项

      • Spawn Beam

      • Spawn Burst Instantaneous

        • Spawn Count:带状按粒子划分的段数,可以make new expresion直接输表达式计算,如:

          max(length(User.TargetPos-Engine.Owner.Position)/100, 10) //根据距离划分段数

      • Initialize Ribbon(Ribbon初始化参数)

      • update beam (解决快速触发时纽带问题)

  • 粒子材质基础操作

    • 材质基础设置

      • 搜索use : 勾选use with niagara spirates/mesh/ribbon

      • surface + Translucent + two sides + unlit

      • Render添加spirate/mesh/ribbon render, 附材质

    • Niagara动态输入属性给材质

      • Dynamic Parameter 可自定义4*16个属性

        • particle update中添加Dynamic Material Parameters指定粒子的属性

        • 材质中使用Dynamic Parameter输入给材质使用

      • 已绑定好的属性:ParticleColor ParticleSize 等

  • UV控制

    • render板块里为材质提供了两套uv(0/1), 可以在材质中独立计算

    • UVTiling Ditance控制材质贴图的重复度(贴图UV的拉伸)

    • subUV (材质贴图划分单张贴图为多张子贴图,粒子系统随机读取,常用于模拟碎片溅射)

      • Particle Spawn中添加:set particles.subImageIndex, 输入uniform float随机,

        如贴图划分16个,则随机范围0-15

      • render中设置SubUV: 如贴图划分16个,则x=4,y=4

  • 粒子的朝向问题

    • 通常蓝图里击中位置获取impact normal,作为user params传给Niagara (User.TargetNormal)

      • mesh粒子:设置Initial Mesh Orientation中的Orientation Vector 为User.TargetNormal

      • spirate粒子:设置Add Velocity in Cone中Cone Axis为User.TargetNormal

      • Coordinate Space都设置成World

 

Niagara和蓝图

  • Emitter Update中MaxLoopCount设置循环次数,设0无线循环

  • 在动画中应用:Add Notify - Play Niagara Particle Effect

     

  • 在Actor蓝图中应用:Niagara粒子系统(NS可以,NE不行)可以以组件形式添加到Actor

  • activate组件或deactivate

  • 在蓝图里设置粒子属性:

    • NS的Parameters的User中添加参数(可被蓝图修改的public参数),在NE面板link input参数

       

    • 蓝图中Set Niagara Variable

       

    • 蓝图中控制贴花材质(受击血液溅射等效果触发)

      • spawn decal at lcoation : 世界位置生成

      • spawn decal attached : 生成并attach到actor

        • 结合动态材质控制贴花时间和渐变

           

Niagara常用模块

  • Emitter spawn

    • Spawn Burst Instantaneous:发射器生成个数

  • particle spawn

    • Particle Initial :初始size(x,y), lifetime, position, color, mass等

    • Add Velocity From Point / In Cone : 点初始速度 或 锥形初速度

  • particle update

    • Cravity Force : 模拟重力

    • Drag : 添加阻力

    • Vector Noise Force : 随机扰乱速度

    • Set particle.Color/Size等 : 直接设置盘particle属性

 

Niagara常用技巧

  • Attribute Spreadsheet面板:capture查看每帧每个粒子的属性变化

  • 增加一个spirate render,专门增加一个debug材质

    • 在particle update中添加Dynamic Material Parameters指定粒子的属性

    • 材质中使用Dynamic Parameter + debugScalerValues:将属性值传入材质实时渲染显示

  • Niagara面板属性值设置可以make new expression输入表达式计算

  • 双击模块名进入模块蓝图,查看模板各输出的计算过程

     

Niagara ModuleScript

  • Niagara系统的可视化编程脚本,用于创建新模块

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UE4 Niagara粒子系统基础笔记 的相关文章

  • [UE4笔记] 3DUI空间交互

    在Actor中使用widget的时候制作3DUI 如果直接选择World模式 鼠标和UI是无法产生交互的 只要勾选了红框里的选项 就可以正常交互了 老是忘记 所以写个笔记记录一下 效果 注意 如果你还是点击不到 输入控制台命令showfla
  • ue中的经纬高转xyz的问题

    在ue中 做了个地球仪 发现经纬度转地心坐标系老是出问题 后来发现 是转ue时 x y坐标要互换 也对 因为在cesium for unreal中还有一系列ecef转ue的相关函数 即下面的代码中 xy需要互换 在ue中才能正常使用 偏心率
  • UE4修改splitScreen layout方式

    UE4自身提供了分屏显示的方法 可以分成两个屏幕 也可以分成三个屏幕 但提供的分屏布局方式有限 包括两个玩家分屏布局 Vertical Horizontal 三个玩家分屏布局 Favor Top Favor Bottom 这里提供给大家一种
  • 使用UE4(UnrealEngine)创建工程

    UE4系列文章目录 文章目录 UE4系列文章目录 前言 一 步骤 1 打开UE4软件 2 新建工程 3 选择游戏类型模板 4 项目设置 运行游戏 前言 使用UE4 UnrealEngine 创建工程 我这里的ue4版本是4 27 2 一 步
  • Unity 游戏入门 九、 精灵动画 Sprite Animation

    1 Animator 为了在游戏对象上有动画 需要添加一个组件Animator 在工程窗口中 双击Robot 预制体 如图所示 添加Animator组件 2 Creating a New Controller 在工程窗口Animator文件
  • UE4/UE5 动画控制

    工程下载 https mbd pub o bread ZJ2cm5pu 蓝图控制sequence播放 倒播动画 设置开启鼠标指针 开启鼠标事件 在场景中进行过场动画制作 设置控制事件
  • Unity的C#编程教程_59_字典 Dictionary 详解及应用练习

    文章目录 C Dictionary Introduction C Dictionary Looping through Dictionary C Dictionary When to Use C Dictionary Using Dicti
  • 4,引擎初始化--(4)加载地图--2,创建world(学习资料来源于UE4游戏框架)

    加载地图时 创建完默认GameMode 就要创建world了 首先读取到package 创建world 从这里可以看到 地图是可以在初始化建立的 GameInstance是在运行起来后建立 两者是独立的 设为当前World 并设定为全局GW
  • UE4安卓打包配置(大陆内网络整顿后,Android打包时AndroidWorks无法使用的解决方法)

    由于国内进行了网络整顿 UE4官网上用CodeWorksforAndroid下载安卓打包工具配置的方法已经不能使用了 开了VPN也链接不上 这使得用UE4打包配置安卓游戏变得非常麻烦 博主捣鼓了好几天才打包成功 深感在中国学习UE4的艰难与
  • Python 设计真实反弹球算法及原理分析 (使用物理定律)

    文章简单地使用物理定律 编写程序模拟真实世界中的碰撞 在开始正式讲解之前 先看这两个代码 把球掉头 ball speed 0 ball speed 0 ball speed 1 ball speed 1 可以看到 这个代码直接把球的速度反了
  • unity中通过touch旋转、放大和缩小物体以及滑动方向的判断

    unity中通过touch旋转 放大和缩小物体以及滑动方向的判断这个需求在游戏开发中也是非常频繁 话不多说直接上代码 using System Collections using System Collections Generic usi
  • 【UE4】DataTable - 数据表

    本文使用 UE 4 26 引擎自带 ARPG 项目 从代码和编辑器两个方面记录一下 UE4 中的 DataTable 也就是数据表的用法 一 DataTable 是什么 DataTable 就是数据表 以下简称 DT 也就是二维的 M 行
  • 3D游戏编程与设计-游戏的本质hw1

    游戏的本质 游戏的分类 游戏热点 华为市场的排行榜前20游戏排名情况如下 畅销榜 人气榜 热门榜 TapTap榜单前20游戏排名情况 热玩榜 热门榜 App Store付费游戏与免费游戏排名前20情况 热点分析 游戏的分类 游戏的分类标准很
  • 【unity3D】创建TextMeshPro(TMP)中文字体(解决输入中文乱码问题)

    未来的游戏开发程序媛 现在的努力学习菜鸡 本专栏是我关于游戏开发的学习笔记 本篇是unity的TMP中文输入显示乱码的解决方式 创建 TextMeshPro 中文字体 遇到的问题描述 解决方式 Font Asset Creator 面板扩展
  • UE4 UE4 C++ Gameplay Abilities 的AttributeSet和GameplayEffect

    UE4 UE4 C Gameplay Abilities 的AttributeSet和GameplayEffect GAS参考文档 仅是个人理解 参考 AttributeSet是设置玩家属性的比如生命值 最大生命值 GameplayEffe
  • 8. UE4的盒体触发器和时间轴(制作感应门)

    一 盒体触发器 Box Trigger 1 创建一个盒体触发器 Box Trigger 拖动到地面上空 按End键 贴近地面 2 选中盒体触发器 在关卡蓝图中添加 On Actor Begin Overlap 事件 进入盒体触发器事件 a
  • GBA编程和汉化常用软件汇总

    内容来自GBA吧中的痴狂小黑 本人只是做个汇总和搬运 1 简易图片导入导出套装 PicSimpleImEx AutoPicRock Ver1 0 这两个软件是用C 写的 想要用 先装dotNetFx40 Full x86 x64 exe 然
  • 蒙特卡洛积分、重要性采样、低差异序列

    渲染公式 渲染的目标在于计算周围环境的光线有多少从表面像素点反射到相机视口中 要计算总的反射光 每个入射方向的贡献 必须将他们在半球上相加 为入射光线 与法线 的夹角 为方便计算可以使用法线向量和入射向量 单位化 的乘积表示 对于基于图像的
  • UE编辑器下简单把 excel格式的表格转换为wiki支持的表格

    觉得 wiki下 mediawiki 导入excel和word表格好麻烦 微软自带的offic插件wiki转换工具一直都安装不上 为了更新wiki内容只能手动来做了后来总结了以下手动方法 1 复制编辑好的Excel表格到记事本 用ue打开
  • 【原神游戏开发日志1】缘起

    原神游戏开发日志1 缘起 版权声明 本文为 优梦创客 原创文章 您可以自由转载 但必须加入完整的版权声明 文章内容不得删减 修改 演绎 相关学习资源见文末 大家好 最近看到原神在TGA上频频获奖 作为一个14年经验的游戏开发行业的老兵 我就

随机推荐

  • DC系列漏洞靶场-渗透测试学习复现(DC-7)

    DC 7是一个易受攻击的实验环境 最终目的是让攻击者获得root权限 并读取flag 本篇文档中用到了exim4漏洞提权和shell二次反弹 1 环境搭建 下载靶场文件 使用Vbox或者VM打开即可 攻击机使用kali 2020 2 主机发
  • 东北大学暑期acm夏令营第四天

    部分内容参考 点我 第一题 while循环或者string都可以 include
  • Achieving Realism in Open World Environments(转自80 LEVEL)

    Alireza Khajehali is a very talented 3d artist His focus is creating open world 3d environments His Artstation page is f
  • css 使图像变成灰色的技巧

    某些情况下 例如网页上如果使用合作方 logo 能使网站更显得有说服力 但是这些 logo 一般是彩色的 为了使其不过于分散网站用户的注意力 同时网页设计也应当遵循只使用一种主色的原则 所以应当将这些图像全部设为灰色 使用如下的 css 但
  • 工作三年经验总结

    一 职业规划 今年年初 职业规划方面愈发的清晰 将毕业时制定的前10年职业规划 前三步 拓展到了20年 后三步 今年5月跳槽来到网易 也标志着前10年第二步 大厂的历练 开始 二 2018计划完成情况 1 生活 1 备孕一个猪宝宝 2 攒首
  • blender工程_Blender作为3D软件有哪些缺点?

    Blender是纯粹给个人用户提供的免费且完整的三维动画3d制作软件 最多适用于小型独立工作室 缺点1 免费 开源 很多人认为免费开源是Blender最大的优势 正因为免费才来学Blender的 就像商家促销 免费 免费 大家一窝蜂过来哄抢
  • c语言库里的排序函数,C语言标准库函数qsort详解

    1 函数简介 功 能 使用快速排序例程进行排序 头文件 stdlib h 用 法 void qsort void base int nelem int width int fcmp const void const void 参数 1 待排
  • Word丢失文件怎么恢复?使用Word这些技巧你要了解

    Word是我们常用的办公软件之一 主要用来帮助我们编辑文本 但由于用法简单 很多人不知不觉中就会忽略他的一些技巧 其实 Word里面蕴含着非常多不为人知的奇技淫巧 掌握这些技巧 起码能让你使用Word的效率提高十倍 话不多说 下面我就简单列
  • STM32F10X的IAP编程详解——开发指南

    转 http blog sina com cn s blog b315f69b0102whtg html 这篇文章摘自STM32开发指南 偶然在网上翻到了一次 经典的文章和大家一起分享 IAP In Application Programm
  • js删除对象中的某一个属性

    目标对象 let obj id 001 name 张三 age 18 方法一 将对象的属性值赋值为undefined 对象的属性不变 属性值发生了变化 改变了原对象 obj name undefined console log obj gt
  • 线索二叉树,画图教你秒懂线索二叉树(线索二叉树的建立和简单操作)逻辑代码分析

    数据结构专升本学习 线索二叉树 前言 前面我们学习树和二叉树的一些基本操作 今天我们学习一个新的知识 学习一下线索二叉树 线索二叉树是由二叉链存储结构变化而来的 我们先得有个二叉链树 再做处理 就是将原来的空域链改为莫种遍历次序下该结点的前
  • mysql5.7安装及配置超详细教程_MySQL5.7的安装与配置详细操作步骤

    一 MySQL的下载 二 解压安装包 将下载的ZIP压缩包解压到任意文件夹 此处为 C mysql5 7 三 修改配置文件 将解压文件夹目录下的my default ini 文件重命名为 my ini 用文本编辑器打开并清空其中内容 添加内
  • InetAddress的用法

    InetAddress的用法 下面这个程序利用InetAddress getByName 来得到你的和百度IP地址 马克 to win 马克 java社区 防盗版实名手机尾号 73203 例 2 1 1 import java net pu
  • 【工具】网站工具转换链接推荐

    1 Json 解析及格式化验证工具 Json 在线解析及格式化验证 JSON cn 2 Properties 和 Yaml 格式互转工具 在线 yaml 转 properties 在线 properties 转 yaml ToYaml co
  • uni-app实现广告滚动条

    参数说明 circular Boolean false 是否采用衔接滑动 即播放到末尾后重新回到开头 vertical Boolean false 滑动方向是否为纵向 previous margin String 0px 前边距 可用于露出
  • 网络的基本概念

    网络 网络是由若干节点和连接这些结点的链路组成 网络中的节点可以是计算机 交换机 路由器等设备 网络设备有 交换机 路由器 集线器 传输介质有 双绞线 同轴电缆 光纤 简单的网络示意图 互联网 把多个网络连接起来就构成了互联网 目前最大的互
  • 朴素贝叶斯分类

    先上问题吧 我们统计了14天的气象数据 指标包括outlook temperature humidity windy 并已知这些天气是否打球 play 如果给出新一天的气象指标数据 sunny cool high TRUE 判断一下会不会去
  • 解决 Fedora 下部分网页不能正常打开的问题(Linux 通用)

    使用命令 ifconfig 可以查看本地的网卡信息 ifconfig a 一般以wlp开头的为无线网卡 用 ifconfig XXXX 网卡名可以单独查看某一个网卡的信息 如下所示 wlp0s20f3 flags 4163
  • 异常的笔记

    异常 很重要 有利于我们平时处理问题 异常就是代表程序出现了问题 常见的异常比如说 数组越界 除法除0 异常的体系是什么 java lang Throwable Error Exception RuntimeException 其他异常 E
  • UE4 Niagara粒子系统基础笔记

    目录 Niagara基础概念 Niagara官方建议 Niagara堆栈面板 Niagara渲染模式 材质 Niagara和蓝图 Niagara常用模块 Niagara常用技巧 Niagara ModuleScript Niagara基础概