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分析范围,现在可分析不通过计算框架执行的元素。
- 为 VisualLogger 和 DebugDraw 实现了着色器管道文本渲染和即时渲染标签池,提升了调试绘图的性能和能力。
- 添加了 OpenXR Spatial Entities 插件(实验性)。
- 在Core库中新增了 TStringLiteral 模板类,支持在编译期操作字符串字面量。
- 为 GameFeaturesToolset 添加了查询和编辑 FGameFeaturePluginDetails 的工具。
- Nanite 在可见的装配部件数量超过上限时,现在会显示警告和屏幕提示信息。
- 为动画IK节点 RIK 添加了阻尼功能。
- 为 Mesh Partition 通道的UV布局新增了 Keep Source UV 方法。
- Material Layer 的新材质转换器现在支持每层参数重写。
- Shader Compilation 为 ShaderConductor 添加了 Vulkan_1_1_Spirv1_4 目标环境支持。
🚀 重大变更
- Sequencer 中的 AnimMixer 回退了针对 UE-378684 AnimationSpace rig-variance 的修复,可能引入了其他问题。
- [Water] 系统清理了旧的海洋碰撞组件,以释放其路径名,确保新的碰撞组件能使用确定性名称,影响水体碰撞的命名规则。
- [ModelContextProtocol] 将工具调用结果跳转到游戏线程的服务器边界,以确保线程安全。
- Material LayerStack 进行了代码重构,为后续功能变更做准备。
- 强制更新了 Nanite 和 Static 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)。
- 修复了非流式声音波形代理(
ForceInlinewaves)的陈旧数据问题。 - 修复了异步物理中
FBodyInstance::CachePhysicsCreationInputs未正确处理空BodySetup(如地形)的问题。 - 修复了 FSoundWaveProxy 对于非流式波形的数据陈旧问题。
- 为动画序列内存映射失败的罕见情况添加了处理,增强了鲁棒性。
🔧 API 变更
- [Audio]:将子混合/总线发送上的
TOptional<float>形式的LPF/HPF截止频率迁移到bool+float形式,并采用InlineEditConditionToggle,改变了参数暴露和编辑的方式。 - Mesh Partition 和 AModifierActor:从细节面板中移除了Modifier组件下拉菜单,并隐藏了大多数标准
UActor类别,使得Modifier组件属性直接作为根属性显示,同时通过PrioritizeCategories提升常用属性的优先级。 - 为 TitleProperty 元数据说明符添加了对
TSet类型的支持。 - 将 后期处理体积 添加了
bOnlyOwnerSee和bOwnerNoSee属性,支持基于所有者的可见性过滤。 - Verse:将
uLang::TPair和TFunction替换为UE标准库等价物。