概述
FBX导入通道中的静态网格物体支持使得将网格物体从3D应用程序中导入到虚幻引擎4中变得更加容易简单。这时不仅会导入网格物体,而且也会导入在3D应用程序中应用到这些网格物体上的任何材质中使用的贴图(仅漫反射贴图和法线贴图),将会自动创建材质并把它们应用到导入的网格物体上。
使用FBX导入骨架网格物体所支持的功能:
-
具有包含贴图的材质的 静态网格物体
-
自定义碰撞
-
多个UV集合
-
平滑组
-
顶点颜色
-
LOD
-
多个单独的静态网格物体(也可以在导入时组合到一个单独的网格物体中)。
一般设置
通常,您可以随意使用您想使用的任何工具和方法来创建 Static Meshes(静态网格物体) 。为了可以将所创建的网格物体顺利地导出及导入到虚幻编辑器中并使其进行正常的工作,在设置UVs、放置网格物体等方面您需要考虑几个注意事项。
支点
虚幻引擎中,网格物体的支点决定了执行任何变换(平移、旋转、缩放)时所围绕的点。
当从3D建模应用程序中导出网格物体时,支点总是位于原点处(0,0,0)。由于这个原因,所以最好在原点处创建网格物体,这样原点位于网格物体的一个角落上,从而当对齐到虚幻编辑器中的网格时可以进行正确的对齐。
三角化
虚幻引擎中的网格物体必须进行三角化处理,因为图形硬件仅处理三角形。
有很多三角化网格物体的方法。
-
仅使用三角形建模网格物体 — 最好的解决方案,提供对最终结果最大控制。
-
在3D应用程序中三角化网格物体 - 较好的解决方案,允许在导出之前进行整理和修改。
-
让FBX导出器三角化网格物体 - 一般解决方案,不允许进行清除整理但对于简单网格物体来说是有效的。
-
让导入器三角化网格物体 - 一般解决方案,不允许进行清除整理但对于简单网格物体来说是有效的。
在3D应用程序中手动地三角化网格物体将总是最好的解决方案,这样可以控制边的方向和放置位置。自动三角化处理可能会导致意想不到的结果。
UV贴图坐标
虚幻引擎4中的FBX通道支持导入多个UV集合。对于 静态网格物体 来说,这一般用于处理漫反射的一组UV集合。设置使用FBX通道的静态网格物体的UV没有特殊要求。
创建法线贴图
在大部分建模应用程序中可以通过创建低分辨率的渲染网格物体和高分辨率的细节网格物体来直接地为您的网格物体创建法线贴图。
高分辨率细节网格物体的几何体用于生成法线贴图的法线。Epic内部处理流程中引入了 XNormal,从而在虚幻引擎4中渲染时生成更好的法线。关于这个过程的更多详情,请参照法线贴图创建指南 。
材质
在外部应用程序中建模的应用到网格物体上的材质将会随着网格物体一同导出,然后会一同导入到虚幻编辑器中。这简化了导入过程,因为贴图不必再单独地导入到UnrealEd中,不需要再创建及应用材质等。当使用FBX通道时导入过程可以执行所有这些动作。这些材质也需要以特殊的方式设置,尤其是当网格物体具有多个材质或者网格物体上的材质的顺序很重要时(也就是,对于一个角色模型,材质0需要用于躯体部分,材质1需要用于头部)。关于设置材质进行导出的完整细节,请参照FBX材质通道 页面。
碰撞
简单的碰撞几何体对于优化游戏中的碰撞检测是很重要的。虚幻引擎4在 静态网格物体编辑器 中提供了创建碰撞几何体的基本工具。但是,某些时候,最好还是通过在您的3D建模应用程序中创建自定义的碰撞几何体然后再将其随同渲染网格物体导出来进行处理。一般,这适用于任何不需要和具有开放区域或凹陷区域的网格物体进行碰撞的对象。
比如:
-
Doorway(门口)网格物体
-
具有窗框的墙壁。
-
形状奇怪的网格物体。
导入器基于碰撞网格物体的名称识别碰撞网格物体。碰撞命名语法应该是:
网格物体前缀和名称 | 描述 |
---|---|
UBX_[RenderMeshName]_## | 在Max中使用 Box(盒子) 对象来创建盒式碰撞,或者在Maya 中使用 Cube(立方体)多边形图元来创建盒式碰撞。您不能以任何方式移动顶点或者使其发生变形来使它成为不是正规图元的其它形状,否则它将不能正常工作。 |
USP_[RenderMeshName]_## | 球体可以使用 Sphere(球体) 对象类型进行创建。球体根本不需要有太多的分段(分为 8 段比较合适),它将会为碰撞转换为真正的球体。就像盒子一样,您不能到处移动单独的顶点。 |
UCX_[RenderMeshName]_## | 凸面体可以是任何完全闭合的凸面 3D 图形。比如,一个盒子可以是一个凸面物体。下面的图表解释了什么是凸面体及什么不是凸面体: |
警告和注意事项
-
RenderMeshName
名称必须同3D应用程序中和碰撞网格物体相关联的渲染网格物体的名称一样。所以,如果您在3D应用程序中渲染网格物体命名为Tree_01
,那么在场景中和那个网格物体相关的碰撞网格物体一样,命名为UCX_Tree_01
** ,然后将其随同渲染网格物体导入到FBX文件中。如果您需要为一个网格物体设置多个碰撞对象,那么您可以使用额外的修饰符扩展它们的名称,比如:UCX_Tree_01_00
、UCX_Tree_01_01
、UCX_Tree_01_02
, ** 等...所有这些碰撞对象都会和那个网格物体相关联。
-
目前球体仅应用于钢体碰撞、虚幻的零粗细踪迹(比如武器),而不应用于非零粗细踪迹(比如玩家运动)。同事,如果 网格物体 不是均匀缩放的,则球体和盒体碰撞则不能正常工作。一般来说,您或许想创建 UCX 图元。
-
一旦您设立了碰撞对象,您便可以把图形及碰撞网格物体导入到同一个.FBX文件中。当您把 .FBX 文件导入到虚幻编辑器时,它将会找到碰撞网格物体,把它从渲染网格物体上移除,并将其转换为碰撞模型。
-
把一个非凸面网格物体分解为凸面图元是一个非常复杂的操作,并且可能会产生不可预测的效果。另一个方法是在 3D MAX 或 Maya 中把碰撞模型分解为凸面块。
-
当一个物体的碰撞是由多个凸面的外壳定义时,这些外壳彼此之间没有相互交叉时会获得最好的效果。比如,如果一个棒棒糖的碰撞是通过两个凸面外壳来定义的,一个用于糖果另一个用于手棒,那么在两者之间应该留有空隙,如下所示:
-
UCX_Candy
-
碰撞表面间的小间隙
-
UCX_Stick
顶点颜色
可以通过使用FBX通道来转换静态网格物体的顶点颜色。不需要特殊设置。
导出网格物体
静态网格物体可以独立地进行导出或者也可以把多个网格物体导出到一个单独的FBX文件中。除非通过在导入时启用 Combine Meshes(组合网格物体) 设置指定出了组合网格物体,否则导入过程将会把多个静态网格物体划分为目标包中的多个资源。
1.虚幻 4 的 FBX 导入管线采用 FBX 2013 版本。在导出过程中使用不同的版本可能会导致不兼容
在视口中选中要导出的网格物体。
在 文件 菜单中,选择 导出选中项 (或者,如果您想不管选中项为什么都到处该场景中的所有内容,那么请选择 导出所有 )。
选择用于导入网格物体的FBX文件的位置和名称,并在 FBX Export(FBX导出) 对话框中设置适当的选项,然后点击 Export Selection或 Export All按钮来创建包含网格物体的FBX文件。
上面的几何体类目中的设置是将 静态网格物体 导出到虚幻引擎4的最基本要求。
导入网格物体
-
在内容浏览器中点击 new 按钮。再打开的文件浏览器中导航到您想导入的文件并选中它。注意: 您可以在下拉菜单中选择 FBX static meshes(*.fbx)来过滤不需要的文件。
-
在 Import(导入) 对话框中选择适当的设置。但大部分情况下默认设置就足以满足需求。请参照FBX导入对话框 部分获得关于这些设置的完整信息。
-
点击 按钮来导入网格物体和LOD。如果导入过程成功,那么将会在内容浏览器中显示最终的网格物体、材质和贴图。
通过在静态网格物体编辑器中查看导入的网格物体并启用显示碰撞功能,您就可以判断该导入过程是否按照期望的方式进行了。
静态网格物体LOD
为了限制随着骨架网格物体距离相机的距离的逐渐变远而产生的性能影响,我们可以在游戏中使用骨架网格物体的细节层次(LODs)。一般,这意味着每个细节层次级别所具有的三角形数量将会变少、或许会给该层次级别的骨架网格物体应用更简单的材质。
可以使用FBX通道来 导入/导出 这些LOD网格物体。
LOD设置
一般
一般情况下,LODs通过创建具有不同复杂程度的模型来进行处理,包括从具有完整细节的基本网格物体到最有最低细节的LOD网格物体。这些LOD网格物体应该和同样的支点对齐并占用同样的空间。每个LOD网格物体可以分配完全不同的材质,包括不同数量的材质。这意味着基本网格物体可以使用多个材质来在近距离处产生理想的细节质量;但低细节网格物体可以使用一个单独的材质,因为细节不是那么显著。
导出LOD
要想导出 静态网格物体 LOD:
导入LOD...
在内容浏览器中,静态网格物体LODs可以随同基础网格物体一同导入,或者可以通过AnimSet编辑器单独地导入这些静态网格物体LODs。
具有LOD的网格物体
-
在内容浏览器中点击按钮。再打开的文件浏览器中导航到您想导入的文件并选中它。注意: 您可以在下拉菜单中选择 来过滤不需要的文件。
-
在 Import(导入) 对话框中选择适当的设置。默认设置应该足以满足需求,但同时请确保启用 Import LODs(导入LOD) 项。注意: 当导入LOD时,导入的网格物体的名称将会遵循默认的命名规则 。请参照FBX导入对话框 部分获得关于这些设置的完整信息。
-
点击按钮来导入网格物体和LOD。如果导入过程成功,那么将会在内容浏览器中显示最终的网格物体、材质和贴图。
通过在 静态网格物体编辑器 中查看导入的网格物体,您可以使用工具条最右侧的 Auto LOD下拉菜单虚幻切换LOD。