UE4 Datasmith 格式简述

UE4 Datasmith 格式简述

UE4 Datasmith 是由第三方建模软件的Datasmith导出插件和UE4端导入插件构成的。导出插件导出相关文件资源,包括*.udatasmith场景描述文件以及对应的Mesh和纹理资源。导入插件则是根据场景描述文件生成UE4对应的资源。

文件组成及其格式

Epic Games Unreal Datasmith (.udatasmith) 是Datasmith中间格式文件标准,用于将 3D 场景导入到虚幻引擎项目中。 Datasmith 文件夹包含诸如Mesh和Texture之类的资产。这些资源用于创建.udatasmith 文件,其中包含虚幻引擎 Actor(实例)的场景层次结构。多个 Actor 可以与相同的资产相关联,每个 Actor 还可以包含一组元数据键和值。

如下图所示为Revit Datasmith 插件导出的Datasmith文件和文件夹。
1
*.udatasmith 是使用XML描述的关于场景层次结构、元数据信息、材质信息以及Mesh组合信息。

Mesh

<StaticMesh name="271345ccc49aa7d32c34a97b6c977ace" label="管道_管道类型_无缝钢管-焊接">
		<file path="*_Assets/271345ccc49aa7d32c34a97b6c977ace.udsmesh"/>
		<Size a="63975.40625" x="409.551453" y="21.847969" z="21.847969"/>
		<LightmapCoordinateIndex value="-1"/>
		<LightmapUV value="-1"/>
		<Hash value="9635b943c3f44982e2179505caecf0aa"/>
		<Material id="0" name="50d833912bee077a1e0af95c570822e4"/>
	</StaticMesh>

材质

<MasterMaterial name="50d833912bee077a1e0af95c570822e4"  label="高温_热水回水系统颜色" Type="1" Quality="0" >
		<KeyValueProperty name="DiffuseColor" type="Color" val="(R=0.490196,G=0.690196,B=0.984314,A=1.000000)"/>
		<KeyValueProperty name="DiffuseMapFading" type="Float" val="0.000000"/>
		<KeyValueProperty name="TintEnabled" type="Bool" val="False"/>
		<KeyValueProperty name="TintColor" type="Color" val="(R=0.313726,G=0.313726,B=0.313726,A=1.000000)"/>
		<KeyValueProperty name="SelfIlluminationLuminance" type="Float" val="0.000000"/>
		<KeyValueProperty name="SelfIlluminationFilter" type="Color" val="(R=1.000000,G=1.000000,B=1.000000,A=1.000000)"/>
		<KeyValueProperty name="SelfIlluminationMapEnable" type="Bool" val="False"/>
		<KeyValueProperty name="BumpAmount" type="Float" val="0.000000"/>
		<KeyValueProperty name="IsMetal" type="Bool" val="False"/>
		<KeyValueProperty name="Glossiness" type="Float" val="0.500000"/>
	</MasterMaterial>

元数据

<MetaData name="47b979b25e11bcba04f49fc51d825cbc_DATA" reference="Actor.47b979b25e11bcba04f49fc51d825cbc">
		<KeyValueProperty name="Element_Category" type="String" val="管道附件"/>
		<KeyValueProperty name="Element_Family" type="String" val="静态平衡阀"/>
		<KeyValueProperty name="Element_Type" type="String" val="标准"/>
		<KeyValueProperty name="Element_总体大小" type="String" val="240 mm240 mm"/>
		<KeyValueProperty name="Element_隔热层厚度" type="String" val="20 mm"/>
		<KeyValueProperty name="Element_隔热层类型" type="String" val="橡塑保温棉"/>
		<KeyValueProperty name="Element_标高" type="String" val="-6.050"/>
		<KeyValueProperty name="Element_标高中的高程" type="String" val="7330"/>
		<KeyValueProperty name="Element_创建的阶段" type="String" val="新构造"/>
		<KeyValueProperty name="Element_拆除的阶段" type="String" val="无"/>
		<KeyValueProperty name="Element_系统分类" type="String" val="循环回水"/>
		<KeyValueProperty name="Element_系统类型" type="String" val="M-常温回水"/>
		
	</MetaData>

完整示例

<DatasmithUnrealScene>
	<Version>0.24</Version>
	<SDKVersion>4.26.2</SDKVersion>
	<Host>Revit</Host>
	<Application Vendor="Autodesk Inc." ProductName="Revit" ProductVersion="2020"/>
	<ResourcePath>D:/A</ResourcePath>
	<User ID="7487beb84f95f1ea33dcb09490601f47" OS="Windows 10 (Release 2009)"/>
	
	<StaticMesh name="6c39819a10e90b5810bc6c0c4f5d75e7" label="管道_管道类型_内外壁热镀锌焊接钢管-丝接或卡箍">
		<file path="_Assets/6c39819a10e90b5810bc6c0c4f5d75e7.udsmesh"/>
		<Size a="872.102417" x="3.427872" y="16.787811" z="16.787811"/>
		<LightmapCoordinateIndex value="-1"/>
		<LightmapUV value="-1"/>
		<Hash value="88097329ab856460b31c3ce03bb0f625"/>
		<Material id="0" name="a12b7dd13cc40a9abacdf9256b70bf41"/>
	</StaticMesh>
	
	<MasterMaterial name="a12b7dd13cc40a9abacdf9256b70bf41"  label="HYP-自喷" Type="1" Quality="0" >
		<KeyValueProperty name="DiffuseColor" type="Color" val="(R=1.000000,G=0.000000,B=1.000000,A=1.000000)"/>
		<KeyValueProperty name="DiffuseMapFading" type="Float" val="0.000000"/>
		<KeyValueProperty name="TintEnabled" type="Bool" val="False"/>
		<KeyValueProperty name="TintColor" type="Color" val="(R=0.313726,G=0.313726,B=0.313726,A=1.000000)"/>
		<KeyValueProperty name="SelfIlluminationLuminance" type="Float" val="0.000000"/>
		<KeyValueProperty name="SelfIlluminationFilter" type="Color" val="(R=1.000000,G=1.000000,B=1.000000,A=1.000000)"/>
		<KeyValueProperty name="SelfIlluminationMapEnable" type="Bool" val="False"/>
		<KeyValueProperty name="BumpAmount" type="Float" val="0.000000"/>
		<KeyValueProperty name="IsMetal" type="Bool" val="False"/>
		<KeyValueProperty name="Glossiness" type="Float" val="0.500000"/>
	</MasterMaterial>
	
	<ActorMesh name="709ac30374d11c4af5f8081e3ee9dcae" label="管道_管道类型_内外壁热镀锌焊接钢管-丝接或卡箍" layer="管道">
		<mesh name="6c39819a10e90b5810bc6c0c4f5d75e7"/>
		<Transform tx="627715.9375" ty="-699380.875" tz="126.572128" sx="1.0" sy="1.0" sz="1.0" qx="0.0" qy="-0.707107" qz="0.0" qw="0.707107" qhex="00000080F20435BF00000000F204353F"/>
		<tag value="Revit.Element.Id.3970290" />
		<tag value="Revit.Element.UniqueId.8c144726-493d-41ff-ab00-9ecf3b927a7d-003c94f2" />
		<tag value="IsElement" />
	</ActorMesh>
	
	<MetaData name="709ac30374d11c4af5f8081e3ee9dcae_DATA" reference="Actor.709ac30374d11c4af5f8081e3ee9dcae">
		<KeyValueProperty name="Element_Category" type="String" val="管道"/>
		<KeyValueProperty name="Element_Family" type="String" val="管道类型"/>
		<KeyValueProperty name="Element_Type" type="String" val="内外壁热镀锌焊接钢管-丝接或卡箍"/>
		<KeyValueProperty name="Element_系统分类" type="String" val="湿式消防系统"/>
	</MetaData>
</DatasmithUnrealScene>

Mesh和纹理存储

*_Assets文件夹 包含了 *.udsmesh Mesh 资产文件和Texture

*.udsmesh 二进制文件存储了顶点、索引及UV等信息。据了解应该是FRawmesh对象序列化本地存储格式。

在这里插入图片描述

其他

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

总结

在清楚了解Datasmith格式之后,可以自定义导出插件将自定义三维格式转换为Datasmith格式,以便于利用UE4 Datasmith 导入插件的功能。

参考

  1. https://github.com/0xafbf/blender-datasmith-export.git
  2. Blender Datasmith add-on presentation
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值