Niagara—— 概述

news/2024/12/21 22:27:32/

目录

一,核心组件

Systems

Emitters

Modules 

Parameters

二,创建系统或发射器向导

System向导

Emetter向导

三,Niagara VFX工作流程

创建系统

创建或添加发射器

创建或添加模块


        Niagara是最新一代VFX系统,无需程序员的帮助,即可创建丰富多彩的效果;高级用户还可自定义模块modules;Niagara系统是在UE场景中能被调用的最小单位;一个Niagara系统可以有多个发射器节点组成,发射器节点有先后顺序,继承,需求关系;Niagara是点(属性)模拟器,模拟每粒子位置、速度、颜色等属性,然后根据这些属性渲染最终效果;

一,核心组件

  • Systems
  • Emitters
  • Modules
  • Parameters

Systems

  • systems是构建效果容器,创建不同类型效果元素以实现整体效果;可修改一些系统系统级别的行为,以应用于所有效果元素;

  • 系统编辑器System Editor,时间线Timeline面板显示系统中包含的所有发射器,且用于管理这些发射器;

Emitters

        发射器用于在Niagara系统中生成粒子,控制粒子怎样生成、粒子生命周期内怎样演变、外观及行为;发射器是由各种任务模块组成的;

  • Emitter Spawn,定义发射器在CPU创建时的行为;
  • Emitter Update,定义CPU上每帧发生的发射器级别的模块,可使粒子每帧持有生成;
  • Particle Spawn,粒子生成时调用一次,定义粒子初始细节,如出生时的位置、颜色、大小等;
  • Particle Update,粒子每帧均调用,在生命周期内逐帧更改的特征,如颜色大小变化、受力情况(如gravity、curl noise、或point attraction);
  • Event Handler,在一个或多个发射器内创建生成事件,在其他发射器创建监听事件以触发生成事件;
  • Render,定义粒子显示,可设置一个或多个渲染器;

Modules 

        Modules是Niagara效果的基础block,可为每个group添加module;Modules是按顺序从上往下处理的;可将Module作为执行某些数学运算的容器;Module是使用高级着色语言HLSL,可以可视化节点构建;双击module可进入模块内部,以查看内部运算;甚至可以复制和创建自己的模块;

  

Parameters

        Parameter是一种数据的抽象化,参数类型定义参数所表示的数据;参数类型可分为四种:

  • Primitive,定义各种精度和通道宽度的数值数据;
  • Enum,定义一组固定的值,使用时指定其中一个值;
  • Struct,定义一组合并的Primitive和Enum类型;
  • Data Interfaces,定义能够从外部数据源提供数据的函数;可能来自UE其他部件的数据,或来自外部的数据;

        通过Set new or existing parameter directly可在发射器添加一个自定义参数模块Set Parameter,在点击(+),即可设置一个新参数;

二,创建系统或发射器向导

        创建Niagara发射器或系统时,出现对话框,会提供各种模板以供选择哪种类型的发射器或系统;

System向导

        在Content Browser右击,选择FX > Niagara System,出现的对话框会提供以下选项,以创建新系统:

  • New system from selected emitter(s),从被选择的发射器中创建新系统;可选择Templates(无继承)、Parent Emitters(继承)、及Behavior Examples(无继承)中的一种或多种,或它们的混合;
    • Templates,作为构建不同类型发射器的起点,无继承的发射器模板被复制到系统;
    • Parent Emitters,继承父发射器,接受来自父发射器的变化;
    • Behavior Examples,功能上如何工作的指南,每个示例显示用于实现特定功能的简化设置,无继承的发射器模板被复制到系统;
  • New system from a template or behavior example,从系统模板或行为案例中创建新系统;可选择Templates、或Behavior Examples中的一种;
  • Copy existing system,从工程项目内复制一个现有系统,会保持发射器原有的继承关系;
  • Create empty system,创建一无发射器的空系统;

Emetter向导

        在Content Browser右击,选择FX > Niagara Emitter,出现的对话框会提供以下选项,以创建新发射器:

  • New emitter,从发射器模板或行为案例中创建新发射器;可选择Templates(无继承)、Parent Emitters(继承)、及Behavior Examples(无继承)中的一种;
    • Templates,作为构建不同类型发射器的起点,无继承的发射器模板被复制到系统;
    • Parent Emitters,继承父发射器,接受来自父发射器的变化;
    • Behavior Examples,功能上如何工作的指南,每个示例显示用于实现特定功能的简化设置,无继承的发射器模板被复制到系统;
  • Copy existing emitter,从工程项目内复制一个现有发射器;
  • Create an empty emitter,创建一无模块或渲染器的空发射器;

三,Niagara VFX工作流程

  • 创建系统
  • 创建或添加发射器
  • 创建或添加模块

创建系统

        首先创建一个Niagara系统,以便在其添加一个或多个发射器,随后在设置每个发射器的属性;

创建或添加发射器

        在Niagara编辑器中,通过改变模块的属性来调整发射器,或针对效果添加新的模块;

此外,还可复制添加发射器到系统中;

创建或添加模块

        可点击发射器group后的(+) ,来添加现有的模板;Niagara中预装了大量模块,大部分情况下,无需创建自定义模块即可达到效果;

自定义模块的数据流方式如下:


http://www.ppmy.cn/news/90693.html

相关文章

Canvas实现连线动态效果

前言 这段时间一直在研究 Canvas 的动画,本文将带大家基于 Canvas 封装的 ZRender 库,了解ZRender 库中提供的 animate 绘制动画的方法,并且使用 animate 方法实现一个带有箭头流动效果的连线。 效果 ZRender 在介绍 ZRender 的动画之前&a…

震坤行平台商品详情页面数据

震坤行( (zkh.com) 商品详情页面数据通常包括以下信息: 商品名称、型号、品牌、颜色、大小等基本属性商品主图和详细图集,包括多角度展示、细节展示等商品描述,包括功能介绍、使用方法、注意事项等商品价格…

【C++进阶之路】模板

前言 假如需要你写一个交换函数,交换两个相同类型的值,这时如果交换的是int 类型的值,你可能会写一个Swap函数,其中参数是两个int类型的,假如再让你写一个double类型的呢?你可能又要写一个Swap的函数重载&…

牛顿-莱布尼茨公式

前置知识:黎曼积分的概念 牛顿-莱布尼茨公式 设 f f f在 [ a , b ] [a,b] [a,b]上可积,令 F ( x ) ∫ a x f ( t ) d t F(x)\int_a^xf(t)dt F(x)∫ax​f(t)dt 则 (1) F F F在 [ a , b ] [a,b] [a,b]上连续 (2&…

如何清理harbor的磁盘空间

博客主页:https://tomcat.blog.csdn.net 博主昵称:农民工老王 主要领域:Java、Linux、K8S 期待大家的关注💖点赞👍收藏⭐留言💬 目录 registry garbage-collectharbor自带的清理工具docker image prune -a…

基于SSM的校园办公管理系统的设计与实现(源码完整)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据你想解决的问题,今天给…

ROS学习——利用电脑相机标定

一、 安装usb-cam包和标定数据包 sudo apt-get install ros-kinetic-usb-cam sudo apt-get install ros-kinetic-camera-calibration 要把kinetic改成你自己的ros版本 。 二、启动相机 roslaunch usb_cam usb_cam-test.launch 就会出现一个界面 可以通过下面命令查看相机…

Flutter 可冻结的侧滑表格 sticky-headers-table 结合 NestedScrollView 吸顶悬浮的使用实践

最近在做flutter web的开发,需要做一个类似云文档中表格固定顶部栏和左侧栏的需求,也就是冻结列表的功能 那么在pub上呢也有不少的开源库,比如: table_sticky_headers data_table_2 如果说只是简单的表格和吸顶,那么这…