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

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的蓝图节点可以安全的节点

http://www.xdnf.cn/news/9028.html

相关文章:

  • git学习笔记
  • matlab实现激光腔长计算满足热透镜效应
  • JAVA 学习日志
  • 防火墙的SD-WAN功能
  • JAVA基础编程练习题--50道
  • 【Webtrees 用户手册】第 2 章 - 访客须知
  • 网易互娱游戏研发实习一面
  • ubuntu脚本常用命令
  • 海外呼叫中心优势与挑战分析
  • Bota Systems与Kinova合作:赋予AI机器人触觉能力
  • 如何给自研MCP加上安全验证
  • 类的设计模式——单例、工厂以及建造者模式
  • java-单列集合list与set。
  • 前端移动端上传图片pc端如何实时获取
  • 2 的 4 次方到 10 次方
  • android安卓模拟器中访问宿主机的开发接口服务
  • Axure元件动作七:移动、旋转、启用/禁用效果、置于顶层/底层详解
  • 芋道框架 - 接口设置匿名访问
  • 鸿蒙OSUniApp 实现的短信验证码登录功能#三方框架 #Uniapp
  • Numba模块的用法(高性能计算)
  • 类和对象(2)
  • LlamaFirewall:开源框架助力检测与缓解AI核心安全风险
  • C++项目中调用C#DLL的的方式
  • 人工智能工程师学习路线总结(下)
  • pytorch 15.2 学习率调度在PyTorch中的实现方法
  • 0526漏洞原理:漏洞验证-信息收集笔记(BurpSuite Professional,fofa,BUUCTF)
  • 互联网大厂Java求职面试:AI大模型与云原生架构融合中的挑战
  • ai学习--python部分-1.变量名及命名空间的存储
  • django三级联动
  • MongoDB 快速整合 SpringBoot 示例