You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python自动化将Nvidia Omniverse的.usd文件导入UE5.2

Unreal Engine 5.2 自动化导入Omniverse USD动画的Python实现

前置条件

  • 已安装并启用Omniverse Bridge插件(路径:编辑 > 插件 > 搜索Omniverse Bridge,勾选后重启UE)
  • 已启用Python脚本插件(路径:编辑 > 项目设置 > 插件 > Python Scripts,勾选后重启UE)
  • 目标USD动画文件路径已确认,文件包含完整的动画曲线数据

示例代码

import unreal

def import_omniverse_usd_animation(usd_file_path, import_path="/Game/Omniverse/Animations", import_animation=True):
    # 初始化USD导入选项
    usd_import_options = unreal.OmniverseUSDImportOptions()
    
    # 配置动画导入参数
    usd_import_options.import_animations = import_animation
    usd_import_options.animation_frames = unreal.Range1D(0, -1)  # 导入全部帧(-1表示自动识别总帧数)
    usd_import_options.import_as_skeletal = True  # 骨骼动画设为True,静态物体动画设为False
    usd_import_options.skeleton_asset_path = ""  # 绑定现有骨骼则填写路径,如"/Game/Characters/DefaultSkeleton"
    
    # 配置通用导入任务
    import_task = unreal.AssetImportTask()
    import_task.set_editor_property("filename", usd_file_path)
    import_task.set_editor_property("destination_path", import_path)
    import_task.set_editor_property("replace_existing", True)
    import_task.set_editor_property("automated", True)
    import_task.set_editor_property("save", True)
    import_task.set_editor_property("options", usd_import_options)
    
    # 执行导入
    unreal.AssetToolsHelpers.get_asset_tools().import_asset_tasks([import_task])
    
    # 输出导入结果
    for result in import_task.results:
        if result.success:
            print(f"成功导入:{result.asset_name}")
        else:
            print(f"导入失败:{result.error}")

# 调用示例
if __name__ == "__main__":
    target_usd_path = "D:/Omniverse_Output/Character_Idle.usd"  # 替换为你的USD路径
    target_import_path = "/Game/Assets/Animations/Omniverse"  # 替换为UE内资产目录
    import_omniverse_usd_animation(target_usd_path, target_import_path)

代码说明

  1. 核心模块导入:import unreal 是UE Python脚本的基础依赖,用于调用引擎原生API
  2. USD导入选项配置:
    • import_animations:控制是否提取USD中的动画数据,必须设为True才会导入动画
    • animation_frames:Range1D(0, -1)表示自动识别并导入所有帧,也可指定具体帧范围(如Range1D(0, 100))
    • import_as_skeletal:根据USD内容选择,骨骼驱动的动画设为True,静态物体的位移动画设为False
    • skeleton_asset_path:若需要绑定到UE中已有的骨骼资产,填写对应路径;留空则自动生成新骨骼
  3. 导入任务配置:
    • filename:USD文件的绝对路径,需用正斜杠或双反斜杠避免解析错误
    • destination_path:UE项目内的资产存储路径,必须以/Game/开头
    • automated:设为True跳过手动确认弹窗,完全自动化执行
  4. 执行与结果检查:通过AssetToolsHelpers执行导入任务,并打印结果日志,方便排查问题

关键注意事项

  • 路径格式:UE Python中路径需使用正斜杠(/)或转义反斜杠(\\),禁止直接使用单反斜杠
  • 插件兼容性:确保Omniverse Bridge插件版本与UE5.2匹配,建议使用Nvidia官方适配的最新版本
  • 骨骼映射:若USD与UE骨骼命名不一致,需提前统一命名规范,或导入后手动调整骨骼映射
  • 权限问题:确保脚本有USD文件所在目录的读写权限,避免因权限不足导致导入失败

内容的提问来源于stack exchange,提问作者Felix Entner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:00:15