Language:
Page Info
Engine Version:
Share

使用Datasmith元数据

使用Datasmith元数据

Datasmith导入工具可以自动导入它所处理的对象的相关 元数据:即,您在3D设计或CAD应用程序中为这些对象设置的信息。元数据通常用来存储资源所代表的机械部件或建筑元素的真实世界信息,例如一件物体的成本、制造材料、物理特性(重量、保温效率)或使用信息,如应用于一个部件的最大扭矩。您还可以使用元数据来存储项目所需资源的任何其他类别信息。

虚幻引擎和虚幻编辑器中提供这些元数据对您有两方面的帮助:

  • 在资源管道中 - 您在导入资源并设置关卡时可以使用元数据,以便区分需要进行不同处理的不同类别的资源和Actor。例如:

    • 在Datasmith导入流程期间可以使用元数据,以便标识最终场景中不需要的特定类别的资源,这样就可以跳过导入这些资源。

    • 导入后,可以使用元数据来识别关卡中想要合并、连接、替换或替换其材质的Actor。

  • 游戏运行时 - 您可以在运行时使用元数据,以向用户显示来自源设计工具的有关Actor的所选信息。例如:

    • 如果关卡中的对象包含BIM数据,而BIM数据包含结构属性信息,则可能需要在玩家从场景中选择这些对象时,在互动体验中呈现这些信息。

    • 或者,如果您的项目是一个产品配置器,让玩家可以选择不同的设计方案,则可能需要一个游戏逻辑,以根据分配给可见资源的成本元数据,计算和显示玩家当前选择的总成本。

本页介绍如何通过Datasmith导入流程将元数据导入到虚幻,以及如何在编辑器中和运行时在脚本中访问元数据。

元数据来源

Datasmith目前可以从以下设计工具导入元数据:

Datasmith目前仅处理有关几何结构的元数据,而不处理其他类别的场景对象的元数据,如照明或摄像机。

Autodesk 3ds Max

对象属性(Object Properties) 窗口的 用户定义(User Defined) 选项卡上,向3ds Max对象添加元数据。

3ds Max用户定义属性中的元数据

要在3ds Max中访问网格体的这个面板:

  1. 在大纲视图或视口中选择网格体。

  2. 单击右键,然后从上下文菜单中选择 属性(Properties)对象属性(Object Properties),或者从主菜单中选择 编辑(Edit)>属性(Properties)

  3. 在该面板中以 键 = 值 对的形式输入元数据,如上所示。

    **确保在 = 号两端各保留一个空格。** 如果不留空格,Datasmith将无法识别元数据,也不会正常导入元数据。

您还可以使用MAXScript 设置用户定义的属性。

如果您的模型最初是在Revit中创建的,然后导入到3ds Max中,则用户定义的属性应该已经由3ds Max导入工具使用模型的BIM信息预设完毕。

Dassault Systèmes SolidWorks

在导入SolidWorks文件时,Datasmith会向其创建的每个静态网格体Actor添加最少量的预设元数据,以指示该网格体在原始SolidWorks设计中的部件名称和组合件。但是,Datasmith目前不会继承您添加到部件和组合件的任何自定义元数据属性。

Trimble SketchUp Pro

对于您在SketchUp中创建的每个组件,您可以设置价格、大小和状态等高级属性

SketchUp Pro高级属性中的元数据

Datasmith会将所有这些高级属性导入到元数据,包括“类型(Type)”值(如果有)。

Datasmith元数据可以附加到在场景层级中表示组件的Actor,而不是用于表示该组件几何结构的任何独立的静态网格体Actor。如果这符合您的项目情况,您需要按本页下文所示,调整蓝图和Python示例。

在虚幻编辑器中查看元数据

Datasmith导入流程完成后,您可以在 细节(Details) 面板中的 资源用户数据(Asset User Data) 部分下面,查看关卡中任意静态网格体Actor的元数据:

在虚幻中查看Datasmith元数据

Datasmith元数据目前在编辑器中为只读状态。

在蓝图和Python中访问元数据

有多种不同的方法可以访问与场景对象关联的元数据。应使用哪种方法取决于是需要在Datasmith导入流程期间访问元数据,还是需要在导入完成后访问。

所有元数据键和值以字符串类型存储在虚幻引擎中,无论其在设计或CAD应用程序中的原始类型为何。例如,如果您在3ds Max中将某个元数据值设置为布尔值,如 true,或者设置为 312 等数字,当您在虚幻中重新读取这些元数据时,它们都将是字符串类型。如果您需要值是布尔或数字类型,请使用蓝图转换节点,如 实用程序(Utilities)>字符串(String)>字符串转整数(String to Int)字符串转浮点数(String to Float),或者内置Python字符串解析函数,如 int()float()

导入期间访问元数据

如果您需要在Datasmith导入流程 期间 访问元数据(例如,为了在虚幻为场景生成资源之前识别想要过滤掉的某些网格体),可以从Datasmith场景或Datasmith CAD场景读取元数据。有关如何在输入流程期间运行脚本的背景信息,请参阅自定义Datasmith导入流程NEW!

您会发现元数据已经附加到Datasmith场景的 网格体Actor元素

选择实现方法:

Blueprints

Python

导入后访问元数据

在导入流程完成将Datasmith或CAD场景导入虚幻资源和Actor的操作时,它还会将Datasmith场景中每个网格体元素的元数据应用于关卡中用来表示该静态网格体资源实例的所有Actor。然后,您可以使用蓝图或Python来检索关卡中任何或所有静态网格体Actor的元数据。

选择实现方法:

Blueprints

Python