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 不兼容的功能:
|
全局偏移 | 针对 x、y 和 z 轴的所生成几何的全局偏移(笛卡尔坐标值)。 |
网格合并 | 有关如何合并生成的网格的不同选项:
|
实例化 | 有关如何处理实例化的不同选项:
|
元数据 | 当“网格合并”模式设置为按初始形状或按材料初始形状”时,可以导出元数据。 元数据导出选项:
导出的元数据将附加到 Unreal 中每个初始形状的根对象。 |
地形图层 | 可以将地形图层导出到 Unreal Engine 景观。 支持以下选项:
|
使用 Unreal 基础材料 | 使用“Unreal 基础材料”作为所有导出材料的父材料。 这些预定义材料与 Twinmotion 和 Unreal 兼容。 它们支持以下 CityEngine 材料属性:
|
使用纹理图集 | 启用结合已导出纹理并减少材料数量的纹理图集。 在较慢的硬件(例如,在 Oculus Quest 等移动 VR 设备上)上使用时,纹理图集通常具有最大影响。 |
导出 LOD | 启用导出细节层次 (LOD) 仅在导出“按初始形状”时启用导出 LOD。 |
LOD 属性 | 用于指定 LOD 的 CGA 属性的名称。 该属性需要具有 Enum 注记。 对于 Enum 注记的每个元素,将触发派生,其中 LOD 属性将设置为此元素值。 以下示例
将按初始形状生成 3 个 LOD。 注:如果在多个 CGA 文件中定义了该属性,则其需要具有相同的元素 (LOD)。 |
LOD 顺序 | LOD 属性的语义顺序。
例如,如果 LOD 属性定义如下:
顺序为升序,因为首先定义最低细节层次。 |
导出方案 | 可将 CityEngine 方案导出到 Unreal Engine 变体。 每个场景可以单独切换,以确定是否应导出为变体。 |
默认对象 | 定义如何导出默认对象。
|
在 CityEngine 和 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 值:
|
material.bumpmap | BumpMap | Texture2D | |
material.normalmap | NormalMap | Texture2D | |
<none> | IsPBR | float |
|
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 中的镜面反射颜色取决于基础颜色和材料的金属性。