SuperAPI AI 工具集

importing-content

编程与开发

查看项目

更新于 11-06 16:16

技能介绍

用途

本技能面向虚幻引擎(Unreal Engine)的内容导入流程,核心是 Interchange 框架。它帮助开发者从 Blender、Maya、Substance Painter 等 DCC 工具导入静态网格、骨骼网格、纹理和音频,并解决导入后出现的缩放错误、旋转异常、法线翻转、纹理过曝或饱和度异常等问题。

主要能力

  • Interchange 三阶段流程:Translator 读取文件生成中性节点容器;Pipeline 栈按配置转换节点;Factory 创建最终 UObject 资产。
  • 格式支持:Interchange 支持 FBX、glTF、GLB、OBJ(网格/场景)、PNG、TGA、JPEG、EXR、HDR、DDS、IES、PSD、BMP(纹理)、WAV、AIF、FLAC、OGG、OPUS、MP3(音频)。
  • 单位与轴向:虚幻世界单位为厘米;FBX 可通过 bConvertSceneUnit 自动转换;EInterchangeCoordinateSystemPolicy 控制轴向映射策略。
  • 网格导入设置:合并静态网格、法线/切线重算、光照贴图 UV 生成、Nanite 构建、LOD 组、碰撞体导入等。
  • 骨骼网格设置:骨架复用、导入内容类型(几何+蒙皮权重/仅几何/仅蒙皮权重)、变形目标导入、物理资产自动创建。
  • 纹理设置:sRGB 开关、压缩格式、法线贴图绿通道翻转、法线贴图自动检测、UDIM 导入。
  • 导入溯源与重导入:UInterchangeAssetImportData 存储源文件路径、翻译器设置、管线列表和节点容器快照;重导入时复用相同管线与设置。
  • 程序化导入:C++ 中使用 UInterchangeManager 的 ImportAsset(同步)、ImportAssetAsync(异步)和 ReimportAsset/ReimportAssetAsync;支持 FImportAssetParameters::OverridePipelines 覆盖默认管线栈,bIsAutomated 抑制弹窗。
  • 自定义管线:C++ 子类化 UInterchangePipelineBase,重写 ExecutePipeline、ExecutePostFactoryPipeline、ExecutePostImportPipeline;属性标记 ReimportRestrict = "true" 防止重导入时被修改。

使用方式

工程内通过 Project Settings > Engine > Interchange 配置管线栈,或在导入时通过 OverridePipelines 传入自定义管线。C++ 中调用 UInterchangeManager::GetInterchangeManager() 获取单例,创建 UInterchangeSourceData 后执行导入。批量导入应使用异步接口并限制并发,可用 IsImporting() 检查是否正在进行导入。

适用场景

  • 从 DCC 工具导入资产并确保比例、轴向、着色正确。
  • 角色资产骨架与变形目标配置。
  • 自动化批量导入(C++、蓝图或 Python)。
  • 定制导入管线以强制执行项目命名规范或设置约定。
  • 排查重导入未拾取预期源文件或设置的问题。

限制与注意事项

  • 虚幻 5.8 中 FBX 默认经 Interchange 导入;如需旧版导入器行为,需将 Interchange.FeatureFlags.Import.FBX 设为 0(场景导入还需 .ToLevel 0)。
  • 运行时导入需将 Interchange 内容目录加入打包烹饪路径,否则运行时管线缺失。
  • 导入前应在 DCC 中应用全部变换并冻结旋转,避免骨骼网格根骨偏移。
  • 法线/数据贴图误开 sRGB 会导致光照错误;建议手动核验。
  • 重导入时更换骨架会导致旧动画失效;建议每个角色绑定保持单一骨架。
  • 大规模批量导入可能压满任务图,应使用异步并节流。

官方文档与引擎源码引用详见原资料链接。