当前位置: 首页 > news >正文

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个渲染器。 

相关文章:

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

目录 之前的文章: 1.5 Blend Attributes by Value 发射器更新 粒子生成 粒子更新 2.1 Static Beams ​编辑 发射器更新: 粒子生成 粒子更新 2.2 Dynamic Beams 没有开始模拟前的效果是: 开始模拟后的效果是: 发射器更新 …...

Docker 容器数据卷

Docker挂载主机目录访问如果出现cannot open directory .: Permission denied 解决办法:在挂载目录后多加一个--privilegedtrue参数即可 如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行…...

STM32--MPU6050与I2C外设

文章目录 前言MPU6050参数电路MPU6050框图 IIC外设框图 IIC的基本结构软件IIC实现MPU6050硬件IIC实现MPU6050 前言 在51单片机专栏中,用过I2C通信来进行实现AT24C02的数据存储; 里面介绍的是利用程序的编程来实现I2C的时序,进而实现AT24C02与…...

项目管理实战笔记1:项目管理常识

序 看了下极客时间的《项目管理实战》,觉得跟之前学习PMP的标准资料还是有所侧重。重新整理下,相比书上繁杂的知识,这个更通俗易懂。 1 角色转换:三大误区 误区1:事必躬亲 自己做事情是可控的,做项目依赖…...

时序分解 | MATLAB实现基于SVMD逐次变分模态分解的信号分解分量可视化

时序分解 | MATLAB实现基于SVMD逐次变分模态分解的信号分解分量可视化 目录 时序分解 | MATLAB实现基于SVMD逐次变分模态分解的信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 SVMD分解算法,分解结果可视化,MATLAB程序&#xff…...

阿里云访问端口被限制解决方法记录

阿里云服务器,80端口可以访问,但是加入了安全组端口8080 通过公网访问改端口策略,发现不能被访问 问题出在防火墙,需要重置一下 解决方法: 在运行的服务器上执行如下命令: # iptables -A INPUT -j ACCEP…...

antd5源码调试环境启动(MacOS)

将源码下载至本地 这里antd5 版本是5.8.3 $ git clone gitgithub.com:ant-design/ant-design.git $ cd ant-design $ npm install $ npm start前提:安装python3、node版本18.14.0(这是本人当前下载的版本) python3安装教程可参考:https://…...

单片机使用基于时间片轮询系统的-状态机-[1]

目的:【1】用C实现一个超轻量化任务管理系统 【2】具有任务suspend, resume, runonce ,auto loop ,task_delay功能 【3】易于移植,不涉及硬件底层。 示例例码: 利用switch case结构实现了单一层的 task_delay功能。弊端就是switch..case不…...

前端开发怎么解决性能优化的问题? - 易智编译EaseEditing

前端性能优化是确保网站或应用在加载速度、响应性和用户体验等方面达到最佳状态的关键任务。以下是一些解决前端性能优化问题的方法: 压缩和合并代码: 压缩和合并CSS、JavaScript和HTML文件可以减少文件大小,加快加载速度。使用压缩工具&am…...

共享球拍小程序:打破拥有束缚,尽享运动乐趣

市场前景: 随着健身和运动的流行趋势,越来越多的人加入了各种体育项目。然而,拥有球拍作为体育装备的成本较高,对于想要尝试不同运动的人来说,这可能是个阻碍。共享球拍小程序迎合了这一需求,提供了一个经济…...

uniapp 微信小程序 绘制海报,长按图片分享,保存海报

uView UI 2.0 dcloud 插件市场地址 弹窗海报源码 <template><!-- 推荐商品弹窗 --><u-popup :show"haibaoShow" mode"center" round26rpx z-index10076 bgColortransparent safeAreaInsetTop close"goodsclose"><image …...

爬虫异常捕获与处理方法详解

Hey&#xff01;作为一名专业的爬虫代理供应商&#xff0c;我今天要和大家分享一些关于爬虫异常捕获与处理的方法。在进行爬虫操作时&#xff0c;我们经常会遇到各种异常情况&#xff0c;例如网络连接错误、请求超时、数据解析错误等等。这些异常情况可能会导致程序崩溃或数据丢…...

制作网络课堂学习平台(标签嵌套,后代选择器)

网络课堂学习平台 课程 1 这是课程 1 的描述。 模块 1 这是模块 1 的描述。 查看详情 模块 2 这是模块 2 的描述。 查看详情 课程 2 这是课程 2 的描述。 模块 1 这是块 2 的描述。 查看详情...

基于医疗领域数据微调LLaMA——ChatDoctor模型

文章目录 ChatDoctor简介微调实战下载仓库并进入目录创建conda环境并配置环境&#xff08;安装相关依赖&#xff09;下载模型文件微调数据微调过程全量微调基于LoRA的微调基于微调后的模型推理 ChatDoctor简介 CHatDoctor论文&#xff1a; ChatDoctor: A Medical Chat Model F…...

UDP TCP 报文内容

1.UDP 2.TCP 源/目的端口号:表示数据是从哪个进程来,到哪个进程去; 32位序号/32位确认号:后面详细讲;4位TCP报头长度:表示该TCP头部有多少个32位bit(有多少个4字节);所以TCP头部最大长度是15*460 6位标志位: o URG:紧急指针是否有效 ——urgent 紧急的 o ACK:确认号是否有…...

Boost开发指南-4.8operators

operators C提供了强大且自由的操作符重载能力&#xff0c;可以把大多数操作符重新定义为函数&#xff0c;使操作更加简单直观。这方面很好的例子就是标准库中的string和 complex&#xff0c;可以像操作内置类型int、double那样对它们进行算术运算和比较运算&#xff0c;非常方…...

c# 泛型约束

在C#中&#xff0c;泛型约束用于指定泛型类型参数的限制条件&#xff0c;以确保类型参数满足特定的条件。以下是C#中常见的泛型约束&#xff1a; where T : struct&#xff1a; 这个约束要求类型参数必须是一个值类型&#xff08;如int、float等&#xff09;。 where T : cla…...

android frida

Frida 是一个用于动态分析、调试和修改 Android 应用程序的强大工具。它的主要作用包括&#xff1a; 代码注入和Hooking&#xff1a; Frida 允许您在运行时修改和监视应用程序的行为。您可以通过Frida注入JavaScript代码到目标应用程序中&#xff0c;然后使用该代码来Hook&…...

Linux下的Shell编程——正则表达式入门(四)

前言&#xff1a; 正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里&#xff0c;正则表达式通常被用来检索、替换那些符合某个模式的文本。 在Linux 中&#xff0c;grep&#xff0c;sed&#xff0c;awk 等文本处理工具都支持…...

使用VisualStudio制作上位机(一)

文章目录 使用VisualStudio制作上位机(一)写在前面第一部分:创建应用程序第二部分:GUI主界面设计使用VisualStudio制作上位机(一) Author:YAL 写在前面 1.达到什么目的呢 本文主要讲怎么通过Visual Studio 制作上位机,全文会以制作过程来介绍怎么做,不会去讲解具体…...

【前端从0开始】JavaSript——自定义函数

函数 函数是一个可重用的代码块&#xff0c;用来完成某个特定功能。每当需要反复执行一段代码时&#xff0c;可以利用函数来避免重复书写相同代码。函数包含着的代码只能在函数被调用时才会执行&#xff0c;就可以避免页面载入时执行该脚本在JavaScript中&#xff0c;可以使用…...

如何在Windows、Mac和Linux操作系统上安装Protocol Buffers(protobuf)编译器

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

简单介绍 CPU 的工作原理

内部架构 CPU 的根本任务就是执行指令&#xff0c;对计算机来说最终都是一串由 0 和 1 组成的序列。CPU 从逻辑上可以划分成 3 个模块&#xff0c;分别是控制单元、运算单元和存储单元 。其内部架构如下&#xff1a; 【1】控制单元 控制单元是整个CPU的指挥控制中心&#xff…...

UE4/5数字人MetaHuman的控制绑定资产使用

目录 开始操作 找到控制绑定资产 放入控制绑定资产 ​编辑 生成动画资产 开始操作 首先我们创建一个关卡序列&#xff1a; 打开后将我们的数字人放进去【右键&#xff0c;第一个添加进去】&#xff1a; 我们会自动进入动画模式&#xff0c;没有的话&#xff0c;就自己…...

二、11.系统交互

fork 函数原型是 pid_t fork(void&#xff09;&#xff0c;返回值是数字&#xff0c;该数字有可能是子进程的 pid &#xff0c;有可能是 0&#xff0c;也有可能是-1 。 1个函数有 3 种返回值&#xff0c;这是为什么呢&#xff1f;可能的原因是 Linux 中没有获取子进程 pid 的方…...

敏捷管理工具/国内软件敏捷开发工具

​Scrum中非常强调公开、透明、直接有效的沟通&#xff0c;这也是“可视化的管理工具”在敏捷开发中如此重要的原因之一。通过“可视化的管理工具”让所有人直观的看到需求&#xff0c;故事&#xff0c;任务之间的流转状态&#xff0c;可以使团队成员更加快速适应敏捷开发流程。…...

Selenium环境+元素定位大法

selenium 与 webdriver Selenium 是一个用于 Web 测试的工具&#xff0c;测试运行在浏览器中&#xff0c;就像真正的用户在手工操作一样。支持所有主流浏览器 WebDriver 就是对浏览器提供的原生API进行封装&#xff0c;使其成为一套更加面向对象的Selenium WebDriver API。 使…...

Vue3 用父子组件通信实现页面页签功能

一、大概流程 二、用到的Vue3知识 1、组件通信 &#xff08;1&#xff09;父给子 在vue3中父组件给子组件传值用到绑定和props 因为页签的数组要放在父页面中&#xff0c; data(){return {tabs: []}}, 所以顶部栏需要向父页面获取页签数组 先在页签页面中定义props用来接…...

HCIP STP协议

STP协议 STP协议概念生成树为什么要用STP STP名词解释根网桥根端口指定端口非指定端口 STP的版本802.1DPVSTPVST 快速生成树 STP协议概念 IEEE 802.1d STP&#xff08;生成树协议&#xff0c;Spanning-Tree Protocol&#xff09;协议&#xff1a; ①使冗余端口置于“阻塞状态”…...

链表的顶级理解

目录 1.链表的概念及结构 2.链表的分类 单向或者双向 带头或者不带头 循环或者非循环 3.无头单向非循环链表的实现 3.1创建单链表 3.2遍历链表 3.3得到单链表的长度 3.4查找是否包含关键字 3.5头插法 3.6尾插法 3.7任意位置插入 3.8删除第一次出现关键字为key的节点 …...

网站建设上qq图标去除/建站快车

快速导读&#xff1a;Q1&#xff1a;vbs怎么调用子程序?你可以这样操作比如你要调用C:\m.exe Set ws CreateObject("Wscript.Shell") Set fs CreateObject("Scripting.FileSystemObject") ws.Run "c:\m.exe" 希望能帮助你&#xff01;&#x…...

win7用自己ip做网站/西安seo学院

多了jar包 检查自己的是在com 自己打出的jar包 删除即可正常运行 资源描述: 1。如果不修改android sdk版本&#xff0c;则使用project clean 命令作用于某工程即可。&#xff08;该处理方式只是在高版本中兼容了低版本工程&#xff0c;未真正意义上的升级&#xff09;2。如果修…...

辽宁网站建设墨子/焦作网络推广哪家好

英文名&#xff1a;DotNetTextBox V3.0 WYSWYG Web Control For Asp.Net2.0 中文名&#xff1a;DotNetTextBox V3.0 所见即所得编辑器控件 For Asp.Net2.0 类型: 个人及非盈利性网站免费使用 作者: 小宝.NET 2.0(Terry Deng) 主页&#xff1a;http://www.aspxcn.com.cn 控件演示…...

药企做网站需要哪些手续/大侠seo外链自动群发工具

虚拟机中Linux系统配置YUM源 1.首先我们查看自己的虚拟机有没有yum源&#xff0c;命令为 [rootred ~]# ls /etc/yum.repos.d/ (没有yum源&#xff09;如果这里显示找不到文件&#xff0c;就代表没有yum源&#xff0c;如果显示有文件&#xff0c;那就代表有yum源。 2.没有yum源…...

做网站配置/最近一周的重大热点新闻

设置父级div为相对位置 设置子级div为绝对位置 代码如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title></head><body><div style"width: 100%; height: 600px; border:…...

做网站建设需要什么工具/优化神马网站关键词排名价格

组合模式&#xff08;Composite pattern&#xff09; 组合模式看起来就像对象组的树形结构&#xff0c;一个对象里面包含一个或一组其他的对象。它是属于结构型模式。 例如&#xff0c;一个公司包括很多个部门&#xff0c;每个部门又包括很多人&#xff0c;这个用数据结构来表示…...