Skip to content

2026-05-22 引擎周报

✨ 新功能

  • 引入了实验性的 UAFAnimNodeTree 资产和 AnimNode,为动画系统提供新的资产类型和节点。
  • Niagara 添加了实验性的 UI Ribbon Renderer,支持在UI界面中渲染Niagara粒子带状效果。
  • Niagara 组件渲染器添加了选项,可继承源组件的所有者可见性标志,并将其默认行为调整为尊重所有者可见性。
  • MoviePipeline 延迟渲染器的基本配置中新增了 “Anti Aliasing Method” 属性。
  • UnrealPak 工具新增功能,可选地利用 AllChunksInfo.csv 来填充 .utoc.csv 文件中的 ClassType 信息。
  • Sequencer 简单视图工具栏新增 “ToggleLinkFilters” 命令。
  • 为测试框架添加了可配置的启动冷却时间。
  • PCG 系统扩展了GPU分析范围,现在可分析不通过计算框架执行的元素。
  • VisualLoggerDebugDraw 实现了着色器管道文本渲染和即时渲染标签池,提升了调试绘图的性能和能力。
  • 添加了 OpenXR Spatial Entities 插件(实验性)。
  • 在Core库中新增了 TStringLiteral 模板类,支持在编译期操作字符串字面量。
  • GameFeaturesToolset 添加了查询和编辑 FGameFeaturePluginDetails 的工具。
  • Nanite 在可见的装配部件数量超过上限时,现在会显示警告和屏幕提示信息。
  • 为动画IK节点 RIK 添加了阻尼功能。
  • Mesh Partition 通道的UV布局新增了 Keep Source UV 方法。
  • Material Layer 的新材质转换器现在支持每层参数重写。
  • Shader CompilationShaderConductor 添加了 Vulkan_1_1_Spirv1_4 目标环境支持。

🚀 重大变更

  • Sequencer 中的 AnimMixer 回退了针对 UE-378684 AnimationSpace rig-variance 的修复,可能引入了其他问题。
  • [Water] 系统清理了旧的海洋碰撞组件,以释放其路径名,确保新的碰撞组件能使用确定性名称,影响水体碰撞的命名规则。
  • [ModelContextProtocol] 将工具调用结果跳转到游戏线程的服务器边界,以确保线程安全。
  • Material LayerStack 进行了代码重构,为后续功能变更做准备。
  • 强制更新了 NaniteStatic Mesh 的DDC键,确保在 fp:precise 更改后DDC数据被重建。
  • 回退了在 Local Player 上添加投影方法重载的提交。
  • 统一了多种着色器映射生产系统的序列化机制,使用新的 FShaderCacheSave/Load 上下文。
  • 对动画节点文件和类型进行了重命名,以符合既定的命名规范。
  • [NetPhysics] 使用显式的传送序列信号替换了启发式检测器。
  • 将蒙皮执行移回渲染器阶段,解决了动态风在场景剔除阶段导致的大规模停顿问题。
  • [DDC] 移除了 DerivedDataBackendInterface.h 头文件,简化了派生数据缓存接口。

⚡ 性能优化

  • [OpenApv] 为编码器添加了速率控制器修复,以处理不同尺寸的多帧,提升编码效率。
  • [DDPI, Lumen] 为DDPI添加了 ThreadGroupSizeMode,并优化了 ScreenSpaceShortRangeAOCS 在特定平台上的线程组大小(使用16x8),实现了约0.05ms的性能提升。

🐛 Bug 修复

  • ProximityIKOp:修复了从错误的骨骼拉取属性值的问题。
  • Text3D:修复了在特定时序下,文本准备仅保留新字形句柄而未保留现有句柄,若字形在准备和执行之间被清理,会导致字符不完整的崩溃问题。
  • AnimMixer:修复了自动烘焙错误地将变换烘焙到变换轨道(导致双重应用)的问题。
  • AnimMixer:修复了当本地评估禁用时,使用自动烘焙会导致部分卡住的问题。
  • AnimMixer:修复了静音状态未传播到由轨道行拥有的嵌套轨道(如混合器层)的问题。
  • 修复了Android平台上启动时可能导致 WebView 状态错误,从而阻止渲染或交互的问题。
  • 修复了Chaos测试由于传递链接到Slate头文件而无法编译的问题。
  • Horde构建健康仪表板:修复了项目过滤器搜索字段在面板关闭时被重置的问题。
  • 修复了材质层中顶部/底部混合输入解析错误的问题。
  • Sequencer:修复了进入/退出简单视图时隐藏标签页状态丢失的问题。
  • Chooser:为 FChooserTableViewModel 添加了缺失的 PostEditChange 调用。
  • 修复了从软件光标过渡到硬件光标时,光标位置夹紧不正确以及后续鼠标移动导致位置不同步的问题。
  • 修复了 SkinWeight 读取时在缓冲区重新初始化时发生的越界访问问题,以及大小不匹配时的重试逻辑。
  • Sequencer:修复了 AccumulatedOffset 根运动模式中的旋转问题。
  • Composure:修复了当底板层不再包含任何 AfterDOF 半透明材质时,未释放相关渲染控制台变量覆盖的问题。
  • [nDisplay]:修复了MRG中拓扑感知相机命名问题,以及MPCDI/ICVFX着色器中的不透明Alpha问题。
  • TSR:修复了因使用6位编码覆盖率图导致的薄几何体沸腾质量回退,并在保存覆盖率图时添加了抖动。
  • 修复了iOS自动化测试Appium相关问题。
  • GPU二进制排序:修复了单遍路径中同资源UAV别名的问题。
  • Media Profile:修复了 ElectraProtron 在已打开视频后无法播放新视频的问题。
  • Sequencer:修复了 SChannelView 在过滤器重新运行时未刷新其渲染的关键帧集的问题。
  • PCG Biome Core:将排除样条采样器设置为无界,以确保正确的排除行为。
  • 修复了异步物理状态创建中止时的双重移除崩溃问题。
  • Horde分析:修复了问题步骤被错误赋值为span ID的问题,正确添加了span ID并修复了步骤ID。
  • 修复了输入键需要按两次才能调用输入动作的问题。
  • 修复了 RelativeIKOp 在固定缩放设置后的节点增量初始化问题。
  • BodyIntersectIKOps 提供了修复。
  • PropertyEditor:修复了当 EditCategory() 目标为管道分隔的类别时,子类别被重复渲染的问题。
  • Geometry Collection:修复了事件被触发两次的问题。
  • PhysicsControl:将骨骼动画驱动目标钳制到关节限制,以防止产生异常的力和扭矩。
  • Curve Editor:修复了拖动加权/非断裂切线时未正确应用Delta的问题。
  • [PCG]:修复了运行时生成调度器中不安全的 FEditorViewportClient 类型转换。
  • 修复了HLOD构建中,脏的内存中源actor未参与构建的问题。
  • 修复了Windows上获取计算机名时,名称超过15个字符被截断的问题(新限制为63)。
  • 修复了非流式声音波形代理(ForceInline waves)的陈旧数据问题。
  • 修复了异步物理中 FBodyInstance::CachePhysicsCreationInputs 未正确处理空 BodySetup(如地形)的问题。
  • 修复了 FSoundWaveProxy 对于非流式波形的数据陈旧问题。
  • 为动画序列内存映射失败的罕见情况添加了处理,增强了鲁棒性。

🔧 API 变更

  • [Audio]:将子混合/总线发送上的 TOptional<float> 形式的LPF/HPF截止频率迁移到 bool+float 形式,并采用 InlineEditConditionToggle,改变了参数暴露和编辑的方式。
  • Mesh PartitionAModifierActor:从细节面板中移除了Modifier组件下拉菜单,并隐藏了大多数标准 UActor 类别,使得Modifier组件属性直接作为根属性显示,同时通过 PrioritizeCategories 提升常用属性的优先级。
  • TitleProperty 元数据说明符添加了对 TSet 类型的支持。
  • 后期处理体积 添加了 bOnlyOwnerSeebOwnerNoSee 属性,支持基于所有者的可见性过滤。
  • Verse:将 uLang::TPairTFunction 替换为UE标准库等价物。