USD舞台编辑器快速入门

关于使用USD舞台工作流程处理USD数据的教程。

Choose your operating system:

Windows

macOS

Linux

虚幻引擎将通过USD舞台Actor和USD舞台工作流程提供对USD的支持。在本快速入门指南中,你将:

  • 创建USD舞台Actor。

  • 使用USD舞台窗口编辑属性。

  • 为USD舞台Actor添加新图元。

  • 将数据写回USD文件。

  • 使用Sequencer访问USD动画。

  • 将资产导入虚幻引擎项目。

在开始之前,你需要在项目中启用 USD导入器(USD Importer) 插件。请参阅启用USD导入插件,了解更多信息。

先决条件和准备工作主题

为了理解和使用本页中提到的内容,请确保你熟悉以下主题:

本教程使用皮克斯的厨房套装USD文件。皮克斯维护了小型的USD示例文件库,用于学习和演示。点击此处下载厨房套装和其他示例。

1. 创建USD舞台Actor

打开USD舞台(USD Stage)窗口,开始处理USD内容。

USD舞台窗口。

  1. 在虚幻编辑器中,点击 窗口(Window) 菜单并选择 USD舞台(USD Stage)

    将USD舞台窗口添加到你的视图。

  2. USD舞台编辑器(USD Stage Editor) 窗口的菜单栏中,选择 文件(File)>打开(Open) 并找到USD文件。

    在USD舞台上打开文件。

层级分段将填充从你的USD文件中读取的场景层级。

USD舞台窗口的层级分段填充了厨房套装的内容。

你在虚幻引擎中打开的每个USD文件都需要自己的 USD舞台 Actor,用作USD数据的锚点。上述过程会自动将USD舞台Actor添加到你的关卡。

你也可以使用 放置Actor(Place Actors) 面板添加USD舞台Actor,并使用 细节(Details) 面板中的 根层(Root Layer) 选项为其选择关联的USD文件。

2. 使用USD舞台窗口编辑属性

你可以使用USD舞台编辑器(USD Stage Editor)窗口的属性(Properties)分段,编辑你的USD舞台Actor和图元的属性。

使用USD舞台(USD Stage)窗口的属性(Properties)分段编辑图元属性。

更改USD舞台Actor的UpAxis

  1. 点击USD舞台(USD Stage)窗口中层级顶部的 舞台(Stage)

    选择层级顶部的舞台(Stage)选项。

  2. 在属性(Properties)分段中,找到 upAxis 属性并打开下拉菜单。选择新轴来代表你的USD数据。

    选择最适合你的USD数据的轴。

更改图元的变体

  1. 在USD舞台编辑(USD Stage Editor)中,打开 选项(Options)>选择(Selection) 菜单并启用 与编辑器同步(Synchronize with Editor)。这会同步你在虚幻引擎关卡和USD舞台编辑器窗口之间的选择。

    启用与编辑器同步(Synchronize with Editor),在USD舞台和虚幻引擎视口之间同步你的选择。

  2. 在层级分段,点击 Kitchen_Set 旁边的下拉箭头。然后,点击 Props_grp 旁边的下拉箭头,显示场景中的道具。

  3. 现在,展开 DiningTable_grp 条目,显示餐桌和椅子的各个图元。橙色亮显的道具表示它们是 复合弧,你可以右键点击所有的图元,从而为其添加引用(或清除引用)。其他右键点击操作包括添加或删除图元的功能,以及切换、加载或卸载有效负载的功能。

  4. 选择 ChairB_1 并查看属性(Properties)分段中的属性。你可以在此处编辑以下内容:

属性

说明

名称(name)

显示所选资产的名称。

路径(path)

显示所选资产的路径。

种类

定义所选资产的类型。

  • 程序集:模型集合。

  • 组件:包含子组件的模型类型。

  • :程序集中的模型集合。

  • 模型:种类的基础类型。资产不应将其种类设置为模型,因为它是用于区分组件和组的抽象共性。请参阅皮克斯USD文档中的模型层级,了解更多信息。

  • 子组件:组件内的图元。不是一种模型。

目的

设置要加载的初始目的。将USD舞台Actor和整型用作输入。

选项包括:

  • 默认值

  • 代理

  • 渲染

  • 指南

可视性

设置要加载的初始目的。将USD舞台Actor和整型用作输入。

选项包括:

  • 已继承:从其父节点继承可视性

  • 不可见:不渲染图元及其子树中包含的所有图元。

xformOp:rotateZ

定义所选资产的Z旋转。

xformOp:translate

定义资产的X、Y和Z位置。

xformOpOrder

显示变换操作应用于资产的顺序。

modelingVariant

定义在场景中显示的当前变体。仅当资产具有一个或多个变体时才可见。

参考(References)

显示附加到此图元的所有参考。

  1. 此场景中的椅子有两个变体,ChairAChairB。选择 ChairB_1,找到属性的 变体(Variants) 分段,并将 modelingVariant 更改为 ChairA。此操作会自动将场景中使用的椅子网格体与新变体交换。

3. 向USD舞台Actor添加新图元

使用右键点击菜单在层级中添加或删除图元。添加后,可以在属性(Properties)分段中编辑属性。

在厨房套装中添加一把新椅子

  1. 右键点击层级中的 DiningTable_grp 条目,然后从菜单中选择 添加图元(Add Prim)。将此新图元命名为 ChairB_3

    将新图元添加USD舞台。

  2. 点击层级中的新图元。在 细节(Details) 分段,将其 种类 更改为 组件

    更改新图元的属性。

  3. 引用椅子USD文件,将其带入舞台。右键点击层级中的 ChairB_3,然后选择 添加引用(Add Reference)。找到厨房套装文件的位置。打开 assets > Chair 文件夹并选择 Chair.usd。点击 打开(Open) 按钮。

    添加引用到USD数据。

    在文件(File)窗口选择椅子数据。

  4. 你的新图元现在将引用椅子USD数据并显示 ChairS 变体。它应该位于关卡的原点。在层级中选择 ChairB_3,并将modelingVariant更改为 ChairB

  5. 点击视口中的新椅子,并使用变换工具将椅子放置在桌子附近。

4. 将数据写回你的USD文件

使用USD舞台Actor所做的更改可以使用 保存(Save) 选项写回你的USD文件。

使用USD舞台编辑器(USD Stage Editor)窗口中的保存(Save)选项会将你的更改写回USD文件。

要将这些更改写入你的USD文件,请在USD舞台(USD Stage)窗口中打开 文件(File) 菜单并选择 保存(Save) 选项。

5. 使用Sequencer访问USD动画

访问USD动画

存储在USD文件中的动画可以从USD舞台Actor生成的专用关卡序列中访问。

  1. 世界大纲视图(World Outliner) 中,找到 USDStageActor 并从列表中选择它。

    在世界大纲视图中找到USD舞台Actor。

  2. 细节(Details) 面板的 USD 分段,找到 关卡序列(Level Sequence) 并双击资产打开Sequencer。

    在细节(Details)面板中双击关卡序列(Level Sequence)。

有关Sequencer用法的更多信息,请参阅过场动画和Sequencer

对椅子进行动画处理

要将动画添加到你在第三步中创建的新图元 ChairB_3,请创建新的USD文件,并将其作为图层添加到USD舞台Actor(USD Stage Actor)。

  1. 新动画应该添加到新图层。创建新的USD层会创建新的USD文件。在USD舞台(USD Stage)窗口的 图层(Layers) 分段,右键点击 kitchen_set.usd 图层并选择 新增(Add New)

    为动画的USD数据添加新图层。

    将此新文件另存为 myanim.usda

  2. USD图层使用LIVRPS结构来确定图层如何影响场景的最终构图。若要使动画影响厨房套装,包含该动画的图层在图层结构中必须高于包含图元的场景。在 放置Actor(Place Actors) 面板中搜索 USD Stage Actor 并将新副本拖到关卡中。

    放置Actor面板中的新USD Actor。

  3. 在世界大纲视图(World Outliner)中选择USD舞台Actor(USD Stage Actor),然后使用USD舞台(USD Stage)窗口中的 文件(File) 菜单,打开你的 myanim.usda 文件。

  4. 右键点击 myanim.usda 图层并选择 添加现有图层(Add Existing) 选项,将厨房套装添加回图层堆栈中。在文件(File)窗口中,找到你的 kitchen_set.usd 文件并点击 打开(Open)

    使用现有USD数据添加新图层。

  5. 在添加动画之前,USD舞台需要知道动画将持续多长时间。点击层级中的 舞台(Stage) 图元。在属性(Properties)分段,将 endTimeCodeendFrame 值更改为 48

    更改endTimeCode和endFrame属性。

  6. 世界大纲视图(World Outliner) 中选择新的USD舞台Actor(USD Stage Actor),然后在 细节(Details) 面板中打开 关卡序列(Level Sequence)

  7. 在Sequencer面板中,点击 + 轨道(+ Track) 按钮,并从 Actor到Sequencer(Actor to Sequencer) 子菜单中选择你想要制作动画的Actor。

    为选定的Actor添加新的轨道组。

  8. 点击新轨道上的 添加(+)(Add (+)) 按钮并创建新的 变换(Transform) 轨道。

    添加新的变换轨道。

  9. 对椅子进行原地旋转的动画处理。有关在Sequencer中使用轨道的更多信息,请参阅轨道

    对偏转旋转轨道进行动画处理。

  10. 在USD舞台(USD Stage)窗口中使用 文件(File)> 保存(Save) 将数据写回USD。

6. 将资产导入虚幻引擎项目。

显示在USD存储Actor(USD Stage Actor)上的Actor,可以通过以下任一导入选项导入到虚幻编辑器的内容浏览器中。

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

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

  • 将文件拖放到 内容浏览器(Content Browser) 中。该流程仅导入资产。

  • 使用USD舞台编辑器(USD Stage Editor)窗口中的 操作(Action)> 导入(Import) 选项。此过程将导入USD舞台Actor上的所有内容,并适用于资产和Actor。导入过程完成后,USD舞台上的资产将替换为 内容浏览器 中的新Actor。

将厨房套装导入虚幻引擎

  1. 在USD舞台(USD Stage)窗口中打开厨房套装(Kitchen Set)后,打开 操作(Actions) 菜单并选择 导入(Import)

  2. 选择存储导入资产的位置。在本例中,导入厨房套装将在所选位置创建名为 Kitchen_set 的文件夹。材质和静态网格体将保存在单独的子文件夹中。

本文基于此前的虚幻引擎版本编写,未针对当前的虚幻引擎5.0版本更新过。