【UE 材质】力场护盾和冲击波效果

目录

效果

步骤

一、制作力场护盾材质

二、制作冲击波材质效果 

三、制作冲击波粒子效果

四、制作震动效果


效果

步骤

一、制作力场护盾材质

1. 首先新建一个第一人称角色游戏模板

2. 新建一个材质,用于作为力场护盾的材质,这里命名为“Mat_forcefield”

打开“Mat_forcefield”,设置混合模式为“半透明”,着色模型为“无光照”,勾选双面(因为希望在力场护盾里面也能看见材质效果)

在该材质中添加“Fresnel”节点,通过该节点我们可以得到边缘为1、相机观察的中心为0的输出结果

我们可以通过给“ExponentIn”引脚传值来控制“Fresnel”的边缘效果,该值越小边缘效果越明显

我们继续通过“Lerp”节点来混合两种颜色

("Lerp" 节点用来混合两种颜色,这对于实现颜色渐变、混合效果或过渡效果非常有用。通常,我们会将两种颜色连接到 "A" 和 "B" 输入,然后使用 "Alpha" 输入来指定混合的权重。)

为了显示被赋予材质的物体与其他物体交叉时产生边界线的效果,我们可以使用“DepthFade”节点,如果此时我们做如下连接:

可以看到被赋予材质的物体在于其他物体相交时会有消隐的效果

并且如果输入的“FadeDistance”值越大,消隐的距离就越多

如下,此时我们就可以看到交叉的部分有一个边缘效果

调整透明度:

 

如果觉得边缘效果太明显,可以给“FadeDistance”输入一个值

3. 下面我们想把纹理也结合到材质上

首先找到模板工程自带的纹理“T_Tech_Hex_Tile_M”

将该纹理应用到材质中

如果我们希望纹理UV平铺次数增加,可以添加如下节点,这里我们设置平铺次数为10,可以看到纹理密度增加了10倍

如果我们认为纹理太清晰,我们可以通过乘上一个0~1之间的数来调整纹理的不透明度

二、制作冲击波材质效果 

1. 新建一个actor蓝图类,用于表示力场护盾蓝图,命名为“BP_ForceField”

打开“BP_ForceField”,先添加一个球形碰撞组件

将该组件指定为新的根组件

再添加一个球形的静态网格体,调整缩放使其正好能够被球形碰撞组件包裹

给球形静态网格体赋予我们步骤一创建的材质

在事件图表中添加一个球形组件命中时的事件

我们可以先测试一下当子弹击中actor时会不会有打印信息:

可以看到是有打印信息的

2. 这里额外提一句,如果想要类似于曳光弹的效果,最简单的方法是将子弹的材质换成自发光材质,然后拉伸一下:

3. 回到材质“Mat_forcefield”,添加如下节点,我们给主要给“SphereMask”节点传入两个位置(一个是本材质的世界位置,另一个是自定义的参数位置)和一个半径参数,表示在本材质基础上创建一个圆心是“pos”,半径是“半径”的球体,球体和材质相交的圆形部分会被新的材质代替

4. 打开蓝图“BP_ForceField”,添加如下节点,表示在子弹命中立场护盾(本acotr)时,我们创建了一个动态材质实例来替换命中区域的材质,并且设置材质“Mat_forcefield”中的参数“pos”和“半径”

,其中参数“pos”的值由检测到的碰撞点的位置决定,参数“半径”由用户自己设置

此时当子弹碰到力场护盾后就会在命中区域替换新材质

 

如果我们想让新加在力场护盾上的材质有一个渐变的效果,如下:

 为了实现如上效果,我们需要在蓝图“BP_ForceField”中继续添加一个时间轴节点

时间轴内容如下:

5. 回到材质“Mat_forcefield” 中,添加一个“Sine”节点

此时效果如下:

如果我们将“Sine”节点的句号键设置为0.5

此时击中的效果如下: 

如果我们希望击中时叠加一个效果,我们可以继续在材质“Mat_forcefield” 添加如下节点 

 

此时击中力场护盾的效果如下:

再添加一个“Max”节点

再将限制范围改到0~15

此时击中效果如下

 三、制作冲击波粒子效果

1. 新建一个级联粒子系统,这里命名为“P_Debri”

2. 再新建一个材质,这里命名为“Mat_dot”

打开材质“Mat_dot”,设置混合模式为“半透明”,着色模型为“无光照”

添加如下节点,其中"RadialGradientExponential" 材质函数节点用于创建径向梯度效果。这个节点通常用于创建径向渐变效果,其中颜色或其他属性从一个中心点向外扩散,呈指数级衰减。

3. 打开粒子系统“P_Debri”,在“必需”模块中设置材质为“Mat_dot”

设置“初始速度”模块中的起始速度如下所示

设置“生成”模块中比率为50

设置“生命内颜色”模块中的颜色为(22,2,0.1)

在“必需”模块中设置“屏幕对齐”为“PSA速度”

在“初始大小”模块中,设置起始大小如下

添加一个“加速度/生命”模块

在该模块中我们添加三个点

 

这样就能使粒子在z轴方向上首先以500大小的加速度发射出去,然后在0.5处时加速度逐渐变为-200,最后,加速度到达-20000,效果如下:

在“生成”模块中,设置生成比率为0

 在“爆发”选项中,添加一个喷发列表,数量设为50

此时效果如下:

再添加一组元素

此时效果如下:

为了让粒子只播放一次,我们需要在“必需”模块中设置“发射器循环”为1。(0表示无限循环)

我们复制一份发射器

在新发射器中,设置“生命内颜色”模块的颜色如下:

在两个发射器的“必需”模块中,设置他们在Y轴方向上的旋转值为90°

4. 为了能够在子弹击中力场护盾时触发粒子,在蓝图“BP_ForceField”的事件图表中添加如下节点

其中,粒子生成时的位置由碰撞点获得:

粒子的生成方向由“Impact Normal”提供

此时效果如下:

可以看出两段粒子效果间隔的比较久

我们这里对两个发射器中的“生成”模块做如下修改,将第二个喷发列表成员的时间由0.5改为0.1

如果觉得粒子发射后下降的太快了,我们需要将两个发射器中的“加速度/生命”模块中的如下值有-20000改为-5000

四、制作震动效果

1. 打开材质“Mat_forcefield”,添加如下节点

最终效果如下

参考视频链接:

https://www.youtube.com/watch?v=hQeJETEUzE4&t=503s

猜你喜欢

转载自blog.csdn.net/ChaoChao66666/article/details/132752284
今日推荐