效果

步骤
一、制作扫描效果
- 在3dsmax中新建一个圆形

设置半径为50mm,勾选"自适应"

转换为可编辑多边形

导出

- 打开虚幻编辑器,导入制作好的模型

- 创建一个材质,这里命名为"M_Sphere"

打开"M_Sphere",添加一个"VectorToRadialValue"节点,

此时预览"VectorToRadialValue"节点效果如下:

"VectorToRadialValue"节点的引脚"LinearDistance"输出结果如下

我们可以通过"Power"节点将渐变范围扩大

将材质的混合模式改为"半透明",着色模型改为"无光照"

更改一下颜色:

降低不透明度

- 打开之前导入的圆形静态网格体,设置材质为"M_Sphere"

- 新建一个actor蓝图类,这里命名为"BP_scan"

打开"BP_scan",添加一个静态网格体组件,静态网格体设置为"circle"

接下来在事件图表中添加圆形波纹从小变大的逻辑,主要通过"设置场景范围3D"节点实现:

由于是在一定时间范围内变化,就需要添加一个时间轴节点

双击打开时间轴节点,添加两个关键点,分别是(0,0)和(5,1),此时输出的Alpha就会在5秒内从0变为1

将输出的Alpha乘100,表示Alpha就会在5秒内从0变为100,从而圆形网格体就会在1秒内放大100倍

- 打开玩家控制的蓝图"FirstPersonCharacter"

添加一个新图表,这里命名为"扫描系统"

在新图表真牛逼添加如下节点,表示当按下1键时,会在玩家位置处生成"BP_Scan",生成"BP_Scan"后,"BP_Scan"自己会在1秒内放大100倍

此时效果如下:

可以看到扫描波纹扩散后并没有消失,我们需要在蓝图"BP_scan"中设置延迟一段时间后波纹消失

如果希望能够一次产生两次扫描效果,我们可以在角色蓝图的新图表中设置生成一次"BP_scan"后延迟0.3s再生成一次

二、制作小型冲击波效果
- 打开"BP_scan",添加一个球体组件

设置球体的材质同样为"M_Sphere"

在事件图表中设置球体也会被放大

设置两个静态网格体的碰撞预设均为"NoCollision"

- 接下来修改下"BP_scan"中球体的材质,先复制一份材质"M_Sphere"

该材质节点如下

- 将材质"M_Sphere_2"给到"BP_scan"的球体

对球体和圆形分别设置放大过程,在开始时设置球体可视

0.5s后设置隐藏球体

- 为了让球体的顶部和底部渐变消失,打开材质"M_Sphere_2",首先添加如下节点

将参数"Desity"的默认值修改为3,继续添加如下节点


为了让球体一直面对着玩家,我们需要在"BP_scan"中设置球体的旋转

效果如文章开头所示。
参考视频链接