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

news2024/11/26 12:46:03

阿赵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系统

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

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

1、创建Niagara发射器

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

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

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

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

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,然后调个渐变色,会发现变成彩色喷泉了,粒子会根据生命周期改变颜色:
在这里插入图片描述
在这里插入图片描述

3、创建Niagara系统

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

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1600022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu 使用conda 创建虚拟环境总是报HTTP错误,转换多个镜像源之后仍报错

最近在使用Ubuntu conda创建虚拟环境时,总是报Http错误,如下图所示: 开始,我以为是conda 镜像源的问题,但是尝试了好几个镜像源都不行,还是报各种各样的HTTP错误。后来查阅很多,总算解决了。解…

数学建模--深入剖析线性规划(模型全方位解读+代码分析)

1.简介 (1)线性规划三要素 (2)模型适用赛题 2.典例讲解 (1)问题分析 目标函数是净收益尽可能大,风险尽可能小; 约束条件是交易费的分段函数,以及每一笔投资都是非负数&am…

【精读文献】Scientific data|2017-2021年中国10米玉米农田变化制图

论文名称:Mapping annual 10-m maize cropland changes in China during 2017–2021 第一作者及通讯作者:Xingang Li, Ying Qu 第一作者单位及通讯作者单位:北京师范大学地理学部 文章发表期刊:《Scientific data》&#xff08…

hot100 -- 链表(中)

不要觉得力扣核心代码模式麻烦,它确实比不上ACM模式舒服,可以自己处理输入输出 只是你对 链表 和 return 的理解不到位 👂 ▶ 屿前世 (163.com) 👂 ▶ see you tomorrow (163.com) 目录 🎂两数相加 🚩删…

android不同版本(支持>10)获取当前连接的wifi名称

1、AndroidManifest.xml 配置权限 <uses-permission android:name"android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name"android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name&q…

Rust腐蚀服务器清档多教程

Rust腐蚀服务器清档多教程 大家好我是艾西&#xff0c;一个做服务器租用的网络架构师。上期教了大家怎么搭建服务器以及安装插件等那么随着大家自己架设服或是玩耍的时间肯定会有小伙伴想要去新增开区数量或是把原本的服务器进行一些调整等&#xff0c;那么今天主要聊的就是怎…

Cohere Command R+:企业级可扩展大模型

Command R 是一种最先进的 RAG 优化模型&#xff0c;旨在处理企业级工作负载&#xff0c;并首先在 Microsoft Azure 上提供 今天&#xff0c;我们推出了 Command R&#xff0c;这是我们最强大、可扩展的大型语言模型 &#xff08;LLM&#xff09;&#xff0c;专为在实际企业用…

tailwindcss在manoca在线编辑智能感知

推荐一下monaco-tailwindcss库&#xff0c;它实现在monaco-editor网页在线编辑器中对tailwindcss的智能感知提示&#xff0c;在利用tailwindcss实现html效果布局。非常的方便。 生成CSS

Maven POM元素解析(二)

一、parent <parent>元素包含定位此项目将从中继承的父项目所需的信息。注意&#xff1a;此元素的子元素不是插值的&#xff0c;必须作为文字值给定。 ElementTypeDescriptiongroupIdString要从中继承的父项目的组id。artifactIdString要从中继承的父项目的项目id。ver…

python零基础入门笔记【源源老师】

1. print() 输出 &#xff08;1&#xff09;认识英文单词 print: 输出&#xff08;2&#xff09;print() 的作用 print()&#xff1a;用于在控制台上输出你想要的内容。 &#xff08;3&#xff09;代码演示 举例1&#xff1a; 【注意&#xff1a;】用双引号包裹的&#xff0…

java创建线程池的方法

简介 线程池是一种用于管理和重用线程的机制&#xff0c;它可以有效地管理线程的创建和销毁&#xff0c;减少线程创建和销毁的开销&#xff0c;并且能够控制并发线程数量&#xff0c;避免资源耗尽和系统过载。Java 提供了java.util.concurrent 包来支持线程池的实现。 1.Threa…

java(网络编程)

什么是网络编程? 在网络通信协议下&#xff0c;不同计算机上运行的程序&#xff0c;进行的数据传输。 应用场景&#xff1a;即时通信、网游对战、金融证券、国际贸易、邮件、等等 不管是什么场景&#xff0c;都是计算机跟计算机之间通过网络进行数据传输 Java中可以使用ja…

Qt | 事件第二节

Qt | 事件第一节书接上回 四、事件的接受和忽略 1、事件可以被接受或忽略,被接受的事件不会再传递给其他对象,被忽略的事件会被传递给其他对象处理,或者该事件被丢弃(即没有对象处理该事件) 2、使用 QEvent::accept()函数表示接受一个事件,使用 QEvent::ignore()函数表示…

fork()的一道面试题

前言&#xff1a;题源 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/wait.h> int main(void) {int i;for(i0; i<2; i){fork();printf("-");}wait(NULL);wait(NULL);return 0; }知道一点fork()这个系统…

移动硬盘盒支持PD充电:优势解析与实际应用探讨

随着科技的飞速发展&#xff0c;数据存储和传输的需求日益增长&#xff0c;移动硬盘盒作为便携式存储设备的重要载体&#xff0c;其功能和性能也在不断提升。近年来&#xff0c;越来越多的移动硬盘盒开始支持PD&#xff08;Power Delivery&#xff09;充电技术&#xff0c;这一…

【云计算】云数据中心网络(四):IPv6 网关

云数据中心网络&#xff08;四&#xff09;&#xff1a;IPv6 网关 1.什么是 IPv6 网关2.IPv6 网关设计思路3.IPv6 网关的主要应用场景3.1 IPv6 私网通信3.2 IPv6 互联网通信3.3 IPv6 互联网通信&#xff08;仅主动访问&#xff09; 1.什么是 IPv6 网关 2017 年&#xff0c;中国…

WordPress 多站点切换域名完整指南:详细步骤和注意事项

因为公司的需要&#xff0c;需要对 WordPress 多站点进行域名切换, 一开始我也找了相关的方案和教程&#xff0c;但是很可惜&#xff0c;国内这一块网上的资料几乎为0&#xff0c;所以我把实现的过程写了一篇文章分享出来&#xff0c;为后来的人铺路。 开始之前&#xff0c;先…

Linux三剑客之awk篇

目录 1、awk 1.1、awk参数 1.2、awk变量 1.3、awk分割符 1.3.1、FS 1.3.2、OFS 1.3.3、RS 1.3.4、ORS 1.3.5、NF 1.3.6、NR 1.3.7、FNR 1.3.8、FILENAME 1.3.9、ARGC与ARGV 1.4、自定义变量 1.5、printf格式化输出 1、awk 作用&#xff1a;具有强大的文本格式化…

软考 - 系统架构设计师 - 嵌入式真题

问题 1&#xff1a; &#xff08;1&#xff09;.HTML 静态化&#xff1a;可以实现对系统经常访问的页面进行静态化以提高系统访问的效率&#xff0c;但系统页面通常需要数据库中的用户信息和用户选择来动态显示&#xff0c;因此不适合采用。 HTML 静态化&#xff1a; 将动态生成…

20240416如何使用git对本地文件进行上传

0 写在前面 年前收到硕导消息要搭建一下github仓库&#xff0c;一直没倒出时间整理&#xff0c;如今终于有时间搭建&#xff0c;顺带解决出现的问题。 1 安装git 安装git这步比较简单&#xff0c;随手一搜就有很多教程。git的作用主要是一种媒介&#xff0c;连接本地主机与G…