效果
步骤
一、制作扫描效果
1. 在3dsmax中新建一个圆形
设置半径为50mm,勾选“自适应”
转换为可编辑多边形
导出
2. 打开虚幻编辑器,导入制作好的模型
3. 创建一个材质,这里命名为“M_Sphere”
打开“M_Sphere”,添加一个“VectorToRadialValue”节点,
此时预览“VectorToRadialValue”节点效果如下:
“VectorToRadialValue”节点的引脚“LinearDistance”输出结果如下
我们可以通过“Power”节点将渐变范围扩大
将材质的混合模式改为“半透明”,着色模型改为“无光照”
更改一下颜色:
降低不透明度
4. 打开之前导入的圆形静态网格体,设置材质为“M_Sphere”
5. 新建一个actor蓝图类,这里命名为“BP_scan”
打开“BP_scan”,添加一个静态网格体组件,静态网格体设置为“circle”
接下来在事件图表中添加圆形波纹从小变大的逻辑,主要通过“设置场景范围3D"节点实现:
由于是在一定时间范围内变化,就需要添加一个时间轴节点
双击打开时间轴节点,添加两个关键点,分别是(0,0)和(5,1),此时输出的Alpha就会在5秒内从0变为1
将输出的Alpha乘100,表示Alpha就会在5秒内从0变为100,从而圆形网格体就会在1秒内放大100倍
6. 打开玩家控制的蓝图“FirstPersonCharacter”
添加一个新图表,这里命名为“扫描系统”
在新图表真牛逼添加如下节点,表示当按下1键时,会在玩家位置处生成“BP_Scan”,生成“BP_Scan”后,“BP_Scan”自己会在1秒内放大100倍
此时效果如下:
可以看到扫描波纹扩散后并没有消失,我们需要在蓝图“BP_scan”中设置延迟一段时间后波纹消失
如果希望能够一次产生两次扫描效果,我们可以在角色蓝图的新图表中设置生成一次“BP_scan”后延迟0.3s再生成一次
二、制作小型冲击波效果
1. 打开“BP_scan”,添加一个球体组件
设置球体的材质同样为“M_Sphere”
在事件图表中设置球体也会被放大
设置两个静态网格体的碰撞预设均为“NoCollision”
2. 接下来修改下“BP_scan”中球体的材质,先复制一份材质“M_Sphere”
该材质节点如下
3. 将材质“M_Sphere_2”给到“BP_scan”的球体
对球体和圆形分别设置放大过程,在开始时设置球体可视
0.5s后设置隐藏球体
4. 为了让球体的顶部和底部渐变消失,打开材质“M_Sphere_2”,首先添加如下节点
将参数“Desity”的默认值修改为3,继续添加如下节点
为了让球体一直面对着玩家,我们需要在“BP_scan”中设置球体的旋转
效果如文章开头所示。
参考视频链接
https://www.bilibili.com/video/BV1Ty4y1P7j9/?spm_id_from=333.337.search-card.all.click&vd_source=36a3e35639c44bb339f59760641390a8