FBX导入指南
FBX是Autodesk拥有的文件格式,用于提供各种数字内容创建(DCC)应用程序之间的互操作性。大多数现代3D建模应用程序都支持导出到FBX:Autodesk Maya,Autodesk 3ds Max,Blender,Modo等。
UNIGINE的FBX导入管道允许从支持该格式的任何DCC应用程序简单地传输内容。
与其他导入方法相比,使用FBX导入的优点是:
- 静态网格物体,骨架网格物体,动画和变形目标以单个文件格式组合。
- 一个文件中可以包含多个资源。
- 在单个导入操作中导入多个LOD和变形目标。
- 材质和纹理可以与网格一起导入并应用于网格。
- 摄像机和光源也可以导入。
除了从FBX容器导入数据外,UNIGINE还提供了以下功能:将数据导出到.fbx文件。
导入FBX资源#
导入FBX资源时(就像进口任何其他资源),出现导入设置窗口:
可用的导入选项列表涵盖了可以从FBX场景导入的所有组件,包括以下内容:
网格导入选项#
Import Meshes | 从文件导入几何体网格。 |
---|---|
Use Instances | 导入带有网格物体实例的FBX。启用后,将导入单个网格,而不是多个相同的网格。如果将此类FBX添加到场景中,则“世界层次”中的所有网格都将引用存储在导入的FBX容器内的单个网格。 |
Merge Static Meshes | 将所有子静态网格物体合并为一个(以父网格物体命名)。所有网格曲面的所有曲面都将被复制并显示在Surfaces层次结构中。 |
Merge Surfaces by Materials | 启用具有相同材质的合并曲面。 |
Split by Grid |
启用导入网格的拆分。尺寸超过10000单位的模型太大,可能会出现与定位误差相关的各种伪像(抖动等)。您可以通过将网格划分为多个单独的网格来消除此类伪影。为此,只需启用此选项并设置用于网格划分的网格单元的大小(请参见下面的Grid Size参数)。 此选项不会拆分曲面。 |
Grid Size | 划分导入的网格的网格单元的大小,以单位为单位。 |
Repivot to Center | 将生成的网格的枢轴放置到其中心。可以用于其几何形状离其轴心太远的网格,因为这可能导致与定位误差相关的各种伪像(抖动等)。 |
Optimize Vertex Cache | 启用顶点缓存优化。此选项对索引的三角形列表重新排序,以提高运行时的顶点缓存利用率。可以将其关闭以加快保存过程;但是,如果保存最终版本,则应始终将其打开。 |
Correct Triangulation |
启用网格,NURBS和面片的正确三角剖分。 禁用此选项会减少导入时间,但可能会导致三角剖分错误,从而导致几何图形不正确。 |
Import Tangent Space |
导入内置切线空间数据,而不是重新计算。 如果选中该选项,但是FBX资源没有切线空间,则将使用右手坐标系的方向进行计算。 |
Import Morph Targets | 允许从文件导入变形目标。 |
Morph Target Normals |
变形目标(morph target)导入参数,该参数定义了如何导入变形目标的法线。有三种模式:
|
Use LODs | 定义是否将自动创建详细级别(LOD)用于导入的模型,以及LOD创建和配置模式。 |
详细程度#
为一个具有不同详细程度的对象创建多个变体(检出限),则应将它们作为对象的单独表面。这将允许您减少层次结构中的节点数量,并简化LOD可见性的设置。
UNIGINE 提供基于名称后缀的详细级别的自动分配和配置,使您能够在单个 FBX 文件中为模型的不同 LOD 创建和导出不同的网格。在命名这些网格时,您应该添加一个后缀来指定每个网格所代表的 LOD。您还可以在导入阶段为模型的每个 LOD 指定可见性和渐变距离,从而节省时间,因为您不必为场景中的表面调整这些设置:在 Use LODs 下拉列表中选择 Combine by Postfixes。
您还可以启用Merge Static Meshes选项以进行更多优化。
-
在 Use LODs 下拉列表中选择 Combine by Postfixes。
这将显示其他LOD设置:
- 选择存储在FBX容器中的LOD数量。
-
对于每个LOD,定义一个后缀,该后缀将用于将FBX文件中的对象分组为相应的LOD。
后缀必须与在3D编辑器中创建对象时使用的后缀相同。生成的曲面的名称如下:material_name + LOD_postfix。
- 指定每个LOD的最小可见距离。每个LOD的最大可见距离等于下一个LOD的最小可见距离。最后一个LOD的最大可见距离等于inf。
自动生成 LOD#
自动 LOD 生成功能基于meshoptimizer 库将在您只有一个高多边形模型的情况下提供帮助,从而为您节省大量手动准备细节级别的时间。
要使用该功能,请在 Use LODs 下拉列表中选择 Auto-Generated 并配置下面列出的设置 - 引擎将完成剩下的工作,并根据您的配置自动生成所有 LOD。
光照贴图选项#
UV For Lightmap | 紫外线用于光照贴图的通道。 |
---|---|
Lightmap Target Resolution | 光照贴图纹理的分辨率。 |
Unwrap UV Channel 0 | 启用自动展开紫外线频道0。 |
Unwrap UV Channel 1 | 启用自动展开紫外线频道1。 |
层次结构选项#
在资源浏览器中选择导入的FBX资源时,该辅助部分可在Parameters窗口中使用。它使您可以根据当前预览FBX资源的内容。网格导入选项。
Nodes | 从FBX资源获得的节点列表。 |
---|---|
Surfaces | 所选节点的曲面列表。 |
Use Custom Settings | 启用自定义光照贴图选定表面的选项。 |
物料导入选项#
Import Materials | 启用从文件导入材质。 |
---|---|
Assets Mode |
允许选择是使用现有材质还是用导入的材质覆盖它们。可用选项:
|
Base Material Mode |
可以选择进口材质的基材。可用选项:
|
Workflow |
提供一个界面来选择工作流程进口的基于物理的材质(如果有)。可用选项:
|
Add Asset Name as Prefix | 允许为导入的材质添加前缀,以避免名称冲突。 |
Add Prefix | 启用此选项会使每种材质的名称具有导入的FBX资源的名称作为前缀。 |
Merge Similar Materials | 可以合并具有相同设置但名称不同的材质。 |
动画导入选项#
Import Animations | 允许从文件导入动画。 |
---|---|
Import Bones Without Skin | 允许导入未连接到骨架且不影响动画皮肤的骨骼,例如,角色手中持有的武器。如果禁用,则不会导入此类骨骼,并且与之相连的骨骼(如果有)将成为孤儿。 |
Create Transform Bones for Joints | 导入动画FBX资源的关节(骨骼)的层次结构作为World Transform Bones的列表。如果禁用此选项,导入的动画对于网格仍然可以使用。 |
Joints Reorientation | 为动画和动画几何体启用更改骨骼的方向。启用后,所有骨骼的前向轴将与几何图形相同。这为程序员简化了通过代码进行动画处理的工作,减少了过多的轴操作:如果网格的前向轴为+Y,则骨骼也将为+Y。 |
Animation FPS | 每秒导入的动画的帧数。 |
Force Loop |
强制平滑循环动画的播放。 |
Looped Frames | 用于平滑循环播放动画的帧数。指定的帧数是从动画的开头和结尾开始获取的。如果指定的值超过(total_number_of_frames)/2,则使用后者。 |
其他导入选项#
Import Textures | 启用从文件导入纹理。 |
---|---|
Import Lights | 从FBX场景导入光源。 |
Import Cameras | 从FBX场景导入摄像机。 |
Skip Empty Nodes | 启用跳过空节点。复杂的CAD模型可能包含许多空节点,从而导致世界层次结构过载。您可以启用此选项,以通过忽略不包含任何有用信息的节点来简化生成的层次结构。 |
Front Axis | 提供一个接口,以选择要被视为世界坐标系的正向向量的轴。 |
Up Axis | 提供一个接口,以选择要被视为世界坐标系的向上向量的轴。 |
Scale |
几何比例乘数。 当在UNIGINE中添加到场景中时,您的网格可能需要缩放以正确适合。但是,将Scale转换应用于网格会影响其物理效果-在这种情况下,网格无法正确参与碰撞。因此,建议使用规模操纵器然后使用结果值重新导入网格,该值显示在常用参数。 |
下面描述了存储在FBX容器中的各种类型数据的特定选项。
几何学#
FBX容器中存储的最常用数据类型是多边形几何。
在导入几何图形时,请记住以下在UNIGINE中设置的网格限制:
每个网格的最大顶点数 | 4294967295 |
每目最大表面数 | 32768 |
每个顶点的最大权重数 | 4 |
要导入FBX场景中包含的3D几何数据,应启用Import Meshes选项。
导入的几何图形(与场景中的任何对象相同)在添加到世界后变为节点并可以在World Hierarchy窗口中看到。该节点的名称与导入的FBX资源的名称相同,子节点的层次结构表示包含在导入场景中的静态网格物体的层次结构。 |
您可以通过启用Merge Static Meshes选项将所有子对象合并为一个。在这种情况下,子网格物体的所有表面将被复制到单个父网格物体,并将出现在其Surfaces层次结构中。
您也可以通过启用Merge Surfaces by Materials选项合并具有相同材质的曲面。
可以在不同的3D建模应用程序中使用不同的测量系统。要调整导入几何的比例,可以使用Scale参数。
导入几何体时也可以优化顶点缓存。为此,请使用Optimize Vertex Cache选项。
Import Tangent Space选项允许导入内置切线空间数据,而无需重新计算。
材质#
FBX容器还可以在3D编辑器中存储分配给对象表面的材质。
要从FBX容器导入材质,应启用Import Materials选项。在这种情况下,将为导入的模型的曲面分配相应的材质。
以下纹理将被导入和分配(如果有):
- Diffuse (albedo) texture
- Normal map or bump map (needs to be converted into 2-channel (RG) for Unigine)
- Specular texture
- Light map
还将导入以下材质参数(如果已定义):
- Diffuse color
- Specular color and power
- Emission color
禁用Import Materials选项时,将为模型的所有曲面分配默认的mesh_base材质。
导入材质时,项目中可能已经存在具有给定名称的材质。您可以选择是否覆盖现有材质(对应的资源将被覆盖)。为此,使用了Overwrite Existing Materials选项。如果未选中,则将使用现有材质。
如果源模型包含许多具有许多相同材质但名称不同的对象(通常是从FBX文件中导出FBX文件时发生的)电脑辅助设计系统),将这些材质合并为一个材质是有意义的。为此,您应该启用Merge Similar Materials选项。
UNIGINE支持两种PBR材质工作流程:Metalness和Specular。使用Workflow选项设置所需的工作流程。
贴图#
读取材质数据时,您还可以导入存储在FBX容器中的纹理。为此,启用Import Textures选项。
动画和变形目标#
您可以从FBX文件导入骨骼动画和变形目标。
要从FBX容器导入动画,请执行以下操作:
- 启用Import Animations选项。
- 在Animation FPS字段中为导入的动画指定每秒的帧数。
要导入变形目标,只需启用Import Morph Targets选项。变形目标将作为子节点导入。
如果您有一个FBX文件,其中包含没有任何几何图形的骨骼动画,则可以通过Import Bones Without Skin将其导入到UNIGINE项目中,并使用生成的.anim文件。
灯#
您可以通过简单地启用Import Lights选项从FBX场景导入光源(如果有)。导入的光源将作为子节点添加到根节点。将执行以下转换:
以下灯光参数会自动导入到UNIGINE中,因此无需将它们设置两次:
- 浅色
- 光半径和衰减
- 光源位置和方向
摄影机#
只需启用Import Cameras选项,也可以从FBX场景导入摄像机(如果存在)。它们被转换为PlayerDummy(没有物理属性的相机)。 UNIGINE支持两种类型的投影:
- 正交(具有Z远近裁剪平面支持)
- 透视图(在FOV支持下)
要通过导入的摄像机查看场景,请在Editor Viewport窗口左上角的下拉列表中选择其名称。
将导入的FBX资源添加到世界#
要将新导入的FBX资源与其他资源一样添加到场景中,只需将其从Asset Browser拖动到Viewport窗口即可。相应的节点将被创建并显示在World Hierarchy窗口中。该节点的名称与导入的FBX资源的名称相同,并且子节点的层次结构代表3D模型中包含的单独对象。
非本机几何图形资源类型(fbx, obj, dae等)是网格的容器。如果您在Asset Browser中双击此类资源(或使用右键单击Open命令),则生成的运行时将显示存储在容器资源中的.mesh, .anim和.node文件: