UE5 Niagara Advance 学习笔记

Initialize Mesh Reproduction Sprite函数可以在指定模型进行采样

看起来像木乃伊

这里调整粒子的大小就不在Initialize Particle调整大小了,而是在Initialize Mesh Reproduction Sprite里面调整粒子大小了


UE5 的 Niagara Particle Attribute Reader 是用于在粒子系统中读取和共享粒子属性数据的工具,允许粒子之间或跨发射器动态交互。以下是详细解析:


1. 核心定义

  • 功能:在 Niagara 粒子系统中,它是一个模块或脚本节点,用于读取特定粒子(来自当前或其他发射器)的属性(如位置、速度、颜色等),并将这些数据用于驱动其他粒子的行为或计算。

  • 定位:属于 Niagara 的高级数据交互功能,用于实现粒子间的复杂逻辑(如群体模拟、数据传递、动态响应等)。


  • 这个Normal是真正表面上的Normal的反向

Niagara Script中用距离场就用上图的节点

Vector To Nearest Surface就是法线


Particle Attribute Reader可以根据发射器的名字来获取其他发射器的属性


Direction and Lenght Safe:V将向量传进去,可以获取Vector的Direction,也可以计算出Vector的Length

在 Unreal Engine 4.26 中,方向(Direction)和长度(Length)的安全处理通常用于避免因零向量(Zero Vector)或非法数学操作导致的崩溃或逻辑错误。以下是关键解决方法:


1. 方向(Direction)安全处理

问题场景

直接对零向量调用 Normalize() 会导致除零错误:

复制代码
FVector MyVector = FVector::ZeroVector;
FVector Direction = MyVector.Normalize(); // 崩溃!
安全解决方案

使用 GetSafeNormal() 函数:

复制代码
FVector MyVector = FVector::ZeroVector;
if (MyVector.Normalize()) 
{
    // 标准化成功,可安全使用
}
else 
{
    // 向量长度为0,设置默认方向
    FVector SafeDirection = MyVector.GetSafeNormal(1e-6f, FVector::ForwardVector);
}
  • 参数说明
    • 1e-6f:最小有效长度阈值(低于此值视为零向量)
    • FVector::ForwardVector:标准化失败时的默认方向

2. 长度(Length)安全处理

问题场景

计算长度时可能遇到无效值:

复制代码
float Length = MyVector.Length(); // 可能返回极小值(如0.000001)
安全验证

通过 IsNearlyZero() 判断有效性:

复制代码
if (!MyVector.IsNearlyZero(1e-4f)) 
{
    // 向量有效,可安全使用长度
    float SafeLength = MyVector.Size();
}
else 
{
    // 处理无效向量
}
  • 参数说明1e-4f 是浮点数容差(避免浮点误差误判)


    这个Niagara Script的蓝图节点可以安全的节点

相关推荐
hello_ world.14 分钟前
k8s笔记04-常用部署命令
笔记·容器·kubernetes
SatoshiGogo43 分钟前
《李沐读论文》系列笔记:论文读写与研究方法【更新中】
笔记
IT19951 小时前
Wireshark笔记-DHCP流程与数据包解析
笔记·测试工具·wireshark
子朔不言1 小时前
[MH22D3开发笔记]2. SPI,QSPI速度究竟能跑多快,双屏系统的理想选择
笔记·mh22d3·新龙微·兆讯·双屏
被遗忘的旋律.1 小时前
Linux驱动开发笔记(七)——并发与竞争(上)——原子操作
linux·驱动开发·笔记
鲸鱼24011 小时前
无监督学习中的经典聚类算法——K-Means笔记
笔记
黑客影儿2 小时前
使用UE5开发2.5D开放世界战略养成类游戏的硬件配置指南
开发语言·c++·人工智能·游戏·智能手机·ue5·游戏引擎
wan5555cn2 小时前
AI 时代“驯导师”职业发展方向探究
大数据·人工智能·笔记·深度学习
霜绛3 小时前
Unity笔记(六)——Mathf、三角函数、坐标系、向量
笔记·学习·unity·游戏引擎
long3164 小时前
代理设计模式
java·学习·程序人生·设计模式·代理模式