您可以将 Unreal Engine 和 Twinmotion (DATASMITH) 数据从 CityEngine 导出至 Unreal Engine Editor 和 Twinmotion。 这通常用于建筑和设计可视化工作流,但您也可以将其用于游戏和其他任务。
注:
- 导出 Unreal 数据仅在 Windows 上可用。
- 要在 CityEngine 中导出 Unreal 数据,必须先安装 Unreal Engine Launcher。
- 将不再需要 CityEngine Model Loader 工程,并且会从 Unreal Engine Launcher 中将其移除。
导出选项
除了常规导出选项之外,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 属性设置为此元素值时触发派生。 以下示例将按照初始形状生成三个 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 中的镜面反射颜色取决于基础颜色和材料的金属性。