UE制作空气墙效果

1.材质

  首先创建一个材质M_AirWall,材质域设置为表面,混合模式设置为半透明,这样空气墙就会呈现出透明效果,同时将着色模型设置为无光照,这样光照就不会对材质产生影响。

   然后准备一张纹理,这里我用的是初学者内容包中的纹理图片,如果没有的话可以在左下角添加功能或内容包中导入。

   这里实际上只有Green通道包含了我们需要的遮罩信息,因此我们只需要G通道即可。连上之后实际上已经初步的得到了空气墙的效果,然后我们再添加一些功能。

   首先在调整网格体的缩放的时候,纹理会进行同步的缩放导致得到的图形不规则,这显然不是我们希望的结果,因此给他加上UV的对齐:

   同时,对于墙面与其他物体相交的位置,添加一条高亮的相交线,这个我们可以通过DepthFade节点来实现。同时将路由重命名为DepthLine:

  效果:

   对于空气墙的效果,当然希望他只有在角色相距一段距离之内才会显现出来,因此再给它添加一个SphereMask用来实现这一点。首先创建一个材质参数集MPC_Mask,给它添加一个向量参数Vector,这个参数就是我们一会用来传递角色位置的。然后在材质中用Mask之后的结果替换原本的Boost参数即可。

 2.蓝图

  材质创建完成之后,创建一个它的材质实例,然后我们在一个Cube上使用该材质实例,Cube消失了是正常的。然后创建一个Actor,在Tick函数中每帧获取Actor的世界位置,然后设置我们刚刚创建的材质参数的Vector的值即可。

   可以看到,随着Actor位置的变化,材质的可见程度也会随之改变:

 

posted @ 2025-07-02 15:49  zxc0210  阅读(95)  评论(0)    收藏  举报