Datasmith概述

概述了Datasmith的运行方式,以及您可以用它来做些什么。

Windows
MacOS
Linux

Datasmith 是帮助您将内容导入到虚幻引擎4中的一组工具和插件。

Datasmith设计用于解决非游戏行业人士所面临的独特挑战,例如建筑、工程、建造、制造、实时培训等行业,他们需要使用虚幻引擎进行实时渲染和可视化。但在资源管道方面遇到类似问题的游戏开发者或许也会对Datasmith感兴趣。

Datasmith有何帮助

Datasmith有很多大胆的目标:

  • 将整个预先构造好的场景和复杂的组合导入到虚幻中,无论这些场景有多大、多密集。按照传统做法,您必须解构场景和组合件,形成独立的数据块,然后将每个数据块通过FBX导入管道单独传递到游戏引擎,然后在虚幻编辑器中重新组合场景,但Datasmith不会这样,它会复用您在其他设计工具中为了其他目的而已经构建好的资源和布局。

  • 支持尽可能广泛的3D设计应用程序和文件格式。它已经能够适用于许多不同的来源,包括Autodesk 3ds Max、Trimble Sketchup、Dassault Systèmes SolidWorks以及它们的各种版本。

  • 处理在更新已导入源材质中所做更改时遇到的棘手问题,而不必重做在虚幻中已经对这些资源完成的所有工作。(如需了解更多信息,请参阅关于Datasmith重新导入工作流程

  • 目前,Datasmith主要是将设计内容转换为虚幻引擎能够理解并实时渲染的形式。从更长远来说,它的目的是增加更加智能的数据准备功能,调整导入的内容以便在游戏引擎中能够实现最佳运行时性能,并增加更加智能的运行时行为。

Datasmith工作流程

Datasmith目前使用基于文件的工作流程将设计导入虚幻。

  • 您以Datasmith能够处理的格式保存或导出设计数据。Datasmith能够读取许多常见CAD应用程序的原生文件格式。对于某些应用程序,包括3ds Max和SketchUp Pro,您将需要安装特殊插件,然后使用该插件导出具有 .udatasmith 扩展名的文件。(请参阅支持的软件和文件类型 。)

  • 在虚幻编辑器中,使用Datasmith导入工具将保存或导出的文件导入到当前虚幻引擎项目中。目前,您可以控制想要从该文件导入哪些数据,并设置一个新参数来控制转换流程。(请参阅Datasmith导入选项 。)

导入后的结果

在使用Datasmith导入文件后,最先看到的是虚幻编辑器视口中呈现的所有源场景元素。它们或许暂时看起来效果不尽如人意,您稍后可以调整照明和效果,但目前,虚幻关卡应该已经完全按照源应用程序中的方式组合完毕了。

datasmith_overview_viewport.png

您还将看到在项目内容浏览器(1)中创建了许多新的 资源,并在当前关卡(2)中放置了新的 Actor

静态网格体资源

基于许多原因,Datasmith避免将源场景中的所有内容在虚幻中构建为一个网格体。过大且复杂的网格体通常非常难以流畅地进行照明和渲染,也往往效果不佳,并且您无法在虚幻中单独处理场景的各个部分。

相反,Datasmith会创建一组单独的静态网格体资源,每个代表场景的一个构建块:一个独立的几何结构数据块,可以放置到关卡中并在引擎中渲染。在将场景划分为静态网格体时,Datasmith会尽量保持您已经在源应用程序中设置好的对象组织结构。

Datasmith将所有静态网格体资源放入 几何结构(Geometries) 文件夹:

Datasmith生成的静态网格体资源

如果您的源场景包含同一个几何结构的多个副本,则Datasmith通常只会为该对象创建一个静态网格体资源。它在关卡中使用该资源的多个 实例,每个实例有其自己的位置、旋转和其他属性。这样通常会减少运行时的内存用量,提高性能。例如,在该场景中,有许多吊灯,但只有一个静态网格体资源(L_Globe_01)。

要阅读有关虚幻中的静态网格体的更多信息,请参阅静态网格体

材质资源

虚幻中的每个静态网格体都需要指定有一个或多个材质资源,用来说明它的表面与入射光线的互动方式。对于Datasmith在您的源场景中识别到的每种不同类型的表面,它会在 材质(Materials) 文件夹中创建一个新的材质资源,并将其指定给需要使用它的静态网格体资源。

Datasmith生成的材质资源

要进一步了解材质和虚幻的基于物理的渲染系统,首先需要了解:材质

纹理资源

如果源应用程序使用任何纹理来定义场景几何结构的颜色或其他物理属性,Datasmith会将每个纹理导入到 纹理(Textures) 文件夹中的纹理资源,并设置相应的材质来引用新的纹理资源。如有必要,Datasmith可能还会将源图像文件转换为虚幻能够识别的格式。

datasmith_overview_textures.png

有关在虚幻中处理纹理的信息,请参阅纹理

其他资源类型

上文所说的静态网格体、材质和纹理都是使用Datasmith导入的场景中最常见的资源类型。根据源场景中的元素类型,内容浏览器 内除了 几何体材质纹理 文件夹外,可能还会有其他新文件夹。

  • Lights - 如果场景包含任何使用IES描述文件表示其在不同距离上强度变化的光源,Datasmith导入器会将其放入Texture Assets文件夹以定义光源强度。关于虚幻引擎中IES光源描述文件的详细系信息,请参阅IES光源描述文件](Engine/Rendering/LightingAndShadows/IESLightProfiles).

  • Animations - 如果您的场景包含任何会随时间变换位置、旋转角度或缩放值的对象,Datasmith导入器会将这些动画转换成序列资源。您可以使用这些序列资源在虚幻引擎或虚幻编辑器中播放来自源场景的动画。关于此类转换是如何执行的,请参阅关于Datasmith导入流程 .

Datasmith场景资源

最后,Datasmith会创建一个 Datasmith场景 资源,并根据您导入的文件命名。这种新类别的自定义资源是Datasmith导入策略的一个关键部分。它的作用是包含在虚幻编辑器中,从一起导入的静态网格体构建块重新组合场景所需的所有内容,以及虚幻引擎提供的内置对象类型。

  • 它存储对所有一起导入的静态网格体、材质和纹理资源的引用。

  • 它存储您用来创建它所需的导入设置。

  • 最重要的是,它包含Datasmith支持的原始场景中所有类型对象的层级或树形结构,包括几何结构对象、照明和摄像机。每个场景元素都存储其在3D空间中,相对于父代的位置、旋转和缩放。此外,每个不同类型的元素都会保留一组信息,这是Datasmith成功从源应用程序转换过来的信息。

您可以将Datasmith场景资源拖放到任意关卡,以在关卡中放置完全组装好的原始场景或CAD组合件。这样会使用虚幻引擎从源文件获取的等效信息,在关卡中自动重现其完整的场景层级。请参阅下一节,了解详细信息。

关卡Actor和场景层级

最后,所有新资源准备就绪后,Datasmith会在当前关卡中放置一个Datasmith场景实例,在关卡中复制Datasmith成功从源应用程序或文件格式转换过来的整个场景层级。

场景层级中的每个元素都由一种虚幻引擎Actor表示。

Datasmith场景及子代Actor

  • 几何结构对象通常由静态网格体Actor表示,这些Actor引用内容浏览器中的静态网格体资源。

  • 如果您导入的场景包含照明,则照明通常使用虚幻中内置的一种光源Actor类型来表示,如点光源或聚光源。请参阅光源类型 .

  • 如果导入的场景包含任何摄像机,则这些摄像机通常由虚幻摄像机Actor电影摄影机Actor 表示。

  • 导入的场景层级根是Datasmith场景Actor,它引用用来创建它的Datasmith场景资源。

  • 通常,您会在场景层级中看到其他种类的Actor,如该图中的 Lift_CLift_R。每当源场景中的父层级有一个父代,但该父代没有与特定几何结构对象关联时,Datasmith通常会创建其中一种Actor。
    这些Actor通常不会分配有任何静态网格体、照明或其他对象。但是,在管理场景时,仍可以随意使用这些Actor。由于子代变换是相对于父代的,因此在场景中四处移动父代Actor时,其所有子代也会自动跟随。

跟踪和处理覆盖

如果您在虚幻中对导入的资源和Actor进行了任何特定类别的更改或 覆盖,Datasmith场景会跟踪这些更改或覆盖。这样有两大好处:

  • 您可以选择性回滚您在虚幻中对资源或Actor所做的更改。这样会将Datasmith跟踪到的有关所选资源或Actor的所有信息还原到最初通过Datasmith导入内容时的状态。
    在内容浏览器中右键单击资源,或在视口或世界大纲视图中右键单击Actor,然后选择 Datasmith>重设覆盖(Reset Overrides)
    Datasmith重设覆盖(Reset Overrides)

  • 在重新导入Datasmith场景时,您不会失去在虚幻中所做的已经记录下来的任何覆盖。例如,如果您将某个Actor移到场景中的新位置,或者为Actor设置了其他材质,Datasmith会在重新导入场景后保留这些更改。
    (如需了解更多信息,请参阅关于Datasmith重新导入工作流程 )。

作为覆盖跟踪的属性

通常来说,如果您对Datasmith从源应用程序导入到虚幻中的任何信息进行了更改,这些更改都会作为覆盖进行跟踪。您对其他特定于虚幻的属性进行的任何更改都不会作为覆盖进行跟踪。

例如:

  • 对于Datasmith在您的关卡中创建的每个Actor,它都会将这个Actor在3D空间中的变换从源应用程序导入到虚幻中。如果您移动或旋转关卡中的Actor,Datasmith会将这个更改作为覆盖跟踪。

  • 而另一方面,每个静态网格体Actor都有一个 投射阴影(Cast Shadow) 设置,这不是从源应用程序导入的。默认情况下,Datasmith在创建每个新Actor时启用该设置。如果您将该设置更改为关闭阴影投射,则Datasmith不会将此更改作为覆盖跟踪。如果重设该静态网格体Actor的覆盖,此设置将保持关闭状态。

下表列出了Datasmith场景针对它在虚幻中创建的每种资源和Actor,目前能够作为覆盖跟踪的信息类别。

对象类型

跟踪的属性

静态网格体Actor

INCLUDE:#excerpt_0]

光源Actor

  • 3D变换

  • Datasmith设置的强度和颜色值

  • IES分析

  • 标签

摄像机Actor

  • 3D变换

  • Datasmith设置的FOV和曝光值

  • 标签

静态网格体资源

  • 材质分配

  • 光照贴图分辨率和构建设置

  • 曲面细分设置(适用于来自CAD文件的静态网格体)

在虚幻中对静态网格体资源的几何体本身所做的修改,如移除三角形,不会被作为覆盖跟踪。

材质实例资源

可在材质实例编辑器中修改的所有设置都会作为覆盖受到Datasmith的跟踪。这包括父材质公开的所有设置,还包括所有材质实例共享的设置,如 混合模式双面 等。

父呆滞和纹理资源

无。

后续步骤

现在,您已经熟悉了Datasmith导入工作流程的基本知识,以及如何处理项目中的Datasmith内容,接下来可以:

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback