UE4_BIM替换材质处理流程

UE4 处理BIM流程

Revit

BIM的处理软件Revit

百度云网盘

链接:https://pan.baidu.com/s/1HW1E6_zcm6u-qkDG9Tj8cA
提取码:BNBN

DataSmith

链接:https://www.unrealengine.com/zh-CN/datasmith/plugins

有Revit版本

安装流程

  1. 安装Revit,是Autodesk 出品的软件,网上破解很多

  2. 安装DataSmith的插件到Revit

    安装成功后,在软件里会有如下截图所示:
    UE4_BIM替换材质处理流程_第1张图片

  3. 安装DataSmith的插件到UE4对应的引擎版本(如果引擎的插件里已经存在,就不需要安装了)

UE4_BIM替换材质处理流程_第2张图片

处理流程

  1. 用Revit打开BIM的源文件

  2. 使用Revit的DataSmith工具把文件从.rvt格式导成udatasmith格式

  3. 使用ue4的 DataSmithImporter 导入udatasmith格式文件到UE4引擎中

  4. 导入设置如下

    UE4_BIM替换材质处理流程_第3张图片

可根据项目具体需求选择是否导入灯光、相机、动画以及光照贴图

  1. 在场景中会生成一个DataSmithSceneActor的实例

要了解的东西

BIM模型的模型,在UE4里边一定会生成对应的StaticMeshActor进行挂载。一个BIM模型对应一个StaticMeshActor

实际情况会有Actor的产生,有的映射成Actor,有的映射成StaticMeshActor,笔者暂时没搞清楚。

Actor 目前来看都没有Asset User Data 的属性字段,只有Actor里边挂载的组件才有。

必须选中组件才能看到。

UE4_BIM替换材质处理流程_第4张图片

StaticMeshActorAsset User Data 的属性字段。

UE4_BIM替换材质处理流程_第5张图片

我们要读取的就是DatasmithUserData里的元数据

UDataSmith文件数据的读取

官方参考链接:https://docs.unrealengine.com/4.27/zh-CN/WorkingWithContent/Importing/Datasmith/Overview/UsingDatasmithMetadata/

支持蓝图和python对于udatasmith上资源里的对象的键值对的读取操作

UE4_BIM替换材质处理流程_第6张图片

UE4_BIM替换材质处理流程_第7张图片

简单概括,BIM里得元数据一定是可以读出来的。但是不能修改。

在UDataSmith文件添加属性字段

用记事本可以打开.udatasmith文件

文件的内容是xml格式

可以使用脚本语言对文件进行批量化处理

DataprepAsset

UE4_BIM替换材质处理流程_第8张图片

处理udatasmith的一个工具

DataAsset的使用
  1. 新建一个Dataprep文件

UE4_BIM替换材质处理流程_第9张图片

DataPrep的主要操作步骤如下

执行逻辑之前的效果如下:

UE4_BIM替换材质处理流程_第10张图片

看到线管都是灰色的材质

执行上述的脚本会变成如下的截图效果

UE4_BIM替换材质处理流程_第11张图片

没有同步到项目之前,场景中是这个效果

UE4_BIM替换材质处理流程_第12张图片

同步之后场景是这个效果

每次点击完提交之后,这个文件就会变成这样的效果。如果想要再次修改提交,需要重新导入。因此需要多次修改完毕之后,再点击提交。

UE4_BIM替换材质处理流程_第13张图片

程序测试

  1. 编辑器模式

  2. 在Editor Utility Widget 测试

获取所有BIM元数据

UE4_BIM替换材质处理流程_第14张图片

根据Key获取Value 和 Actor

通过键值获取对应得Actor,Actor下边挂StaticMesh组件,组件上可以设置材质

GetAllObjectsAndValuesForKey 返回的是Objects的对象类型是DataSmithSceneActor的类型

UE4_BIM替换材质处理流程_第15张图片

通过以上代码,把线管得颜色换成黄色

UE4_BIM替换材质处理流程_第16张图片

UE4 图层

导入.udatasmith进入引擎之后,发现图层LayersTab也被展开

UE4_BIM替换材质处理流程_第17张图片

通过研究.udatasmith文件可以发现

UE4_BIM替换材质处理流程_第18张图片

线框标红的地方,Element_Category所有列举的值跟UE4 中的Layer的值是匹配对应的

图层的操作,UE4 专门有一套子系统负责处理图层

UE4_BIM替换材质处理流程_第19张图片

BIM材质替换标准

  1. 根据我们素材库的材质id,写入到对应的bim模型的属性字段中,通过观察udatasmith文档,可以找到bim的属性规则。因此我们可以加一个属性key字段

    Element_BNMaterialID ,值为我们材质库的ID

  2. 通过分析Dataprep的工具,可以发现该工具用的是模糊匹配。我们也可以用字段模糊匹配的方式进行设置。假设BIM模型里可能会有摄像头,摄像头按照bim的命名规范,一定会有摄像头的中文或者英文的关键字,根据这个关键字也可以去设置材质。上文中的测试案例用的就是模糊匹配。

最后的最后,如果您觉得这篇文章帮助到您,请资助下这位朋友的粮食,谢谢!

UE4_BIM替换材质处理流程_第20张图片

你可能感兴趣的:(UE4,三维模型,ue4,材质)