Choose your operating system:
Windows
macOS
Linux
Niagara 和 Houdini Niagara 地图包括粒子系统中的多个视觉效果和示例,展示Niagara粒子系统的部分功能。
此地图展示如何创建移动粒子、发生碰撞并生成其他粒子的粒子,以及如何对关卡中的网格体采样等。
Niagara地图
Niagara 地图展示基础、中级和高级的粒子系统集。
你可以在内容浏览器内的 地图(Maps) 文件夹下的内容示例项目中访问此地图。
示例 |
展示内容 |
|
---|---|---|
简单粒子系统 |
||
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) 文件夹下的内容示例项目中访问此地图。
示例 |
展示内容 |
---|---|
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,以便第二个发射器演示为各字母创建条带。 |