【UE 材质】球形遮罩材质

效果

步骤

  1. 新建一个材质,这里命名为"M_Mask"

打开"M_Mask",混合模式设置为已遮罩,勾选双面显示

在材质图表中添加如下节点

此时我们将一个物体赋予材质"M_Mask"并放置在世界坐标原点,可以看到如下效果

  1. 如果我们希望能够自由移动球形遮罩的位置,则需要先创建一个材质参数集

这里命名为"MPC_Mask"

打开"MPC_Mask",添加一个向量参数,参数名称就命名为"Vector"

  1. 回到材质"M_Mask"中,搜索材质参数节点"CollectionParameter"

该材质参数节点的集就设置为"MPC_Mask",参数名设置为"Vector"

替换之前的常量节点,这里用"Mask"节点来把4维参数转换为3维(坐标)

为了控制半径,我们在材质参数中继续添加一个标量参数,命名为"Radius"

在材质中再将材质参数"Radius"连接到Radius引脚上。此时我们就可以通过这两个材质参数控制球形遮罩的位置和半径了。

  1. 新建一个Actor蓝图类,这里命名为"BP_Mask"

打开"BP_Mask",在"Construction Script"中添加如下节点来设置材质参数的值

此时我们就可以通过改变"BP_Mask"的位置来修改球形遮罩的位置了:

但是此时我们修改"BP_Mask"的缩放并不会改变遮罩范围。为了表示球形遮罩范围,我可以先添加一个球形碰撞组件,设置球体半径为256

然后将球形组件的半径大小作为变量参数值,这样我们就可以通过改变"BP_Mask"的缩放来修改遮罩范围了。

我们还可以给我们的遮罩边缘添加一些动画效果,首先给遮罩边缘添加一点扰动,其中纹理采样节点的纹理是引擎自带的"TillingNoise05"

此时效果如下

接下来给边缘添加一点颜色,首先复制一下材质图表中如下节点

最终效果如下:

相关推荐
zhangzhangkeji6 天前
UE5 C++(71):文件是否存在,文件夹是否存在,FPaths :: FileExists( const FString & InPath) ;
ue5
妙为6 天前
UE5角色穿过石头穿模
ue5·unreal engine5·角色穿越石头·穿模
mojugang6 天前
DC53是什么材质
材质·模具钢
yj爆裂鼓手7 天前
unity编辑器下ab包模式下textMeshPro文本不显示材质是紫色的异常,真机无异常的问题
unity·编辑器·材质
mojugang7 天前
D2对应国内什么材质
材质·模具钢
技术策划Boring7 天前
2025年工作复盘:开放世界3A项目配置管线与性能监控的探索
游戏·ue5·虚幻·p4·perforce
ct9787 天前
ThreeJs材质、模型加载、核心API
webgl·材质·threejs
zhangzhangkeji9 天前
UE5 C++(70-2):定义成员函数 getCleanDirectory(..) 和枚举类 EFileDirectoryType,来获得目录
ue5
avi911110 天前
UE4-UE5虚幻引擎-前置学习三,优化,基础CPP
ue5·ue4·游戏开发·虚幻·游戏优化·游戏代码
zhangzhangkeji10 天前
UE5线程进阶(3-2):任务图的相关源码整理。 FGraphEvent 与 TGraphTask 的区别和联系
ue5