2026-06-08 引擎周报
✨ 新功能
- Unreal Toolbox 增强:工具目录配置新增可选的图标路径设置,支持为工具指定显示图标;添加了用于遥测的 schema,包括扩展类型、宿主类型及操作类型的枚举;构建了遥测基础架构,包含通用契约、事件封装器、会话ID生成及测试支持。
- 蓝图工具集改进:引入了
disconnect_pins重命名、非脏查询及函数标志等新功能。为BlueprintTools添加了蓝图变量 tooltip 的 get/set 功能,并更新了变量类别逻辑。 - 动画编辑器工具:AIE 工具新增了
Easy Ease、Blend to Trajectory、Blend To Noise和Blend to Wave等 tween 工具。 - 编辑器工作流优化 (UAF):将原有的 “Find References” 重命名为 “Replace References”,并新增一个 “Find References” 功能,该功能调用查找工具以更好地匹配现有编辑器工作流。
- IO 依赖查看器:
IoStoreDependencyViewer更新至 1.1.9 版本,新增标签、GUI 性能改进、错误用户体验、日志窗口、资产复制修复及容器扩展等功能。 - MetaSound:新增 Variant Node Facade。
- Niagara:为 Debug HUD 和性能统计添加了轻量级性能跟踪功能。
- StorageServerWidgets:将目标路径改为可编辑的组合框,并支持动态预设。
- Direct Mesh Control:进行了多项优化。
- 其他工具功能:为 UnrealAssetStringify 工具添加了设备日志裁剪方法;在
IProjectExternalContentInterface::AddExternalContent中为完成结果添加了结构体;添加了测试用的抽象骨架绑定/标签。
🚀 重大变更
- 渲染与管线:为 PSO Precache 任务临时强制
bRequired == true以确保着色器加载;从视图和视图方面中移除了已废弃的多视口支持;移除了 Oculus 着色器。 - 保存系统:将
SavePackage的默认错误处理器从GError改为GWarn,以避免断言并记录错误,防止编辑器崩溃,确保 Cook 流程稳定性。 - 线程安全:修改了
UObject::LoadConfig,以避免绕过FConfigCacheIni内置的线程安全机制。 - 硬件光线追踪:移除了
r.RayTracing.EnableOnDemand控制台变量,该功能现在始终可用。 - 内部模块重构:移动了
VerseProgramHostServices模块;应用了UE_DEPRECATED_OVERRIDE等覆盖宏及PRAGMA废弃警告抑制宏;移除了已废弃的多视口;修复了头文件单元编译错误。 - 构建工具链:对 UBA、UBT 及 Core 模块进行了更新与重构。
⚡ 性能优化
- 内存与线程:在
ULandscapeHeightfieldCollisionComponent中使用了事务安全的读写锁;在内存洞察追踪中,将 D3D12 reserved buffers 视为带有已提交页面的单一资源(而非 N 个堆);对于非常小的场景(如预览/缩略图渲染),采用启发式方法跳过初始使用 reserved resources。 - 渲染优化:将
Sample BloomUpA改为 float 类型以避免半精度下的精度问题;对 Direct Mesh Control 进行了优化。
🐛 Bug 修复
- 物理与移动:修复了基于移动的
IsValid()中对已销毁 body instance owner 的检测问题。 - 动画与角色:修复了重命名 Skin Weight Profiles 时的问题;修复了动画详情中枚举相关的问题;修复了 Control Rig 中 int 控件无法从枚举类型改回非枚举 int 类型的问题;修复了 Control Rig BPI 函数在复制粘贴并重新打开后的损坏问题。
- 构建与打包:修复了使用
LimitProcessLifetime=True时 zenserver 的竞态条件;修复了 pakfile 规则错误创建空 pak 文件的问题;修复了平台安装包基础组件缺失错误包含项的问题。 - 编辑器与工具:修复了
AssetTools.find_assets中folder_path默认值的问题;修复了 StateTree 验证期间错误移除 null 扩展导致编辑器中无法添加扩展的问题;修复了蓝图工具集非确定性布局测试的问题;修复了蓝图变量选择器错误限制变量名长度的问题;修复了条件作用域上下文切换清除先前上下文的问题;修复了 Niagara 调试器在会话浏览器未选择实例时的默认行为。 - 渲染与视觉:修复了 Cloth Dataflow 中指定渲染网格属性时显示不正确的问题;修复了 Nanite 场景代理在网格无分区时的问题;修复了新材质翻译器中 Custom 表达式输出未初始化导致 DXC 验证错误的问题。
- 输入与设备:修复了 Wintab 笔触输入中,依赖笔尖压力而非仅
pkZ来判断接触的问题。 - 其他:修复了
GetCellsWithOuter中在遇到导入项时的停止逻辑;修复了自动编辑器通用命令中FWaitForEditorNavMeshBuildCommand无限期阻塞的问题;修复了 DynamicWind 模块的竞态条件及间接参数对齐问题;修复了Swap函数禁止通过 const 引用进行交换的问题。
🔧 API 变更
- 废弃宏:引入了
UE_DEPRECATION_OVERRIDE宏,供子类在重写基类虚方法时使用,以避免重写本身触发废弃警告。 - 蓝图工具:为
BlueprintTools添加了蓝图变量 tooltip 的 get/set API。 - 核心库:为
TOptional添加了GetValueOrEmplace方法;添加了UE_LOG_CATEGORY_TO_FNAME宏,用于在开发和发布版本中都可编译的带类别日志代码;修改了IProjectExternalContentInterface::AddExternalContent的完成接口。 - IO 系统:为安装缓存添加了可选的 per-
FIoChunkId创建时间跟踪。 - 导航与寻路:为
ARecastNavmesh::GetPolysWithinPathingDistance添加了提取父节点和成本信息的方式。
⚠️ 废弃预告
- 废弃宏应用:广泛使用了
UE_DEPRECATED_OVERRIDE、UE_INTERNAL_OVERRIDE、UE_EXPERIMENTAL_OVERRIDE及PRAGMA废弃警告抑制宏,旨在规范化废弃警告的处理流程。 - 功能移除:移除了视图中已废弃的多视口功能;移除了 Oculus 相关的着色器。