UE4 Fade out Mesh

由于项目需要一个将场景慢慢淡入以及淡出的效果,所以就想了想实现思路。因为PBR光照模型是不支持透明物体的渲染的,所以UE4中的PBR材质在为Opaque时是无法改变透明度的,想来想去想不出解决方法,然后就找啊找找啊找,发现一种偷鸡摸狗的方法,为每个Mesh准备两种材质,一种透明,一种不透明,在需要的时候切换材质并调整透明度即可,不知还有木有更炫酷的解决方法,先记录一哈。
在这个项目中,我选择将这个功能做成一个Actor Component,这样需要这种效果的Mesh只需添加这个组件就能实现Fade Out Fade in的效果。下图为该组件的变量及函数:
ParentMesh:为获取组件被挂在到的Mesh。
Hidden:控制Mesh消失。
BaseMaterial:保存Mesh的原有材质。
FadeMaterial:Mesh Fade时的材质,指定为可编辑的,每个Mesh单独指定。
FadeMaterialDynamicInstance:Fade材质的动态实例。
FadeCurve:Mesh Fade时的控制曲线,可编辑。
CurrentFade:作为曲线的X输入,得到的值控制Fade时的透明度(即材质的透明度参数)。
FadeRate:Mesh Fade的速率。
IsStartHidden:Mesh的初始状态是否为隐藏。

Toggle Hide Mesh:当Hidden为true时,设为动态材质实例,并在tick中根据曲线修改透明度。


BeginPlay:初始化一些变量,生成动态材质实例,根据IsStartHidden来指定初始状态。

Tick:根据Hidden决定曲线中的X输入是递增还是递减,并且设置最大值最小值的限制,赋值给材质中的Fade参数,这种材质中的参数统一为Fade,最后判断CurrentFade为1而且Hidden为true时,设为原有材质。
用法:将组件挂在有Mesh的Actor中,设置曲线,Fade材质,FadeRate,及初始时是否隐藏。调用ToggleHideMesh,参数为true为隐藏,false为显示。
总结:要实现一个Mesh的Fade out需要准备两种材质,一种透明,一种不透明,在Fade Out的时候切换为透明材质,根据一个渐变的值赋值给材质的参数即可。
如果需要做出将挡住主角的Mesh Fade out只需要在主角和摄像机之间发出射线,将碰撞的物体加入一个数组,跟上一帧比较,将上一帧数组中不在这一帧数组的物体恢复原样,再把这一帧数组的物体Fade Out。
UE4 Fade out Mesh的更多相关文章
- UE4 Tutorial - Custom Mesh Component 用于绘制自定义网格的插件CustomMeshComponent
UE4 中用于绘制自定义网格的插件CustomMeshComponent. 转载: UE4 Tutorial - Custom Mesh Component Over the last few w ...
- [UE4]Set Skeletal Mesh,在蓝图中设置骨骼模型
- Houdini技术体系 基础管线(四) :Houdini驱动的UE4植被系统 上篇
背景 之前在<Houdini技术体系 过程化地形系统(一):Far Cry5的植被系统分析>一文中已经对AAA游戏中过程化植被的需求有了一定的定义,后续工作就是如何用Houdini开发功能 ...
- ue4 Skeletal Mesh编辑器
skeletal mesh:骨骼网络物体资源 由 美术制作(*.fbx). 在ue4可对此资源进行编辑以添加一些游戏需要的设置. https://docs.unrealengine.com/lates ...
- [UE4]如何替换角色Mesh上的Material材质
http://www.dawnarc.com/2016/10/ue4%E5%A6%82%E4%BD%95%E6%9B%BF%E6%8D%A2%E8%A7%92%E8%89%B2mesh%E4%B8%8 ...
- [UE4]Static Mesh的碰撞体
一.可以在3D建模的时候添加碰撞体,导入到UE4的时候,碰撞体也会跟着导入进来. 二.也可以在UE4中自行添加碰撞体 三.在UE4中添加编辑碰撞体 四.选择碰撞体可以移动.缩放.旋转碰撞体,如果模型比 ...
- [UE4]在Character中使用Add Spline Mesh Component,关于Transform.Mobility
一.因为Character是可移动的,因此也需要把Add Spline Mesh Component的Transform.Mobility设置为Movable 二.不然就会得到类似这样的提示.错误信息 ...
- [UE4]Spline Mesh Actor
作用: 1.按照Spline设置的轨迹,进行显示网格物体. 曲线模型 一.赋值Static Mesh,任意的Static Mesh都可以. 二.调整方向 三.Spline Mesh Actor有2个端 ...
- [UE4]虚幻4 spline组件、spline mesh组件的用法
最近公司项目需要,把这两个东东好好看了下.不得不说,这两个组件还是非常方便的,但是相关的介绍.教程却非常的少.它们概念模糊,用法奇特,我就总结下吧. 首先,先要明白spline component.s ...
随机推荐
- Struts2框架(5)---result结果集
result结果集 上一篇文章主要讲Struts2框架(4)---Action类访问servlet这篇主要讲result结果集 在Struts.xml中的result元素指的是:指定动作类的动作方法执 ...
- virtualBox,webstorm,开虚拟机传代码
一起git一个新技能 利用virtualBOX在本地开一个虚拟机,然后设置webstorm连接到虚拟机,将代码传到虚拟机里. 以下详细讲解: 第一步: 第二步:管理虚拟机的设置(我是用的是Xshell ...
- jquery写日期选择器
跟上我的脚步,让我们来领略代码的世界! 使用jquery做一个日期时间选择器,最好使用bootstrap弹窗 实现: (1)点击文本框弹出窗口: (2)弹窗里面显示日期时间选择下拉 (3)年份取当前年 ...
- JavaScript tips:数组去重
1.实现目标:数组去重 2.实现思路: (1)创建新数组. (2)遍历原数组,判断当前被遍历元素是否存在于新数组,如果存在于新数组,则判断当前被遍历元素是重复的:如果不存在于新数组,则判断当前被遍历元 ...
- mybatis基础学习3---特殊sql语句(备忘)
1: 2: 3:resultMap的用法
- Exchange 2016 体系结构
Exchange Server 2016 使用一个构建基块体系结构,提供电子邮件服务,以便在各种规模的组织(从小型组织到最大规模的跨国企业)进行部署.这种体系结构如下图所示.包含两个角色,邮箱服务器角 ...
- 配置Windows Server 2012服务器远程连接支持多人同时登陆
1.运行输入gpedit.msc 进入组策略 2.计算机配置--管理模版--windows组件--远程桌面服务--远程桌面会话主机--连接 3.找到限制连接的数量,启用,并改为100. 4.找到 将远 ...
- calling c++ from golang with swig--windows dll 二
Name mangling && Name demangling 在讲述golang如何利用swig调用windows dll之前,需要了解一个概念:Name Mangling (或者 ...
- 谈谈在DevOps实践中,感觉最重要的这三个技术……
从国内众多DevOps实践中,我们能看到下面三个技术尤其重要和火热: 容器:容器从根本上解决了软件对环境的依懒性,解决了各个环境之间的差异问题:它可以加速部署的速度,提高部署的效率:降低部署的成本.容 ...
- TextRank:关键词提取算法中的PageRank
很久以前,我用过TFIDF做过行业关键词提取.TFIDF仅仅从词的统计信息出发,而没有充分考虑词之间的语义信息.现在本文将介绍一种考虑了相邻词的语义关系.基于图排序的关键词提取算法TextRank [ ...