导出 DATASMITH (Unreal Engine)

Unreal Engine (DATASMITH) 导出器提供从 CityEngine 到 Unreal Engine 编辑器的高效数据传输。 此导出器的主要目的是用于建筑和设计可视化工作流,但显然也可以用于游戏和其他任务。

注:
  • Unreal 导出器仅在 Windows 上可用。
  • 要在 CityEngine 中使用 Unreal 导出器,至少需要先安装 Unreal Engine Launcher
  • 将不再需要 CityEngine Model Loader 工程,并且最终将从 Unreal Engine Launcher 中将其移除。

导出设置

除了常规导出选项之外,Unreal Engine DATASMITH 还具有以下选项:

导出 Twinmotion 兼容

使 Datasmith 导出与 Twinmotion 兼容。 导出将使用与 Twinmotion 和 Unreal 兼容的“Unreal 基础材料”(使用 Unreal 基础材料导出设置将设置为 true)。 它还将禁用与 Twinmotion 不兼容的功能:

  • 纹理图集
  • 实例化选项
  • 导出地形
  • 导出元数据
  • 导出 LOD
  • 导出方案

全局偏移

针对 x、y 和 z 轴的所生成几何的全局偏移(笛卡尔坐标值)。

网格合并

有关如何合并生成的网格的不同选项:

  • 按初始形状:按初始形状合并网格。
  • 按材料初始形状:按材料初始形状合并网格。 对于每个初始形状,将按每种材料生成一个网格。
  • 全局:全局合并网格。
  • 按材料全局:按材料全局合并网格。

实例化

有关如何处理实例化的不同选项:

  • 禁用:禁用实例化。
  • 使用实例化网格:如果可能,将启用实例化,由此即可在网格体之间共享网格。
  • 使用实例化网格体:将启用实例化,并使用分层实例化静态网格 (HISMC) 体添加实例。

元数据

当“网格合并”模式设置为按初始形状按材料初始形状”时,可以导出元数据。 元数据导出选项:

  • 全部:将对象属性和报表都写入对象元数据。
  • 属性:将对象属性写入对象元数据。
  • 报表:将生成的报表数据写入对象元数据。
  • :请勿包含对象属性或报表数据。

导出的元数据将附加到 Unreal 中每个初始形状的根对象。

地形图层

可以将地形图层导出到 Unreal Engine 景观。 支持以下选项:

  • 不导出任何地形图层
  • 导出所有可见地形图层
  • 导出所有所选地形图层
  • 导出所有地形图层

使用 Unreal 基础材料

使用“Unreal 基础材料”作为所有导出材料的父材料。 这些预定义材料与 Twinmotion 和 Unreal 兼容。 它们支持以下 CityEngine 材料属性:

  • material.colormapmaterial.color
  • material.normalmap
  • material.opacitymapmaterial.opacity
  • material.emissivemapmaterial.emissive.{r|g|b}
  • material.roughnessmapmaterial.roughness
  • material.metallicmapmaterial.metallic

使用纹理图集

启用结合已导出纹理并减少材料数量的纹理图集。 在较慢的硬件(例如,在 Oculus Quest 等移动 VR 设备上)上使用时,纹理图集通常具有最大影响。

导出 LOD

启用导出细节层次 (LOD) 仅在导出“按初始形状”时启用导出 LOD。

LOD 属性

用于指定 LOD 的 CGA 属性的名称。 该属性需要具有 Enum 注记。 对于 Enum 注记的每个元素,将触发派生,其中 LOD 属性将设置为此元素值。

以下示例

@Enum(“low”, “medium”, “high”)
attr Lod = “low”

将按初始形状生成 3 个 LOD。

注:
如果在多个 CGA 文件中定义了该属性,则其需要具有相同的元素 (LOD)。

LOD 顺序

LOD 属性的语义顺序。

  • 升序:首先定义最低细节层次。
  • 降序:首先定义最高细节层次。

例如,如果 LOD 属性定义如下:

@Enum(“low”, “medium”, “high”)
attr Lod = “low”

顺序为升序,因为首先定义最低细节层次。

导出方案

可将 CityEngine 方案导出到 Unreal Engine 变体。 每个场景可以单独切换,以确定是否应导出为变体。

默认对象

定义如何导出默认对象。

  • 根据选择内容:仅导出所选默认对象。
  • 可见:导出场景中可见的所有默认对象,且将忽略选择内容。

CityEngine 和 Unreal 实体之间进行映射

几何

每个已导出的网格将在 Unreal 中表示为网格体。 每个唯一网格将导出为静态网格,并在启用实例化时重用。

材料

通过将 CGA 材料属性传递到基于某个主要(或父级)材料的 Unreal 材料实例,可以将材料转换为 Unreal。

默认情况下,导出器将生成相应主要材料,用于处理从 CGA 材料属性到 Unreal 材料属性的转换(另请参阅默认主要材料)。

自定义主要材料

可以通过将 material.shader CGA 属性设置为相应 Unreal 材料路径来分配自定义主要材料,例如 /Game/Materials/CityEngineMaterials/M_CE_MyMaterial

可以导出每个 CGA 材料属性,并且可以通过使用具有特定名称和数据类型的材料参数在 Unreal 中进行访问。 下表列出了 CGA 材料属性及其各自的 Unreal 参数名称和类型:

CGA 属性Unreal 参数名称Unreal 类型备注

material.color

颜色

Vector3

material.opacity

Opacity

float

material.reflectivity

Reflectivity

float

material.shininess

Shininess

float

material.bumpValue

BumpValue

float

material.ambient

Ambient

Vector3

material.specular

Specular

Vector3

material.colormap

ColorMap

Texture2D

material.dirtmap

DirtMap

Texture2D

material.specularmap

SpecularMap

Texture2D

material.opacitymap

OpacityMap

Texture2D

<none>

OpacitySource

float

对于 OpacitySource 值:

  • 0:使用 OpacityMap 中的颜色通道(灰度)
  • 1:使用 OpacityMap 中的 alpha 通道

material.bumpmap

BumpMap

Texture2D

material.normalmap

NormalMap

Texture2D

<none>

IsPBR

float

  • 1:如果 material.shader 设置为 CityEnginePBRShader
  • 0:除此以外

material.metallic

Metallic

float

material.roughness

Roughness

float

material.emissivecolor

EmissiveColor

Vector3

material.metallicmap

MetallicMap

Texture2D

material.roughnessmap

RoughnessMap

Texture2D

material.occlusionmap

OcclusionMap

Texture2D

material.emissivemap

EmissiveMap

Texture2D

默认主要材料

默认情况下,在导出过程中将根据以下规则生成相应主要材料(不透明、透明或掩膜):

  • 如果 material.opacity 小于 1 或者已设置 material.opacitymap
    • 如果 opacitymap.mode 为混合,则将使用 Transparent 主要材料。
    • 如果 opacitymap.mode 为掩膜,则将使用 Masked 主要材料。
  • 否则,将使用 Opaque 主要材料。
注:

Unreal Engine 按网格体对透明度进行排序。 导出重叠透明网格体将导致渲染伪影。 掩膜的二进制不透明度不受此限制的影响。

默认材料属性转换

默认主要材料可将 CGA 材料属性大致转换为基于物理的 Unreal 材料。 如果 material.shader 设置为 CityEnginePBRShader(例如,如果导出插入的 glTF 模型,则会自动进行此设置),则 Unreal 中的默认主要材料将使用 PBR 材料属性(粗糙度、金属性和放射)。

注:

Unreal 中将不使用镜面反射颜色。 Unreal 中的镜面反射颜色取决于基础颜色和材料的金属性。