2026-05-15 引擎周报
✨ 新功能
- Chaos Cloth Asset 工具集:新增 Chaos Cloth Asset 工具集,并更新了从旧版 SkeletalMesh 布料到 Chaos Cloth Asset 的转换器。同时,将部分 ClothingSystem 相关功能从 SkeletalMeshEditor 移至新的
SkeletalMeshClothingSystemUtilities,以便与脚本转换器共享。 - Dataflow 工具增强:为 Dataflow 添加了模板和实用蓝图,支持从网格体重新导入。同时,将 Dataflow 体积插件从实验状态移出,并对 SkeletalMesh Dataflow 模板进行了更新替换。
- 建模工具改进:
- 为皮肤权重工具添加了
UMeshElementsVisualizer;默认启用了地图和皮肤权重绘制工具中的 group-boundary 设置。 - 为
UMeshWireframeComponent/MeshElementsVisualizer添加了 Polygroup 边缘渲染。 - 在
UToolMeshSelector中通过跟踪最后单击的顶点,实现了确定性的边缘循环种子;并支持通过 Shift+双击进行边缘循环选择。 - 为皮肤权重和顶点属性绘制工具添加了 Polygroup 颜色模式。
- 为皮肤权重工具添加了
- PCG 功能扩展:
- 更新了“按属性排序”节点,使其支持按多个属性进行排序。
- 添加了选项以在
CombineActors、CombineMeshes和Create PCGDataAsset实例化操作中,删除源 Actor 并在实例上生成导出资产。 - 允许
Bytes和Enum属性在CreateComplexConstant中转换为int32。
- Sequencer 功能:在混合器动画的骨骼匹配 rematch 中,通过底层姿态依赖关系进行传播。
- Automation 测试工具集:添加了
RunTestsByFilter函数,用于快速批量选择测试。 - 运动学系统:
Mover和ChaosMover中的 move instances 现在也使用拉取机制,使其能够在具有不同状态机的系统中工作。
🚀 重大变更
- Dataflow 插件状态变更:
Dataflow geometry nodes插件移除了 beta 状态,表明其已趋于稳定。 - M&E 项目默认设置:默认禁用了所有 M&E 模板和示例项目中的“后台使用更少CPU”选项,并允许编辑器节流;同时为 Motion Design 禁用了 Text 3D 碰撞。
- iOS 构建变更:现在在构建代理上生成 iOS 的 plist 文件。
- Oodle SDK 更新:确保新的 Oodle SDK 二进制文件特定于编辑器构建平台。
⚡ 性能优化
- 景深渲染优化:新增
r.DOF.PreferLowerBitDepth控制台变量。启用后,景深中间缓冲区的位深度将从 float16 降低到 r11g11b10,并使用单独的 CoC 半径缓冲区,显著提升带宽受限平台(如掌机)的性能。 - IO Store 优化:默认启用
iostore.ReleaseContentAsync=1,以修复游戏过程中出现的 40ms 卡顿问题。 - DDC 异步优化:更新了缓存存储,使其原生支持异步操作,避免了层级结构创建异步包装器的开销。
- AutoRTFM 优化:优化了状态引用计数逻辑。
🐛 Bug 修复
- Sequencer 稳定性修复:
- 修复了在动画混合器中对根运动目标目标通道进行关键帧设置时发生的崩溃。
- 修复了删除包含带有 Control Rig 子轨道的动画混合器的 Sequencer 绑定时发生的崩溃。
- 修复了静音的混合层行在 ECS 路径中仍被评估的问题。
- 修复了控制区域的 Section Root Control Gizmo 位置不正确以及撤销刷新失败的问题。
- 修复了 Control Rig 区域的层权重和蒙版装饰不显示的问题。
- 动画编辑器修复:修复了 IK 重定向编辑器中根运动轨迹的可视化问题。修复了“尝试自动选择骨骼”选项的处理流程。
- 音频系统修复:
- 修复了音频无法播放的问题,防止
FSoundWaveProxy在序列化元数据之前查询时发布零采样率或空数据。 - 修复了
FFusionVoice::AssignIDs中 KeyZone 的排序问题,并增加了结构性空值防御。 - 修复了
Wasapi渲染线程在非运行状态下进行不必要的恢复RequestDeviceSwap的问题。 - 修复了音频子混合/总线发送的 LPF/HPF 截止频率数据结构问题。
- 修复了音频洞察事件日志过滤器菜单字符串的本地化问题。
- 修复了音频无法播放的问题,防止
- PCG 与建模工具修复:
- 修复了
PCG Primitives中将多边形投影到闭合样条路径时,由于使用错误输入数据路径导致的复制属性错误。 - 修正了
PCG Primitives中多个参数的命名,以强制使用帕斯卡大小写。 - 修复了当 Actor 选择器被覆盖时,PCG 组件数据获取模式下的动态跟踪失效的问题。
- 修复了 Motion Design 中强制禁用 Text3D 和形状碰撞的项目设置。
- 修复了 Material Toolset 中读取材质图接线的工具。
- 修复了工具集的类别名称。
- 修复了
- nDisplay 修复:
- 修复了在 ICVFX 面板中移动舞台组件时,光标会跳回起始位置的问题。
- 修复了在 UV 模式下从最近列表添加色度键的功能被错误禁用的问题。
- 修复了删除当前选中的颜色分级组后,未能正确选中上一个颜色分级组,导致 UI 状态错误的问题。
- 修复了在 DCRA 属性更改时不必要地重新创建 Viewport Manager 的问题。
- 将景深补偿增益的最大值从 4 更新为 10。
- 核心与引擎修复:
- 修复了
UScriptViewportClient上GetWorld的歧义问题。 - 防止
-nullrhi参数导致虚假的FGenericWindow错误。 - 修复了在加载时,对于当前跟踪包内加载失败的类,添加原生类加载依赖项的问题。
- 修复了 Verse 脚本执行时间超过挂起阈值时的计算逻辑,排除了确保堆栈解析的“开销”时间。
- 为 CineSpline 的并行曲线添加了元数据属性变更后的自修复机制,解决了同步错误。
- 在 AI 工具集和 Python 编辑器属性设置器可达的 PostEdit 和辅助路径中添加了空值保护。
- 修复了骨骼网格体建模工具中的皮肤权重问题。
- 修复了
- 杂项修复:
- 修复了物理资产实例化同一帧内调用
EnableDisableCollisionBetweenBody时的 Bug。 - 修复了 Linux 多显示器/X11 窗口状态问题。
- 修复了声音波序列化结束时多余的
InitializeDataFromSoundWave刷新。 - 修复了
FSoundWave的序列化修复带来的回归。 - 修复了电影渲染图中存在多个音频的问题。
- 修复了带宽分配器的 CSV 分析器统计信息,每帧输出分配器状态、每 tick 增量和测量数据。
- 修复了 Slate 编辑器节流在兼容模式下材质翻译器的特定问题。
- 修复了物理资产实例化同一帧内调用
🔧 API 变更
- 音频子系统 API 调整:将子混合/总线发送的 LPF/HPF 截止频率从
TOptional<float>数据类型更改为bool+float的组合。 - 运动学系统接口变更:
Mover和ChaosMover中的move instances现在采用拉取机制,这可能影响依赖旧有推模式的自定义运动逻辑。
⚠️ 废弃预告
- Dataflow 模板更新:SkeletalMesh Dataflow 模板已替换掉其中已弃用的节点,使用旧模板的用户需注意迁移。