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

这篇具有很好参考价值的文章主要介绍了Unreal 5 实现场景环境控制组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

环境控制器蓝图实现

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

设置材质的参数

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

场景里地面材质的实现

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

到了这里,关于Unreal 5 实现场景环境控制组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ThreeJs的场景实现鼠标拖动旋转控制

            前面一个章节中已经实现在场景中放置一个正方体,并添加灯光使得正方体可见。但是由于是静态的还不能证明是3D的,我们需要添加一些控制器,使得通过鼠标控制正方体可以动起来,实现真正的3D效果,由此引入OrbitControls组件,他实质是改变相机的位置,实现

    2024年02月07日
    浏览(59)
  • TreeMap 深度解析:底层实现、使用场景和并发控制

    TreeMap是Java集合框架中的一员,它实现了基于红黑树(Red-Black Tree)的 NavigableMap 接口。在本文中,我们将深入研究TreeMap的底层实现原理、适用场景、使用过程中可能遇到的问题,以及并发控制。 1.1 红黑树的性质 红黑树是一种自平衡的二叉查找树。这种树在每个节点上都维护

    2024年01月16日
    浏览(42)
  • 最新Cesium For Unreal插件编译及开发环境搭建

    Cesium For Unreal插件可以把Cesium三维场景数据直接导入Unreal,利用Unreal的强大渲染功能。到目前位置,已经正式发布最新1.22.0版本。比起最初的Cesium For Unreal插件编译及开发环境搭建,目前已经简化了很多。但尽管如此,由于涉及的IT开发知识点比较综合,所以还是有一定门槛。

    2024年02月05日
    浏览(48)
  • 无人机仿真环境配置初探(Unreal Engine + AirSim Plugin)

    AirSim插件配合Unreal Engine游戏引擎的3D渲染能力,可以实现比较逼真的环境渲染效果,具备Camera、Lidar和GNSS三种导航数据供供导航程序使用,其代码架构如下(参考自知乎文章) 注 : AirSim仅支持UE4,对于UE5,需要下载https://github.com/CodexLabsLLC/Colosseum对应的UE版本的Colosseum(AirSim的

    2024年04月10日
    浏览(45)
  • ue4 unreal Instanced Static Mesh Component 实例化静态网格体组件 的用法及意义

    注意这是个组件  ​​  这个组件的意义 本来在建模软件里面就有这个功能 用来应对大量,同样网格,同样材质,不同几何信息(位置 旋转 缩放)的网格 比如场景里面的垃圾桶 电线杆 路灯等几百上千的东西  我试过一两万挺轻松的... 比较骚的操作是可以更新几何信息,

    2024年02月09日
    浏览(65)
  • python控制obs实现无缝切换场景!obs-websocket-py

    前言 最近一直在研究孪生数字人wav2lip。目前成果可直接输入高清嘴型,2070显卡1分钟音频2.6分钟输出。在直播逻辑上可以做到1比1.3这样,所以现在开始研究直播。在逻辑上涉及到了无缝切换,看到csdn上有一篇文章还要vip解锁。。。那自己研究吧!在这里我们以我现在的逻辑

    2024年02月08日
    浏览(40)
  • unreal 5.1 增强输入实现

    在ue5.1版本增加了增强输入,并且废弃了之前的轴映射和操作映射。 官方文档地址:https://docs.unrealengine.com/5.1/zh-CN/enhanced-input-in-unreal-engine/ 更改后的区别我体验下来,它将操作映射和轴映射类型整合到了输入操作里面,英文为 Input Action。 里面可以设置四种类型,布尔动作采

    2024年02月07日
    浏览(55)
  • Unreal 5 实现UI制作

    这一篇讲解一下unreal engine里面的内置ui插件UMG,虚幻示意图形界面设计器(Unreal Motion Graphics UI Designer)(UMG) 是虚幻引擎内置的一套ui制作工具,通过它我们能够实现平面ui,场景hud内容 首先将图片拖入到屏幕,然后设置锚点为全屏 然后将其它值设置为0 ,这样就可以自动平铺

    2024年02月13日
    浏览(28)
  • 调频连续波(FMCW)波形设计、真实道路场景仿真及汽车自适应巡航控制信号处理(Matlab代码实现)

            目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 以下是关于调频连续波(FMCW)波形设计、真实道路场景仿真以及汽车自适应巡航控制信号处理的概述,以及Matlab代码实现的示例: 调频连续波(FMCW)波形设计:FMCW波形是一种特殊的雷达波形,通过改

    2024年02月16日
    浏览(42)
  • Unreal5 实现武器切换功能

    ·首先回忆一下之前在制作武器时,如何实现从后背拿武器的。我们创建了一个切换事件,判断当前是否持有武器,然后根据是否持有武器,去修改动画蓝图的变量,来触发从后面拿枪或者是否把枪放了回去。 然后在播放切枪动画时,手伸到背后时,会触发一个动画通知,在

    2024年02月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包