2026-05-27 引擎周报
✨ 新功能
- [ModelingTools] 为 MeshVertexAttributePaintTool 与 SkinWeightsPaintTool 添加了
bSyncBrushRadiusAcrossModes配置开关,允许用户选择是否在不同绘画模式间同步画笔半径。 - [nDisplay] 增强了 NDC 验证基础设施。
- [Remote Control] 为 Epic Stage App 功能正常运作,新增了
ApplyColorWheelDelta和ApplyColorGradingWheelDelta到内置允许列表。 - [iOS] 实现了伪硬件光标,作为一组 UIImageView/Hotspot/Size 句柄,可减少 iPad(Designed for Mac)上光标的延迟。
🚀 重大变更
- [PCG] 对 FPCGComponentVisualizer 进行了优化。
- [FSimpleStreamableAssetManager] 在 PostGarbageCollect 时排空生产者队列。
- [DebugDraw] 将 FLabelPool 从 RewindDebuggerVLogRuntime 移至 DebugDraw 插件并完成了生命周期整合。
- [AllToolsets] 在 AllToolsets 聚合器插件中启用了 RewindDebuggerToolset。
⚡ 性能优化
- [PCG] 进行了多项优化:优化并缓存了元数据大小计算;修复了因手动编辑、双重更新和检查堆栈复制导致的编辑器性能问题;优化了组件可视化。
- [Chaos] 更新了 Island solver 的 CSV 和范围计时器。
- [Shader Compilation] 将 RemoveDuplicates 遍配置为仅移除重复的装饰,避免了运行 RemoveDuplicateTypes 部分,以提升可调试性。
- [Cloth] 将并行布料模拟的等待点从 EOF 移至 TG_LastDemotable。
- [Media] 为未来的 TMV 优化准备了必要的公共 API 变更。
🐛 Bug 修复
- [Physics Controller/Constraint] 修复了
WidenLimits中的一个数值 bug,该 bug 可能导致错误地将限制值扩大到极大范围(360 - 扩大后的边界),其根本原因是四元数翻转符号问题。 - [SkeletalMeshModelingTools] Edit Skeleton 工具现在会将已删除骨骼的权重重新路由到根骨骼,而非丢弃,避免了工具退出时顶点坍缩至原点。
- [Sequencer] 修复了多个问题:Section 可能意外卡在禁用状态;Stitch track section 的默认权重错误设为 0;AutoBake 使用 Shim track editor 时导致的崩溃(需使用真实的编辑器进行类型转换);Anim Mixer 中在 KeepState Section 与 AccumulatedOffset Section 边界处的根运动弹跳;中断创建关键帧操作时导致撤销堆栈锁死。
- [Material Translator] 新材质翻译器进行了多项兼容性修复,包括通过
BreakMaterialAttributes输出传播非聚合输入,以及支持为 StaticSwitch 馈送动态 bool 参数。 - [PCG] 修复了多个潜在崩溃:构建地形缓存时条目无法解析;访问器中存在空对象;以及 Assembly Actor Tagger 需要重新保存资源以填充引擎版本号。
- [Media] 修复了多个问题:ImgMedia 在瓦片可见性变化时刷新单帧序列;TmvMedia 缺少非统一构建所需的头文件;MP4 Muxer 可能导致文件处于损坏状态。
- [GameplayTags] 为
AddTag提供了可配置的空源策略,并添加了MoveTags工具。 - [Animation] 修复了 UBA 中因空库实例导致的崩溃(作为 CL 51596136 的后续修复)。
- [Mutable] 修复了存在多个同名 Skeletal Mesh 时出现的重复几何体问题。
- [Camera] 修复了 PIE 中相机变量覆盖不生效的问题。
- [ChaosClothAsset] 在蓝图构造脚本重新运行时,保留了布料组件的
bSimulateInEditor和资产属性。 - [EditorTRSGizmos] 修复了已合并的、用于固定缩放标签显示的更改未包含在特定版本中的问题。
- [DaySequence] 修复了使用 Override 混合策略的 DaySequenceModifierComponents 在编辑器预览中不更新的问题。
- [PoseSearch] 修复了 PoseSearchColumn 映射以获取正确的 PSD 资产索引。
- [Unified Buffer] 修复了 NumScatters 的竞态条件;序列化了在活动命令列表期间插入作用域时的渲染命令管道。
- [Mobile Renderer] 移除了使用 Groom Binding 时的崩溃。
- [Text3D] 确保在模块启动时加载其依赖的 GeometryMask 模块,以避免内容缺失。
- [Verse] 更新了
PrintScriptCallstack以支持 Verse VM;将内部瞬态属性限制为仅限原生 Verse 类型。 - [Dataflow Editor] 添加了防御性检查,防止在选择中使用陈旧的 typed-element 句柄。
- [Script] 修复了在程序化脚本沙箱中单参数
execute_tool的问题。 - [DebugDraw] 当
UE_DEBUG_RENDERING_ENABLED=0时,为标签池入口点提供了存根实现。 - [All] 修复了在未烹饪的游戏中(使用
-game的编辑器构建)加载 TG 资源时的断言失败。 - [UI] 修复了 Proximate Entry Navigation 中
ScrollIntoView使用本地空间以及列表内部防护的问题。 - [Network] 将
ReplicationSystemTest程序移除,已由ReplicationSystemLowLevelTests替代。 - [NvMedia] 修复了过期可写媒体的流式传输和缓冲区处理。
- [PCG Primitives] 过滤了区域和区域内的样条线,并添加了缺失的“Delete tags”节点,避免了当数据上已存在“selected”或“unselected”标签时导致图元无法正常工作的问题。
- [Misc] 修复了 DigestGenerator 中的空指针检查;为间歇性错误消息添加了包路径信息;重命名了
FUAFAnimGraphUpdateContext变量以保持一致性。
🔧 API 变更
- [HTTP] 弃用了
FHttpManager::SetRequestAddedDelegate和SetRequestCompletedDelegate,转而使用线程安全的多播委托。 - [Verse] 限制了内部瞬态属性仅可用于原生 Verse 类型。
- [Animation] 将
FWorldPSCPool从 UWorld 移入FParticleSystemWorldManager。 - [Direct Mesh Control] 更新了图标以提供更清晰的描述。
- [Modulation] 向调制静态函数添加了
CreateNewBus辅助函数。
⚠️ 废弃预告
- [HTTP]
FHttpManager的SetRequestAddedDelegate和SetRequestCompletedDelegate已被弃用,请使用线程安全的多播委托替代。