结合使用Datasmith与Rhino

描述当使用Datasmit将场景从McNeel Rhinoceros 3D导入虚幻时需要考虑的特别因素。

Windows
MacOS
Linux

此页面介绍了Datasmith如何将McNeel Rhinoceros(Rhino)中的场景导入虚幻编辑器中。它遵循Datasmith概述关于Datasmith导入流程 中描述的基本流程,但加入了一些专为Rhino设计的转换行为。如果你计划用Datasmith将Rhino中的场景导入虚幻编辑器,阅读此页面可以帮助你理解自己的场景是如何被转换的,以及你该如何操作虚幻编辑器里的结果。

Rhino工作流程

Datasmith对Rhino使用 直接 工作流程。这意味着,要使用Datasmith将Rhino内容导入到虚幻中,你需要:

  1. 将Rhino场景保存为 .3dm 文件。

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

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

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

将几何结构转换为静态网格体

Datasmith为Rhino文件中的每个独立网格体、固体或表面创建一个单独的静态网格体资源。如果某个对象在Rhino中的 属性(Properties) 面板中设置了 名称(Name) 属性(下图左侧所示),则Datasmith会使用这个名称作为静态网格体的名称(下图右侧所示)。Datasmith在关卡中创建的引用该静态网格体资源的任何Actor也会使用这个名称。

实例化

当Datasmith检测到,同一个块体在Rhino场景中有多个实例时,它只会为该块体中的几何结构创建一组静态网格体资源,并将这些静态网格体的多个实例放在场景中。这通常对运行时内存需求和项目性能更为有利,同时也更方便管理 内容浏览器 中的静态网格体数量。

但如果可能,我们建议充分利用这个功能,在Rhino中,将场景中的重复元素(如窗户、门或椅子)创建为块体。有关详细信息,请参阅Rhino文档

曲面细分和渲染网格体

虚幻引擎始终使用三角形网格体渲染对象。假如你的对象在Rhino文件中被定义成参数曲面或NURBS,则这些曲面需要通过变换或 曲面细分 转换为三角形网格体。Datasmith提供了两种方法来处理这一情况。当你导入Rhino文件时,你可以在 导入选项(Import Options)几何体(Geometry) 的设置中选择使用哪种方法:

Rhino导入选项

  • 作为NURBS导入并在虚幻中曲面细分(Import as NURBS, Tessellate in Unreal) - 假如选择该选项,Datasmith在导入Rhino中的所有曲面时,会导入原始的基于曲线的数据。然后它会把所有表面曲面细分成三角形网格体;它会使用你在 导入选项(Import Options) 对话框中设置的其他参数,以便控制网格体相对于原始表面的复杂度和保真度。有关Datasmith曲面细分过程及相关控制参数的详情,请参阅

    [结合使用Datasmith和CAD文件](Source/Engine/Content/Importing/Datasmith/SoftwareInteropGuides/CAD)
    。在生成三角形网格体后,Datasmith会针对它新建的几何体生成新的UV映射。

  • 导入Rhino网格体和UV(Import Rhino Meshes and UVs) - 假如选择该选项,Datasmith会跳过它内置的曲面细分步骤。相反,它会尝试寻找保存在Rhino文件中的、由Rhino为曲面生成的三角形网格体和UV贴图。如果能找到这些三角形网格体,它就会导入它们并将其用于虚幻引擎中的渲染。

    Missing template.

三角形朝向

无论表面法线采用哪种朝向,Rhino通常都会将所有表面显示为两面。但是,虚幻引擎会自动剔除没有朝向摄像头的三角形。这可能会导致在从某些角度查看时,场景中的某些几何结构会消失。

例如,下图显示了以表面法线朝内建模的车轮保护罩。在将这个场景导入到虚幻中后,这些表面起初似乎消失了。在这种情况下,翻转对象的法线反向就会看到这些表面原本的样子。

backward-facing

forward-facing

有关完整的讨论和建议的解决方案,请参阅关于Datasmith导入流程

Rhino材质

对于Datasmith在你的Rhino场景中找到的每种不同的表面颜色和材质,它会在虚幻中创建单独的材质资源 ,并将它放在Datasmith场景资源旁边的"Materials"文件夹中。

  • Materials 文件夹中的每个材质都是材质实例 ,用于公开Rhino文件中设置的属性:颜色值、纹理贴图等。可更改此类公开属性,以便修改材质在应用到表面时的效果。Datasmith将此类材质资源指定给其创建的静态网格体资源,以便像在Rhino渲染中一样对表面着色。

    Datasmith仅将Rhino对象的材质导入虚幻引擎。而完全忽视Rhino显示颜色。因此,虚幻引擎导入内容的视觉效果将尽可能接近Rhino中的渲染效果。

  • Datasmith还会在 Materials/Master 文件夹中创建一组父材质。其中每个材质都是 Materials 文件夹中至少一个材质资源的父项。如果希望对定义表面显示方式的材质图表进行更深入的控制、将更多参数公开到子实例,或改变渲染时考虑已公开参数的方式,则可对这些父材质进行编辑。

    请注意,更改父材质也会自动更改从此父材质继承的所有材质实例。建议在修改之前复制父材质,对副本进行更改,然后更新特定材质实例,将新副本用作其父项。详情请参阅修改Datasmith主材质

构建Datasmith场景层级

Datasmith按如下所示从Rhino模型构建其场景层级:

  • 对于Rhino场景中的每一层,Datasmith会在虚幻中创建一个Actor来充当该层上所有对象的父代。

    与虚幻编辑器的 层(Layers) 面板中创建的层不同,该Actor层级不是扁平的。Actor就像Rhino场景中的层一样进行嵌套。

  • 在表示每一层的Actor下面,对应层上的每个实例化块体由另一个Actor表示。

    警告:Rhino块体上的支点目前在场景空间中会导入到错误位置。

  • 最后,表示每一层和每个块体的Actor包含静态网格体Actor,而后者表示构成该层或块体的实际几何结构对象。

    Rhino中的点会在虚幻引擎中重新以空Actor表示。虚幻引擎会把这些点转换成带有名称的元素并保存在场景层级中,并且不会为它们创建任何几何体。

  • Rhino中的群组不影响虚幻场景层级,因为它们被视为选择助手,而不是场景层级中的重要元素。

例如,在下图中,你会看到Rhino层级中的每一层在虚幻中都有对应的Actor。在Rhino中,类似 照明>转向灯 等仅包含几何结构对象的层在虚幻中仅包含对应的静态网格体Actor。Rhino中的 照明 层还包含两个块体实例,名为 left_headlightright_headlight。每个实例由虚幻中的一个嵌套Actor表示,这个Actor包含构成这些块体的几何结构对象。

特别鸣谢:本页所用的模型由Turbosquid 用户tomashorin.design 倾情贡献。

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