Unity学习笔记 Vol.89 暴雨及特效(五毛)
特效来自自己的赤影复刻。首先说明项目使用的是URP。
暴雨
新建一个粒子系统。
GameObject—>Create other—>Particle System。改名为raindrop。
新建一个材质(material),改名为跟贴图一样的名称RainStreak,修改材质的Shader为Particles/Priority Additive(Soft)。


将贴图RainStreak赋给材质,修改Tiling的x为18。


修改RainStreak贴图的Wrap Mode为clamp

将RainStreak的Material赋给粒子系统的Render下面的Material。

修改粒子系统的Shape,使之变为圆柱形。

调节参数Emission下的Rate,可修改雨滴密度。

Rotate by Speed下的Angular Velocity可改变雨滴的下落方向。


我们再调节下雨的整体方向,让雨滴的方向和整体方向一致。
接着我们再制作雨滴拍打地面的散碎的效果。
在raindrop的下层创建一个粒子系统,命名为waveImpact。

再创建一个材质,同样选择Particles/Priority Additive(Soft)这个Shader,命名为WaveImpactMat。这个材质的Particle Texture设置为默认的Default-particel就可以了。
如下设置。








完成后。回到上一层。raindrop。我们再勾选Collsion选项。

选中想要碰撞的层级,这里我们只选择地面就可以了。

最后,再勾选Sub Emitters,将Collision中选择下层的粒子。

可以看到雨滴碰撞地面时会散碎的效果。
雷电
创建粒子。命名为lightning。




制作雷电材质贴图
用PS或Krita制作渐变贴图


保存为PNG,带有透明通道的文件。将这个文件导入Unity,将纹理类型设置为 Sprite。

创建新材质,设置Shader为Unlit/Transparent,将上面的纹理拖到Base中。

将材质拖到Renderer中的Trail Material中

勾选设置Size over Lifetime

基本就是这样了。

另外,我还给雷电加了闪现和消失的动画效果,同时再播放雷电的声音。

我增加了一个Animator组件和一个AudioSource组件。
AudioSource组件中的AudioClip,我直接设置好了一个赤影中雷电的声音文件。
我再创建一个AnimationController,命名为lightning。然后再创建一个flash的Animation动画。

将这个动画放入这个动画控制器中。

这个动画同时控制声音的播放和雷电的显现,我在动画的第一帧,将声音和粒子显示的开关打开,再30左右将它们关闭,然后再300帧再设置一个关闭两者的关键帧,这里我的帧率是60帧,这意味着我只显示半秒声音及动画,其它4秒半都处于关闭状态。这样我就做出了,雷电闪现的效果。
同样的原理,我也给场景的方向光增加了打闪的效果。

同样,增加Animator,AnimationController,和一个打闪动画。

这里我在前4秒半都保持灯光的Intensity为1,再最后10帧时,291帧迅速拉高至50,再300帧时回到1。这样就产生了打闪的效果。
运行游戏可以看到暴雨闪电的效果已经初步达成了,当然效果只能说还差得远。另外,我在实际游戏中并没有遵循先看到闪电,后听到雷声的思路,只是按照我自己的想法去作。

有兴趣的可以去看看大体效果。就是这样。