Ultra Dynamic Sky:超动态天空

  • 商城资产包,需要购买添加到项目;
  • 当然学习嘛,本着能白嫖绝不付费,能开挂绝不充值的原则,大家可通过一些绿色途径获取哈;
    只需要将解压的文件复制到项目的Contet目录文件即可;
  • 将资产包中的天空和天气两个蓝图类拖到场景中,并删除项目默认的光照信息;
  • 可通过Ultra_Dynamic_Weather天气蓝图修改天气状态,有十几种天气状态可以选择;

滑条调整场景时间:

  • 通过Ultra_Dynamic_Sky天空蓝图修改一天中的时间,切换在不同时间段场景的光照信息;
  • 下面我使用蓝图创建时间轴Umg用户控件,在游戏运行时调整时间,或者使用真实世界的时间作为游戏时间;
    创建Umg_Sky用户控件,添加滑条用于调整时间;
  • 在BP_PlayerContorller玩家控制器中,事件开始运行时创建时间轴用户控件;这样在切换玩家飞行相机和第三人称游戏角色时都可以调整场景时间;
  • 将滑条和文本提升为变量,设置滑条的外观最大值和最小值以及步幅大小,
    添加事件:值变更时
  • 将滑条数值拆分设置到文本;
  • 在事件预构造(初始化时),通过类获取Ultra_Dynamic_Sky天空蓝图类得到引用;
    通过引用获取到Time of day时间浮点值变量,并设置给滑条数值和时间文本数值;
    在滑条数值变更时设置Ultra_Dynamic_Sky天空蓝图类的时间数值;
    完整的蓝图:这时候运行游戏就可以通过用户控件控制场景游戏时间了;

组合框切换天气状态:

  • 使用组合组合框作为天气状态切换的按钮控件;
    设置组合框下拉选项;
    将组合框提升为变量,启用事件:选择以发生变化时;
  • 在事件图表中,先通过类获取Ultra_Dynamic_Weather天气蓝图类引用;
    通过引用找到Weather天气状态变量,并通过按钮设置天气状态;

  • 这里有一个问题需要注意啊,组合框输出的字符串类型不能直接作为Select选择节点的引脚进行连接;
    我这里的做法是通过映射(Map),将下拉框输出的天气状态名称映射到枚举变量的操作,当然用枚举也是考虑到在选择天气状态的时候方便操作,也可以直接映射到整数来选择;
  • 用字符串映射到枚举:
    先创建一个天气状态的蓝图枚举,添加枚举选项;
  • 在用户控件图表中创建Map_Weather天气状态映射变量:
    通过字符串映射到枚举:在细节属性面板中添加映射关系;

  • 最后蓝图部分:组合框中选中的字符串查找到Map_Weather映射中的天气状态枚举值;
    再通过枚举值选择对应的天气状态资产并设置当前的天气状态;
    运行游戏切换天气状态查看效果;

场景物体于天气状态(雨雪)交互材质设置:

  • 在Ultra Dynamic Sky动态天空的关卡案例文件夹中,找到交互材质样例;

  • 看一看天气蓝图中的雨、雪、灰尘天气状态和场景物体交互的材质蓝图;
    只需要复制代码,粘贴到场景中需要产生交互的物体的母材质,并连接颜色、粗糙度和法线节点即可;
    以地形材质为例:
Logo

NVIDIA官方入驻,分享最新的官方资源以及活动/会议信息,精选收录AI相关技术内容,欢迎大家加入社区并参与讨论。

更多推荐