目录
效果
步骤
一、制作力场护盾材质
二、制作冲击波材质效果
三、制作冲击波粒子效果
四、制作震动效果
效果
步骤
一、制作力场护盾材质
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