如何用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)
代码说明
- 核心模块导入:
import unreal是UE Python脚本的基础依赖,用于调用引擎原生API - USD导入选项配置:
import_animations:控制是否提取USD中的动画数据,必须设为True才会导入动画animation_frames:Range1D(0, -1)表示自动识别并导入所有帧,也可指定具体帧范围(如Range1D(0, 100))import_as_skeletal:根据USD内容选择,骨骼驱动的动画设为True,静态物体的位移动画设为Falseskeleton_asset_path:若需要绑定到UE中已有的骨骼资产,填写对应路径;留空则自动生成新骨骼
- 导入任务配置:
filename:USD文件的绝对路径,需用正斜杠或双反斜杠避免解析错误destination_path:UE项目内的资产存储路径,必须以/Game/开头automated:设为True跳过手动确认弹窗,完全自动化执行
- 执行与结果检查:通过
AssetToolsHelpers执行导入任务,并打印结果日志,方便排查问题
关键注意事项
- 路径格式:UE Python中路径需使用正斜杠(
/)或转义反斜杠(\\),禁止直接使用单反斜杠 - 插件兼容性:确保Omniverse Bridge插件版本与UE5.2匹配,建议使用Nvidia官方适配的最新版本
- 骨骼映射:若USD与UE骨骼命名不一致,需提前统一命名规范,或导入后手动调整骨骼映射
- 权限问题:确保脚本有USD文件所在目录的读写权限,避免因权限不足导致导入失败
内容的提问来源于stack exchange,提问作者Felix Entner
相关产品推荐
相关产品推荐

