Datasmith 最佳实践系列 - 3DS Max 场景指南
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]"
近期焦点