Unreal 5 实现场景环境控制组件

我在场景中发现了一个环境控制器,这个场景实现了雨天天气和晴天风沙天气,接下来我分析一下这个天气控制器是如何实现。
实现流程:

  1. 将环境控制器拖入场景,在配置项上面设置相应的雾,主光源,天空光。
  2. 在环境控制器中去设置场景上面的相关配置。
  3. 在环境控制器中去修改材质上的配置项
    接下来,我们看一下案例场景中的实现过程。

环境控制器蓝图实现

首先看一下环境控制器的配置项,
Wetness Level 则是湿度 会控制场景内材质的光滑度
Raindrops Amount 则会显示雨滴落到地面上的效果密度
Allow Particles 是否更新粒子
Is Raining 是否是雨天
关卡列表上面可以根据下来选择场景中的 雾 主光源 天空光
在这里插入图片描述
在构造函数中,设置材质函数库地面湿度和雨滴的密度的配置
在这里插入图片描述
然后根据设置是否雨天配置,设置分支
在这里插入图片描述
雨天中,修改雾的配置
在这里插入图片描述
修改直接光的配置
在这里插入图片描述
修改天空光的配置
在这里插入图片描述
晴天中,修改雾的配置
在这里插入图片描述
修改直接光的配置
在这里插入图片描述
修改天空光的配置
在这里插入图片描述
在事件图表中,事件开始运行时,根据是否雨天,设置材质参数集的值,当前为雨天的设置,并调用雨天特效
在这里插入图片描述
如果是晴天,使用设置的湿度和密度设置,并调用移动风沙效果。
在这里插入图片描述
定义了两个自定义事件,这两个事件是给房屋提供的事件调用,在上一篇讲过,房屋蓝图里面碰撞体和玩家产生碰撞以后,就会触发Inside事件,而完成碰撞以后,就会触发Out事件。如果Allow Particles的值为true,才会更新粒子特效,并且根据是否雨天,调用雨天事件或者风沙天气事件。
在这里插入图片描述
雨天事件,会根据是否在建筑内,选择添加或者删除特效,如果选择添加,会在玩家控制的摄像机上面添加一个粒子系统
在这里插入图片描述
风沙特效也是同样的道理
在这里插入图片描述
它们最后都调用了建筑内的特效,这个只会在屋内显示的效果
在这里插入图片描述

设置材质的参数

修改场景内的材质的相关参数来表现晴天和雨天的不同效果,这里环境控制器是通过设置标量参数值实现的,主要是设置一个浮点数,其实还有一个就是设置向量参数值,这个需要传入一个四维向量去设置。那么,接下来讲解一下如何在材质中实现当前值的使用,并分析一下场景内的材质如何实现雨天材质和晴天材质的变化。
在这里插入图片描述
如果能够设置到材质里面,需要创建材质参数集
在这里插入图片描述
材质参数集里面可以设置标量和向量,标量就是单个浮点,向量就是四维向量,
在这里插入图片描述
这个文件可以直接拖入到材质或者材质函数中使用,运行时,修改了当前的值,材质相应的值也会被修改。
在这里插入图片描述
拖入后,选择节点,可以选择参数集中使用的参数
在这里插入图片描述

场景里地面材质的实现

我们可以看一下场景里面的Road的材质怎么实现的,里面使用了两套纹理实现的,纹理也是标准的pbr物理光照材质实现的纹理设置,一张反射率贴图,一张法向贴图,还有一张Mask贴图
在这里插入图片描述
这一块是实现的视差遮挡偏移,视差遮挡偏移的原理是根据相机朝向和物体高度图来偏移uv实现。后面就是宏去开启或者关闭,并且还可以根据清晰度设置来开启和关闭。
在这里插入图片描述
然后使用uv去拾取反射率贴图
在这里插入图片描述
然后采样Mask贴图,R通道是高度,G通道是粗糙度,B通道是环境遮挡,因为路面不是金属,所以直接设置金属度为0即可。
在这里插入图片描述
还有采样了法向贴图
在这里插入图片描述
然后创建了材质属性节点,这个节点主要就是保存设置的信息,也方便lerp插值以及选择。
在这里插入图片描述
这个材质使用了两套贴图,所以需要一个mask去获取当前到底使用哪个属性
在这里插入图片描述
两套属性的混合使用是在世界坐标系下面的混合,通过位置进行三平面映射,获取到纹理的G通道,
在这里插入图片描述
G通道的效果是这样,然后还将强度乘以2,让第一个通道的属性显示区域大一些,估计是trick。
在这里插入图片描述
然后使用混合材质属性节点,使用mask去混合,如果不开启宏,则直接使用第一套材质属性。
在这里插入图片描述
然后使用了环境光遮挡处的苔藓效果,然后使用烘焙的ao去作为mask混合苔藓和基础默认的材质属性
在这里插入图片描述
然后创建了水的材质属性
在这里插入图片描述
水的函数里面就是生成了一套材质属性,水的反射率贴图,法向贴图和粗糙度,还有根据高度,根据高度生成了Mask
在这里插入图片描述
然后就是最后根据水的mask混合材质属性
在这里插入图片描述
属性通过雨滴效果函数设置,然后生成最终显示在材质。
在这里插入图片描述
在雨滴特效函数里面,修改了基础颜色,粗糙度和金属度
在这里插入图片描述
还有修改法向
在这里插入图片描述
里面重点的部分就是FlipBook,然后使用一张序列帧图片,来循环实现雨滴效果。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Unreal Engine中实现点击一个正方体后出现选择菜单的事件,可以按照以下步骤进行操作: 1. 创建一个新的蓝图类: - 在Unreal Editor中,创建一个新的蓝图类(例如,基于Actor的蓝图)。 - 将一个静态网格组件添加到蓝图中,并将其形状设置为正方体。 - 添加一个触发器组件(例如,Box Trigger)来检测物体的点击。 2. 设置触发器事件: - 选中触发器组件,并在详情面板中找到事件部分。 - 点击"+"按钮来添加OnComponentBeginOverlap事件。 - 在事件图表中,添加一个Create Widget节点来创建你的选择菜单蓝图(Widget Blueprint)。 - 连接Create Widget节点的输出到Add to Viewport节点的输入。 3. 创建选择菜单蓝图: - 创建一个新的Widget Blueprint,并在其中设计你的选择菜单UI。 - 在选择菜单蓝图中,添加必要的按钮或其他UI元素,并设置它们的响应事件。 4. 编写选择菜单逻辑: - 在选择菜单蓝图中,编写按钮的点击事件逻辑,并实现你想要的功能。 - 可以使用蓝图中提供的函数和事件来处理选择菜单的行为和交互。 5. 运行游戏并测试: - 将蓝图类(点击正方体出现选择菜单的蓝图)放置在场景中。 - 运行游戏并点击正方体,你应该可以看到选择菜单出现在屏幕上。 记住,这只是一种实现方式,你可以根据自己的需求进行调整和扩展。希望这对你有所帮助!如有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值