UE4中的通用场景描述

介绍如何将USD文件归入虚幻引擎4中并使用其内容。

Windows
MacOS
Linux

计算机图表制作(电影、游戏或其他形式)通常会生成、存储和传输大量3D数据。此类数据来自各种源(动画师、灯光或着色设计师,建模师、特效设计师和更多源),他们在流程中使用多类应用程序(虚幻引擎、Maya、Houdini和Blender),每一个源均有其过往专为任务或应用程序的特殊需求和工作流程所设计的特有场景描述形式。

通用场景描述(Universal Scene Description,USD) 格式由皮克斯(Pixar)开发,用于稳健而且可扩展地交换及增强任意3D场景,而这些场景可能包含众多基本资产。USD不仅提供多类工具集,可用于阅读、写作、编辑和快速预览3D几何图形和着色,还提供元素资产(例如模型)或动画的交换。

然而,与其他交换包不同是,USD还支持将任意数量资产的组装和组织并入虚拟集、场景和镜头,之后可供你在各应用程序间传输,在独立场景中使用单独的相符API进行非破坏性编辑(如重载)。

虚幻引擎4中的USD

在虚幻引擎中使用USD文件的两种方法:

  • USD舞台Actor/USD舞台编辑器:比起将USD数据转换为原生虚幻引擎资产,如静态网格体和材质,你可以利用 USD舞台Actor(USD Stage Actor)USD舞台编辑器(USD Stage Editor) 窗口,以原生形式配合使用你的USD数据。此工作流程可加快将USD数据并入虚幻引擎的速度,让你对USD内容的最初构建方式有更清晰的了解,并在你更改磁盘上的源USD文件时处理实时更新。

  • Python USD导入/导出:双向Python工作流程具备从USD文件向虚幻资产导入对象和在关卡中生成Actor的能力。它还能将对象导回USD文件。由于UE4和USD资产间存在差异,转换会导致质量受损。

使用USD舞台Actor/USD舞台编辑器工作流程有以下好处:

  • 加载.usd.usda (ASCII)、.usdc (binary)和`.usdz`格式。

  • 使USD场景图和图层层级可视化。

  • 支持静态网格体、骨骼网格体、分层级静态网格体组件(HISM)、材质、光源、镜头、变体、动画和混合形状。

  • 支持材质(PreviewSurface和DisplayColor)。

  • 支持USD预览表面的纹理。

  • 启用或禁用有效载荷(以加载和卸载内容)。

  • 支持如Alembic或Custom Path Resolver等USD插件。

虽然目前仍处于测试阶段,但我们向大多数需要USD支持的用户推荐使用此方法。以下分段将描述如何利用此方法与USD内容互动。

启用USD导入插件

在虚幻编辑器中使用USD文件前,你需要从插件(Plugins)菜单处启用 USD导入器插件(USD Importer Plugin)

  1. 编辑(Edit) 菜单选择 *插件(Plugins)

    启用USD导入器插件

  2. 在搜索栏中查找USD,然后启用USD导入器插件,再重启编辑器。

    USD导入器插件

重启编辑器后,你会在 窗口(Window) 菜单下看到列出的新 USD舞台编辑器(USD Stage Editor) 选项:

Window菜单中的USD舞台选项

放置Actor(Place Actors) 面板还会列出一些可供你添加至关卡中的新USD Actor:

放置Actor面板

现场USD舞台工作流程

如需在编辑器内使用USD内容,请按以下步骤操作:

  1. 窗口(Window) 菜单选择 USD舞台编辑器(USD Stage Editor)

  2. USD舞台编辑器(*USD Stage Editor) 面板的菜单中选择 文件(File)>打开(Open),然后浏览你的USD文件。

从你选定的USD文件中读取的场景层级会填充面板。

加载次数依USD数据复杂度而定。如果有更大的场景,你可以在最初设置一个不从USD文件加载任何数据的 USD舞台Actor(USD Stage Actor),然后仅加载所需的个体有效载荷。请参阅以下USD舞台Actor属性

如果关卡中不含有USD舞台Actor,那么同样会将USD舞台Actor添加至其中。这个Actor是从文件中读取的USD数据容器,并在关卡中为该数据提供位置。

从USD文件载入以及你在视口中看到的3D场景对象与大多数其他虚幻引擎功能完全兼容,所以实际上,你可以将它们当作你在虚幻引擎中使用的其他Actor。你也可以在视口中的USD场景里选择并操作个体对象,比如移动Actor和指定材质。

你可以透过USD舞台编辑器在USD文件定义的任意变体之间切换,而且可以立即查看场景反映出来的那些变化:

你可以添加其他USD图元,这些图元可参考USD文件中找到的内容,如经动画处理的骨骼网格体。USD文件中的动画会与关卡序列相关联,你可以用来擦除或回放此动画。

如果在USD舞台编辑器中对USD舞台进行了更改,你可以使用文件(FIle)> 保存(Save)选项来保存USD数据,将这些变更项重写入USD文件。

在虚幻引擎4中访问和编写USD动画

储存在USD文件中的动画是可以通过USD舞台Actor生成的特殊关卡序列访问的。

双击"细节(Details)"面板中的关卡序列(Level Sequence)打开序列。USD xform动画显示为Sequencer中的变换轨道。其他形式的动画,如浮点、布尔和骨骼,通过时间轨道显示。如上图所示,你可以看到在动画播放期间,USD动画数据在每个时间码中是用密钥对/数值对表示的。

通过运用由USD舞台生成的关卡序列,使通过变换轨道绑定USD舞台生成的Actor和添加其他其他动画成为可能:

  1. 点击 轨道+(Track+) 突出显示 序列的Actor(Actor to Sequence) 选项,然后从列表中选择你Actor。

  2. 接下来,单击 + 按钮为Actor创建变换轨道。

  3. 使用关键帧,对你的Actor变换数据进行动画处理。

USD动画数据被烘烤。在将数据保存回USD文件时,xform数值将被更新,以进行匹配。如需删除动画,你可以删除绑定的变换轨道或新的变换轨道。该操作将从USD xform变换属性中擦除一直变化的数值。

将USD内容导入虚幻引擎4

可通过以下导入选项将USD舞台上显示的Actor导入UE4内容浏览器中:

  • 使用 文件(File) > 导入关卡(Import Into Level)。该流程将导入资产(静态网格体、骨骼网格体、材质和纹理等等)和Actor。

  • 使用 内容浏览器(Content Browser) 中的 添加/导入(Add/Import) 按钮。该流程仅导入资产。

  • 将文件拖放到 内容浏览器(Content Browser) 中。该流程仅导入资产。 *使用USD舞台(USD Stage)面板中的 **动作(Action) > 导入(Import)** 选项。该流程将导入资产和Actor。导入流程结束后,USD舞台上的资产将被 **内容浏览器(Content Browser)** 中的新Actor代替。

USD舞台编辑器

USD舞台编辑器从USD文件中勾勒出场景层级,并为你提供用于修改USD数据的工具。其中包括:

  • 打开、保存和重新加载USD文件。

  • 切换可视性和有效负荷,或为图元选择变体。

  • 创建新层、打开现有层或使层静音。

  • 添加或移除图元,并更改其引用。

橙色显示的行是复合弧线,你可以右键单击任何图元,以便为其添加图元(或清除对应的引用)。其他右键单击选项还可以添加或移除图元,以及可以切换、加载或卸载有效负荷。

USD舞台编辑器 中的 细节(Details) 面板会显示当前选择的相关信息,并提供在任意已定义 变体(Variants) 间选择的能力。

USD舞台Actor属性

在创建USD Actor后,你可以使用**细节(Details)**面板中的属性来控制该Actor如何访问和使用其USD文件中所含的数据。

USD舞台Actor细节面板

属性

说明

根层(Root Layer)

选择用于此Actor的USD文件。

初始加载设置(Initial Load Set)

定义关卡开始时需要加载的USD场景部分。全部加载(Load All) 会加载舞台中的所有数据,不加载(Load None) 可避免加载舞台中的所有对象,直到你在 USD舞台编辑器(USD Stage Editor) 窗口中加载对象为止。

加载目的(Purposes to Load)

根据在USD文件中找到的各个目的定义需要加载图元。

  • 全部加载(Load All):加载舞台中的所有数据。 *不加载(Load None)**:可避免加载舞台中的所有对象,直到你在 **USD舞台编辑器(USD Stage Editor)** 窗口中加载对象为止。

时间(Time)

为此Actor评估USD舞台的时间码。

关卡序列(Level Sequence)

与此Actor相关联的关卡序列。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消