完成后的效果:
FireworkEffect
以下是在UE4.27中的实现过程:
1.烟花飞上天的效果。
显然,点燃一个烟花会飞上天“一个粒子”,所以使用SpawnBurstInstantaneous生成1个就行了。为了做出飞上天的效果,可以使用AddVelocityinCone。
这里的VelocityStrength就是飞上天的速度,数值大约在两千和三千之间比较合适。ConeAngle的效果是偏离中间,可以想象一个倒过来的圆锥,如果数值越大,这个圆锥越接近一个平面。比如如果设置为120,看上去粒子就像贴地飞行一样。而50左右的偏离是比较合适的。ConeAxis改成(0,0,1)就是向上移动。
改变粒子的时间和颜色,主要是随机显示一种颜色比较关键。
2.烟花拖曳的效果。
首先,这里用到了“事件处理器”。需要在Firework,即烟花本体中添加GenerateLocationEvent,因为拖曳效果是在本体上跟随生成的。选择Firework的“粒子更新”,然后输入“GenerateLocationEvent”,就可以添加。这里使用默认的参数就可以。然后在Firework的发射器属性中勾选“需要持久ID”。
然后,添加一个空白的发射器,将“InitializeParticle”改成“InitializeRibbon”,“Sprite渲染器”改成“条带渲染器”。
对于拖曳效果,先修改InitializeRibbon中Ribbon的时间和大小。不需要修改颜色。
点击“添加事件处理器”,“源”选择Firework的“LocationEvent”,执行模式为“生成粒子”。
接着在“事件处理器-源:LocationEvent”的加号添加“
ReceiveLocationEvent”, 将Color改成Apply。
最后添加CurlNoiseForce,NoiseStrength改成250就可以了。
3.优化拖曳效果,添加尾部掉落粒子。
这里主要就是事件处理器的设置。
然后修改一下InitializeParticle中的LifeTime,在0.5秒到1.5秒;SpriteSize设置为15;添加NoiseStrength为400的CurlNoiseForce。这样的效果比较合适。
4.烟花炸开的效果
这里使用的是DeathEvent,因为是在烟花飞上天之后才会炸开,即在Firework持续时间结束之后,Firework_Burst生成,形成烟花炸开的效果。这里Firework_Burst的大部分设置和Firework_Ribbon基本上差不多,最大不同就是事件处理器的Receive不同。
此外,添加了粒子的移动速度。
最后添加了PlayAudio。
这里借用了MilitaryWeapSilver中Shotgun的开枪声音和声音衰减,来表示烟花炸开时的声音。
后续补充:
可以制作烟花炸开之后的不同散开效果。