查看原文
其他

Datasmith 最佳实践系列 - 3DS Max 场景指南

李锋 虚幻引擎 2020-08-25

2018 年 Epic Games 推出了 Unreal Studio, 包含企业使用虚幻引擎加快工作流程所需的各种工具以及服务。Unreal Studio 由 Datasmith,学习资料,技术支持以及素材资源四大部分组成,它为建筑以及产品设计创造出令人惊叹的实时视觉效果。

Epic Games 技术客户经理李锋通过一系列技术文章带你逐步了解 Unreal Studio 和 Datasmith。 今天为大家介绍的是第一篇 3DS Max 场景指南。逐步了解在 3DS Max 资源通过 Datasmith 导入到虚幻引擎中需要注意的内容。


几何体

导航点

3DSMax允许用户对场景中的物体和它的实例设置自定义导航点,但是目前UE4不支持针对每个实例设置不同导航点。


为了避开这个限制,Datamsith会将自定义导航点转换为物体的子组件。如下图所示:

Teapot002是转换出来的导航点,他是根组件。而真正的模型则是子组件 Teapot002_Pivot。


实例的导航点与非等比缩放

在3DS Max中如果一个物体的实例即使用了自定义导航点又使用了非等比缩放,目前UE4还无法支持这种特殊情况。如果你尝试通过Datasmith导出该种类型的物体,那么Datasmith会在导出窗口输出警告信息:


“一些物体同时使用了自定义导航点和非等比缩放,目前虚幻引擎还不支持这种组合方式,输出结果可能不正确。”

当您看到此种信息,建议您对这类物体使用3DS Max的工具:Reset XForm。


灯光

3DSMax支持多种灯光类型,诸如标准灯光和光度学灯光,V-Ray和Corona。

Datasmith对上述灯光的参数支持如下:

  • 位置,朝向,形状,尺寸

  • 强度,色温,过滤色

  • 渲染光源形状

  • 实例


但是目前UE4暂不支持下述类型的灯光:

  • 实例光源

  • 区域光源

灯光导入后的结构如下:

 

光源的根组件是描述该光源形状的组件,子组件是光源本身。3DS Max中灯光形状的设置决定了导入UE4后使用的光源形状:

 

左侧是在3DS Max中设置的光源形状,右侧是导入到UE4后自动对应的形状。


灯光颜色与强度

灯光转换到UE4中后,下述参数被保留:

  • 强度

  • 色温

  • 过滤色

  • 类型(IES,聚光灯,平行光等)


顶部是使用IES和调整过色温的点光源;中间是使用IES和调整过强度的点光源;底部是使用过滤色的聚光灯。

在将3DSMax场景中的灯光转入UE4中后,视觉上会有一些差异,你可能需要在UE4中对灯光进行一些微调去获得尽量统一的视觉效果。


已知问题

  • 由于不支持灯光实例,使用多个灯光Actor会使场景显得杂乱。(在未来计划中,我们打算把这些Actor组合进一个蓝图对象中)

  • 在对V-Ray的支持中,一些光源形状暂时还没有支持。比如垂直圆柱体,椭球体和自定义网格光

  • 标准光是没有单位的,并且对衰减的设置有很多自定义参数,目前UE4还不支持这些自定义参数,所以这类光源需要您在UE4中进行手动调整。

  • 光源的自发光形状不会参与进UE4的lightmass计算中,目前他们只是一个单纯的视觉效果。


贴图与材质

3DS Max UV通道与UnrealUV通道

在3DS Max中,你可以对单独物体设置最大99个UV通道。UE4只支持8个UV通道。当Datasmith把资源从3DS Max导出时,会收集物体的UV通道信息并放进一个最大容纳8个通道的数组中,在这个过程中,没用到的通道会略过。举例来说,下图中的3DS Max对象有5个UV通道被使用。当导出数据时,只有这5个用到的通道会导出。当导入UE4后,你会看到有7个通道,这是由于UE4额外使用2个通道作为LightMap UV通道。


下图是个UV转换清单:


材质最佳实践

Datasmith会尝试把3DS Max的材质高保真度的还原进UE4。但是根据材质的复杂度,导出会受到一些限制。因此如果你想把材质尽可能还原的从3DS Max转进UE4,你需要考虑如下事项:

  • 3DS Max支持多种着色模型,诸如V-Ray,Corona,Arnold,Mental Ray等等。每种着色模型都属于一个相互独立的软件系统,他们之间有各自不同的特性,因此很难让某一个着色模型完全兼容另一个模型。

  • 为了支持这些着色模型的材质图,需要UE4中对这些材质图中的节点和功能进行支持,但是大量3DS Max中的功能在UE4中还没有,目前也没有计划去完全支持这些功能。

由于虚幻不能支持3DS Max中多种着色模型的各种特性,下面给出了如何制作最适合UE4的材质例子:


转换简单材质比转换复杂材质的还原上会更好。

 

复杂材质在转换过程中很可能遇到某些UE4材质系统的材质。举例说明就是下图这个复杂材质里使用了很多不同且相互嵌套的shader。

AutodeskMaterials不会被Datasmith转换,这些材质一般是从Revit中导入进3DS Max的。


命名转换

静态网格资产命名

当您把资产导入UE4中,您会发现资产命名发生了改变,导致这些改变的可能是下列原因其中之一:

  • 虚幻要求资产命名必须唯一

  • 名称和路径最大容纳256个字符

  • 不支持非字母数字的字符

举例来说,在3DS Max中,对象名字不需要唯一,并且可以是任意长度和任意字符。这里主要注意的是:在搜索和替换的过程中,每个对象有一个不依赖名称的句柄,3DS Max使用这个句柄来标识物体的唯一性。


3DS节点ID和对象名称

导入进UE4的静态网格使用节点ID命名的原因是:

  • 对象名称不是强制唯一的,长度和字符也是任意的

  • 虚幻资产名称必须是只包含字母或数字且长度小于256个字符(包含资产路径)

  • Datasmith为了支持重导入流程,需要物体的唯一性标识,而3DS Max中的对象名称不能满足这个要求

在虚幻引擎的Outliner中,使用对象名称是为了方便:

 

但是当你选择Actor后,Detial面板会显示该Actor引用的资产,可以看到他的名称其实就是3DS Max中的节点ID。

使用节点ID可以让UE4标识物体的唯一性。即使他们的名称相同,ID也是不同的。


想要快速查看该资产,只需要点击放大镜图标即可:


在3DS Max中,你可以使用如下Max脚本通过节点ID来快速定位目标:

"Maxops.getnodebyhandle[number]"

 





近期焦点




    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存