效果
步骤
1. 新建一个材质,这里命名为“M_Mask”
打开“M_Mask”,混合模式设置为已遮罩,勾选双面显示
在材质图表中添加如下节点
此时我们将一个物体赋予材质“M_Mask”并放置在世界坐标原点,可以看到如下效果
2. 如果我们希望能够自由移动球形遮罩的位置,则需要先创建一个材质参数集
这里命名为“MPC_Mask”
打开“MPC_Mask”,添加一个向量参数,参数名称就命名为“Vector”
3. 回到材质“M_Mask”中,搜索材质参数节点“CollectionParameter”
该材质参数节点的集就设置为“MPC_Mask”,参数名设置为“Vector”
替换之前的常量节点,这里用“Mask”节点来把4维参数转换为3维(坐标)
为了控制半径,我们在材质参数中继续添加一个标量参数,命名为“Radius”
在材质中再将材质参数“Radius”连接到Radius引脚上。此时我们就可以通过这两个材质参数控制球形遮罩的位置和半径了。
4. 新建一个Actor蓝图类,这里命名为“BP_Mask”
打开“BP_Mask”,在“Construction Script”中添加如下节点来设置材质参数的值
此时我们就可以通过改变“BP_Mask”的位置来修改球形遮罩的位置了:
但是此时我们修改“BP_Mask”的缩放并不会改变遮罩范围。为了表示球形遮罩范围,我可以先添加一个球形碰撞组件,设置球体半径为256
然后将球形组件的半径大小作为变量参数值,这样我们就可以通过改变“BP_Mask”的缩放来修改遮罩范围了。
我们还可以给我们的遮罩边缘添加一些动画效果,首先给遮罩边缘添加一点扰动,其中纹理采样节点的纹理是引擎自带的“TillingNoise05”
此时效果如下
接下来给边缘添加一点颜色,首先复制一下材质图表中如下节点
最终效果如下: