什么是Datasmith运行时
Datasmith运行时(Datasmith Runtime) 是一组在基于虚幻引擎的应用程序中运行时(与编辑器中的工作流相对)可用的Datasmith功能。你可以使用这些功能创建可以导入 .udatasmith
文件并使用蓝图操作它们的应用程序。

在使用Datasmith运行时和蓝图的基于虚幻引擎的烘焙应用程序中,可以访问Datasmith直接链接。
你可以使用Datasmith运行时创建利用Datasmith Direct Link的自定义应用程序,或者将Datasmith数据作为迭代3D工作流程的一部分按需可视化。
在你的项目中启用以下插件,以使用Datasmith运行时:
- Datasmith内容(Datasmith Content)
- Datasmith导入器(Datasmith Importer)
- Datasmith运行时(Datasmith Runtime)
使用Windows和MacOS的虚幻引擎4和虚幻引擎5正式支持Datasmith运行时。虽然Datasmith运行时可以用于Linux,但是目前处于试验性阶段,你可能会遇到运行不稳定和性能方面的问题。
将Datasmith运行时与蓝图结合使用
Datasmith运行时将使用多个蓝图节点公开各种Datasmith功能和导入选项。下面列出的是最常见的部分:

最常见的Datasmith运行时蓝图节点。
构造Datasmith运行时导入选项
公开几个导入参数,并将其转换为数据结构:

输入 | 说明 |
---|---|
构建层级(Build Hierarchy) | 确定是否构建了Actor的层级。选择细节更丰富的层级会增加加载和渲染时间。
|
构建碰撞(Build Collision) | 确定用于组件的碰撞类型。
|
碰撞类型(Collision Type) | 确定用于静态网格体的碰撞类型。
|
导入元数据(Import Metadata) | 读取并导入Actor的元数据。增加加载时间。 |
当前未启用 曲面细分(Tesselation Options) 输入。
设置导入选项
使用 Datasmith运行时Actor(Datasmith Runtime Actor) 为Datasmith内容设置所选导入选项的值。将Datasmith运行时Actor作为 目标(Target) 和 Datasmith运行时导入选项(Datasmith Runtime Import Options) ,如同其值一样。

加载文件(Load File)
加载位于指定文件路径的 .udatasmith
文件。需要 文件路径(File Path) 和 Datasmith运行时Actor(Datasmith Runtime Actor) 作为输入。

从浏览器加载文件
打开文件浏览器窗口,以便你可以浏览到某个位置,并选择 .udatasmith
文件。需要 Datasmith运行时Actor(Datasmith Runtime Actor) 作为输入。默认文件路径(Default File Path) 是可选项。

虽然在编辑器中运行(PIE)时,它适用于Windows和Mac操作系统,但是从浏览器加载文件运行时,仅适用于Windows。
获取直接链接代理
将接口返回到称为直接链接代理(Direct Link Proxy)的 直接链接(Direct Link) 连接。这是创建 Datasmith直接链接(Datasmith Direct Link) 连接的第一步。

通过索引打开连接
通过位于指定索引值的源打开直接链接连接。需要 Datasmith运行时Actor(Datasmith Runtime Actor) 和 源索引(Source Index) 作为输入。

关闭连接
关闭与指定 Datasmith运行时Actor(Datasmith Runtime Actor) 关联的已打开直接链接连接。

运行时加载Datasmith内容
使用Datasmith运行时,你可以在烘焙的应用程序中加载Datasmith内容,同时可以访问层级和Actor属性。
点击查看大图。
使用蓝图加载Datasmith内容:
-
创建新的 Actor蓝图(Actor Blueprint) ,以便包含Datasmith内容的锚点。右键点击 内容浏览器(Content Browser) ,并从上下文菜单中选择 蓝图类(Blueprint Class) 即可创建。在 选取父类(Pick Parent Class) 窗口中,选择 Actor ,并将新的蓝图类命名为 DatasmithActor 。双击该新蓝图,打开编辑器。
该锚点将作为导入的Datasmith内容的原点。如果你的内容与源应用程序中的原点存在偏移,则虚幻引擎将在导入内容时保持与锚点的偏移。
-
选择 事件图表(Event Graph) 选项卡,并删除事件 BeginPlay 之外的所有事件。从事件BeginPlay(Event BeginPlay)中拖出连接,并添加 Spawn Actor From Class 节点。打开 类(Class) 下拉菜单,并选择 DatasmithRuntimeActor 。将 返回值(Return Value) 提升为变量,并将其命名为 Anchor 。
-
生成Actor(Spawn Actor) 需要变换来生成锚点。右键点击Spawn Actor的左侧,添加 Make Transform 节点。将Make Transform的输出连接到Spawn Actor上的 生成变换(Spawn Transform) 引脚。
-
要完成蓝图,请点击 Set 节点的执行引脚并拖动,然后添加 Load File from Explorer 节点。将 锚点(Anchor) 变量的引用连接到 Datasmith运行时Actor(Datasmith Runtime Actor) 输入。
-
保存(Save) 并 编译(Compile) 蓝图。将锚点蓝图(Anchor Blueprint)的副本添加到关卡中,然后按 播放(Play) 进行测试。
虚幻引擎将打开文件资源管理器(File Explorer)窗口,并要求你选择文件。
使用蓝图创建Datasmith直接链接
你还可以在运行时使用Datasmith运行时打开位于一个或多个源应用程序与虚幻引擎项目之间的Datasmith直接链接。
- 首先,创建新的 Actor 蓝图(Blueprint),以便包含Datasmith内容的锚点。双击该新蓝图,打开编辑器。
- 与前面的示例类似,选择 事件图表(Event Graph) 的选项卡,并删除 事件BeginPlay(Event BeginPlay) 之外的所有事件。从事件BeginPlay(Event BeginPlay)中拖移连接,并添加 Spawn Actor From Class 节点。打开 类(Class) 下拉菜单,并选择 DatasmithRuntimeActor 。
-
需要变换才能生成锚点。右键点击Spawn Actor的左侧,添加 Make Transform 节点。将Make Transform的输出连接到Spawn Actor上的 生成变换(Spawn Transform) 引脚。
-
然后,你需要将 直接链接代理(Direct Link Proxy) 作为你的应用程序和源应用程序之间的连接点。从 Set 节点拖动连接,并创建 Get Direct Link Proxy。将输出提升为变量,并将其命名为 Direct Link Sources Proxy 。将其设置为公开(Public)。
-
点击 我的蓝图(My Blueprints) 面板的 函数(Functions) 分段中的 + 按钮,创建新函数。将其命名为 DirectLinkUpdate 。你将使用此新函数在运行时触发直接链接连接。
-
首先,获取 直接链接代理(Direct Link Proxy) 变量的副本。从变量拖出一条线,并创建 Get List of Sources 节点。将输出提升到变量,保存直接链接源的列表,并将此变量设为公开。
-
从 Set 拖出一条线,并创建 Set Import Options 节点。在连接到直接链接源之前,使用此节点设置一些导入选项。它需要Datasmith运行时导入选项和锚点作为输入。
-
右键点击并创建 Make Datasmith Runtime Import Options 节点,然后将连接从输出拖到 导入选项(Import Options) 输入。
-
从Set Import Options节点中拖出一条线,并创建 Open Connection with Index 节点来完成该函数。这需要锚点和 源索引(Source Index) 作为输入。将锚点的引用连接到目标输入。
-
单击"变量(Variables)"旁边的加号 (+) 以创建一个新变量。将该变量命名为 SourceIndex,并使其类型为整型。
-
将这个新变量连接到 通过索引打开连接(Open Connection with Index) 节点上的 源索引(Source Index) 输入。索引值为0时将连接到列表中的第一个源。
-
最后,点击我的蓝图(My Blueprints)中的 DirectLinkUpdate 函数,并启用 细节(Details) 面板中的 在编辑器中调用(Call In Editor) 。此选项使运行时可用的函数在锚点对象的细节(Details)中可用。
点击查看大图。
- 保存(Save) 并 编译(Compile) 。最终的蓝图看起来应该类似于下方示例:
点击查看大图。
启动你的源应用程序,并点击 运行(Play) 按钮运行项目。在 世界大纲视图(World Outliner) 中选择你的锚点,然后点击 细节(Details) 面板中的 直接链接更新(Direct Link Update) 按钮。然后,点击源应用程序中的 与直接链接同步(Synchronize with Direct Link) 按钮。使用蓝图中指定的导入选项,你将看到你的Datasmith内容出现在你的关卡中。
禁用 在后台使用更少的CPU(Use Less CPU when in Background) 选项,使引擎能够在虚幻引擎窗口未聚焦且未拥有关卡中的Pawn时更新3D视口。此选项位于 通用(General)>性能(Performance) 下的 编辑器偏好设置(Editor Preferences)中 。