效果

步骤
随便从网上下载一张图片(地址:链接/链接),导入UE中

新建一个材质函数

这里命名为“E_Function”

双击打开该材质函数,由于需要输出变发光和变透明两种效果,因此这里需要两个输出节点:

分别命名为“Luminous”,“Opacity”

添加一个“FunctionInput”节点,输入类型为 函数输入标量

改名为“Amount”,表示用于控制材质变化的进度

复制两份,命名为“Width”和“Mask”

设置排序优先级从上至下依次为0、1、2

添加if节点,设置A为“Amount”的值,B为0。当A>B时,输出“Amount”与“Width”的相加值;当A==B或A<B时,输出0。


再添加一个输入节点,输入命名为“Luminous Color”,输入类型为 函数输入向量3,排序优先级为3

再添加一个输入节点,输入命名为“Glow”,输入类型为“函数输入标量”,排序优先级为4

设置发光度:


接下来设置不透明度:

新建一个材质,命名为“P_Mat”,然后打开该材质,设置混合模式为已遮罩,勾选双面

将材质函数拖入

新建一个变量,命名为“Amount”,最大值为1,默认值为0

新建一个变量,命名为“Width”,最大值为1,默认值为0.2

新建一个纹理节点,然后转换为参数

命名为“Mask Texture”,默认值为下载的图片

添加“component mask”节点

转换为参数

命名为“R/G/B”

由于我这张图是蓝色调的,因此只勾选 默认B

再给“LuminousColor”赋一个值

新建一个变量,命名为“Glow”,最大值为200,默认值为50

创建好材质后,创建一个材质实例

打开材质实例来预览效果,首先勾选以下选项

通过调整参数来预览效果如下:

接下来,随便创建个物体来应用该材质
首先创建个Actor蓝图类,并打开,添加一个球体组件,材质设为“P_Mat_Inst”

在事件图表中延迟1s后给球体创建一个动态材质实例

将材质资源引脚提升为变量

变量命名为“Material Instance”,勾选可编辑实例,然后设置一个默认值

添加一个时间轴

打开该时间轴,曲线命名为“Amount”,添加两个关键帧,分别在点(0,0)和(5,1)

将时间轴的输出值设置到材质实例的“Amount”参数上

将蓝图拖入视口中

可以通过更改材质实例参数来达到不一样的效果,我的设置如下:

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