UE4_Niagara基础实例—15、粒子发射器之间的通信

news/2024/12/14 11:32:24/

效果:

分析:

       要想让第二个发射器产生的粒子向第一个发射器产生的粒子靠齐,我们就需要用到点吸引力或者点排斥力,同时得到第一个发射器粒子的位置就可以了,要想得到第一个发射器粒子位置,那么我们就得需要粒子属性阅读器。粒子属性阅读器获得的东西太多,我们需要读取出来设置给一个变量,变量再传给点吸引力的位置即可。

步骤:

以模版2个hanging particle发射器为模版创建粒子系统。

1、先调整第一个HangingParticulates发射器的参数。

2、发射器属性下设置GPU计算模拟,勾选本地空间,勾选固定边界。

3、在Emitter State下让发射一次。

4、在Particle State模块下取消勾选Kill Particles When Lifetime Has Elapsed,不让粒子消失。

5、删除Spawn Rate,添加Spawn Burst Instantaneous模块, 只出生一个粒子。

6、删掉box出生位置,修改球形位置的半径。调整粒子大小和颜色。

为了看的更清楚,把Scale Sprite Size和Scale Color模块删掉。不让大小和颜色发生变化。

把另一个发射器关掉,效果如下:

7、再调整第二个发射器的参数,删除Box  Location。

8、删掉Spawn Rate,添加Spawn Burst Instantaneous, 修改出生数量。

9、也让它只出生一次。

10、修改发射器属性。

11、让粒子不消亡。

12、让粒子更新不产生大小和颜色的变化,删除模块。

13、我们现在想做的事是让第一个发射器发射的粒子吸引第二个发射器发射的粒子,也就是第二个粒子发射器点吸引力的位置是第一个发射器发射的粒子的位置,注意粒子位置是动态变化的,我们需要把发射器的参数传递过去。

我们添加点排斥力模块(点吸引力模块也可以)

14、我们需要修改力的位置,

重点来了,发射器属性中新建“粒子属性阅读器”。

15、我们需要在发射器生成的瞬间就需要这个,把它拖到发射器生成模块下

粒子读取的发射器命名为第一个发射器的名字。

16、我们建一个向量来获取粒子属性阅读器中的粒子position。

17、我们需要新建一个模块,用于处理把粒子阅读器中读取到的粒子位置赋予forceposition。暂存区中模块+号新建,更名为readparticleposition。

18、我们把发射器参数New 粒子属性阅读器拖到映射Get上,

我们通过粒子的ID能够获取好多东西,

这里我们只要获得位置向量赋予我们新建的forceposition就行了。

19、我们要获取的属性Attribute是什么?粒子Position。

20、我们要传给谁呢?我们把forceposition拖到映射集上。

传过去就可以了。

单击应用。

21、把新建的模块Readparticleposition添加到粒子更新模块。

改变模块位置,得放在Point Force模块的上面。

22、修改Point Force的力的大小,并把force origin设置成我们新建的向量forceposition。

运行效果如下:


http://www.ppmy.cn/news/1545090.html

相关文章

【大数据学习 | kafka高级部分】文件清除原理

2. 两种文件清除策略 kafka数据并不是为了做大量存储使用的,主要的功能是在流式计算中进行数据的流转,所以kafka中的数据并不做长期存储,默认存储时间为7天 那么问题来了,kafka中的数据是如何进行删除的呢? 在Kafka…

C++之旅——入门

Hello,各位小伙伴们,前几期我们学习了C语言和数据结构,有了一定的基础之后我们来挑战新的语言——C。 目录 一、初识C 1>C发展历史 2>C版本更新 3>C的热度 4>C的学习难度 5>C学习相关书籍 二、第一个C代码 三、C基础 …

[晕事]今天做了件晕事50 dev_ioctl 里没有SIOCADDTUNNEL?

今天又晕了一下,在看添加GRE隧道的代码,发现这个dev_ioctl里没有关于这个SIOCADDTUNNEL处理? 后来发现不是没有,而是被下面的代码覆盖了,虽然没有明写case语句,但是if判断里已经包含了,使用了大…

【ubuntu18.04】使用U盘制作ubuntu18.04启动盘操作说明

打开show application 打开Startup Disk 选择镜像 双击选择ubuntu的iso镜像 镜像下载地址 Ubuntu 18.04.6 LTS (Bionic Beaver) 制作镜像 注意: 制作镜像会格式化U盘,记得备份资料 点击Make Startup Disk,弹出如下对话框 点击Yes 输入管理员密码&a…

Redis数据库测试和缓存穿透、雪崩、击穿

Redis数据库测试实验 实验要求 1.新建一张user表,在表内插入10000条数据。 2.①通过jdbc查询这10000条数据,记录查询时间。 ②通过redis查询这10000条数据,记录查询时间。 3.①再次查询这一万条数据,要求根据年龄进行排序&#…

【QT】Qt文件和多线程

个人主页~ Qt系统内容 一、Qt文件1、文件读写读写 2、文件和目录信息 二、多线程1、线程使用timethread.hwidget.htimethread.cppwidget.cpp 2、线程安全(1)互斥锁QMutexQMutexLocker一个例子mythread.hmythread.cppwidget.cpp QReadWriteLocker、QReadL…

gerrit 搭建遇到的问题

1、启动Apache,端口被占用 : AH00072: make sock: could not bind to address (0S 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。: AH00072: make sock: could not bind to address 0.0.0.:443 a AH00451: no listening sockets available, shutti…

Docker篇(容器的备份与迁移)

目录 一、容器保存为镜像 二、镜像备份 三、镜像恢复与迁移 一、容器保存为镜像 docker commit mynginx mynginx_i 目的:主要的作用就是配置好的一些容器,可以得到复用,就不需要重新再次配置了 二、镜像备份 注意是保存在当前执行命令的…