Niagara内容示例

概述内容示例项目中提供的Niagara粒子系统示例。

Choose your operating system:

Windows

macOS

Linux

参见

Niagara Houdini Niagara 地图包括粒子系统中的多个视觉效果和示例,展示Niagara粒子系统的部分功能。

此地图展示如何创建移动粒子、发生碰撞并生成其他粒子的粒子,以及如何对关卡中的网格体采样等。

Niagara地图

Niagara 地图展示基础、中级和高级的粒子系统集。

你可以在内容浏览器内的 地图(Maps) 文件夹下的内容示例项目中访问此地图。

NiagaraCE.png

示例

展示内容

简单粒子系统

1.1 简单Sprite发射器(Simple Sprite Emitter)

使用Niagara粒子系统的简单Sprite发射器示例。

1.2 简单网格体发射器(Simple Mesh Emitter)

使用Niagara粒子系统的简单网格体发射器示例。

1.3 简单GPU发射器(Simple GPU Emitter)

使用Niagara粒子系统的简单GPU发射器示例。

1.4 Sprite朝向(Sprite Facing)

Sprite朝向粒子系统示例,展示了可以朝向摄像机或朝向任意向量的Sprite。在此示例中,向量位于系统中心与粒子自身之间。该向量之后将根据发射器的年龄创建旋转Sprite。

1.5 按值混合属性(Blend Attribute by Value)

本示例使用动态值来控制粒子与发射器原点之间的距离,以便混合各个属性(如颜色、缩放、旋转和其他参数)。

中级粒子系统

2.1 静态光束(Static Beams)

本示例展示如何使用静态光束,此类光束通过静态起点和终点生成,而非逐帧动态更新。与级联不同,各光束分段均为模拟粒子,将受到力或其他效果的影响。

2.2 动态光束(Dynamic Beams)

本示例展示具有终点和切线的动态光束,将每帧重新计算此类终点和切线。点击 运行(Play) 模拟(Simulate) 可以查看终点和切线的实时更新。

2.3 多个渲染器(Multiple Renderers)

本示例展示模拟时可用于驱动多个渲染器的Niagara粒子系统。此示例展示驱动Sprite、网格体和条带渲染器的单点模拟。

2.4 位置事件(Location Events)

本示例展示使用先导粒子发射器的位置事件,该发射器将其位置作为事件发送到该粒子系统中的其他两个发射器,使之生成该位置。解算粒子的位置和速度后,将在帧的最后发送事件。

2.5 表达式(Expressions)

表达式是HLSL的小片段,可用于在无需新建模块的情况下,在堆栈中排队创建微观行为。本示例未使用模块来影响模拟,仅使用和表达式及动态输入结合的变量直接进行设置。

2.6 碰撞(Collision)

本示例展示如何处理要发送到不同发射器的碰撞事件,发射器将生成粒子以响应该碰撞事件。通过CPU上的线条追踪或者GPU上的深度缓冲/距离场检查完成碰撞查询。查询结果将保存并供后续模块使用。

高级粒子系统

3.1 静态网格体取样(Static Mesh Sampling)

本示例使用放置在世界中的静态网格体,可由粒子系统进行取样。此设置包括对属性取样,例如法线、UV、顶点颜色、样本位置和Actor速度。

3.2 渲染器重载(Renderer Overrides)

在本示例中,渲染器使用的各默认属性都可被模拟中的任意数据重载。此处使用的Sprite渲染器将得到新的位置作为箭头网格体位置处的偏移量,并由与箭头网格体不同的颜色属性驱动。两者都是相同单个射器的一部分。

3.3 骨骼网格体复制(Skeletal Mesh Reproduction)

本示例使用单个粒子系统,使用每个粒子累积多个影响的方法进行基于Sprite的网格体复制。事件系统和后期解算混合允许其在不同行为模式之间插值。

3.4 纹理取样(Texture Sampling)

本示例演示如何通过将纹理映射到场景中的粒子网格,在GPU粒子系统中引用纹理。

Houdini Niagara地图

Houdini Niagara 地图包括了多个示例,演示使用Houdini应用程序创建复杂的过程属性,这些属性可以和Niagara粒子系统一起使用。

你可以在内容浏览器内的 地图(Maps) 文件夹下的内容示例项目中访问此地图。

Houdini_NiagaraCE.png

示例

展示内容

1.Houdini数组中生成(Spawn From Houdini Array)

本示例展示从Houdini数组生成粒子所需的最小模块集。在发射器更新分段中, 在阵列播放中生成粒子(Spawn Particles From Array Playback) 控制逐tick生成的粒子数量。在粒子生成分段中, 处理生成的Houdini粒子(Handle Spawned Houdini Particles) 将在Houdini命名空间中设置粒子和其他Houdini属性的初始位置。

2.按类型生成(Spawn by Type)

类似于 1.Houdini数组中生成(Spawn From Houdini Array) 示例,粒子生成部分中的模块变更将处理 按类型生成的Houdini粒子(Spawned Houdini Particles by Type) ,以便去除与类型属性不匹配的粒子。

3.简单事件(Simple Event)

本示例类似于 1.Houdini数组中生成(Spawn From Houdini Array) 示例,但有两处主要的区别:1. 已添加名为 User.MasterCSV 的系统参数,使多个模块能够共享同一CSV资产,2.一共有两个发射器,而非一个。第一个发射器读取Houdini数组数据,并发送位置事件。第二个发射器读取位置事件。在此基础之上,将根据Houdini数组提供的数据所生成更复杂的粒子系统。

4.创建自定义事件(Creating Custom Events)

本示例基于上一示例 3.简单事件(Simple Event) 构建,用于在Houdini数组中访问自定义数据。你需要创建自定义事件和事件接收器模块。此外,还需要结构体用以保存事件发送和接收的数据。

5.内插数组(Interpolate Array)

本示例基于 3.简单事件(Simple Event) 4.创建自定义事件(Creating Custom Events) 构建。若Houdini数组同时拥有 ID 生命(Life) 属性,系统可通过粒子更新部分中名为 UpdatePosFromHoudiniArray 的额外模块内插位置。自定义事件用于将CSV索引(ID)传递到条带ID,以便第二个发射器演示为各字母创建条带。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消