UE4/5Niagara粒子特效之Niagara_Particles官方案例:1.5->2.3

目录

之前的文章:

1.5 Blend Attributes by Value

发射器更新

 粒子生成

 粒子更新

2.1 Static Beams

 ​编辑

发射器更新:

 粒子生成

 粒子更新

2.2 Dynamic Beams

没有开始模拟前的效果是:

开始模拟后的效果是:

发射器更新

粒子生成

​编辑

 粒子更新

2.3 Multiple Renderers

 发射器更新

 粒子生成

 粒子更新


之前的文章:

UE4/5Niagara粒子特效之Niagara_Particles官方案例:1.1->1.4_多方通行8的博客-CSDN博客

1.5 Blend Attributes by Value

这个特效的名字翻译过来叫做:按值混合属性

 那么究竟是什么意思呢,让我们打开这个特效来看看。

首先我们看一下这个特效的表现形式:

开始是从中心发射粒子到四周,粒子的速度逐渐下降,然后被中间吸引冲了过去,穿过中间后又变慢,然后死亡。

有经验的人一眼就可以看出用了什么的相关模块和计算,而没经验的就需要一点点的开始积攒。

所以接下来我们来看看它是怎么实现的:

发射器更新

每秒是生成8个粒子

然后是一瞬间随机生成3-10个之间的粒子,类型是每帧。【在这里大家可以尝试将Spawn Rate关闭,看看Spawn Burst Instantaneous的瞬间生成】

 粒子生成

这里可以看到粒子的生命周期为8,而大小统一为5,问题来了,那为什么粒子有些大有些小呢?原因必然是在下方的粒子更新里面。

 在添加速度这里,可以看到是以为模式的【改为其他模式,就是类似于喷泉,夹角等等的效果,各位可以尝试一下】,速度在10-88之间。

 粒子更新

这个模块Point Attraction Force,顾名思义是点引力,类似于星球的引力效果。

第一个是强度为1.8.

第二个是范围256.

第三个是下降指数为0.5,加强之后【比如1】可以看见喷射而出的粒子都没有那么远了。

之后的下面来个,分别是吸引的粒子拥有这个引力的点的位置

这就是为什么喷射而出的球会回到原点并且超过的原因了。

这个的功能是粒子开始喷射的时候是从小变大粒子颜色的变化的主要计算。

实现是将粒子现在的位置和粒子所在的位置相见,然后比上150,做一个归一化的操作【即0-1之间】,计算初这个值【这个值将在下面的ColorSprite Size Scale中进行使用】

 首先是Color,从中我们可以得知是一个线性颜色,从红色到这个蓝色,根据我们归一化后的这个值【0-1之间】来决定现在的粒子颜色。

Sprite Size Scale里面,我们可以看见所有的粒子缩放都是统一用下面的功能的。

功能就是粒子的大小是0.5-3之间,而具体的数值是由之前计算出来的值作为alpha进行决定的。

 

 接下来便是解算器和渲染器了。

2.1 Static Beams

静态束

 打开:

 

发射器更新:

这里的Emitter State和之前不一样,之前的都是system进行控制,笔者也没有进行讲解。

而首先这个是self,由发射器自己进行计算,而不是系统:

 然后下面这个的含义是:让粒子完成之后,杀死发射器

然后就是无限循环,一秒间隔:

 之后是Beam Emitter Setup

翻译过来的意思是电子束发射装置,我们看看里面是怎么写的:

开始是用的模拟位置,即起点位置。

结尾是一个随机的位置。

这就是这个束的生成原因之一。

这里可以看到它是在0秒的时候一瞬间生成100个粒子【粒子平均分布在束上】。

如果将这个粒子调整为2个,就会发现,粒子出现在束开始和结束的两端位置。

 

 粒子生成

这个不需要在意,这个模块的作用结束生成beam【束】

粒子在初始化的时候,可以看见,生命周期为1.25.

然后大小是根据条带中相连粒子的显式排序的,所以根据曲线,是两边小,中间大。

 

这个顾名思义,是生成的条带的宽度,同样是通过RibbonLinkOrder,同样是从中间向四周递增,所以将曲线中的某个值调大,就可以很明显的看到特效里面的条带某端变大的效果。

 粒子更新

更新状态

然后是颜色,颜色是线性变化,同样是根据粒子的递增顺序变化的。

 产生噪波,这也就是为什么在条带生成后,会慢慢扭曲的原因。

 减少粒子的线性速度,这个的主要作用是在细节上:

 之后就是解算器粒子渲染器以及条带渲染器

2.2 Dynamic Beams

Dynamic Beams动态条带

看看效果:

没有开始模拟前的效果是:

NSNiagara System】所在的位置连接到一个固定坐标的条带,这个条带会旋转。

不管如何旋转,都会从NS所在的位置连接到那个固定坐标,进行旋转。

开始模拟后的效果是:

起始位置会离开NS的位置一会儿后再回到NS位置,然后环会一直旋转。

打开看看是如何实现的:

打开粒子之后,我们会发现和我们在场景里面看的不一样,这是因为这个粒子的条带末尾位置是一个世界坐标。 

发射器更新

可以看到Absolute Beam Start是打勾的,这个的意思是绝对光束启动:简单的来讲如果将这个关闭,那么它的位置就不是NS【Niagara System】的所在世界位置了,而是世界坐标的0,0,0的位置。

如图所示,Beam End现在所拥有的坐标,便是世界坐标,只需要将下面的Absolute Beam End变为false,那么Beam End的坐标便是NS的相对坐标。

而下方则是Beam光束的初始位置和结束位置的坐标*0.5。

这是一瞬间爆发100个粒子,只是看可能并不知道这些爆发粒子的作用。

所以我们将其调小就会知道,这个的效果是:条带的舞动,如果将其设置为2,则条带就是直线。

3则中间动,4开始变多,5...等等。

粒子生成

生成光束,里面没什么东西好讲。

这次初始化的生命周期和之前不一样,其传入的是发射器的CurrentLoopDuration,这个的意思是将初始化粒子的生命周期和发射器的当前循环时间,简单来讲就是和发射器一样的生命周期。

 粒子更新

上面的两个,懂的都懂,就不多进行解释了。

这个Rotate Around Point,顾名思义,这个是光束在旋转的主要因素:

首先是第一个红框里面,我们可以看到是Multiply Float:意思就是A*B

下面的Rotation Rate,可以看到是-1,这是这个特效中光束向左转的原因,改为1则会向右转。【上面的B改大也有一样的效果】

然后是下面的半径,意思很简单,通过链条的索引做的0-1-0的曲线,参数是55,以及旋转的中心是粒子的位置。

最后是颜色,根据链条的参数做线性颜色变化,也就是开始是蓝色,结尾是红色的原因。 

2.3 Multiple Renderers

 这个粒子特效和之前的都不一样,之前的粒子特效里面中的发射器都是一个发射器里面是一个渲染器。

而这个里面却是3个渲染器,分别是Sprite,条带,模型。

接下来我们就来看看这个NS里面的发射器:

 发射器更新

首先是生成,每秒生成2.5个粒子【】

 粒子生成

粒子生成中的初始化,我们之前已经看了很多,但真正的全部用上,这是这个案例中的第一次:

可以看到生成的粒子的生命周期是6秒,点是绿色的【Sprite】,然后Sprite的大小是8.

之后是模型,大小是1,1.5,1.5,mode是不统一的。

条带的宽度是2.5.

设置条带颜色:

 设置粒子的出生位置,圆:

 粒子更新

根据生命周期来变换大小:

Vortex Force漩涡力

Vortex Force Amount是漩涡的力量,调整的越大,会发现粒子的移动轨迹也会发生很大的变化。

Vortex Axis是一个用于推导漩涡方向的轴。

下方的Origin中,可以看到漩涡的中心点是发射器所在的位置。

然后漩涡的拉动量是200,如果提升,则会发现粒子的移动速度会很快的被来回拉扯。

最后的Falloff是一个影响。

如半径是100,指数是1,表示你离中心越远,你的移动速度也就越快【可以想象一下漩涡中心对你的力,和你在外围的力有什么不同。【可以参考对黑洞的理解】】

然后最后是反向,就是说如果原来是离中心越近,速度越慢,打勾后就是:离中心越近,速度越快。

drag,0.5的力。 

之前的是sprite的大小,而这个是箭头模型的大小:

最后是解算器,以及3个渲染器。 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++入门到精通】C++入门 —— 继承(基类、派生类和多态性)

阅读导航 前言一、继承的概念及定义1. 继承的概念2.继承的定义⭕定义格式⭕继承关系和访问限定符⭕继承基类成员访问方式的变化 二、基类和派生类对象赋值转换三、继承中的作用域四、派生类的默认成员函数五、继承与友元六、继承与静态成员七、复杂的菱形继承及菱形虚拟继承⭕单…

C# OpenCvSharp DNN 二维码增强 超分辨率

效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.Dnn; using OpenCvSh…

如何将储存在Mac或PC端的PDF文件传输到移动设备呢?

iMazing是一款iOS设备管理软件,用户借助它可以将iPad或iPhone上的文件备份到PC或Mac上,还能实现不同设备之间的文件传输,能很大程度上方便用户进行文件管理。 在阅读方面,iPad和iPhone是阅读PDF的优秀选择,相较于Mac或…

Java 基于 SpringBoot+Vue 的在线考试系统的研究与实现,2.0 版本

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 第一章第二章.主要技术第三章第四章 系统设计4.1功能结构4.2 数据库设计4.2.1 数据库E/R图4.2.2 数…

docker-compose管理创建LNMP服务并运行Wordpress网站平台

文章目录 一.项目环境1. 环境描述2.项目需求 二.部署过程1.安装Docker2.安装Docker加速器3.Docker-Compose安装部署4.准备依赖文件、配置nginx5.配置mysql6.配置php7.编写docker-compose.yml8.验证 三.容器快照,然后将Docker镜像打包成tar包备…

JDBC概述

JDBC概述 核心JDBC组件 JDBC驱动程序连接声明结果集 常见JDBC用例 查询数据库查询数据库元数据更新数据库执行事务 JDBC组件交互图 JDBC API由以下核心部分组成: JDBC驱动程序连接声明结果集 有四个基本的JDBC用例,大多数JDBC工作都围绕这些用例发展…

C++信息学奥赛1138:将字符串中的小写字母转换成大写字母

#include<bits/stdc.h> using namespace std; int main() {string arr;// 输入一行字符串getline(cin, arr);for(int i0;i<arr.length();i){if(arr[i]>97 and arr[i]<122){char aarr[i]-32; // 将小写字母转换为大写字母cout<<a; // 输出转换后的字符}els…

电工-学习电工有哪些好处

学习电工有哪些好处&#xff1f;在哪学习电工&#xff1f; 学习电工有哪些好处&#xff1f;在哪学习电工&#xff1f;学习电工可以做什么&#xff1f;优势有哪些&#xff1f; 学习电工可以做什么&#xff1f;学习电工有哪些好处&#xff1f; 就业去向&#xff1a;可在企业单位…

分布式搜索引擎----elasticsearch

目录 1、初识elasticsearch 1.1、什么是elasticsearch 1.2.ELK技术栈 2、正向索引和倒排索引 2.1、正向索引 2.2、倒排索引 2.3、正向索引和倒排索引的区别 3、elasticsearch中的概念理解 3.1、文档和字段 3.2、索引和映射 3.3、mysql与elasticsearch 1、初识elasti…

Hadoop分布式计算与资源调度:打开专业江湖的魔幻之门

文章目录 版权声明一 分布式计算概述1.1 分布式计算1.2 分布式&#xff08;数据&#xff09;计算模式1.3 小结 二 MapReduce概述2.1 分布式计算框架 - MapReduce2.2 MapReduce执行原理2.3 小结 三 YARN概述3.1 YARN & MapReduce3.2 资源调度3.3 程序的资源调度3.4 YARN的资…

RabbitMQ---基本消息模型

1、 基本消息模型 官方介绍&#xff1a; RabbitMQ是一个消息代理&#xff1a;它接受和转发消息。 你可以把它想象成一个邮局&#xff1a;当你把邮件放在邮箱里时&#xff0c;你可以确定邮差先生最终会把邮件发送给你的收件人。 在这个比喻中&#xff0c;RabbitMQ是邮政信箱&a…

分类预测 | MATLAB实现1D-2D-CNN-GRU的多通道输入数据分类预测

分类预测 | MATLAB实现1D-2D-CNN-GRU的多通道输入数据分类预测 目录 分类预测 | MATLAB实现1D-2D-CNN-GRU的多通道输入数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 结合1D时序-2D图像多模态融合的CNN-GRU故障识别算法&#xff0c;基于一维时序信号和二维图…

火山引擎发布自研视频编解码芯片

2023年8月22日&#xff0c;火山引擎视频云宣布其自研的视频编解码芯片已成功出片。经验证&#xff0c;该芯片的视频压缩效率相比行业主流硬件编码器可提升30%以上&#xff0c;未来将服务于抖音、西瓜视频等视频业务&#xff0c;并将通过火山引擎视频云开放给企业客户。 火山引…

【redis问题】Caused by: io.netty.channel

遇到的问题&#xff1a; 在使用 RedisTemplate 连接 Redis 进行操作的时候&#xff0c;发生了如下报错&#xff1a; 测试代码为&#xff1a; 配置文件&#xff1a; 问题根源&#xff1a; redis没有添加端口映射解决方案&#xff1a; 删除原来的redis容器&#xff0c;添加新…

在Flutter应用内部实现分屏功能

前言 这一次被要求实现屏幕上同时展示两个页面&#xff0c;并且两个页面的逻辑&#xff0c;功能互不影响&#xff0c;通俗一点讲就是在Flutter内部实现一个类似于分屏的功能&#xff0c;这可难不倒我。 方法 要在 Flutter 中实现一个屏幕的上半部分和下半部分展示不同的页面…

分布式核心知识

文章目录 前言一、分布式中的远程调用1.1RESTful接口1.2RPC协议1.3区别与联系 二、分布式中的CAP原理 前言 关于分布式核心知识详解 一、分布式中的远程调用 在微服务架构中&#xff0c;通常存在多个服务之间的远程调用的需求。远程调用通常包含两个部分&#xff1a;序列化和通…

UWB高精度人员定位系统源码,微服务+java+ spring boot+ vue+ mysql技术开发

工业物联网感知预警体系&#xff0c;大中小企业工业数字化转型需求的工业互联网平台 工厂人员定位系统是指能够对工厂中的人员、车辆、设备等进行定位&#xff0c;实现对人员和车辆的实时监控与调度的系统&#xff0c;是智慧工厂建设中必不可少的一环。由于工厂的工作环境比较…

慕课网 Go工程师 第三周 package和gomodules章节

Go包的引入&#xff1a; 包名前面加匿名&#xff0c;只引入但不使用&#xff0c;如果对应包有init函数&#xff0c;会执行init函数&#xff08;初始化操作&#xff09; 包名前面加. 把这个包的结构体和方法导入当前包&#xff0c;慎用&#xff0c;你不知道当前包和被引入的包用…

STM32 无法烧录

1. 一直显示芯片没连接上&#xff0c;检查连线也没问题&#xff0c;换了个ST-Link 烧录器还是连不上&#xff0c;然后又拿这个烧录器去其它板子上试下&#xff0c;就可以连接上&#xff0c;说明我连线没问题&#xff0c;烧录器也没问题&#xff0c;驱动什么的更是没问题&#x…

[ubuntu]ubuntu18.04使用自带共享桌面实现vncserver连接

vncserver有很多方法比如你安装vnc4server,tightvncserver,x11vnc等都可以实现vnc局域网连接&#xff0c;今天使用系统共享桌面设置vnc连接 Ubuntu开启远程桌面 Ubuntu18.04使用gnome桌面环境&#xff0c;系统自带屏幕共享和远程登录功能&#xff0c;默认使用的是vino作为VNC…