UE4 Simulation Stage 制作 平流
第一步:
先将Sprite Render里面将Source Mode还为Emitter
下面Bindings里面有Emitter的SpriteFacing和SpriteAlignment的变量,在左侧的Emitter Attributes里面创建该两个变量,最后在Emitter Spawn里面设置SpriteFacing和SpriteAlignment的初始值
创建5个需要的变量:
TS:TextureSample 主贴图
RT:RenderTarget 将RenderTarget的Size为256 * 256
Grid2D:Grid2D Collection 将Buffer的Format设置为半精度浮点数(精度越高细节越多,看项目需要,再将Num Cells X/Y设置为256
Noise:TextureSample 设置扰动图,将UV进行扰动
SpriteSize:Vector2D 整个贴图的显示大小
将本地空间打开(根据你的需求调整)
Simulation Stage需要GPU粒子,所以开启GPU粒子然后开启Fixed Bounds
最后打开Enable Simulation Stage的开关
将材质设置上去,材质编写在下面:
最主要是看这个FillRT的图片变量,然后我们又回到Niagara界面
这里面将材质放进去了,在Material Parameter Bindings里面点击“+”号,里面的Material Parameter Name里面就有材质里面的变量,这里面用Fill RT(材质里面的贴图变量)
然后将Niagara的RT变量传给材质,然后粒子输出具有材质的Sprite,就可以看到RT绘制的样子
这里有三个Simulation Stage的模块
点击Add Simulation Stage的“+”号就可以加上Simulation Stage的模块
Simulation Stage最大的优势就是能够多次效果迭代,模拟更丰富的效果
这里我们把Iteraction Source设置为Data Interface,迭代次数为1
Data Interface 设置为模块输出的变量就行,这里写为Grid2D
这里看第一个Cal RGBA模块
输入为Grid2D(Emitter),TS(Emitter),将Grid2D的索引转为UV,对TS按照Grid2D转化出的UV进行采样,每次把上一帧的RGBA进行淡化(乘以0.8),再加上本帧采样的贴图效果
再来看第二个模块
不过多解释这里的信息了
看Modify RGBA
首先看输入,Grid2D老样子Index转UV,用于采样Noise贴图,Age用于让扰动贴图进行平移
这里将扰动贴图采样的RG值(值范围在0~1),映射到-1到1,让扰动效果能在四周扰动
算出来的扰动值加上UV,对Cal RGBA模块计算出来的Grid2D中的RGBA变量进行采样,再重新赋值到RGBA中
这里的最后一个Drawing RT模块,是对RGBA绘制到RT上,最后RT给到上面说的材质中,进行显示,所以这里的Data Interface设置为RT
这里就比较简单了,就是将之前计算好的RGBA进行采样,然后设置到Render Target上,就可以进行效果展示了