使用Datasmith与IFC文件

介绍仅在使用Datasmith将IFC文件中的场景导入虚幻编辑器时才适用的特殊注意事项。

Windows
MacOS
Linux

本页详述Datasmith如何将工业基础类(IFC)文件中的场景导入虚幻编辑器。其将遵循Datasmith概述关于Datasmith导入流程 所述的基本流程,但添加了IFC专属的一些转换行为。若计划使用Datasmith将IFC场景导入虚幻编辑器,阅读本页将有助于了解场景转换方式、以及如何在虚幻编辑器中处理结果。

IFC查看器

虚幻引擎

IFC工作流程

Datasmith为IFC使用 直接 工作流程。这意味着要利用Datasmith将IFC文件的内容导入虚幻编辑器,你需要:

  1. 保存 .ifc 文件。

  2. 如尚未安装,需要为项目启用 导入器(Importers) > Datasmith IFC导入器(Datasmith IFC Importer) 插件。

  3. 使用虚幻编辑器的工具栏上的Datasmith IFC 导入器将 .ifc 文件导入。详情请参阅将Datasmith内容导入虚幻引擎4

关于其他类型的Datasmith工作流程,请参阅Datasmith支持的软件和文件类型

支持的IFC版本

Datasmith目前仅支持 IFC2x3 格式。

欲详细了解IFC格式和规范,请参阅buildingSMART国际技术网站

场景层级

Datasmith为IFC场景中的各个对象创建Actor。它为各个Actor命名,该名称匹配相对应对象,并以该对象的IFC类型为前缀。Datasmith场景按父子关系排列这些Actor,此层级关系与IFC对象的组织方式密切匹配:场地包含建筑,建筑包含楼层,楼层包含墙、门、空间等。

注意一些区别:

  • 在上图右侧所示的虚幻编辑器 世界大纲视图 中,各层级的Actor始终按字母顺序排列。这可能会导致排列虚幻引擎与其他IFC查看和编辑应用程序之间的同级项目时出现明显差异,但父子关系保持不变。

  • IFC文件中可有多个对象使用相同名称,但虚幻引擎关卡中各个Actor的名称必须唯一。Datasmith用不同的数字后缀来区分命名相同的对象。

  • Datasmith仅允许Actor名称使用字母数字字符、下划线和连字符。所有其他字符都会更改为下划线。

这些细微的可见差异不影响指定给IFC对象的唯一ID或其他数据。这些值由Datasmith保存在分配给各个Actor的元数据 中。可利用这些元数据值在虚幻引擎中创建IFC最佳工作流程。

光源和摄像机

IFC 2x3规格对光发射器或摄像机的定义不同于虚幻引擎或其他3D设计/可视化工具。

  • IFC中的光源完全被视为建筑元素,即 ifcLamp 对象。这些对象没有实时渲染所需属性的测量值,如照明半径、强度、颜色等。Datasmith导入各个ifcLamp元素并将其作为Datasmith场景中的Actor,方式与从IFC文件导入所有其他类型的对象一致。但Datasmith并不为这些Actor创建光源,如点光源聚光源矩形光源 等。

    与Datasmith导入的所有其他IFC对象一样,无论是在虚幻编辑器中,还是在虚幻引擎中运行时,指定给IFC文件中各个ifcLamp对象的属性都可以作为元数据 。可使用蓝图或Python访问和转译这些元数据属性,并基于其值自动创建自己的虚幻引擎光源。

  • 摄像机根本不属于IFC规范,IFC文件也不能在场景上保存视点。因此,Datasmith不会在Datasmith场景中创建任何摄像机。

Datasmith会在虚幻引擎关卡中为场景中每个不同的IFC对象类型创建一个新层。这会将代表对应类型对象的所有Actor分配给各个层。可使用这些层快速显示、隐藏和选择任何给定类型的所有对象。

例如,下图中仅有 ifcWindowifcBeam 元素为可见。

材质

Datasmith若在IFC场景中找到不同的表面材质,就会在虚幻引擎中为它创建一个同名的材质资源 ,并将该材质放在Datasmith场景资产旁的 Materials 文件夹中。Datasmith会将这些材质资源分配给它创建的静态网格体资源,以便为表面着色。

  • 材质 文件夹中的每个材质都是一个材质实例 ,它会公开IFC文件中设置的属性:颜色值、透明度值、高光颜色等。双击其中一个材质资源,将其在材质实例编辑器中打开。

    可在 细节(Details) 面板中更改公开属性,修改该材质应用于表面时的效果。例如,上图所示材质公开了底色和透明度属性。

    IFC与Datasmith使用的其他一些文件格式和设计应用程序不同,它不能深度控制表面属性的物理特性。Datasmith从IFC文件转换材质时,会尽可能保留原始属性。但结果通常并不逼真,也不适合虚幻引擎的物理渲染。用户通常需要替换Datasmith创建的默认材质并将其指定到静态网格体资源。可基于虚幻引擎中的材质创建自己的物理材质,或从其他源导入物理材质,例如从Epic Games Launcher的市场(Marketplace)选项卡导入。

  • Datasmith还会在 Materials/Master 文件夹中创建一组父材质。其中每个材质都是 Materials 文件夹中至少一个材质资源的父项。若要更深入地控制材质图表,仔细地确定各个表面如何显示,可编辑这些父材质,向子实例公开其他参数,或在渲染期间更改对公开参数的利用。

    请注意,更改父材质也会自动更改从此父材质继承的所有材质实例。建议在修改之前复制父材质,对副本进行更改,然后更新特定材质实例,将新副本用作其父项。详情请参阅修改Datasmith主材质

元数据

Datasmith记录从IFC文件导入的各个对象的所有属性,并将这些属性值作为其创建的actor上的Datasmith元数据,用于在虚幻引擎中展示此对象。可在虚幻编辑器中或在虚幻引擎运行时访问该元数据。

欲详细了解Datasmith如何转换数据以及导入后如何访问元数据,请参阅使用Datasmith元数据

Datasmith还会将各个对象的其他技术元数据作为标签存储于到在虚幻引擎中创建来表示该对象的Actor上。对于IFC对象,Datasmith保存全局唯一ID和Actor的IFC类型,如下图所示:

IFC对象的actor标签

详情另请参阅关于导入流程

制作人员

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