注意事项:单位设置统一为cm;轴朝向,Maya默认y轴朝上,UE4 z轴向上;变换枢轴,UE4会将导入模型前世界中心作为枢轴中心,要旋转就需要注意了;法线,UE4内材质默认单面显示;有平滑组的话(Maya叫做软边)勾选平滑组;有贴图勾选嵌入媒体;英文命名;fbx版本。
使用FBX插件将静态网格体从3D软件导入虚幻引擎4的操作极为方便。网格体导入后,应用到3D软件中网格体的材质纹理(仅限漫反射和法线贴图)也将被导入,并用于生成应用到虚幻引擎4中网格体的材质。
利用FBX导入 静态网格体 所支持的功能:带纹理材质的静态网格体、自定义碰撞、多个UV集、平滑组、顶点颜色、LODs、多个单独的静态网格体(导入时组合成一个网格体)。
当前,将多个拥有自定义碰撞的网格体导入一个单一文件中时,只有第一个网格体的碰撞才会被导入。UE4 FBX导入通道使用 FBX 2018 。在导出时使用其他版本可能导致不兼容。
通常而言,您可以随意使用任何工具和方法来创建 静态网格体 。为将网格体顺利导出和导入到ue4并使其拥有正常功能,在进行UV设置、网格体放置等操作时需要注意以下几点。
1、枢轴点
虚幻引擎中网格体的枢轴点决定了执行任意变换(平移、旋转、缩放)时所围绕的点。
从3D建模软件中导出网格体时,枢轴点固定位于原点处(0,0,0)。因此最好在原点处创建网格体,使原点位于网格体的一个角上,以便在对齐到虚幻编辑器中的网格时进行恰当的对齐。
2、三角剖分
因为图形硬件仅处理三角形,所以必须对虚幻引擎中的网格体进行三角剖分。
进行网格体三角剖分的方法有几种。
(1)仅使用三角形进行网格体建模。这是最佳方案,能对最终结果进行最大程度的控制。
(2)在3D软件中三角剖分网格体。这是较好方案,在导出之前可以进行清理和修改。
(3)让FBX导出器三角剖分网格体。这是普通方案,无法进行清理,但适用于简单网格体。
(4)让导入器三角剖分网格体。这是普通方案,无法进行清理,但适用于简单网格体。
最好在3D应用中手动设置网格体的三角剖分,控制边的方向和放置方式。自动三角剖分可能会导致不理想的效果。
3、UV纹理坐标
虚幻引擎4中的FBX流程支持多个UV集的导入。对 静态网格体 而言,这通常用于处理漫反射的一个UV集。对使用FBX流程的 静态网格体 UV进行设置时无特殊要求。
4、创建法线贴图
创建低分辨率渲染网格体和高分辨率的细节网格体即可直接在多数建模软件中创建网格体的法线贴图。
5、材质
FBX管道将应用于网格体(静态网格体和骨架网格体)的材质和纹理从3D应用程序传输到虚幻。 要转换简单材质,可以导入源材质中使用的纹理,这样会在虚幻中创建已经将纹理连接到相应通道的材质, 最后将材质应用于导入的网格体。FBX管道简化了网格体导入流程, 自动完成过去需要人工完成的复杂流程。
(1)基本材质
FBX管道仅支持导入基本材质。可以传输的材质类型包括:Surface、Anisotropic、Blinn、Lambert、Phong、Phone E。
除了这些材质类型之外,还可以传输这些材质的仅特定功能。FBX材质管道不传输单独的设置, 但支持传输材质使用的特定贴图或纹理。
注意:目前,支持随着网格体导入的贴图(纹理)将添加到材质,某些常见类型将连接到材质的默认输入,但某些则需要手动连接。 此外,一些不太常见的贴图类型可能无法导入,例如Maya中用于环境光遮蔽的漫反射通道。
(2)多种材质
网格体自身可以应用若干材质,每个材质覆盖网格体的特定表面,而FBX能够处理包含多个材质的网格体的导入(假设它们已经在3D应用程序中正确设置)。
就网格体上使用多种材质而言,Maya非常简单明了。您只需选择想要对其应用材质的网格体面,然后应用材质即可(face material)。
针对Maya中应用于网格体的每个材质,都将在虚幻编辑器中创建一个材质,导入的网格体对于其中每种材质都有对应的材质插槽。应用于网格体后,材质仅影响网格体的对应多边形,就像Maya中一样。
(3)材质命名
虚幻编辑器在导入过程中创建的材质将根据3D应用程序中的源材质命名。具体从哪里抽取名称,则取决于是从哪个应用程序导出网格体的。如果来自于Maya,则虚幻编辑器中的材质名称取自Maya中应用于网格体的着色引擎名称。
(4)材质顺序
当材质最初从FBX导入时,材质名称将分配到材质插槽,这样重新导入FBX时,可以使用 原始导入材质名称 将材质 与正确的元素索引相匹配。这种方法比使用`Skin##`命名约定来确定材质顺序更加一致(截至4.14,不再需要`Skin##`命名约定来指定材质顺序),可以保证导入流程直接查找FBX文件中的名称, 以确定哪个分段应该与列表中已经填充的现有材质相匹配。这里的"插槽名称(Slot Name)"将匹配网格体" 细节层次(Level of Detail,LOD)"部分中的"材质名称(Material Name)"下拉选择。
如果您将鼠标悬停于 插槽名称(Slot Name) 字样上方,工具提示将列出已经导入的材质名称。4.14之前导入的任何静态网格体或骨架网格体将在工具提示中显示`None`材质名称。
(5)添加或移除材质插槽
要添加或移除任何材质插槽,请使用"材质(Materials)"列表顶部的 添加 ( + )按钮和"插槽名称(Slot Name)"旁边的 移除 ( x )按钮。添加的插槽可以用来覆盖较低LOD分段,但不能覆盖基本LOD。
(6)纹理导入
如果材质在3D应用程序中分配了纹理作为漫反射或法线贴图,只要在 FBX导入属性(FBX Import Properties)中启用了 导入纹理(Import Textures) ,就可以导入这些纹理。
将在虚幻编辑器中新创建的材质中将构建纹理取样表达式,导入的纹理将分配到该纹理取样。系统还会向材质添加纹理坐标表达式,并将它连接到纹理取样的 UV 输入。但是,您需要将某些纹理连接到它们的材质插槽。
如果在3D应用程序中应用于材质的纹理格式与虚幻不兼容,或者连接到了未知材质属性(例如,Maya中的漫反射),则它们不会导入。在此情况下,以及材质中不存在纹理的情况下,虚幻编辑器中的材质将通过随机着色的矢量参数进行填充。
6、碰撞
简化的碰撞几何体对优化游戏中的碰撞侦测十分重要。虚幻引擎4在 静态网格体编辑器 中提供了创建碰撞几何体的基本工具。但在某些情况下,最佳方案是在3D建模软件中创建自定义碰撞几何体,然后将其随渲染网格体一同导出。通常而言,这适用于对象不需要发生碰撞的开放或凹陷区域网格体。
举例而言:门道网格体、拥有窗框的墙壁、形状古怪的网格体。
导入器基于碰撞网格体的名称对其进行识别。碰撞命名语法应为:
网格体前缀和命名 | 描述 |
---|---|
UBX_[RenderMeshName]_## | 盒体 必须使用常规的矩形3D对象来创建。你无法移动顶点或使其改变形状,使其变为矩形棱柱之外的其它形状,否则其将无法正常使用。 |
UCP_[RenderMeshName]_## | 胶囊体 是两端半圆的圆柱体对象。胶囊体完全不需要过多分段(8段为佳),因为它将被转换为一个真正的胶囊体进行碰撞。和盒体一样,不能对单个顶点进行移动。 |
USP_[RenderMeshName]_## | 球体 没有必要设置过多分段(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
7、插槽
在游戏中通常使用插槽来将一个对象附加到另一个对象(可以是骨架网格体、也可以是静态网格体)。虚幻引擎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文件。
8、顶点颜色
可以通过使用FBX流程来转移 静态网格体 的顶点颜色。无需特殊设置。