阿赵UE学习笔记——28、粒子系统Niagara简介

server/2024/10/19 17:34:19/

阿赵UE学习笔记目录

  大家好,我是阿赵。
  继续学习虚幻引擎的使用。这次开始学习粒子系统的使用。

一、Cascade系统

  在介绍UE5的Niagara系统之前,必须先介绍一下旧版本的粒子系统
  在UE4的时候,虚幻引擎粒子系统叫做Cascade,然而在UE5之后,粒子系统进行了改进,现在的粒子系统叫做Niagara
  虽然Cascade系统已经被Niagara取代了,但UE5还是支持Cascade系统,原因很简单,兼容旧项目。很多旧项目升级到UE5,它的特效还是用Cascade做的,如果一下子Cascade不能用,估计就会乱套。而我们学习虚幻引擎,Cascade也是有必要学习的,我们有可能去到一个还在用UE4的项目组,也需要懂得怎样去操作Cascade。
  在UE5里面创建Cascade系统,要在“其他”里面找到:
在这里插入图片描述

  如果在创建项目的时候勾选了包含StarterContent,那么在项目里面也可以找到用Cascade做的粒子特效的例子:
在这里插入图片描述

  Cascade粒子系统做的特效文件,是可以直接拖动到场景里面的:
在这里插入图片描述

  双击打开一个Cascade粒子系统文件,会看到编辑器是这个样子的:
在这里插入图片描述

  布局如上图所示。操作也比较直观,可以同时添加多个发射器在一个Cascade系统里面,然后根据需要设置每个发射器里面的堆栈组件
在这里插入图片描述

  在必须里面,会有这个发射器使用的材质球设置,还有发射器的一些属性。
  然后下面的模块是可以根据自己的需要添加和删除的:
在这里插入图片描述
在这里插入图片描述

  由于这一篇并不是主要介绍Cascade系统,所以细节可以自己去StarterContent文件夹里面找到相应的例子打开来分析。

Niagara_30">二、Niagara系统

  作为新的粒子系统Niagara在整个粒子结构上面做了一些修改。
  首先,在创建的时候,会看到Niagara的发射器和Niagara系统,是分开创建的。
在这里插入图片描述

  之前看Cascade系统的时候,会发现一个Cascade粒子系统里面,也是可以创建很多个粒子发射器,但这些发射器都是内嵌在Cascade粒子系统里面的。但Niagara粒子系统的发射器是单独的。这意味着,我们可以创建一个发射器,并且重复使用在多个不同的Niagara系统里面。

Niagara_36">1、创建Niagara发射器

  在选择了创建Niagara发射器后,会有一个选择框弹出,让我们选择怎样创建发射器:
在这里插入图片描述

  第一个选项是可以从一个现成的模板上面创建发射器:
在这里插入图片描述

  UE自带了很多Niagara发射器的模板,如果我们想创建的效果和这些模板相近,可以直接选择模板创建,然后做细节的修改。当然这些模板也可以当做学习资料,供我们分析和学习Niagara发射器应该怎样设置。
  比如我随便选择了一个模板创建,然后双击打开文件,就能看到里面已经有设置好了的发射器堆栈和各种模块。Niagara发射器的编辑界面,和Cascade也很类似,只是它这里只会出现一个发射器的编辑。
在这里插入图片描述

  第二个选项是从一个现有的Niagara发射器里面复制出来一个新的发射器。
  第三个选项,是创建一个完全空白的发射器。
  这里我就尝试从完全空白的发射器创建,看看怎样添加堆栈模块的。

Niagara_51">2、编辑Niagara发射器

  这是一个空白的Niagara发射器:
在这里插入图片描述

  可以看到,现在发射器上面是什么模块都没有,所以左上角的预览窗口也不会有粒子显示。
  点击这些阶段堆栈右边的加号,可以在对应的阶段里面添加模块:

在这里插入图片描述
  接下来我添加一些比较基础的模块,让这个粒子有东西出现:
在这里插入图片描述

1.发射器更新:

这个堆栈里面的内容,都是发射器本身的一些属性,我添加了两个模块:
Emitter State:这个是控制生命周期的
Spawn Rate:这个是控制粒子生成频率的

2.粒子生成

这个堆栈里面的内容,是通知粒子生成阶段的属性,我添加了两个模块:
Initialze Particle:初始化粒子,控制粒子创建时的颜色、位置、大小等
Shape Localtion:这是控制粒子发射器的形状

3.粒子更新

这个堆栈里面的内容,是控制粒子在生命周期里面的变化的,我添加了一个模块:
Particle State:控制粒子生命周期状态的,可以删除生命周期结束的粒子

4.渲染

这个堆栈里面的内容是控制粒子表现的,比如粒子用什么方式渲染(精灵、网格、拖尾等),用什么材质球等,这里我添加了一个模块:
Sprite渲染器:通过Sprite的方式去渲染粒子。
添加了这些基本的模块,然后在Spawn Rate里面设置一下发射频率,这时候预览窗口就看到有粒子出现了:
在这里插入图片描述

  接下来在初始化粒子模块里面调节一下粒子的一些属性,比如颜色、大小等:
在这里插入图片描述

  粒子的大小和颜色发生了改变:
在这里插入图片描述

  我想让粒子动起来,所以在粒子生成里面添加了Add Velocity,然后在粒子更新里面添加了Solve Forces and Velocity:
在这里插入图片描述

  然后设置一下Add Velocity里面的力的方向:
在这里插入图片描述
在这里插入图片描述

  现在粒子就开始往上飘动了:
在这里插入图片描述

  然后我再在粒子更新阶段加一个Gravity Force:
在这里插入图片描述

  这个时候,粒子就变成了喷漆了:
在这里插入图片描述

  如果在粒子更新里面再加一个Scale Color,然后调个渐变色,会发现变成彩色喷泉了,粒子会根据生命周期改变颜色:
在这里插入图片描述
在这里插入图片描述

Niagara_110">3、创建Niagara系统

  如果我们想将刚才做好的粒子发射器拖到场景里面用,会发现是不行的。
在这里插入图片描述

  这是因为Niagara粒子的发射器,需要嵌套在Niagara系统里面,才能在场景里面使用,所以需要创建一个Niagara系统:
在这里插入图片描述

  创建的时候同样有多个选项,可以选择从什么情况下创建:
在这里插入图片描述

  如果我们很明确想使用哪个发射器来创建,也可以直接在发射器上面鼠标右键来创建Niagara系统。
在这里插入图片描述

  如果我们创建一个空白的Niagara系统,也可以直接把发射器拖动到里面:
在这里插入图片描述
在这里插入图片描述

  默认在Niagara系统的编辑器里面,粒子是不会播放的,所以需要点击下面的三角按钮来播放:
在这里插入图片描述

  也可以拖动多个发射器进来:
在这里插入图片描述

  然后需要哪个发射器播放,可以通过打钩控制:
在这里插入图片描述

  这个时候,就可以把Niagara系统拖动到场景里面使用了:
在这里插入图片描述


http://www.ppmy.cn/server/4585.html

相关文章

ChatGPT研究论文提示词集合1-【主题选择与问题研究、文献综述】

点击下方▼▼▼▼链接直达AIPaperPass ! AIPaperPass - AI论文写作指导平台 目录 1.主题选择与问题定义 2.文献综述 3.书籍介绍 AIPaperPass智能论文写作平台 近期小编按照学术论文的流程,精心准备一套学术研究各个流程的提示词集合。总共14个步骤…

【快速上手ESP32(基于ESP-IDFVSCode)】07-I2C(附BH1750实战代码)

I2C I2C,全称Inter-Integrated Circuit,是一种用于在集成电路之间进行短距离数据传输的通信协议。它最初由Philips(现在的NXP半导体)公司于1980年代初开发,现已成为广泛应用于电子设备之间通信的标准。 I2C协议简单、灵…

stm32开发之threadx之modulex模块文件的生成脚本项目

前言 为了保证在window上运行,且体积小的问题,所以采用c语言编写生成脚本,将相关路径由json文件进行配置,使用了一个cjson库进行解析项目构建使用的是cmake 项目代码 CMakeLists文件 cmake_minimum_required(VERSION 3.27) project(txm_bat_script C…

雷电模拟器+python

import os import time from compare import compare #上一段代码我存为了compare.pyclass Ldconsole: #请根据自己软件的路径来console rF:\leidian\LDPlayer9\dnconsole.exe ld rF:\leidian\LDPlayer9\ld.exeadb rF:\leidian\LDPlayer9\adb.exe #这个类其实不用写的&…

【React】表单

受控组件 本质上其实就是将表单中的控件和视图模型(状态)进行绑定,之后都是针对状态进行操作。 一个基本的受控组件 文本框,用户输入的内容会在状态中进行管理: import React, { useState } from react;const ControlledComponent () &g…

Golang context 原理分析

1. 说在前面2. 场景分析 2.1 链式传递2.2 主动取消2.3 任务超时2.4 数据存储 3. 源码解读 3.1 一个核心数据结构 3.1.1 Context 3.2 四种具体实现 3.2.1 emptyCtx3.2.2 cancelCtx3.2.3 timerCtx3.2.4 valueCtx 3.3 六个核心方法 3.3.1 Background() && TODO()3.3.2 Wit…

【零基础学数据结构】双向链表

1.双向链表的概念 1.1头节点 1.2带头双向循环链表 注意: 哨兵位创建后,首尾连接自己 1.3双链表的初始化 // 创建节点 ListNode* ListBuyNode(ListDatatype x) {ListNode* node (ListNode*)malloc(sizeof(ListNode));if (node NULL){perror("…

VPP IKEv2隧道示例

在安装Ubuntu 22.04.04系统的虚拟机上实现。依据fd.io官网的IKEv2文档:https://s3-docs.fd.io/vpp/22.10/usecases/ikev2/2_vpp.html。 将两个VPP实例通过IPSec隧道连接。操作系统环境: userlocalhost:~$ cat /etc/issue Ubuntu 22.04.4 LTS \n \l安装V…