2025年11月引擎更新月报
title: '2025年11月引擎更新月报' date: '2025-11-30'
11月是 Substrate 迎来卡通着色 BSDF / Toon 配置文件、Sequencer 新增 Verse 轨道 等「表现侧新入口」集中打开的一个月。
引擎基础方面,新的 "Sandboxed Editing" 插件、HLOD 的体积 / Actor 范围限定构建 + BP / Python API、StateTree 的异步编译、Iris 的 NetRootObjectAdapter(非 Actor 的自主复制化)、USceneComponent::AttachParent 改为 TWeakObjectPtr 等一系列较大变更接踵而至。
性能方面,Lumen Radiosity Atlas 的选项化(减少 24MB + 0.12ms)、Spline GenerateDistanceKnotsForBezier 成本降低 90%、Insights Quick Find 最多缩短 58%、Sequencer 播放期间停止 Hit Proxy 更新以消除 FPS 下降 等优化齐头并进,同时 Boost 1.88 / OpenSubdiv 3.7 / OpenEXR 3.4.3 / libcurl 8.15 / Zen Server v5.7.8〜v5.7.12 等外部依赖也大量更新。
✨ 新功能
Sandboxed Editing 插件(FileSandbox / SandboxedEditing)
全新的实验性插件,可在不直接影响项目文件的情况下添加、编辑、删除 uasset。待准备就绪后再将更改持久化,特别适合团队协作中的非破坏性工作流。
来源: 2025-11-13
Substrate 添加卡通着色 BSDF 和 Toon 配置文件
Substrate 材质系统加入了卡通着色 BSDF 的初始实现,并引入了专用的 Toon Profile 资产。GBuffer 布局也相应更新以容纳 Anisotropy / ToonProfileID。同时,Slab / Hair BSDF 可通过参数切换、Specular Ramp 和半透明 alpha-to-coverage、移动端 Clear Coat 修复等一并推进,Substrate 的风格化渲染能力大幅提升。
来源: 2025-11-18 / 2025-11-19 / 2025-11-24 / 2025-11-25
Sequencer 新增 Verse 轨道
新增的 Verse 轨道允许从 Sequencer 调用 SceneGraph 组件的 Verse 函数,可在过场动画中直接触发 Verse 逻辑。
来源: 2025-11-26
HLOD 的体积 / Actor 范围限定构建与 BP / Python 公开
World Partition 地图中可限定选择体积或 Actor 范围来设置和构建 HLOD,
BuildHLODForActors/BuildHLODForVolume也已向 Editor Utility 库公开。小地图的上下文菜单中也可进行区域指定构建。来源: 2025-11-03 / 2025-11-06 / 2025-11-07
StateTree 的异步编译队列与评估作用域实例默认启用
StateTree 资产的编译已异步队列化,加载/编辑时的编辑器响应性得到提升。临时实例数据也会被 GC 回收,内存使用量随之减少。同时,属性函数/条件/实用工具的评估作用域实例默认启用,新的转换目标(
Parent/NextParent/NextSelectableParent)和输出绑定功能也已引入。来源: 2025-11-03 / 2025-11-04 / 2025-11-05 / 2025-11-25
Iris: 非 Actor 的自主复制 (FNetRootObjectAdapter) 与服务器事务化
FNetRootObjectAdapter已公开,可将非 AActor 派生的 UObject 类进行自主复制。服务器端NetDriver也可根据需要将 Iris 复制放在事务中执行。Iris 复制桥接本身也经过重构,不再局限于按关卡处理,而是可处理任意对象容器。此外还加入了HandlerComponent的并行执行支持、OodleNetworkAnalytics的默认并行化,FNetHandle的大小也扩展为可完整保留服务器标识符。来源: 2025-11-06 / 2025-11-13 / 2025-11-14 / 2025-11-20 / 2025-11-25
新材质编译器的扩展与新转换器的 Substrate 共存
新材质编译器支持顶点着色器侧的 Custom Output、额外的 Custom Output Expression、Anisotropy 材质属性。此外,即使项目中启用了 Substrate,也可使用新材质转换器,头发束 (Hair Strands) 也已被整理为正确使用 Substrate 的照明模型。
来源: 2025-11-14 / 2025-11-25
Sequencer 中可动画化光照通道
Primitive Component 的光照通道现在可以在时间轴上动画化,可实现在镜头中动态切换特定灯光影响范围的演出效果。
来源: 2025-11-18
Niagara 可直接读取 Chaos Cloth 的 GPU 数据
Niagara 的 Skeletal Mesh 数据接口经过重构,可从
USkinnedMeshComponent派生组件中直接获取数据。现在可直接从 GPU 上的 Chaos Cloth 组件读取蒙皮权重和变形数据用于 VFX。来源: 2025-11-20
UE_LOGF 系列: UTF-8 printf 格式日志记录
在
UE_LOG基础上新增UE_LOGF/UE_LOGF_KINDA_SLOW/UE_LOGF_VERY_SLOW,可直接以 printf 风格输出 UTF-8 字符串,无需 FString 转换开销即可高效记录日志。来源: 2025-11-19
Tiled Mipmap Video Player (TmvMedia) 和 APV 编解码器 + Linux x64 AV1 解码
新增媒体框架 TmvMedia 和 APV 编解码器实现,Linux (x86_64) 也支持 AV1 软件解码。这是继 10 月集成
libaom/libdav1d之后高质量视频格式支持的延续。来源: 2025-11-04 / 2025-11-19
DDC 图/存储配置 API 的革新与自定义缓存图支持
DDC 的图/存储已迁移到新的 Config API,可在
[DerivedDataCacheGraphs]/[DerivedDataCacheStores]部分进行存储名称的重映射、继承和弃用。可通过命令行 (-DDC=...) 或DDC.GraphCVar 动态构建自定义图,轻松实现如ZenLocal+ 只读 Cloud 的分层配置。来源: 2025-11-03 / 2025-11-05 / 2025-11-07
FastGeo 的动态生成/销毁、网格绘制纹理支持
UFastGeoContainer::CreateTransient/DestroyTransient支持运行时动态生成/异步销毁,UStaticMeshComponent上的网格绘制纹理也已支持。PCG Grass 的运行时生成也可使用 FastGeo。
Project Launcher 支持多平台/多配置构建
单个配置文件现在可为多个平台、多种构建配置进行构建/烹饪/启动,多平台测试和部署效率大幅提升。
来源: 2025-11-20
Gameplay Cameras 大规模重构与参数资产化
相机参数从节点中独立并资产化,可在多处复用。Boom Arm 支持叠加旋转,新增持久化 Rig/Shake 管理的 BP 方法,Shake 实例 ID 管理 API 也已整理。
来源: 2025-11-03 / 2025-11-06 / 2025-11-25
Visual C++ 可再发行包版本验证 + Game Input DLL 版本验证
Windows 上编辑器启动时会验证所需的 VC++ 可再发行包版本是否已安装。GameInput DLL 同样在编辑器和运行时启动时进行版本检查,可在兼容性问题导致崩溃或第三方依赖问题之前提前检测。
来源: 2025-11-04 / 2025-11-15
TSubScriptStructOf 模板工具
TSubClassOf的 UScriptStruct 版本。可只暴露从特定基础结构体派生的结构体作为变量,并提供专用选择器 UI。来源: 2025-11-03
LiveLink Hub 支持 Media Profile / Audio Capture 时间码提供者
LiveLink Hub 支持媒体配置文件,Audio Capture 时间码提供者已启用。虚拟制片设置的灵活性得到提升。
来源: 2025-11-04
移动端 Extended GBuffer (160bit) 和 Substrate 调试/追踪功能
移动端延迟渲染现在可使用 160bit 扩展 GBuffer (
r.Mobile.ExtendedGBuffer),为更高质量的移动端表现打开了道路。MegaLights 也添加了对半透明光照体积的可视化支持,Substrate 调试范围进一步扩大。来源: 2025-11-13 / 2025-11-25
🚀 重大变更
Iris 复制可在服务器事务中执行
服务器端 NetDriver 可根据需要在事务中执行 Iris 复制,复制处理过程中的状态一致性得到提升。面向并行化的
DeltaCompressionBaselineManager线程安全化也已实施。来源: 2025-11-06
Curve Editor 新撤销系统默认启用
CurveEditor.UseNewUndoSystem默认启用。撤销/重做更加健壮可靠。来源: 2025-11-13
灯光 / 灯光函数 / 自定义顶点工厂 Landscape 支持 PSO 预缓存
Light Component、Light Function、自定义顶点工厂地形均已纳入 PSO 预缓存范围,首次显示时的卡顿大幅减少。
来源: 2025-11-13
VSM 方向光的粗糙页面动态失效可控
面向 WPO 等场景中阴影更新频繁的情况,支持
MarkCoarsePagesDirectional = 2模式。更容易提升阴影投射性能。来源: 2025-11-13
SplineComponent: 碰撞默认禁用
SplineComponent 默认禁用碰撞/重叠。依赖此行为的子类需显式启用。
来源: 2025-11-25
编辑器正交投影视口默认 Unlit
顶视图/前视图/侧视图默认使用 Unlit 模式,可避免大场景中的深度范围问题和调试窗口的显示问题。
来源: 2025-11-24
大量编辑器模块明确标记为 EditorOnly
多个编辑器专用模块的
.Build.cs已更新为明确标记EditorOnly,防止混入游戏/Cook 构建,提高可维护性。来源: 2025-11-24
RHI 中移除旧 GPU 性能分析器代码
从 D3D11 / D3D12 / Vulkan / Metal / OpenGL 各 RHI 中移除旧 GPU 性能分析器代码路径,代码库更加整洁。
来源: 2025-11-04
引入 FAppTime 线程安全时间管理
FAppTime被引入以替代FApp的函数群,帧管线任务现在可一致地接收正确的 Delta Time。来源: 2025-11-14
子系统初始化期间的重入访问更健壮
初始化期间的内容加载间接触发其他子系统调用的情况下,重入访问现在可被安全处理。
来源: 2025-11-15
Mutable 插件: 移除磁盘编译,统一为内存编译
旧的磁盘编译功能已移除,编译完全在内存中执行。无需中间文件管理,编译速度也得到提升。
来源: 2025-11-20
Vulkan RHI: VK_EXT_image_robustness 默认启用
抑制描述符越界读取导致的 GPU 挂起和未定义行为,Vulkan 平台稳定性提高。
来源: 2025-11-24
第三方依赖大量更新
Boost 1.88.0 / OpenSubdiv 3.7.0 / OpenEXR 3.4.3 / libcurl 8.15.0 / Zen Server v5.7.8 → v5.7.12 / Google Billing 8.1.0 / Windows GameInput / Android NDK 29 支持等,外部依赖和平台工具链集中升级。
来源: 2025-11-03 / 2025-11-05 / 2025-11-20 / 2025-11-24
UnrealBuildTool 的 ParallelExecutor 被 UBAExecutor 取代
并行构建处理后端统一为 UBA,构建系统的可维护性得到提升。
来源: 2025-11-25
RigVM / Control Rig 资产接口大规模重构
资产接口被分为编辑器用和运行时用,新增
URigVMEditorAsset/URigVMRuntimeAsset。为未来支持 Blueprint 无关的 RigVM 资产奠定基础。来源: 2025-11-18
Composite 插件: Single Light Shadow Layer 规格变更
阴影投射 Actor 指定变为必需,阴影偏移参数已弃用。对现有设置产生影响。
来源: 2025-11-19
⚡ 性能优化
Lumen Radiosity Atlas 选项化(主机端减少约 24MB / 0.12ms)
可在不需要的平台减少 Atlas 清除处理和内存使用,内存和性能两方面的可扩展性均得到提升。
来源: 2025-11-05
顶点着色器专用的 Material Uniform Buffer
生成 VS 专用的紧凑 Uniform Buffer,分离 PS 专用参数。需要编译的 VS 变体大幅减少,着色器编译时间和切换开销双双改善。
来源: 2025-11-24 / 2025-11-25
Spline Component 优化(GenerateDistanceKnotsForBezier 成本降低 90%)
Spline 相关方面,
GenerateDistanceKnotsForBezier的成本降低 90%,RebuildLegacyCurves也通过缓存和算法改进得到加速。来源: 2025-11-14
Insights Quick Find 最多缩短 58%
Timing Track 中的事件搜索/过滤性能在大规模跟踪中最多提升 58%。
来源: 2025-11-13
Sequencer 播放中 FPS 下降已解决(停止了 Hit Proxy 更新)
解决了 Sequencer 播放期间在视口移动鼠标时每帧 Hit Proxy 被禁用导致帧率大幅下降的问题。录制 Take 时的体验大幅改善。
来源: 2025-11-05 / 2025-11-06
MegaLights 半透明光照优化(主机端 1080p 约减少 0.05ms)
MegaLights 注入通道和时序滤波通道通向半透明光照体积的路径已合并。
来源: 2025-11-13
阴影深度着色器排列合并
VSM 和 OnePassPointLight 等的阴影深度着色器排列已合并,减少了不必要的组合和着色器编译时间/内存。
来源: 2025-11-03
HWRT 实例收集多线程化
硬件光线追踪的动态几何实例收集已并行化,动态对象较多的场景中渲染性能得到提升。
来源: 2025-11-04
骨骼网格渲染路径效率化
引入直接将最终骨骼变换矩阵 (
ReferenceToLocalMatrices) 传递到 GPU 的新路径,无需持有中间组件空间数组,蒙皮数据管线效率提升。来源: 2025-11-24
GPU 场景支持平台上的 ISM 顶点工厂条件性移除
在完全 GPU 场景支持的平台上,Instanced Static Mesh 用顶点工厂被条件性移除,渲染路径简化。
来源: 2025-11-25
PCG GPU 标签操作无需回读
PCG GPU 代理数据的标签添加/删除/过滤现在无需 CPU 回读即可执行,GPU 数据操作性能大幅提升。
来源: 2025-11-25
PCG Generate Landscape Textures 内存减少
通过窗口化处理仅输出覆盖生成单元格的范围,生成纹理的大小/内存/性能得到改善。
来源: 2025-11-04
Spline 评估 / ISMPoolComponent / 材质验证工具优化
ISMPoolComponent 仅在存在活跃实例或待处理请求时 Tick,材质验证工具对预加载材质实例的着色器数使用轻量计算,UObject 哈希容器
FSetHashBucket也改为TCompactSet等,多项细微加速持续投入。来源: 2025-11-07 / 2025-11-13 / 2025-11-14
iOS / Android 命令行处理 O(N²) → O(N)
移动端启动时较长命令行的解析变为线性时间,有效改善启动速度。
来源: 2025-11-19
macOS UBA: 基于 clonefile 的快速文件复制
macOS 上尝试使用写时复制的
clonefile,仅在失败时回退到传统复制。预计可改善构建时间。来源: 2025-11-09
Apple 平台日志切换为 os_log
iOS / macOS 的日志输出从
NSLog切换到os_log框架。日志隐私控制也得到提升。来源: 2025-11-14
Constraints 快速评估方案
针对连续评估的多个动画约束,可通过
Constraints.UseFastEvaluation启用新的评估方案。来源: 2025-11-25
ZenLoader 竞争解除与并行处理恢复
减少全局导入表附近的锁竞争,恢复不可达脚本对象删除的并行处理。多线程加载的稳定性和吞吐量得到改善。
来源: 2025-11-09 / 2025-11-14
🐛 Bug 修复
USceneComponent::AttachParent 改为 TWeakObjectPtr 以消除 GC 问题
修复了已销毁组件仍被引用方作为父对象持有的 GC Bug。对引擎整体稳定性有显著影响。
来源: 2025-11-24
修复 TStringBuilder::Appendf 内存不足循环导致崩溃的问题
解决了
Appendf在格式错误时不断调整大小直至内存耗尽而崩溃的重大 Bug。同时新增FPlatformString::FormatV/TCString::FormatV。来源: 2025-11-19
修复 Gameplay Abilities 在 PIE 结束时无限循环
解决了
FActiveGameplayEffectsContainer析构函数中 PIE 结束时陷入无限循环的问题。直接关系到 GAS 使用项目的稳定性。来源: 2025-11-04
ZenLoader / 异步加载的死锁、use-after-free 修复
修复了 Verse VM 协作时的死锁、包卸载时的 UAF、加载器拥有对象短时可见的问题、隐藏前的显示等问题。
-odschost相关的 Cook-On-The-Fly 着色器发送问题也已解决。来源: 2025-11-07 / 2025-11-09 / 2025-11-20
修复 HWRT 中 PreRender 未被调用的问题
解决了首个渲染器不输出 FinalSceneColor 时 HWRT 几何构建无法进行的问题。
来源: 2025-11-06
Niagara 组件池的 TObjectKey 化与 LWC 转换崩溃修复
旧对象指针导致内部映射失效的问题通过
TObjectKey化得以解决。LWC ↔ SWC 之间对齐类型转换时的崩溃也已修复。来源: 2025-11-14 / 2025-11-24
修复 HLOD 构建期间主世界包被标记为 transient 的问题
解决了可能被错误标记为 transient 的问题。
来源: 2025-11-04
Zen Server v5.7.12: 修复大规模块的 GC / 文件操作 Bug
Zen Server 更新至 v5.7.12,相关的 Bug 已修复。同时 DDC 侧 Zen Cache Store 的压缩缓冲区头部也添加了哈希验证。
来源: 2025-11-20
修复 Modular 构建中使用 constinit UObject 时的构建错误
为支持模块边界(DLL)间的
constinitUObject,进行了大规模重构,相关构建错误和 Self 引用替换的回归也已解决。来源: 2025-11-14 / 2025-11-18
Substrate / Lumen 方面的多项稳定性与质量修复
包括 Substrate 与 MegaLights / Light Complexity 的相关修复、双面材质背面颜色异常、使用 Toon Model 时的材质重建、
LUMEN_MAX_VIEWS变更时的着色器编译错误、SSS 与 Lumen 法线不一致等,Substrate 方面的修复持续进行。来源: 2025-11-03 / 2025-11-07 / 2025-11-13 / 2025-11-24
修复 Enhanced Input × 传统输入竞争
Enhanced Input 与传统输入并用时的输入消费处理得到改善,消除了意外的 Action 执行。帧间卡顿期间的同一 Tick 内 Tap 检测也可通过
EnhancedInput.DetectSubTickTapsForNonAxisInputs控制。来源: 2025-11-04 / 2025-11-13
修复 WebBrowser JS→UE 函数调用时的内存泄漏
修复了从 JavaScript 调用 UObject 函数时 FString 参数未被释放导致泄漏的问题。
来源: 2025-11-06
修复材质实例的参数缓存竞争条件
解决了游戏线程与渲染线程之间的数据访问竞争。
来源: 2025-11-18
Mover 的即刻移动效果调度
为规避不同 Mover 组件间的 Tick 顺序依赖,新增了在下一帧调度即刻移动效果的工具函数。可在客户端和服务器之间以一致的时序执行移动。
来源: 2025-11-13
修复子关卡变换导致 ISM 预计算数据错误
解决了子关卡存在变换时,ISM 实例层级使用错误预计算数据的问题。
来源: 2025-11-06
修复 LinkerLoad 多线程加载时的竞争条件
解决了多线程资产加载中
VerifyImportInner周围的竞争问题。来源: 2025-11-04
🔧 API 变更
FRefCountBase 等合并到 FRefCountedObject
多个引用计数基类合并为
FRefCountedObject,FRefCountBase已弃用。旧的引用计数 API 将逐步废除。来源: 2025-11-14 / 2025-11-18
TMemoryView 支持从连续内存范围的隐式转换
可从
TArray/TArrayView等隐式转换为TMemoryView/TConstMemoryView,工具函数参数指定更加简洁。来源: 2025-11-24
新增 TComponentInterfaceProvider<T>::Provides() 辅助方法
新增可简洁描述从 Component Interface 获取组件的新辅助方法。
来源: 2025-11-04
Iris 网络 API 整理
继 9-10 月
BeginReplication/EndReplication参数整理之后,FNetHandle的大小扩展、HandlerComponent 的并行执行支持、IsReplicatedObjectRelevantForConnection实验性方法的新增等,Iris 相关 API 持续整理。来源: 2025-11-06 / 2025-11-14 / 2025-11-20
PrimitiveComponent 中 Custom Primitive Data 设置逻辑统一
原来在详细信息面板侧的逻辑重新配置到
PrimitiveComponent中,材质默认值设置等更容易复用(自 10/28 继续)。
Material GetExpressions 向 BP / Python 公开
材质 / 材质函数的
GetExpressions可从脚本中调用,编辑器扩展工具编写更加方便。来源: 2025-11-20
CommonUI UCommonButtonGroupBase 的声音播放控制
SelectNextButton/SelectPreviousButton公开了bAllowSound参数,可从 BP 控制选择音效的播放。来源: 2025-11-24
FPerPlatformBool 向 BP 公开 + 动态 Property 权限列表
按平台区分 bool 值的类型现在可在蓝图中使用。Property 权限列表也可通过委托动态切换启用/禁用。
来源: 2025-11-24 / 2025-11-25
MeshComponent 的 SetOverlayMaterial / SetParameterValueOnMaterials 支持叠加层
可从 BP 操作叠加层材质槽位及其参数。
来源: 2025-11-13
⚠️ 废弃预告
FRefCountBase 弃用
建议直接使用合并目标
FRefCountedObject。来源: 2025-11-14 / 2025-11-18
Raw Input 插件弃用
旧 Raw Input 插件已弃用,建议迁移到新的实验性 Game Input for Windows 插件。
来源: 2025-11-07
CompositePlane 插件弃用
面向虚拟制片的
CompositePlane插件已弃用,使用时将显示通知。来源: 2025-11-04
Composite 插件的 Single Light Shadow Layer 规格变更
阴影投射 Actor 指定变为必需,阴影偏移参数已弃用。现有设置需重新审查。
来源: 2025-11-19
Mass 框架: GET_MASSSIMULATION_CONFIG_VALUE 等宏弃用
建议通过配置类直接访问。
来源: 2025-11-14
Chaos: 旧碰撞过滤器 API 弃用(继续)
作为 9-10 月 Collision Filter 重构的一环,引入
UnionShapeFilter并更新过滤逻辑,FShapeQueryData系旧 API 持续弃用。来源: 2025-11-05 / 2025-11-13 / 2025-11-20
FSlateBrushTemplates 中有问题的函数弃用
可能返回已释放内存指针的函数已弃用(与崩溃修复一并处理)。
来源: 2025-11-20
FPhysicsAssetUtils::SanitizeRestrictedContent 弃用
作为不执行任何操作的函数被整理掉。
来源: 2025-11-14
📌 重点关注模块
Substrate / Lumen / MegaLights: 卡通着色 BSDF 与 Toon 配置文件、Slab/Hair BSDF 参数切换、新材质转换器的 Substrate 共存、Lumen Radiosity Atlas 选项化(减少 24MB+0.12ms)、MegaLights 半透明整合(约 0.05ms)、头发束的 Substrate 光照整合等,在表现面和性能面两方面都是 11 月动作最大的领域。
Iris / Networking: NetRootObjectAdapter 实现非 Actor 的自主复制、服务器端事务内复制、HandlerComponent 的并行执行支持、关卡以外的对象容器支持、FNetHandle 大小扩展等,复制的作用范围和并行性持续扩展。
StateTree / RigVM / Animation: StateTree 达成异步编译队列和评估作用域实例的默认启用,新增输出绑定和新转换目标(Parent/NextParent/NextSelectableParent)。RigVM / Control Rig 进行了资产接口的大规模拆分、姿态资产直接支持、新控制流节点(RunOnce / Timer)、Sequencer Verse 轨道等,整个动画技术栈的重新组织持续推进。