UE4: Niagara系统实现雨天效果,并跟随人物移动

news2024/10/7 6:43:58

目录

  • 创建雨丝Niagara系统
  • 雨丝跟随人物移动

创建雨丝Niagara系统

1.创建一个Niagara系统
在这里插入图片描述
在这里插入图片描述
选择Fountain选项,点一下加号,再点完成:
在这里插入图片描述
命名一下打开:
在这里插入图片描述
先从粒子生成的方向入手,在Niagara的界面中删掉“Add Velocity in Cone”,并添加“Add Velocity”,这样预览效果中的粒子就从椎体向上喷发,变成向下发射。
在这里插入图片描述
在这里插入图片描述
删掉之后:
在这里插入图片描述
在这里插入图片描述
然后将sphere location也删除,因为这里要控制我们生成粒子的范围,会添加一个box location,使粒子生成的范围变成一个方形的:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后先设置一个大概的范围,作为生成范围:
在这里插入图片描述
在这里插入图片描述
效果是范围变大,感觉有雪花的感觉,但是我们做的不是雪花,所以还得再改改。这里为了测试在场景中的效果,我们直接把粒子效果拖放到场景里。

注意,这里我们打算在后面做蓝图的时候,让这个粒子特效跟随摄像机移动,制造一种整个场景都在下雨的错觉,但其实只有摄像机,或者说我们能看见的周围一块区域在下雨。

其实也可以将生成区域的覆盖范围设置地很大,但是这很耗费性能,所以我们利用这种小trick,在达到目的地同时也能节省性能。

所以这里我们把粒子效果放在摄像机或者说人物周围,效果如下:
在这里插入图片描述
可以看到雪花飘飘的感觉了,好,下面再接着改一改,回到粒子制作界面,添加add velocity:
在这里插入图片描述
给y,z两个方向的速度分别添加一个值:
在这里插入图片描述
已经是撒盐空中的效果了,就是这盐粒子有点大且稀少哈:
在这里插入图片描述
于是增加粒子的生成数量,选择spawn rate:
在这里插入图片描述
暂时先随便取个值,不行后面可以接着调:
在这里插入图片描述
明显对比起来,数量变多了:
在这里插入图片描述
接下来选择初始化粒子——sprite attributes:
在这里插入图片描述
将模式改成非统一,然后更改粒子的size:
在这里插入图片描述
在这里插入图片描述
效果如下,有种下钢针的感觉:
在这里插入图片描述
所以要调整一下,让这个生成的粒子跟速度方向一致,选择精灵渲染器,将对齐选项设置为和速度对齐:
在这里插入图片描述
在这里插入图片描述
效果如下,有点下雨那个意思了:
在这里插入图片描述
好了,接下来我们要做雨丝打在地面上后,在地面打击出的涟漪效果,为此,我们需要先重命名一下这个粒子发射器,为了和后面的涟漪区分:
在这里插入图片描述
在空白的地方,右键,添加发射器,选择hanging particulates:
在这里插入图片描述
如果没看到这个选项的话,选择右下角的试图选项(view option),然后勾上下图两个选项:
在这里插入图片描述
添加之后:
在这里插入图片描述
我们是对雨丝做碰撞处理,所以在雨丝的粒子生成器添加一个碰撞事件:
在这里插入图片描述
添加后会报错,修复一下:
在这里插入图片描述
在这里插入图片描述
回到场景后可以看到,粒子和地面发生碰撞后又反弹的画面:
在这里插入图片描述
但是我们不需要这些粒子这样反弹,所以在发射器处再添加一个kill particles:
在这里插入图片描述
添加后选择kill particles右边的下三角,展开,搜索HasCollided:
在这里插入图片描述
然后就可以发现刚刚场景的雨丝反弹的效果没了:
在这里插入图片描述
点击事件处理器右边的加号,就会出现事件处理属性:
在这里插入图片描述
在右边的属性面板将执行模式更改为生成粒子:
在这里插入图片描述
接下来再添加一个生成碰撞事件:
在这里插入图片描述
添加之后他会报错,显示需要每个粒子的id,所以我们需要勾上发射器属性的需要持久id的选项:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这个生成碰撞事件应该放到粒子更新模块下,所以我们需要拖动它,并且应该放到kill particles之前:

原来的:
在这里插入图片描述
拖动后:
在这里插入图片描述
到这步为止,我们只要粒子与物体接触,发生了碰撞,就会调用这个碰撞事件。

然后我们开始捣鼓我们之前创建好的那个hanging particulates了,这个是我们的涟漪,所以我们也为这个涟漪添加一个事件处理器:
在这里插入图片描述
选择事件处理属性,看右边的属性面板,点击源选项,选择我们刚刚创建好的雨丝的碰撞事件:
在这里插入图片描述
执行模式照旧选择生成粒子:
在这里插入图片描述
生成数量设为1,一个雨丝一个涟漪足够了:
在这里插入图片描述
并且需要添加接收碰撞事件,有生成有接收,这才算一个完整的过程:
在这里插入图片描述
可以看到地面一大堆泡沫粒儿:

改一改,涟漪不需要速度和力,也不需要生成范围,它只会生成在雨丝发生碰撞的地方。把相关选项禁用掉:
在这里插入图片描述
看起来跟刚刚差不多,地面还是一堆的泡沫粒子,这些粒子都是碰撞生成后,没有销毁的:
在这里插入图片描述
为此,我们需要给这些粒子一个生命周期,规定在什么时间内销毁:
在这里插入图片描述
在这里插入图片描述

效果:
在这里插入图片描述
但是这些地面上的粒子拉近细看的时候会发现它是高了地面一截的,为了解决这个问题需要更改一下碰撞粒子的半径:
在这里插入图片描述
在这里插入图片描述
效果会比不调的时候好:
在这里插入图片描述
但是我们现在看到的还都是圆形粒子,为了做出涟漪或者说飞溅的效果,就需要为这个粒子效果附加上一个贴图纹理。

这个纹理就随便上网找个就行,这里贴一下我的:
在这里插入图片描述
拖进ue4里:
在这里插入图片描述
我们要将这个纹理挂载到涟漪效果上,顺便改个名字,改为splash:
在这里插入图片描述
选择精灵渲染器,在右侧属性面板中选择放大镜:
在这里插入图片描述
回到主场景面板,将材质复制到我们自己的文件夹中,并改一下名字:
在这里插入图片描述
在这里插入图片描述
然后打开这个材质,将我们的splash纹理拖到这个材质编辑面板中:
在这里插入图片描述
找到与不透明度连接的multiply,从它右边的引脚拉出一条线搜索multiply,然后将我们纹理的a通道(透明度通道)与multiply的B连接,然后将mutiply右边的引脚与不透明度相连:
在这里插入图片描述
左边的效果图就会从单纯的白色球体,变成我们纹理的样子:
在这里插入图片描述
在这里插入图片描述
回到niagara面板,将splash的材质设置为我们创建好的这个飞溅材质:
在这里插入图片描述
效果如下,可以看到我们的飞溅效果,但是实在太小了,需要调一下size:
在这里插入图片描述
将size mode设置为Random uniform,然后调整大小,这样所有的飞溅效果就有大小不一样的效果。紧接着设置rotation mode,设置为unset;UV Mode设置为custom,这样飞溅效果才会是我们我想要的效果,而不是各个朝向都有:

Size Mode:
在这里插入图片描述
Rotation Mode:
在这里插入图片描述
UV Mode:
在这里插入图片描述
场景效果如下,啊,这个飞溅效果如果感觉大小不合适可以自己调节一下。

还有一点需要注意的是这个碰撞事件是发生在雨丝粒子与物体的碰撞体发生碰撞效果的,如果物体的碰撞体网格不能完美包裹物体的话会出现很奇怪的现象,雨丝只会在碰撞体上打出飞溅效果,比如下面这个人物他的碰撞体是胶囊体,没有完美包裹模型:
在这里插入图片描述

雨丝跟随人物移动

下面来制作雨丝跟随人物移动的蓝图。
首先制作发射器相对于人物的方向:
在这里插入图片描述

接着在关卡蓝图中获取发射器actor的方位,也就是transform,这里他们保持不变。
在这里插入图片描述
获取速度并与Delta Seconds相乘,以保证在不同帧数条件下保持一样的速率,这里speed要自己创建,设置为float类型然后拖到场景中,选择获取speed,然后点击场景中的speed,设为1000:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加设置actor变化节点,并拆分引脚:
在这里插入图片描述

然后一顿操作,最终蓝图:
在这里插入图片描述
最后场景效果:
在这里插入图片描述

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

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

相关文章

springboot+vue小区物业管理系统(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的小区物业管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风…

C11新特性之Lambda表达式

一.lambda语法 优点: 1.可以定义简短的函数。 2.使用lambda表达式使代码更紧凑,可读性更好。 语法: []表示不捕获任何变量[this]表示值传递方式捕捉当前的this指针 [&]表示引用传递方式捕捉所有父作用域的变量(包括this&…

[架构之路-170]-《软考-系统分析师》-5-数据库系统-1-数据库模式、数据模型、数据库访问的标准接口

在当今的知识经济时代,信息是经济发展的战略资源,信息技术已经成为社会生产力中重要的组成部分。人们充分认识到,数据库是信息化社会中信息资源管理与开发利用的基础,当今的计算机信息系统也都以数据库技术为基础。对于一个国家来…

Linux DNS服务

DNS 作用 DNS是 域名系统 的英文缩写,作为将域名与IP地址相互映射的一个分布式数据库,让人可以通过域名访问互联网 正向解析 将域名解析为IP反向解析 根据IP查找对应域名 域名结构 http://www.sina.com.cn./ http://主机名.子域.二级域.顶级域.根域 / 每…

【Linux学习】信号——预备知识 | 信号产生 | 核心转储

🐱作者:一只大喵咪1201 🐱专栏:《Linux学习》 🔥格言:你只管努力,剩下的交给时间! 信号 🔔信号🎵预备知识🎵信号处理方法的注册 🔔信…

C/C++每日一练(20230421)

目录 1. 位1的个数 🌟 2. 递归和非递归求和 ※ 3. 俄罗斯套娃信封问题 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 位1的…

大数据技术之Kafka——Kafka入门

目录 一、概述 1.1 为什么要有Kafka ​编辑 1.2 定义 1.3 消息队列 1)消息队列的应用场景 2)消息队列的两种模式 1.4 基础架构 二、Producer生产者 2.1 生产者消息发送流程 2.1.1 发送原理 2.2 异步发送API 2.2.1 普通异步发送 2.2.2 带回调…

第八章_Redis复制(replica)

是什么 官网地址 一句话 就是主从复制,master以写为主,Slave以读为主 当master数据变化的时候,自动将新的数据异步同步到其它slave数据库 能做什么 读写分离容灾恢复数据备份水平扩容支撑高并发 怎么使用 配从(库)不配主(库) 权限细节&am…

YOLOv8 更换主干网络之 MobileNeXt

《重新思考瓶颈结构以实现高效移动网络设计》 倒置残差块成为了移动网络架构设计的主流。它通过引入学习倒置残差和使用线性瓶颈的两个设计规则,改变了经典的残差瓶颈。在本文中,我们重新思考了这种设计改变的必要性,并发现它可能会带来信息丢失和梯度混淆的风险。因此,我们…

助力工业物联网,工业大数据之ODS层构建:代码结构及修改【九】

文章目录 01:ODS层构建:代码结构及修改02:ODS层构建:连接代码及测试03:ODS层构建:建库代码及测试04:ODS层构建:建表代码及测试 01:ODS层构建:代码结构及修改 …

漏扫常见(可验证)漏洞复现方法

SSL/TLS协议信息泄露漏洞(CVE-2016-2183) 检测到目标服务支持SSL弱加密算法 检测到目标服务支持SSL中等强度加密算法 nmap -sV -p 端口 --script ssl-enum-ciphers 目标ipSSH支持弱加密算法 nmap -sV -p 端口 --script ssh2-enum-algos 目标ipApache Tomcat示例脚本信息泄露…

YOLOv8 更换主干网络之 ShuffleNetv2

《ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design》 目前,神经网络架构设计多以计算复杂度的间接度量——FLOPs为指导。然而,直接的度量,如速度,也取决于其他因素,如内存访问成本和平台特性。因此,这项工作建议评估目标平台上的直接度量,而…

Vue 表单

文章目录 Vue 表单输入框复选框单选按钮select 列表修饰符.lazy.number.trim Vue 表单 这节为大家介绍 Vue.js 表单上的应用。 你可以用 v-model 指令在表单控件元素上创建双向数据绑定。 输入框 v-model 会根据控件类型自动选取正确的方法来更新元素。 输入框 实例中演示…

Maven(二)高级操作

目录 一、分模块开发与涉及(重点)1.工程模块划分2.modules_common拆分3.modules_pojo拆分4.modules_dao拆分5.modules_service拆分6.modules_controller拆分7.总结 二、聚合(重点)1.多模块构建维护2.聚合 三、继承(重点…

HTML5 <param> 标签、HTML5 <progress> 标签

HTML5 <param> 标签 实例 HTML5 <param>标签为<object>标签提供嵌入内容的运行时参数的name与value对。请参考下述示例&#xff1a; 设置参数 "autoplay" 为 "true"&#xff0c;音频载入后会自动播放&#xff1a; <object data&qu…

基于AT89C51单片机的电子时钟设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87695258?spm1001.2014.3001.5503 源码获取 主要内容&#xff1a; 1.设计出电子数字钟的电路&#xff0c;并用protus进行仿真画出对应的电路图 2.设计出电子数字钟…

2021地理设计组二等奖:基于GIS的东江源区土壤侵蚀及其影响因素空间分析

一、作品背景 水土保持情况普查对我国具有重要意义。我国目前是世界上水土流失最严重的国家之一&#xff0c;水土流失面积极其广且量大&#xff1b;严重的水土流失问题是我国生态环境问题的重要板块&#xff0c;若是持续恶化&#xff0c;将会严重影响我国的生态安全、饮水安全…

不得不说的创建型模式-抽象工厂模式

抽象工厂模式是一种创建型模式&#xff0c;它提供一个接口来创建一系列相关或相互依赖的对象&#xff0c;而不需要指定它们的具体类。这个接口被称为“抽象工厂”&#xff0c;它可以被不同的具体工厂实现来创建不同的产品族。 下面通过一个简单的示例来说明抽象工厂模式的底层原…

[API]string常量池string常用方法StringBuilder类(一)

String字符串类型&#xff1a; java.lang.String类使用final修饰&#xff0c;不能被继承 String的底层封装的是一个字符数组 String在内存中采用Unicode编码格式&#xff0c;每个字符占用2个字节的内存空间 字符串对象一旦创建&#xff0c;对象内容永远无法改变&#xff0c;…

Python爬虫实战——下载小说

Python爬虫实战——下载小说 前言第三方库的安装示例代码效果演示结尾 前言 使用requests库下载开源网站的小说 注意&#xff1a;本文仅用于学习交流&#xff0c;禁止用于盈利或侵权行为。 操作系统&#xff1a;windows10 家庭版 开发环境&#xff1a;Pycharm Conmunity 202…