Niagara粒子系统-超炫酷的闪电特效(加餐 纸牌螺旋上升效果)

目录

[① 添加【Rotate Around Point】](#① 添加【Rotate Around Point】)

[② 完善旋转速率和旋转半径](#② 完善旋转速率和旋转半径)

③给位置添加Vector偏移量

[④自定义参数 【改变粒子朝向】](#④自定义参数 【改变粒子朝向】)

⑤【获取粒子朝向】

⑥设置Alignment

⑦通过节点设置粒子朝向


在这一期,我们的研究方向变为:如何让粒子可以在自身运动的同时,螺旋上升呢?

如图所示,这种效果应该如何实现?

如何让纸牌实现螺旋上升的效果呢?

首先需要理清思路,纸牌的上升分为父级引导发射器和子级跟随发射器。新建父级发射器并完成发射逻辑,添加【Rotation around Point】围绕中心点旋转,当【中心点逐渐上升】,就实现了粒子螺旋上升的过程。

共分为七步

① 添加【Rotate Around Point】

粒子更新中,围绕中心点旋转

② 完善旋转速率和旋转半径

在围绕中心点属性中设置旋转速率和旋转半径

③给位置添加Vector偏移量

通过曲线使Z轴的偏移量逐渐上升

螺旋上升的偏移是依靠添加Vector偏移量,并添加逐渐上升的曲线最终实现上升的目的。

④自定义参数 【改变粒子朝向】

粒子朝向也是我们需要关注的重点,如何通过自定义参数来设置旋转的朝向

⑤获取粒子朝向

在这个项目中,粒子是螺旋上升的,它的【Shape Normal】朝向并不是一个圆柱体,因为Z轴的影响,粒子并不会朝着我们理想中的方向,这里需要进行更改,消除Z轴对于旋转的影响。

用粒子位置减模拟位置 得到粒子的朝向

但是,【Z轴】并不是我们需要的,在粒子上升过程中,朝向的Z轴不需要发生变化。

设置mask中的遮挡数值

用当前位置减去模拟位置 获得朝向方向

这样,我们就实现了让粒子朝向旋转的中心轴进行生成。

但是,如何让粒子在生成的同时可以运动起来呢?

⑥设置Alignment

将facing朝向旋转90度,可以得到一个实时变化的速度。

这时,需要做一些更改,我们不能在父级发射器来自定义参数,而是换在子级发射器的粒子更新来自定义参数

使用【四元向量】来调整粒子的速度方向

四元数是一种用于表示 3D 空间中旋转的数学结构,由爱尔兰数学家哈密顿在 1843 年提出,它可以完美避免欧拉角(Pitch/Yaw/Roll)存在的【**万向节死锁】**问题,是现代 3D 引擎(如 Unreal Engine)中描述旋转的标准方式。

最终的粒子扩散效果就制作完成了。

⑦通过节点设置粒子朝向

第⑤步中我们通过两个向量的X,Y值相减获取到了粒子的朝向,但是这种方法可能过于复杂,有没有更加简单的方法来实现更改粒子的朝向呢?当然有。

我们可以通过新建暂存区模块,使用节点完成对粒子朝向的更改

如图所示,通过调整蓝图节点来设置暂存区,依然可以实现粒子螺旋上升的效果。

好啦,本期关于闪电的案例就到这里啦,谢谢各位小伙伴的陪伴和支持,后续我会更新更多技能点笔记分享,我们下一期再见啦!

相关推荐
CoderYanger5 小时前
A.每日一题:1140. 石子游戏 II
java·程序人生·算法·leetcode·游戏·职场和发展·深度优先
无别0527 小时前
【做游戏】做完游戏Demo后没地方发布?
游戏·玩游戏
lilian2337 小时前
HarmonyOS 7 新特性(二十九)|游戏伴随服务:悬浮协作与质量降级
游戏·语音识别·harmonyos
人民广场吃泡面8 小时前
DLSS 5 深度解析:当 AI 学会“创造”画面,实时游戏渲染迎来“GPT 时刻”
人工智能·gpt·游戏
郝学胜-神的一滴9 小时前
CMake 047:解锁安装阶段自定义操作,告别配置阶段提前执行坑
运维·服务器·c++·游戏引擎·图形渲染·opengl
学习星球10 小时前
AI 一句话生成 3D 游戏世界:腾讯 HY-World 2.0 开源深度解析与本地实战
开发语言·人工智能·游戏·3d·ai·课程设计·ai编程
乌萨达10 小时前
梦幻新诛仙轻享电脑版怎么玩?模拟器安装与设置指南
游戏·安卓模拟器·雷电模拟器
qq_369224331 天前
ddraw.dll丢失是什么原因引起的?老游戏运行报错,多种可行修复手段汇总分享
windows·游戏·dll·dll修复·dll丢失·dll错误
xiaohe06011 天前
🎮 豆包完胜 DeepSeek ?!零玩家竞技场,AI Agent 专属对弈!
游戏·llm·agent
微三云生态系统架构师-彭丹1 天前
任务卷轴积分系统架构设计:从任务状态机到合规风控的完整实现
unity·系统架构·游戏引擎