Weather · 14

天气的其他功能

水坑与雪堆、彩虹与屏幕效果、热扭曲、天气显示控件,以及车辆车窗、滴水粒子、雨滴样条等成品组件。

成品 Actor 与组件按需选用

用 Sequencer 做天气动画

要动画的对象做法
天气状态使用手动天气状态,对 Manual Weather State 分类里的变量打关键帧。
材质状态(湿润/积雪/积尘) 先在 Material Effects 分类里关闭 Simulate Changing Material State Over Time, 否则运行时材质状态会随天气渐变,而不是按关键帧走。
云的移动 UDS 上把 Cloud Speed 设为 0、关闭 Randomize Cloud Formation On Run, 然后在 Sequencer 里给 Cloud Phase 打关键帧。
闪电 把 UDW 加进序列,在它上面建 Event → Trigger 轨道;给轨道加关键帧,右键属性里把 Endpoint 的 Quick Bind 指向 Flash Lightning,即可在关键帧上配置位置、随机种子等参数。勾选 Call in Editor 可以在序列编辑器里预览闪电。
离线渲染影片 UDS 的 Project Mode 改为 Cinematic / Offline,强制最高画质并让两个蓝图每帧完整更新。 用路径追踪出片时,另见天空部分关于 Adjust for Path Tracer 的说明。
B 站 · 点击播放BV1vyoTBREcn

水坑流体体积(Puddle Fluid Volume)

这是把水坑做成真实水面的 Actor:天气状态变化时水面会升降,适合地面上本来就有凹坑、需要被水填满的地方。 材质效果做出来的水坑只是改变粗糙度与法线的平面效果,两者用途不同。

  • 可以选择用 Puddle Fluid Interactions 把水面渲染成模拟涟漪的网格——DLWE 交互组件碰到水面时会产生波纹。 注意这套模拟是密集粒子网格,面积越大开销越高,建议只用于单个小水坑。
  • 摆放时注意:干涸状态下水面应完全藏在地面以下。编辑器里即使干涸也会显示网格方便摆放,运行时则会隐藏。
  • 面积用 Puddle Area 调,也可以缩放 Actor;只能绕 Z 轴旋转。
  • 水面默认是半透明材质,用 Lumen 想要好的反射效果,需要在项目设置里开启 High Quality Translucency Reflections。
  • 填充/干涸的时机在 Puddle State 分类;与 DLWE 交互相关的开关在 Fluid Interactions 分类。
B 站 · 点击播放BV1vyoTBREtv

雪堆样条(Snow Pile Spline)

靠墙堆积的厚雪需要真实的几何体与碰撞,材质效果做不到,这时用 Blueprints/Weather Effects 下的 Snow Pile Spline。

靠墙的雪堆样条
靠墙的雪堆:每个样条点的 Z 缩放决定该处的积雪高度。
  • 默认只在 UDW 的材质积雪覆盖大于 0 时出现,晴天看不到。
  • 编辑样条改变长度与形状;右键样条可加控制点。每个点的 Z 缩放对应那一处的堆雪高度,超过 2 米效果通常就不自然了。
  • 地形起伏时可以开启 Allow Vertical Curve,此时隐藏方式会从“缩放”改为“整体下移”。
  • 出现/消退的速度由 Snow Form Duration、Snow Clear Duration 控制; 也可以用 Manual Visibility 完全手动控制。
  • 网格由若干样条网格段拼成,两端用静态网格封口(Cap Start / Cap End 可关)。 Two Sided 用于栅栏这类两侧都受天气影响的对象。
  • 默认带碰撞,Collision Enabled 与坡度可行走性覆盖都可调。

把水位应用到天气

UDW 的 Water Level 分类里有 Use UDS Water Level,开启后天气相关功能会感知水位。 水位本身在 UDS 的 Water Level 分类里配置。

受影响的项:

  • 天气粒子不会在水面以下生成或进入水下;
  • 相机没入水面以下时,声音遮挡按完全遮挡处理;
  • 屏幕水珠在水下自动关闭,出水后屏幕是湿的;
  • 彩虹在水面以下会被遮掉(需开启对应选项);
  • Surface / DLWE 材质函数有输入项,可遮蔽水位以下的覆盖效果。

后期处理风雨雾

Post Process Wind Fog 在相机附近叠加一层随风与天气粒子移动的雾噪声。 它是后期效果,比用体积雾实现类似效果便宜得多;强度随当前天气状态里的雾、雨、雪、尘缩放。

遮挡方式有两种:默认使用 Weather Occlusion Volume——一张缓存相机周围“受天气影响程度”的体积纹理, 基于全局距离场计算,效果最好;也可以改为用玩家遮挡(Player Occlusion)来遮罩。

彩虹

彩虹只会在以下条件同时满足时出现:

  • 有雨或雾(两者各自的贡献比例可在 Rainbow 分类里调);
  • 相机直接受阳光照射(受云量影响),处在阴云之下时不会出现;
  • 太阳足够低、彩虹能出现在地平线以上,或者相机足够高、能俯视彩虹。

分类里还有额外的选项,控制云层之上、以及水位以下(启用 UDS 水位时)彩虹的可见性。

屏幕效果

效果说明
Screen Droplets 相机淋雨时屏幕上出现水珠。可调水珠纹理大小、强度,以及“正对雨的程度”对效果的影响。
Screen Frost 雪天在“镜头”上结霜结冰。可由降雪、材质积雪与手动值触发,按 Form Duration / Clear Duration 逐渐形成与消退。默认在室内不会结霜,判定用 UDS 的玩家遮挡。
Heat Distortion 热浪扭曲:后期处理让远处景物产生对流状抖动。默认由当前计算出的温度驱动,也可以用 Manual Heat Distortion 手动施加。

天气显示控件

UDW_Current_Weather_Display(控件设计器的 Ultra Dynamic Sky Widgets 分类) 用来显示当前天气。默认显示为图标,取值来自 Get Display Name for Current Weather; 控件设置里可以改成文字显示,或改为取当前的天气预设资产。

自定义天气行为

天气预设可以附加自己的蓝图逻辑。做法是给 UDS_Weather_Settings 数据资产类建一个子类, 覆盖它的 Custom Weather Behavior 函数,然后用该子类创建你自己的预设资产。

函数有一个 Alpha 输入,表示该预设当前对本地天气状态的影响程度(0–1)。 UDW 在天气状态发生变化、且涉及该资产时调用它。

别丢掉父类逻辑

父类的实现负责应用预设上选中的 Sky Modifier。如果你覆盖函数后需要这个功能,记得在函数里调用 Parent。

滴水与呼吸粒子

效果用法
Dripping Static Mesh / Dripping Skeletal Mesh Niagara 系统(Particles/Standalone),挂在静态网格或骨骼网格下,按降雨量或材质湿润度在表面产生滴水。 粒子外观沿用 UDW 的雨滴设置;如果 Actor 上有 Actor Weather Status 组件,则改用该 Actor 的本地状态驱动。
Freezing Breath 角色呼出白气。组件放在嘴前,X 轴朝向呼出方向。默认按 UDW 计算的本地温度在冰点以下时出现; 角色有 Actor Weather Status 组件时,改用该组件的温度。参数可调外观与出现条件。

车辆车窗天气(Vehicle Window Weather)

第一人称坐在车内、或相机贴着行驶中的车辆时,用 Vehicle Window Weather 组件: 它把雨滴与雪花渲染成独立粒子,雨滴会随车速与风在玻璃上滑动,也可以让雨刷把粒子推开。

准备车窗网格

  1. 车窗玻璃要是独立于车身的静态网格,效果以它为采样与渲染对象。多个车窗放在一个网格里也可以, 但拆成多个网格时,每个都需要自己的组件。
  2. UV 不能重叠、不能非等比缩放,UV 岛之间要留一点间距。同时记下 UV 空间对应的实际尺寸(米), 例如整张 UV 只给 1.5 米宽的挡风玻璃用,UV Scale 就是 1.5。
  3. 确认法线朝向:如果朝车内,组件上要勾选 Window Normal Points Inside。
  4. 在静态网格资产上开启 Allow CPU Access,Niagara 才能重建 UV 来驱动粒子。

接入

在车辆 Actor 里把组件挂在车窗网格下,细节面板里把 UV Channel 与 UV Scale 设成与网格一致。 这里还有粒子生成率、精灵缩放,以及“是否用碰撞判断车窗是否暴露在天气中”的开关。

让雨刷推开粒子

  1. 给每个雨刷网格加一个 Vehicle Window Wiper Marker 组件,摆放并缩放,使方形端在转轴、尖端在雨刷末端。
  2. 在雨刷启停的逻辑里调用车窗组件的 Set Wipers Active, 这样系统只在雨刷工作时计算,不浪费性能。

雨滴样条与冰柱

Rain Drip Spline(Blueprints/Weather_Effects)沿一条线或曲线按降雨量滴落雨滴, 适合做屋檐滴水。拖进场景时是一条短线,编辑样条即可改长度与形状。 粒子的碰撞与外观沿用 UDW 的雨滴设置。

这条样条还可以额外开启冰柱网格,用于寒冷天气——这就是“冰柱”功能的入口。

天气遮挡体积

Weather Occlusion Volume 是一张体积纹理,以低分辨率缓存相机周围每个点“被遮挡多少”, 通过采样全局距离场计算,因此需要项目支持距离场。 Post Process Wind Fog 用它来在室内等被遮挡的空间里屏蔽雾效。