Skip to content

2026-06-08 引擎周报

✨ 新功能

  • Unreal Toolbox 增强:工具目录配置新增可选的图标路径设置,支持为工具指定显示图标;添加了用于遥测的 schema,包括扩展类型、宿主类型及操作类型的枚举;构建了遥测基础架构,包含通用契约、事件封装器、会话ID生成及测试支持。
  • 蓝图工具集改进:引入了 disconnect_pins 重命名、非脏查询及函数标志等新功能。为 BlueprintTools 添加了蓝图变量 tooltip 的 get/set 功能,并更新了变量类别逻辑。
  • 动画编辑器工具:AIE 工具新增了 Easy EaseBlend to TrajectoryBlend To NoiseBlend 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_assetsfolder_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_OVERRIDEUE_INTERNAL_OVERRIDEUE_EXPERIMENTAL_OVERRIDEPRAGMA 废弃警告抑制宏,旨在规范化废弃警告的处理流程。
  • 功能移除:移除了视图中已废弃的多视口功能;移除了 Oculus 相关的着色器。