使用Datasmith和Cinema 4D

介绍仅在使用Datasmith将Maxon Cinema 4D中的场景导入虚幻编辑器时才适用的特殊注意事项。

Windows
MacOS
Linux

本页详述Datasmith如何将场景从Maxon Cinema 4D导入虚幻编辑器。此流程遵循Datasmith概述关于Datasmith导入流程 所述的基本流程,但添加了Cinema 4D专属的一些特殊转换行为。若计划使用Datasmith将场景从Cinema 4D导入虚幻编辑器,阅读本页有助于了解场景转译的方式,以及如何在虚幻编辑器中处理结果。

Cinema 4D

虚幻引擎

Cinema 4D工作流程

Datasmith使用Cinema 4D的 直接 工作流程。这意味着,要利用Datasmith将Cinema 4D内容导入虚幻编辑器,须执行以下操作:

  1. 使用 文件(File)> 针对Melange保存项目(Save Project for Melange) 选项将场景保存为 .c4d 文件。

    此选项可以让保存的文件包含场景中所有几何体的三角剖分网格体,甚至包含生成器过程化创建的几何体。此外,保存的文件还可以包含当前动画中的所有副本,不仅限于当前帧中可见的副本。Datasmith需要所有此信息来创建与源场景匹配的静态网格体资源和关卡序列。

  2. 如果尚未安装,需要为项目启用 导入器(Importers) > Datasmith C4D导入器(Datasmith C4D Importer) 插件。

  3. 使用虚幻编辑器的工具栏上的Datasmith Cinema 4D 导入器导入 .c4d 文件。参阅将Datasmith内容导入虚幻引擎4

可配置Cinema 4D,实现始终在每个保存的文件中包含Datasmith需要的额外信息。

从主菜单选择 编辑(Edit)> 偏好(Preferences)。然后在 偏好(Preferences) 对话框的 文件(Files) 选项卡上,启用 针对Melange保存多边形(Save Polygons for Melange)针对Melange保存动画(Save Animations For Melange) 选项。

不过要注意,这会增加所有保存的文件占据的磁盘空间。如果这存在隐患,而且经常使用的场景无需通过Datasmith导入虚幻引擎,则您可能更愿意只在必要时才使用 文件(File)> 针对Melange保存项目(Save Project for Melange) 选项。

关于其他类型的Datasmith工作流程,请参阅Datasmith支持的软件和文件类型

几何体

Datasmith为Cinema 4D场景中每个单独的几何体对象创建一个单独的静态网格体资源。

Datasmith使用Cinema 4D属性面板中每个对象给自身指定的名称(如下图左侧所示)来确定为相应静态网格体指定的名称(如下图右侧所示)。

由于此规则的存在,导出前可以合并Cinema 4D中的对象,从而影响Datasmith创建的静态网格体资源和Actor的粒度。例如:

  • 可利用Cinema 4D中的 Connect Objects 命令将两个对象合并成一个对象。详情请参阅Cinema 4D文档

  • 为了获得更大的灵活性,可使用Cinema 4D中的 Connect Object 将更接近于给定阈值的对象合成为单个网格体。在本例中,Datasmith导入将为合成的网格体生成单个静态网格体资源,但Cinema 4D中相连的部分仍为独立的对象。参阅Cinema 4D文档

对象可视性

若不想将对象导入虚幻引擎,可在Cinema 4D中隐藏,然后再保存 .c4d 文件。Datasmith导入器不会将隐藏对象的几何体导入静态网格体资源,也不会将其纳入Datasmith场景层级。

可利用Cinema 4D中的 对象(Objects) 面板逐个隐藏对象。另外,也可将要忽略的对象放入其自身的层,然后使用 层(Layers) 面板隐藏此层中的所有对象。

生成器和变形器

针对Melange保存Cinema 4D场景时,场景中的每个生成器被"烘焙"成单个三角形网格体,表示对象总共过程化生成的几何体。同样,每个变形器也将基于其最终状态被烘焙成单个三角形网格体。Datasmith将每个三角形网格体作为单个静态网格体资源导入。

实例、复制器和数组

在Cinema 4D场景中,若使用实例、复制器或排列将单个对象的副本放在场景中的多个不同位置,Datasmith会尊重您的意愿,在内容浏览器中从此对象的几何体创建单个静态网格体资源。然后,它会将此静态网格体资源的多个实例放入Datasmith场景。

法线朝向

与大多数实时渲染器一样,虚幻引擎也会自动剔除背对摄像头的三角形,从而最大程度提高性能。然而,Cinema 4D可以使用背面剔除 来渲染几何体,也可以不使用。根据Cinema 4D设置,您可能不习惯考虑表面的朝向。若场景包含单面几何体,且面的表面法线偏离典型观看方向,那么在虚幻引擎中从特定角度观看时,此几何体似乎已消失。

例如,下图显示了一本书籍,其中一个表面法线朝内。场景导入虚幻引擎后,开始时封面似乎已消失。在这种情况下,翻转表面的法线方向可使表面按预期显示。

Cinema 4D中的书籍

虚幻引擎中的书籍

在Cinema 4D中确认表面朝向预期方向即可避免此类问题。有几种方法可以做到这一点。例如:

  • 可以为视口启用 选项(Options)> 背面剔除(Backface Culling) 设置。这将隐藏法线偏离摄像机的所有面,就像在虚幻引擎中一样隐藏。

  • 处于多边形模式时,所选面朝向您时将黄色高亮显示,但背对您时将蓝色高亮显示。

    背面为蓝色

  • 可将视口配置为将顶点法线显示为从每个面中心延伸的白线。选择 选项(Options)> 配置(Configure) 并前往 属性(Attributes) 面板。确保启用 多边形法线(Polygon Normals) 设置,并禁用 仅显示选定(Selected Only) 选项,以显示在多边形模式下选中模型的所有面的法线。

    在所有表面上显示顶点法线

在Cinema 4D中发现有反向法线的面时,可以用 Reverse Normals 命令翻转。参阅Cinema 4D文档

欲了解完整讨论和更多可能的解决方案,请参阅关于Datasmith导入流程

光源

Datasmith将Cinema 4D中的大多数光源类型转换为虚幻引擎中同等的光源类型。此转换保留了光源最重要的自发光属性,包括场景中的放置、颜色、光度强度、锥角、IES描述文件等。

下表介绍了Datasmith将Cinema 4D光源类型映射到虚幻引擎光源类型的方式:

Cinema 4D

虚幻引擎

点光源、IES光源

点光源

聚光源、目标光源

聚光源

区域光源、PBR光源

DatasmithAreaLight蓝图

太阳光源、无限光源

定向光源

摄像机

针对Cinema 4D场景中的各个摄像机,Datasmith将在Datasmith场景中创建一个CineCamera Actor。此摄像机的放置位置与旋转状态与Cinema 4D中对应的摄像机相同,并保留一些与摄像机物理特性相关的可选设置,包括焦距。

场景层级

虚幻引擎中的Datasmith场景包含的Actor层级与原始Cinema 4D场景中的对象层级非常匹配。场景对象的名称以及父项子项的嵌套都尽可能完好地保留下来。例如,下图左侧显示Cinema 4D场景层级,右侧显示将该场景导入虚幻引擎的结果:

您可能会注意一些区别:

  • 在上图右侧所示的虚幻编辑器 世界大纲视图 中,各层级中的Actor始终按字母顺序排列。这导致排列同级项目时出现明显差异,但父子关系保持不变。

  • Datasmith仅允许Datasmith场景中的Actor名称使用字母数字字符、连字符和下划线。若Cinema 4D对象的名称包含任何其他字符,这些字符将自动转换为下划线。

  • Datasmith场景的最终层级必须略微调整,将虚幻引擎转换期间Cinema 4D过程化功能的 烘焙 方式纳入考虑范围,即考虑用于复制这些过程化功能效果的静态Actor集将如何替代这些过程化功能。

    Cinema 4D场景中的各个过程化对象(比如生成器、复制器或排列)在虚幻引擎中均作为单个父Actor出现。为该Actor指定与原始Cinema 4D对象相同的名称。在Datasmith场景的父类下可找到Datasmith创建的所有静态网格体Actor,用于模拟过程化几何体的效果。此类静态网格体Actor的名称与其父项相同,但带有数字后缀。因此Datasmith场景的层级会更加复杂一些,具体取决于Cinema 4D过程化功能所应用的广泛程度。但在这种情况下,可将各个Actor作为单独实例进行访问。

    例如,下方左侧的Cinema 4D场景使用两个嵌套复制器创建多行和多列桌椅。下方右侧的Datasmith场景中,层级包含复制器所生成的各个单独几何对象的静态网格体Actor,这些Actor都统属于代表复制器自身的父Actor之下。

Datasmith从至少含有一个对象的Cinema 4D场景中导入所有已命名层,并将它创建的各个关卡Actor指定到与Cinema 4D中相应对象匹配的层。

Cinema 4D中的层

虚幻引擎中的层

Datasmith不导入Cinema 4D中不含对象的空层。

Cinema 4D材质

Datasmith在虚幻引擎项目中为Cinema 4D场景中的各个标准材质和物理材质创建一个新的材质资源。

此类材质资源旨在遵循在Cinema 4D中设置的表面显示方式,同时公开有助于利用虚幻物理渲染器的属性。

要修改材质,请执行以下操作:

  1. 内容浏览器 中双击该材质。或在关卡中选择使用该材质的Actor,并在 细节(Details) 面板中双击该材质。

  2. 将打开下图所示的材质编辑器,可在其中使用 细节(Details) 面板中的设置修改从Cinema 4D导入的属性。还可以修改虚幻渲染器公开的其他内置参数。

    有关使用此UI的背景信息,请参阅材质实例编辑器用户指南

使用材质通道

编辑从Cinema 4D导入的材质时,细节(Details) 面板顶部将列出Datasmith在导入流程中处理的不同类型的Cinema 4D通道。若习惯使用Cinema 4D中的材质,那么您应该十分熟悉这些通道的效果和设置。

材质通道

在顶部 00全局(00 Global) 部分激活通道时,细节(Details) 面板还包含一个下面的部分,可在其中配置该通道专属的设置。这些设置将公开可以为Cinema 4D中对应通道设置的最重要属性。

例如,上图中激活的通道会导致额外的 颜色反射率高光度法线 部分出现。

此规则唯一的例外是反射颜色通道。激活 Use_ReflectionColor 设置时,将向 01_Color 组添加新的 反射颜色(Reflection Color)反射颜色强度(Reflection Color Strength) 设置。

反射颜色设置

反射率 通道中设置的值会影响虚幻引擎中的多个材质输出通道,包括粗糙度金属感高光度 通道。由于关系较复杂,Datasmith仅转换Cinema 4D中的一层反射率通道。

控制纹理UV

细节(Details) 面板底部有一些设置,用于控制材质中所有通道的UV映射。更改这些设置,材质就会用不同方法将纹理贴图应用于着色的静态网格体几何体。此处设置的值应用于 所有 使用纹理贴图的通道。这些设置的效果类似于Cinema 4d中的纹理标签 的偏移和平铺设置。

影响纹理贴图所有通道的整体UV设置

若通道的设置中拥有纹理贴图,则其还拥有自身的可选UV包裹控制。例如,04_Normal 通道接受法线贴图纹理,因此它还提供一个设置,用于激活一组仅应用于法线贴图纹理的次要UV控制:

使用逐通道UV设置

启用此选项时将向通道设置添加一组新的UV映射控制:

已启用逐通道UV设置

同时 自定义 UV 组中的一般UV设置 特定通道的设置,则会叠加效果。

父材质

Datasmith创建的每个材质资源都是材质实例 。此材质实例的父项始终是Datasmith插件中内置的 C4DMaster 材质。可打开此父材质,查看材质实例中公开的各个属性在材质图表中的连线方式。还可修改父材质,从而公开其他属性,或更改着色计算时考虑现有属性的方式。参阅修改Datasmith主材质

材质导入限制

Datasmith从Cinema 4D到虚幻引擎的材质转换流程存在一些限制:不支持过程纹理(如噪音)、基于节点的材质(Cinema 4D R20中加入)或第三方渲染器。

此类情况下,若虚幻引擎中的结果需要与Cinema 4D中的内容密切匹配,最好的方法是将材质烘焙成位图纹理,并创建新材质将已烘焙位图应用到对象。参阅Cinema 4D文档

动画

若Cinema 4D场景所含元素的3D变换会随着时间推移生成相应动画(包括关键帧动画MoGraphDynamics ),Datasmith自动将此类动画变换导入新的关卡序列资源。可使用 Sequencer 工具在虚幻编辑器中播放动画,并使用蓝图在运行时管理交互式播放。

例如,以下视频显示带MoGraph的场景,该MoGraph为一系列副本的变换生成动画。导入虚幻引擎后,从同一摄像机视点查看时,添加的实时光源产生阴影,Datasmith创建的关卡序列会生成完全相同的运动。

如需获得重要详情,了解如何使用Datasmith生成的关卡序列,请参阅关于导入流程 的"动画"部分。

用户数据

若在Cinema 4D中设置了场景对象上的用户数据 ,Datasmith会转换该用户数据并将其作为Datasmith元数据存储在对应的关卡Actor上。可在虚幻引擎中使用蓝图或Python访问此元数据,或在运行时在引擎中使用蓝图访问此元数据。

详情请参阅使用Datasmith元数据

制作人员:本页使用的教室场景由Turbosquid 用户脚本设计师 友情提供。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback