0%

超动态天空/Readme翻译

Sky Basics 天空基础

在场景中设置天空

  • 如果要使用内置的光照设置,请首先确保从场景中删除太阳、月亮、天光等光源,以及删除任何大气雾Actor。
  • 将Ultra_Dynamic_Sky Actor从蓝图文档夹拖到场景中。
  • 默认情况下,将启用内置光源。如果要使用自己的光照与大气雾或禁用默认自带的任何一个,可以在“Component Selection and Mobility”类别中执行此操作。如果用自己的演员替换太阳或月亮,记得勾选”Atmosphere / Fog Sun Light”并设置索引(0代表太阳,1代表月亮)。
  • 如果要针对移动设备进行构建,请确保在“Basic Controls”中启用“For Mobile Renderer”选项。这将进行必要的调整,以纠正移动渲染器不具备的功能。

设置一天中的时间

  • 更改“Basic Controls”中的“Time of Day”属性以调整时间。如果您需要更好地控制太阳的运动,您还可以在“Sun”类别中调整“Sun Angle”和“Sun Inclination”。在Basic Controls中,您还可以调整 天空的饱和度(sky’s saturation)和整体强度(overall intensity)。
  • 时间变量是从 0 到 2400 的单精度浮点数。这是为了简化设置和时间动画等功能。但是,如果需要,可以使用“Get Time of Day in Real Time Format”功能将时间作为实际的小时/分钟/秒值进行访问。
  • 如果您想调整太阳升起和落下的特定时间,您可以在“Basic Controls”使用“Dawn Time”和“Dusk Time”设置来完成。

设置天空模式

在“Basic Controls”中,有一个”Sky Mode“的设置。这控制了一些基本是内容。具体来说,动态云与动态天气的类型以及系统是否使用天空大气进行着色。以下是每个选项的快速说明:

  1. Volumetric Clouds体积云 - 默认启用时,此天空模式使用全 3D 体积云场。这可以提供最逼真的视觉效果,但对于某些项目来说,性能成本可能太高了。
  2. Static Clouds静态云 - 旨在模仿体积云的外观,但作为静态云纹理。性能成本远低于体积云。与极光效果不兼容。此模式会尽最大努力适应云密度,因此仍然可以与天气效果一起使用,但云层是静态的,因此这些过渡看起来不那幺自然。
  3. 2D Dynamic Clouds 2D 动态云 - 使用平移 2D 纹理绘制的动态云。
  4. No Clouds无云 - 此模式根本不使用动态云。
  5. 2D Clouds using Color Curves (Legacy Mode) 使用颜色曲线的 2D 云 - 2D 云,但与 UDS 的原始颜色解决方案配对。它利用颜色曲线来确定构成天空的所有颜色。通常不如天空大气逼真,但它具有较轻的性能成本,并且可以通过编辑颜色曲线文档夹中的曲线完全自定义。
  6. Volumetric Aurora体积极光 - 将云换成完整的 3D 体积极光,比 2D 效果更有说服力。

调整云

  • 在“Basic Controls”中,可以使用“Cloud Coverage”属性对云覆盖范围进行调整。
  • 在”Volumetric Clouds“类别中,您可以调整 3D 体积云的设置。
  • 在”2D Dynamic Clouds“中,您将找到与 2D 云外观相关的所有设置,从柔和度和阴影效果到用于生成云的噪点纹理。
  • 在”Cloud Movement“中,您可以更改云在天空中移动时的速度。如果您希望云是静态的,则可以将云速度变量设置为 0。若要调整静态云的形成,可以使用“Cloud Phase”属性。
  • 在”Cloud Shadows“中,您还可以启用和禁用太阳和月亮投射的云阴影。强烈建议启用此功能。

调整天空大气

默认情况下,天空大气组件决定了天空的颜色。要访问这些设置,请查看 UltraDynamicSky 详细信息顶部的组件列表。找到“SkyAtmosphere”组件并选择它。您现在应该看到组件的所有设置。标有“atmosphere”的设置类别是与调整天空外观最相关的设置类别。

调整月亮和星星

您可以在“Moon”类别中以多种方式调整月球。您可以更改它在天空中的比例、倾斜度和角度(它在天空中的路径)、颜色和强度。您还可以调整月相,从 0 到 27。在星星类别中,您还可以更改星星在夜间出现时的强度。

设置昼夜循环

在“Animate Time of Day”类别中,选中标记为“Animate Time of Day”的选项。当您玩游戏时,天空将从您选择的时间开始,无限期的运动。您也可以更改“白天长度”和“夜晚长度”,以分钟值输入。

配置Sky Light

在“Sky Light”类别中,“Sky Light Mode”确定天光立方体贴图的来源。有三个选项:

  1. Capture Based基于捕获:天空光将通过捕获天空生成立方体贴图。这种方法是最真实的,但如果天空在游戏中发生重大变化,则需要重新捕获。重新捕获是一个代价高昂的过程,并可能导致故障。
  2. Custom Cubemap自定义立方体贴图:一个简单的静态立方体贴图纹理,使用下面的自定义立方体贴图选项进行设置。
  3. Cubemap with Dynamic Color Tinting具有动态颜色着色的立方体贴图:此方法使用平面灰度立方体贴图,并用颜色动态着色,以与一天中的时间很好地对齐。这是一个很好的平衡选择,因为它通常可以在一天中的时间使用正确的环境颜色,并且不需要昂贵的重新捕获。

默认使用动态颜色着色的立方体贴图,因为它允许更改一天中的时间,而不必担心重新捕获。但是请考虑其他选项,并尝试选择适合您项目的选项。

优化性能

在以最高质量启用所有内容的情况下,UDS 对某些硬件的运行要求很高。如果性能成本对于您的项目来说太高,这里有一些建议。

  1. 关闭极光类别中的极光效果。默认情况下,这些实际上是禁用的,因为它们会给着色器增加大量的指令计数成本。如果性能是重中之重,请考虑禁用这些功能。
  2. 如果使用 2D 云,请使用“One Cloud Layer”选项。绘制一个动态云层而不是两个可以显着减少指令。
  3. 如果使用体积云,请尝试调整体积云类别中的样品计数比例(Sample Count Scale)选项。这可能会给视觉效果带来额外的噪点,但可以提高性能。
  4. 减少“Material Quality Level”可扩展性设置。UDS 着色器将根据材质质量级别减少其视觉效果的一些次要方面,包括在质量设置为低时强制使用单个云层。体积云也会随着材质质量级别而显着变化,从而改变所使用的 3D 噪点的分辨率以及为着色器的 2D 和 3D 图层采样的纹理层数。

您还可以将天空模式设置为在启动动态设置,并在游戏用户设置中设置当前效果质量。例如,您可以在“中”及更高级别的效果设置里使用体积云,而“低”级别使用静态云。为此,您可以在“基本控件”中的高级下拉列表下启用“Use Sky Mode Scalability Map”,用来支持动态调整地图。

使用静态/固定照明

要使任何光源保持静态/固定状态,您可以在组件选择和移动类别中更改其选项。光照构建完成后,您仍然可以更改天空设置,但请注意,更改光源或移动光源的设置(如更改一天中的时间)都会破坏光源构建,您必须重新构建。另请注意,如果您的太阳光设置为静态/静止,这将禁用“动画时间”设置,因为太阳无法再在游戏中移动。

从另一个Actor控制一天中的时间

如果您在一天中的时间有自己的系统,并且需要从外部控制天空,那幺这个过程非常简单。只需让您的 actor 更改Ultra_Dynamic_Sky_BP中的时间变量,天空就会自行更新为您所做的更改。

您还可以使用“Set Time of Day using Time Code”函数,使用实际的小时/分钟/秒设置时间变量。

使用日出和日落事件

有日出和日落事件分发器。这些对于切换您只想在夜间启用的照明或控制环境音频系统可能很有用。只需使用对 UDS 蓝图的引用来绑定蓝图中的事件即可。您可以在“动画时间”类别中调整它们触发的特定时间。

使用传统着色

如果选择了使用“Legacy Coloring”的天空模式,则天空将从“Color Curves”中的曲线中绘制颜色。这些曲线可在“Legacy Coloring Setting”类别中配置。如果对它们进行更改,请记住按 UDS 设置顶部的“刷新设置(Refresh Settings)”以查看更改。

Weather Basics 天气基础

在您的场景中创建天气

  • 要在场景中设置天气,首先要确保场景中有一个Ultra_Dynamic_Sky Actor。没有一个天气系统将无法运行。
  • 要添加天气,只需将Ultra_Dynamic_Weather Actor从蓝图文档夹拖到场景中即可。它将自行检测超动态天空并连接所有内容。

改变天气

  • 在Ultra_Dynamic_Weather actor 的“Basic Controls”中,您将找到用于更改地图中天气状态的所有设置。
  • 天气类型将允许您从基本类型列表中选择预设。部分多云、下雨、暴风雪等。选择其中之一,它将应用于所有相关设置。

调整雨雪颗粒

在“Rain and Snow Particles”类别中,您将找到所有相关设置,用于调整降水粒子的生成方式及其行为方式。该发射器会在玩家相机周围的区域生成粒子,无论是在编辑器中还是在游戏中。这个孵化区域有多大以及应该产生多少粒子是可以通过选项设置的。还有一个选项可以禁用粒子碰撞,或更改碰撞信道粒子碰撞使用的选项。

设置随机天气变化

  • 随机天气变化的工作原理是这样的:系统会定期选择一种新的随机天气类型,并逐渐过渡到它。您可以定义有关它如何执行此操作的所有内容,从转换和类型更改的时间到每种天气类型的概率。
  • 季节控制系统将使用哪些概率图来选择新的天气类型。默认情况下,这些设置反映的是北半球的温带气候,冬季下雪,夏季下雨。
  • 天气类型更改间隔控制系统在选择新的随机天气类型进行转换之前在给定天气类型上保持多长时间的最小和最大时间。
  • 天气类型概率地图包含所有天气类型和相应的概率值。此值与地图中的其余值成正比。这意味着,如果一种类型设置为 5,其余类型设置为 1,则该类型被选中的可能性将增加 5 倍。
  • 此类别中的其余变量定义了在选择新的随机天气类型时不同设置的转换速度。

设置和控制材质效果

  • 超动态天气可以控制材质效果,使您的材质响应不断变化的天气。
  • 要使用包含的材质效果函数,请将它们从Materials/Weather 文档夹添加到您的材质中,或者仅在材质编辑器的材质函数库中搜索“weather”。有两个包含的功能。 “潮湿天气影响”和“雪天气影响”。
  • 潮湿天气效果可以通过过渡到湿粗糙度值使表面显得潮湿,在完全覆盖材料之前首先出现在高度输入的低区域。默认情况下,它将粗糙度调整为 0.05,基色将变暗 30%。您可以使用函数的输入来调整此转换的外观细节。如果您想改变整个表面的湿度,请使用“最大湿度”输入来执行此操作。
  • 潮湿天气效果还包含两个默认禁用的额外效果,但可以为特定类型的表面添加很多效果。一是水坑效应。对于地形/地面网格体很有用,这将修改法线以展平完全潮湿的区域,并引入响应当前降雨量的波纹纹理。另一个额外效果是滴水效果。这对于墙壁和垂直表面很有好处。它在世界空间中映射了滴水纹理,使其看起来像下雨时水从表面滴下。
  • 雪天气效果的操作方式与潮湿天气效果类似,但它使用一组内置的默认雪纹理而不是静态值。这些可以使用可用的输入替换为您自己的纹理。

使用天气音效

默认情况下,Ultra Dynamic Weather 启用了风、雨和雷声的音效。您可以使用“音效”类别顶部的复选框完全禁用音效,也可以在那里调整每个声音的音量。

调整闪电效果

  • 超动态天气中有两种类型的闪电。闪电和模糊的闪电。闪电是大闪电,可以将光线投射到场景中,并直接产生巨大的雷声。屏蔽闪电是一种粒子效果,看起来像隐藏在云层中的闪电。
  • 在闪电类别中,您可以调整两种闪电类型的闪光间隔。您可以调整闪电的光源行为(如果需要的话),也可以在下雪天气启用闪电(默认情况下禁用)。

调整体积雾粒子

  • 体积雾粒子:在特别恶劣的天气中,在雨/雪粒子中添加体积雾元素。只有在高度雾上启用了体积雾时,此效果才会可见。
  • “Max Fog Particle Percentage”变量控制有多少雨或雪粒子将伴随雾粒子。它们耦合在一起,以便雾粒子可以捎带雨雪已经在执行的碰撞计算,从而使雾粒子从碰撞中受益,而无需额外成本。

初始设置

初始设置类别控制 Ultra Dynamic Weather 如何使用基本控制中的设置。如果您禁用“Use Initial Settings”,则在运行时,天气将直接跳转到随机天气变化,从随机类型开始。如果您使用初始设置并将保持初始设置的时间设置为高于 0,则初始设置将保持一段时间,然后慢慢过渡到随机天气变化。

控制Wind Actor

您可以将 Ultra Dynamic Weather 控件设置为风向源 Actor,这是 Speedtree 用于其风效果的类型。只需从“Wind Actor”类别的场景中选择一个即可。

在Game中控制天气

如果您想在游戏运行时对天气进行特定更改,有两个功能可以做到这一点:

  1. Change Weather Using Type(使用预设Type修改天气) - 运行此函数将强制超动态天气在输入时间内开始过渡到提供的类型。在提供的时间内维护它后,它将在提供的时间内转换回随机天气变化。
  2. Change Weather Using Settings(使用设置更改天气) - 此函数的工作方式与上一个方法一致,但您可以提供所需的所有特定设置,而不只是天气类型。

Technical Docs 技术文档

这份技术说明文档将介绍Ultra Dynamic Sky的蓝图和材质如何协同工作的要点。它适用于想要进行自己的修改以扩展 UDS 的功能以适合其特定项目的用户。它假定您具备UE4中蓝图和材质工作流程的工作知识。

Main Materials

本文档不会涵盖整个材料的每个细节是如何工作的,但我会尝试总结所有部分是如何组合在一起的,这样你至少可以知道如果你想改变或添加一些东西,应该去哪里看。我们将从主要的天空球体材料Ultra_Dynamic_Sky_Mat开始。

Ultra_Dynamic_Sky_Mat

这种材料的结构可能有点吓人,但如果你从材质节点的起点开始看应该更容易理解。

基础上,材料从在该部分绘制“base sky color”开始。Legacy Coloring 使用来自 Moon 和 Sun Gradients 部分的一些渐变来确定基础天空颜色,而 Sky Atmosphere 着色仅使用 SkyAtmosphereViewLuminance 加上 Night Sky Glow。

一旦确定了基础天空颜色,使用浅云颜色在顶部添加云雾。 纤细的背景云是动态云层后出现的层状云的静态纹理。

之后,添加太阳圆盘。通过将太阳矢量“太阳位置”与相机矢量进行比较并过滤差异来绘制圆盘。然后将其乘以太阳的颜色,这是传统着色中的一个参数,并且基于天空大气中的光照度。

然后,在“添加动态云”部分中,将云层置于顶部。 复合云层功能包含两个“云层”功能节点,每一层一个。

云层函数是一个相当大的难点,本文档不会详细介绍它的工作原理。基本上,几个移动的云纹理在“地图云纹理”函数中进行映射,然后以各种方式进行过滤,以在“输出 Alpha”部分中产生多个输出。

  • 云彩的 mask alpha,用于遮挡星星/极光。
  • Soft shadow alpha,仅用于使用两个云层时出现的闪耀效果的阴影。
  • A blend alpha. 用于将云彩颜色融入到着色器的其余部分。
  • color,这是实际的 RGB 输出,在主材质中保留。

“云层”部分从“着色梯度”函数中提取更多信息。这一部分正是它听起来的样子。它创建了一组0到1的渐变,以太阳和月亮为中心。其中一些仅用于传统着色。

还有一个叫做云分发的函数。这将应用在UDS设置的“云分布”部分中选择的密度乘数。它将它们乘以云密度,并将它们发送到云层函数中。

回到主材质中,在云层混合后,有一个名为“缩放太阳周围的强度”的部分。这只是使用了一些梯度,使太阳(和月亮)周围的天空更加明亮。

主要材料中的下一个是月亮、星星和极光。因为这些都是相加效果,所以在添加到主线顶部之前,它们只是被添加在一起(并被云掩盖)。

星星很简单。它只是一个单一的平铺纹理(缕+星+月精灵的绿色通道),以恒星速度平移,并乘以“恒星颜色”和“恒星强度”。在加入之前,它还乘以月球的反向阿尔法,所以恒星看起来被月球挡住了。

月球主要是在月球内部处理物质的功能。该材质函数处理输出月球辉光的渐变和纹理本身,两者都使用“月球光矢量”进行映射。纹理来源于月相的子uv函数,或者如果用户选择了自定义月亮纹理,则来源于单个静态纹理。

极光也在它们自己的功能中被处理。该函数主要通过叠加几个纹理样本(其数量取决于材料质量)来产生极光的明显各向异性径向模糊。

一旦将附加效果添加到主线中,剩下的就是使用主饱和度控制来控制饱和度的“总体强度”值进行缩放,再加上一些在阴天时稍微去饱和的逻辑。

主材质图也是为驱动云的自定义UV集保留逻辑的地方,在“为UV上色”部分中。UV通道0到4在顶点着色器中像这样处理,以减少像素着色器指令。

Cloud_Shadows

云阴影材质并不太复杂。它使用四个纹理样本来近似主天空材质显示的两个云层。它使用与“云密度”、“柔和度”、“速度”等相同的变量来完成此操作。它使用相同的Filter_clouds材质函数过滤云。然后它只使用“阴影强度”来确定灯光功能的暗度。

Volumetric_Clouds

体积云材质基本上有两部分。左边的一部分是输出到“体积高级输出”中。这控制了“保守密度”,基本上是主要云层形成的二维轮廓。以及云着色和多重散射的一些全局设置。

该输出右侧的部分转换为正常材质输出。这控制了当体积渲染光线穿过云层时着色器返回的每采样消光值。

所有这些都是由两种类型的纹理决定的。一个是“Clouds Basetex”。这些是2D云纹理,与2D动态云使用的纹理相同。这些用于生成保守密度,并将一些大规模变化添加到灭绝值网络中的其他几个点。

另一个纹理是用于侵蚀和高频噪声的3D云纹理。这就是将云从二维拉伸转化为逼真的三维形状的原因。在High和Epic材质上,有2个八度音阶的3D纹理在使用中。在Low和Medium上只有1个。

在材质的几个位置,您将看到“云采样属性”节点正在使用中。这允许材质根据采样点在云层中的高度来确定事物。

Inside_Clouds_Fog_Particle材质也使用这些体积云功能,允许体积雾复制云结构以获得该效果。

Ultra Dynamic Sky Blueprint

Components

  • Ultra_Dynamic_Sky_Sphere:天空的球体网格。构造脚本为其指定天空材质的动态材质实例。

  • Sun_Root:这是一个箭头组件,无论实际的太阳光组件是什么,它都充当太阳旋转的占位符。

  • Moon_Root:同上,但适用于月球。

  • SkyAtmosphere:启用时,SkyAtmos大气组件控制天空的着色和照明。

  • 太阳:太阳的内置定向光组件。

  • 月球:月球也是如此。

  • HeightFog:内置的指数高度雾组件。

  • 曝光:后处理组件,应用最小值和最大值进行自动曝光。

  • 基于捕获的天光:当选择基于捕获的模式时,内置的天光组件。

  • 立方体贴图天光:当选择自定义立方体贴图或具有动态着色的立方体贴图时,内置的天光组件。

  • VolumetricCloud:使用Sky模式时渲染体积云的组件。

  • StaticCloud球体:用于在该天空模式中渲染静态云的网格。

  • 体积极光:当选择天空模式时,用于渲染体积极光的组件。

  • Inside_Cloud_Fog:一个niagara粒子系统,每当摄影机位于体积云层内时,该系统都会在摄影机的位置上渲染体积雾粒子。这允许体积雾在云中增加。

Construction Script

当用户更改任何公开的变量时,构造脚本将处理所有需要更新的内容。它按顺序执行以下操作:

  • 将“刷新设置”设置为false。刷新设置只是作为用户强制运行构造脚本的一种方式,而无需调整任何设置(如有必要)。

  • 创建“云阴影”动态材质实例,并将其保存到变量“云阴影MID”中。

  • 固定黎明时间,使其不能设置为晚于黄昏时间。

  • 根据用户是否选择了该功能,启用或禁用天空大气组件。

  • 基于天空模式启用或禁用体积云。

  • 如有必要,控制天气bp上的云量,并钳制由天气控制的其他值。

  • 根据用户在“组件选择和移动性”部分中选择的内容设置太阳和月亮组件。该组件将设置为内部组件、设置为外部演员的灯光组件或禁用,具体取决于设置。它还设置了结果组件的移动性。

  • 设置天光组件。类似于设置太阳和月亮组件的部分,但也基于“天光模式”,该设置确定天光的光源类型。

  • 设置雾分量。功能上与月球和太阳部分相同,但没有机动性。

  • 在超动态Sky Sphere上创建Sky动态材质实例,并将其保存为变量Sky MID。它所基于的实例由表示启用的不同功能的几个布尔变量决定。

  • 为体积云材质创建材质实例。

  • 运行“设置太阳和月亮旋转”和“设置材质变量”以更新照明和材质设置。

  • 启用或禁用曝光设置,并在后处理设置中设置曝光范围。

  • 如果使用基于捕捉的天光模式,则会重新捕捉天光。如果没有,则根据正在使用其他两种天光模式中的哪一种来设置立方体贴图。

Set Sun and Moon Rotation

此函数根据一天中的时间以及与太阳和月球路径相关的变量(如太阳倾斜度和月球轨道偏移)设置当前太阳组件和月球组件的旋转。

它所做的第一件事是创建一个内部时间,基本上将时间与黎明和黄昏时间重新映射,这样内部时间在0600和1800时有一个黎明和黄昏。这对于功能的其余部分正确运行是必要的。

该函数的其余部分只是用于确定太阳和月亮旋转的数学运算。此外,它首先设置根箭头组件,然后如果灯光是静态或静止的,则仅在“移动静态灯光”功能的输入为true时设置灯光组件的旋转。

Update Active Variables

此功能设置任何参数和组件设置,这些参数和组件可以在游戏过程中随着时间或天气的变化而动态变化。
第一部分的绝大多数内容应该是不言自明的,因为它大多只是设置材料参数,最多需要一些简单的数学运算来将变量转化为参数。

第一行完成后,有一个分支节点,功能会在其中检查“使用一天中的时间自动设置高级设置”。

如果这是真的,它将继续进行完整的设置,以控制一天中所有与时间相关的设置,每个组件都有不同的部分。

如果为false,则使用高级变量设置“高级设置”。“高级设置”实际上只与传统颜色兼容,因为大多数设置只能由该版本的材质使用。

Update Static Variables

功能上与上述功能相同,但此功能控制参数和设置,这些参数和设置只设置一次,然后在游戏运行时保持不变。

Event Graph

在事件图中,在Tick上,天空会在游戏运行时更新任何需要更新的变量或组件。它处理以下内容:

  • 昼夜周期:增加一天中的时间,考虑到昼夜长度、黎明和黄昏时间等变量。

  • 日落/日出事件:在用户在“日落事件时间”和“日出事件时间”中指定的特定时间,为日出和日落启动事件调度器。

  • 月相变化:每天增加一次月相。

  • 周期性天光重新捕获:如果天光是基于捕获的,则会强制以用户设置的频率进行重新捕获。

  • 刷新天空:这只是在完成上述所有操作后运行“设置太阳和月亮旋转”和“更新活动变量”功能,以使用新值刷新照明和天空材质。

Ultra Dynamic Weather Blueprint

Components

  • Rain and Snow-这是产生雨雪颗粒的niagara系统。

  • Lightning Light-这是启用该功能时伴随闪电的定向灯。

  • Obscured Lightning-这是用于遮蔽(Obscured)闪电的niagara发射器。

  • Audio components-其组件用于环境音频源。仅当启用了“声音效果”时才使用这些功能。

Construction Script

首先,Weather BP找到UDS Actor的引用,以便它可以控制云量、云速度和云方向。

然后,一旦它确保它有一个引用,它就会应用一个天气预设(如果从下拉列表中选择了一个)。

然后,它只运行所有的更新功能,包括在UDS Actor上运行构建脚本,以便使用任何更改的设置进行更新。

Event Graph

在“开始随机变化(Start Random Variation)”部分,Weather BP选择一个随机天气类型开始并更新随机天气变量。

在“初始设置(Initial Settings)”部分,如果正在使用初始设置,Weather BP会通过运行“Change Weather Using Settings”来立即转换到初始设置。如果未使用初始设置,则将应用开始的随机天气类型。

Event Graph也是“Change Weather Using Type”和“Change Weather Using Settings”功能作为自定义事件的位置。这两者都是通过设置目标变量的新版本开始的,然后通过设置“过渡状态”整数和设置旧版本的天气变量开始过渡。

Event Tick

Event Tick通过运行递增转换的逻辑开始,从一个静态天气状态到另一个静态气象状态,或者进入/退出随机天气变化。然后,无论结果如何,它都会运行“Update Active Variables”来设置当前天气变量并更新所有内容。

下一部分周期性地闪烁闪电,其整数由闪电间隔随机范围确定。

“Animate Material Effects”部分是导致雪和雨材质参数在恶劣天气期间增加,在天气晴朗时变干的原因。

更改随机天气类型是使用选择新随机天气类型功能对当前随机天气类型进行局部更改的地方。

并运行“Update Audio”函数。

Update Active Variables

更新活动变量,类似于UDS上的同名功能,更新在游戏过程中可能更改的变量、参数和设置。

它首先更新“当前”天气变量,这些变量表示天气和天空的可见状态。它通过根据过渡系统的状态在静态值和当前随机值之间进行lerping来实现这一点。

然后,它将更新后的相关变量发送给UDS Actor。

下一部分将更新雨和niagara发射器上的所有活动参数。比如孵化率,风力。任何随天气变化的东西。

下一个是“隐形闪电”的孵化率。

然后,如果选择了Wind Actor,系统会更新其速度。

Update Static Variables

与UDS相同,此功能设置参数和设置,这些参数和设置只设置一次,然后在游戏过程中永远不会更新。

Update Audio

此功能可更新声音效果的所有音量和音频参数。

动态的风的声音是更复杂的部分。在四个主要方向上,有四个主要的风音频组件。每个球的低传球、投球和音量都由当前天气状态设置。音量也受到风向的调节,所以风的声音从风的方向稍微大一些。

雨声和雷声更简单。雨声提示包含基于天气强度在不同雨声之间衰减的逻辑。本节仅基于浮动曲线设置“强度”浮动参数和总体积。。

Increment Random Weather

此函数只是使用“随机天气变化”类别中的速度变量,将当前随机天气变量向当前随机天气类型递增。

仅当转换为的类型需要降水时,它才会更改Rain/Snow变量。晴朗的天气类型,如“多云”或“多云”,没有相关的“雨/雪”值。

Set Material Effects

此函数使用当前天气值设置UltraDynamicWeather_parameters集合中的参数。