Emitter Update
Spawn Particles in Grid
基于用户定义的网格精度设置来生成粒子,与 Grid Location 一起使用;

Particle Spawn
Grid Location
基于Spawn Particles in Grid生成的粒子,将该粒子均匀的分布在网格上;
模块输出变量 Normalized Array Location 可用于 Sample Texture 模块采样;

Initial Mesh Orientation
设置Mesh初始方向,即设置属性MeshOrientation;这与Rotational Force/Velocity模块不同,后者建立了一种更基于物理的旋转方法,旋转力需一个额外的求解器,使其成本更高;
对Mesh进行旋转:
对mesh进行定向:
- Random 随机方向
- System 系统本身实例的旋转方向
- Orient to Vector 定向到指定矢量
- Orientation,通过将Mesh的轴对齐到指定的方向;
- Orientation Vector 指定的方向;
- Mesh Axis To Orient 指定哪个轴对象到指定的方向;
- Orient to Matrix 定向到指定矩阵
- Orient to Quaternion 定向到指定四元数
Calculate Size and Rotational Inertia by Mass
根据设定的质量和密度,计算Particles.Scale或Particles.SpriteSize和旋转惯性Particles.RotationalInertia;
不勾选Calculate Mesh Scale,针对的是Sprite的Particles.SpriteSize;

勾选Calculate Mesh Scale,针对的是Mesh的Particles.Scale;

Initialize Mesh Reproduction Sprite
在Skeletal Mesh表面生成粒子,且粒子大小参考三角面面积,朝向对齐法线;

该模块首先在Skeletal Mesh上选择一个随机坐标位置,然后使用选择的三角面,计算一个理想的SpriteSize,UVscale、Spritealignment;为正确的将粒子对齐到mesh表面,应设置Custom Alignment、Custom Facing Vector;

如Mesh没有动画,可勾选"Overwrite Intrinsic Variables",设置所有粒子系统固有参数(Position、Velocity等);如要更新,则不应选中该复选框,应在粒子更新阶段添加"update mesh repropduction sprite"模块;

在材质内,使用"Niagara_MeshReproductionSpriteUVs"去采样Mesh的UV;

注:这些模块假定Skeletal Mesh的uvs是正方形的,并且没有在一个轴上压缩;
Move to Nearest Distance Field Surface GPU
将粒子移动到最近距离场的表面,仅适用于GPU且项目已开启Generate Mesh Distance Fields;
- Vector To Nearest Surface Normal,表示粒子指向表面的单位向量;



Particle Update
Find Kinetic and Potential Energy
求动能和势能,重映射总能量默认是0~1;
- Kinetic Energy = len(v)^2*mass*0.5
- Total Energy = Kinetic Energy + Potential Energy

Update Mesh Orientation
随时间更新Mesh方向,即直接设置属性MeshOrientation;这与Rotational Force/Velocity模块不同,后者建立了一种更基于物理的旋转方法,旋转力需一个额外的求解器,使其成本更高;
Rotation Rate 旋转率
Orient To Vector(s)
Orient to Position
Sprite Facing and Alignment
无论模拟坐标空间如何,Particles.SpriteFacing和Particles.SpriteAlignment均为世界空间向量;

Rotate Around Point
围绕指定点旋转;
IncrementingCounter += Rate*DeltaTime;
Position = RotationCenter + Radius * Normalize(Cos(IncrementingCounter + Phase) * XAxis + Sin(IncrementingCounter + Phase) * YAxis)

Collision
GPU
- GPU Depth Buffer,与任何不透明的on-screen表面碰撞;
- GPU Distance Fields,非常高效且合理稳定,但仅与足以被低精度距离场捕获的厚度表面碰撞;需已经有距离场的对象,且已在项目设置中激活Generate Mesh Distance;
- Analytical Planes,是用户定义的无限平面,是最经济便宜的选项;
CPU
- Ray Traced,非常昂贵,每个粒子通过沿其规矩进行光线追踪的方式查找附近的碰撞表面,使用"WorldDynamic"追踪通道;可读取场景的物理材质特性,如摩擦力和弹性系数;
- Analytical Planes,是用户定义的无限平面,是最经济便宜的选项;
Collision Radius 每帧计算碰撞半径
- Sprite,利用Particles.SpriteSize计算碰撞半径;Mesh,使用用户定义的mesh尺寸向量和Particles.Scale变量计算碰撞半径;Custom,直接输入半径值;
- Bounds,中心到边角的长度;Maximum Axis,最长轴长度/2;Minimum Axis,最短轴长度/2;
Bounce
- Restitution,控制粒子的反弹系数,1保持所有能量;
- Restitution Cofficient Blending,碰撞对象的物理材质反弹系数与粒子反弹系数如何融合;
Friction
- Simple Friction,简单摩擦,较少的控制摩擦参数,大多数情况下已足够用;
- CPU Friction Blending,碰撞对象的摩擦系数与粒子摩擦系数如何融合;
- Friction During a Bounce,在碰撞的瞬间对物体施加的摩擦系数;
Static Mesh Location
在指定的Static Mesh位置生成粒子;

Sample Texture
目前仅支持GPU模拟; 在指定的UV位置采样纹理,并返回颜色;

Mesh Rotational Force
根据作用在yaw、pitch、roll轴上力的大小添加旋转力,并累加到Transient.PhysicsRotationForce;注意,这是一种基于物理的旋转力,会考虑mass/drag/inertia,会要额外要求旋转解算,比直接设置方向要昂贵的多,不同质量的粒子会对旋转力产生不同反应;

Fade Over Time
如目标值随时间增加使用目标值,如随时间减少会衰减该值;会输出Particles.FadOverTime.CurrentValue,此值可用于控制其他参数,如材质颜色等;
![]()
- 当目标值 >= 当前值时,使用目标值;
- 当目标值 < 当前值时,随时间降低当前值;
//Initialize the fader value
if IsFirstFrame
CurrentValue = TargetValue
else
CurrentValue = CurrentValue
//Fade the value
if Use Min Delta
Bool = TargetValue>=CurrentValue and (TargetValue-CurrentValue)>=MinValueDifference
else
Bool = TargetValue>=CurrentValue
if Bool
TempVal = Max(TargetValue,CurrentValue)
else
if Linear
TempVal = CurrentValue-FadeRate*DeltaTime
if Percentage
TempVal = Max(FadeRate*(CurrentValue-MinValue),MinStepSize)*DeltaTime
TempVal = CurrentValue-TempVal
TempVal = Max(TempVal,MinValue)
if Active
CurrentValue = TempVal
else
CurrentValue = CurrentValue
Update Mesh Reproduction Sprite
更新在Skeletal Mesh表面生成的粒子属性,包括Position,Velocity等;与Initialize Mesh Reproduction Sprite模块配合使用;

Lerp Particle Attributes
对粒子属性插值;SpriteFacing默认是(0,0,1);

Calculate Accurate Velocity
从先前位置和现在位置计算精确的速度;对于改变了解算器预期的位置时是有用的‘;

Ray Trace Distance Field GPU
光线追踪距离场(球型追踪),沿光线迭代采样全局距离场以查找isosurface;

Avoid Cone
避开锥体,一样使粒子偏离聚光灯或锥形区域,约束条件避免粒子穿透临近表面(沿物体表面,即将速度投射到表面);

Time Based State Machine
表示粒子的状态是开(1)还是关(0);
- On Duration,从0到指定数值的持续时间;
- Off Duration,从0到指定数值的持续时间;
- On Off Percentage,先是1~0持续时间(Lerp Time To Off),在是0~1持续时间(Lerp Time To On);
- Lerp Time To Off/On,可以是0,这样就是0和1之间切换;


Interpolate Over Time
以用户定义的速率,随时间向目标值插值过渡;


Pendulum Setup
钟摆设置,非物理正确的钟摆约束,能很好地与力相互作用,如Gravity/ Acceleration/drag;原理即在解算完力和速度后,在方向上(粒子到Pendulum Pivot)仍保持指定的钟摆长度(粒子位置到Pendulum Pivot的距离),并更新速度;
- 不超过Pendulum Length时,无影响不约束,但勾选Rigid Pendulum时,无论超过不超过均约束到该长度;
- 超过Pendulum Length时,将粒子直接约束到该长度;

Pendulum Constraint
应用Pendulum Setup模块的设置,应放置在Solve Forces and Velocity后;












3570

被折叠的 条评论
为什么被折叠?



