Language:
Page Info
Engine Version:
Share

FBX静态网格体流程

FBX导入流程中加入 静态网格体 支持后,将网格体从3D软件加入虚幻引擎4的操作便极为简便。网格体导入后,应用到3D软件中网格体的材质纹理(仅限漫反射和法线贴图)也将被导入,并用于生成应用到虚幻引擎4中网格体的材质。

利用FBX导入 静态网格体 所支持的功能:

当前,将多个拥有自定义碰撞的网格体导入一个单一文件中时,只有第一个网格体的碰撞才会被导入。

虚幻 4 的 FBX 导入管线采用 FBX 2013 版本。在导出过程中使用不同的版本可能会导致不兼容。

此页面包含Autodesk Maya和Autodesk 3ds Max二者的信息。请在下方选择您偏好的内容创建工具,之后页面便只会显示与选中工具相关的内容。

选择3D美术工具

Autodesk Maya

Autodesk 3ds Max

常规设置

通常而言,您可以随意使用任何工具和方法来创建 静态网格体。为将网格体顺利导出和导入到虚幻编辑器并使其拥有正常功能,在进行UV设置、网格体放置等操作时需要注意以下几点。

枢轴点

虚幻引擎中网格体的枢轴点决定了执行任意变换(平移、旋转、缩放)时所围绕的点。

pivot.jpg

从3D建模软件中导出网格体时,枢轴点固定位于原点处(0,0,0)。因此最好在原点处创建网格体,使原点位于网格体的一个角上,以便在对齐到虚幻编辑器中的网格时进行恰当的对齐。

pivot_origin.jpg

三角剖分

因为图形硬件仅处理三角形,所以必须对虚幻引擎中的网格体进行三角剖分。

tris.jpg

进行网格体三角剖分的方法有几种。

  • 仅使用三角形进行网格体建模。这是最佳方案,能对最终结果进行最大程度的控制。

  • 在3D软件中三角剖分网格体。这是较好方案,在导出之前可以进行清理和修改。

  • 让FBX导出器三角剖分网格体。这是普通方案,无法进行清理,但适用于简单网格体。

  • 让导入器三角剖分网格体。这是普通方案,无法进行清理,但适用于简单网格体。

在3D软件中手动三角否分网格体是最佳方案,此方法能控制边缘的方向和放置。自动三角剖分可能带来意料之外的结果。

tris_bad.jpg

UV纹理坐标

虚幻引擎4中的FBX流程支持多个UV集的导入。对 静态网格体 而言,这通常用于处理漫反射的一个UV集。对使用FBX流程的 静态网格体 UV进行设置时无特殊要求。

创建法线贴图

创建低分辨率渲染网格体和高分辨率的细节网格体即可直接在多数建模软件中创建网格体的法线贴图。

SideBySide.jpg

高分辨率细节网格体的几何体可用于生成法线贴图的法线。Epic的内部工作流中加入了XNormal,在虚幻引擎4中渲染时能够生成质量更佳的法线。欲知此流程的更多详情,请参见 法线贴图创建指南

材质

应用到在第三方软件中建模的网格体上的材质将随网格体一同导出虚幻引擎。这样便简化了导入过程,因为无需再将纹理单独导入虚幻引擎,也不需要进行材质创建和应用等操作。使用FBX流程时,导入进程可以执行全部操作。

也需要以特定方式对这些材质进行设置,网格体拥有多个材质、或网格体材质的排序很重要时(举例而言:角色模型的材质0需用于躯体,材质1需用于头部)尤为如此。

欲知设置材质进行导出的完整细节,请参见FBX材质流程 页面。

碰撞

简化的碰撞几何体对优化游戏中的碰撞侦测十分重要。虚幻引擎4在 静态网格体编辑器 中提供了创建碰撞几何体的基本工具。但在某些情况下,最佳方案是在3D建模软件中创建自定义碰撞几何体,然后将其随渲染网格体一同导出。通常而言,这适用于对象不需要发生碰撞的开放或凹陷区域网格体。

举例而言:

  • 门道网格体

  • 拥有窗框的墙壁

  • 形状古怪的网格体

导入器基于碰撞网格体的名称对其进行识别。碰撞命名语法应为:

网格体前缀和命名

描述

UBX_[RenderMeshName]_##

盒体在Max中使用 Box(盒体) 对象类型来创建、在Maya 中使用 Cube(立方体) 多边形基元来创建。不能以移动顶点或使其改变形状,使其变为矩形棱柱之外的其它形状,否则其将无法正常使用。

UCP_[RenderMeshName]_##

胶囊体以 Capsule(胶囊体) 对象类型来创建。胶囊体完全不需要过多分段(8段为佳),因为它将被转换为一个真正的胶囊体进行碰撞。和盒体一样,不能对单个顶点进行移动。

USP_[RenderMeshName]_##

球体以 Sphere(球体) 对象类型来创建。球体完全不需要过多分段(8段为佳),因为它将被转换为一个真正的球体进行碰撞。和盒体一样,不能对单个顶点进行移动。

UCX_[RenderMeshName]_##

凸体可以是完全闭合的任意凸面3D形状。举例而言,盒体也可以是凸体。下方的图表将解释如何区分凸体:Convex.gif

警告和注意事项

  • RenderMeshName 名称必须与3D软件中碰撞网格体关联的渲染网格体的命名一致。如果3D软件中渲染网格体的命名为 Tree_01,那么碰撞网格体将与渲染网格体处于同一场景中,命名为 UCX_Tree_01,之后其将随渲染网格体导出到同一个FBX文件中。如果需要为一个网格体设置多个碰撞对象,可以使用额外的辨识符对其命名进行扩展,如:UCX_Tree_01_00UCX_Tree_01_01UCX_Tree_01_02,以此类推。这些碰撞对象均会和此网格体相关联。

  • 当前球体仅应用于钢体碰撞和虚幻引擎的零范围追踪(如武器),而不应用于非零范围追踪(如玩家运动)。如 静态网格体 并非等分缩放,则球体和盒体将无法正常使用。通常需要创建 UCX 基元。

  • 碰撞对象设置完毕后,便可以把渲染和碰撞网格体导出到同一个FBX文件中。将FBX文件导入虚幻编辑器时,它将找到碰撞网格体,将其从渲染网格体上移除,并将其转换为碰撞模型。

  • 将非凸面网格体分解为凸面基元是非常复杂的操作,还可能产生不可预知的效果。另一个方法是在3D MAX或Maya中将碰撞模型分解为凸面块。

  • 如一个对象的碰撞由多个凸包所定义,那么这些凸包相互未交叉时产生的结果为最佳。举例而言,如果一个棒棒糖的碰撞由两个凸包所定义(一个用于糖果、另一个用于棒),那么两者之间应留有空隙。详情如下所示:

CandyCollision.png

  1. UCX_Candy

  2. 碰撞表面之间的小缝隙

  3. UCX_Stick

插槽

在游戏中通常使用插槽来将一个对象附加到另一个对象(可以是骨架网格体、也可以是静态网格体)。虚幻引擎4中拥有在静态网格体编辑器中创建插槽的工具。有时可能需要在3D建模软件中对插槽进行设置,然后再随渲染网格体导出。可相对于骨架网格体上的骨骼或静态网格体的大小对插槽进行平移、旋转和缩放。

如要在建模软件中使用插槽,需要使用一个带 SOCKET_ 前缀的虚拟或助手对象。

网格体前缀和命名

描述

SOCKET_[RenderMeshName]_##

将此用于建模软件中的任意虚拟或助手对象,以便将插槽指定到网格体。

警告和注意事项

  • RenderMeshName 名称必须与3D软件中插槽对象关联的渲染网格体的命名一致。如果3D软件中渲染网格体的命名是 Object_01,则插槽对象应与此网格体处于同一场景中,命名为SOCKET_Object_01,并随渲染网格体导出到同一个FBX文件中。如果一个网格体需要多个插槽对象,则以额外的辨识符来延展其命名,如SOCKET_Object_01_00、SOCKET_Object_01_01、SOCKET_Object_01_02,以此类推。这些插槽皆与该网格体相关联。

  • 为网格体创建插槽时,可导入虚幻引擎4的插槽只能拥有一个网格体FBX设置。举例而言,如果需要将两个渲染网格体设为单独的资源,则需要将其导入为单独的FBX文件。这意味着无法导入多个网格体并将插槽指定到每个单独的网格体;如果两组渲染网格体拥有其自身的插槽,其将无法正确导入。举例而言,如果Object_01带SOCKET_Object_01_00,另一个渲染网格体Box_01带SOCKET_Box_01_00,此时便无法让插槽随这些网格体一同导入。它们需要导出为独立的FBX文件。

顶点颜色

可以通过使用FBX流程来转移 静态网格体 的顶点颜色。无需特殊设置。

vertex_color.jpg

导出网格体

静态网格体 可以单独导出,也可把多个网格体导出到一个单独的FBX文件中。除非在导入时启用 组合网格体(Combine Meshes) 设置,否则导入流程将会将多个 静态网格体 在目标包中分离为多个资源。

虚幻 4 的 FBX 导入管线采用 FBX 2013 版本。在导出过程中使用不同的版本可能会导致不兼容。

  1. 在视口中选择要导出的网格体。

    maya_export_1.png

  2. 文件(File) 菜单中选择 导出选项(Export Selection)(如果需要无视选择导出场景中的所有内容,则选择 导出所有(Export All)

    maya_export_2.png

  3. 导入(Export) 对话框中:

    • 选择UE4项目中的 Content 文件夹(1)

    • 为文件输入一个命名并将其设为FBX导出(2)

    • 设置导出选项(3)

    • 点击 导出所有(Export All)(4)

    maya_export_3.png

    上述“几何体”类型中的设置是将 静态网格体 导出到虚幻引擎4的最基础要求。

  4. 找到项目的 Content 文件夹。此处有添加的FBX文件。

    maya_export_4.png

  5. 虚幻编辑器打开时(如未打开,则下次运行时)将出现一个 FBX导入选项(FBX Import Options) 对话,可点击 导入(Import)导入所有(Import All)

    ImportDialog_Windows.png

    ImportDialog_Mac.png

    可保留导入的默认选项。请参见FBX导入选项参考 ,了解每个选项的详情。

  6. 资源导入后,即可将其从 内容浏览器 拖放到关卡中。

    max_export_7.png

    上例中(作为导入选项的部分)导入了 材质纹理

  1. 在视口中选择要导出的网格体。

    max_export_1.png

  2. 文件(File) 菜单中选择 导出选中项(Export Selected)(如果需要无视选择导出场景中的所有内容,则选择 导出(Export)

    max_export_2.png

  3. 在UE4项目中选中 Content 文件夹(1),再选中FBX文件的命名(2),然后点击max_save_button.jpg按钮。

    max_export_3.jpg

  4. FBX导出(FBX Export) 对话中设置选项,然后点击max_ok_button.jpg按钮来创建包含网格体的FBX文件。

    max_export_4.png

    上述“几何体”类型中的设置是将 静态网格体 导出到虚幻引擎4的最基础要求。

  5. 找到项目的 Content 文件夹。此处有添加的FBX文件。

    Maya_Export_Windows.png

    Maya_Export_Mac.png

  6. 虚幻编辑器打开时(如未打开,则下次运行时)将出现一个 FBX导入选项(FBX Import Options) 对话,可点击 导入(Import)导入所有(Import All)

    ImportDialog_Windows.png

    ImportDialog_Mac.png

    可保留导入的默认选项。请参见FBX导入选项参考 ,了解每个选项的详情。

  7. 资源导入后,即可将其从 内容浏览器 拖放到关卡中。

    max_export_7.png

    上例中(作为导入选项的部分)导入了 材质纹理

导入网格体

  1. 点击 内容浏览器 中的![]button_new.png)按钮并选择 导入。在打开的文件浏览器中找到并选中需要导入的FBX文件。注意: 可能需要在下拉菜单中选择import_fbxformat.jpg,过滤掉不需要的文件。

    import_file.jpg

    导入资源的路径取决于导入时 内容浏览器 的当前位置。在执行导入前必须导航至正确的文件夹。导入完成后也可将导入的资源拖入一个新文件夹。

  2. 导入 对话中选择正确的设置。多数情况下均可使用默认设置。在FBX导入对话 部分可了解到所有设置的完整详情。

    StaticMeshImportOptions.png

  3. 点击button_import.png按钮来导入网格体。如果导入过程成功,将在 内容浏览器 中显示最终的网格体、材质和贴图。

    ImportedMeshAndTex.png

    虽然纹理和材质将随静态网格体导入,但只有 颜色(Color)法线(Normal) 将被自动连接(假定Max/Maya中使用了支持的材质 );高光(Specular) 贴图也将被导入,但不会连接;其他贴图(如 漫反射(Diffuse) 槽中的 环境光遮蔽(Ambient Occlusion) 贴图)则不会被导入。最好的方法是对材质进行检查,连接所有未连接的贴图,并检查哪些贴图未导入。双击 新材质并将可用纹理连接到其相应的输入中即可。

    静态网格体编辑器 中查看导入的网格体并启用显示碰撞后,即可验证进程是否正常进行。

另外还可以从Windows点击并将一个FBX文件拖入 内容浏览器,此操作将呼出导入对话。

静态网格体LOD

为将网格体逐渐远离相机而产生的性能影响降至最低,可以在游戏中使用 静态网格体 的细节级别(LOD)。通常而言,这意味着每个细节级别拥有的三角形数量更少,或对其应用的材质更为简单。

lods.jpg

FBX流程可用于导入/导出这些LOD网格体。

LOD设置

常规

通常而言,LOD的处理方式是创建复杂程度不一的模型,从完整细节的基础网格体到最低细节的LOD网格体。这些LOD网格体应该全部对齐,拥有相同的枢轴点且占有相同空间。每个LOD网格体可以指定完全不同的材质,包括不同数量的材质。这意味着基础网格体可以使用多个材质在近处产生理想的细节;但低细节网格体可以使用一个单独的材质,因为细节不甚明显。

  1. 选中所有网格体(基础和LOD网格体),按从基础网格体向下到最低LOD的顺序进行选择。按顺序进行选择十分重要,以便其按复杂度进行正确排序。然后从 编辑(Edit) 菜单中选择 细节级别(Level of Detail) > 分组(Group) 命令。

    maya_lod_group.jpg

  2. 现在所有网格体都应被分入LOD组中。

    maya_lod_contents.jpg

  1. 选择所有网格体(基础网格体和LOD网格体,排序无关紧要),然后从 分组(Group) 菜单中选择 分组(Group)

    max_lod_group.jpg

  2. 在打开的对话中输入一个新组的命名,然后点击max_lod_ok_button.jpg按钮来创建分组。

    max_lod_group_name.jpg

  3. 点击max_utilities_button.jpg按钮查看 工具(Utilities) 面板,然后选择 细节级别(Level of Detail) 工具。注意: 可能需要点击max_utility_more_button.jpg 并从列表中进行选择。

    max_lod_utility.jpg

  4. 选中分组后,点击max_lod_create_button.jpg新建一个LOD集并将所选分组中的网格体添加到其中。网格体将根据其复杂度来自动排序。

    max_lod_contents.jpg

导出LOD

导出 静态网格体 LOD的方法:

  1. 在Maya中:选择LOD分组和所有碰撞几何体。

    maya_lod_export_select.jpg

  2. 执行用于基础网格体的相同导出步骤(在导出网格体 部分中有详述)。必须在FBX导出器属性中启用动画的导出。这是导出LOD的必要设置。

  1. 在3ds Max中:选择组成LOD集的网格体分组和所有碰撞几何体。

    max_lod_export_select.jpg

  2. 执行用于基础网格体的相同导出步骤(在导出网格体 部分中有详述)。必须在FBX导出器属性中启用动画的导出。这是导出LOD的必要设置。

导入LOD

内容浏览器 中,静态网格体LOD可随基础网格体一同导入,或通过静态网格体编辑器单独导入。

带LOD的网格体

  1. 点击 内容浏览器 中的![]button_new.png)按钮并选择 导入。在打开的文件浏览器中找到并选中需要导入的FBX文件。注意: 可能需要在下拉菜单中选择import_fbxformat.jpg,过滤掉不需要的文件。

    导入资源的导入路径取决于导入时 内容浏览器 的当前位置。在执行导入前必须导航至正确的文件夹。导入完成后也可将导入的资源拖入一个新文件夹。

  2. 导入(Import) 对话中选择正确的设置。默认设置即可,但必须启用 导入LOD(Import LODs)注意: 导入LOD时,导入网格体的命名将遵循默认的命名规则 。在FBX导入对话 部分可了解到所有设置的完整详情。

    ImportOptions_LOD.png

  3. 点击button_import.png按钮来导入网格体和LOD。如果导入过程成功,将在 内容浏览器 中显示最终的网格体、材质和贴图。

    ImportedMeshAndTex.png

    虽然纹理和材质将随静态网格体导入,但只有 颜色(Color)法线(Normal) 将被自动连接(假定Max/Maya中使用了支持的材质 );高光(Specular) 贴图也将被导入,但不会连接;其他贴图(如 漫反射(Diffuse) 槽中的 环境光遮蔽(Ambient Occlusion) 贴图)则不会被导入。最好的方法是对材质进行检查,连接所有未连接的贴图,并检查哪些贴图未导入。双击 新材质并将可用纹理连接到其相应的输入中即可。

    静态网格体编辑器 中查看导入的网格体时,可使用工具条最右侧的button_AutoLOD.png下拉菜单来循环切换LOD。