关于Unity和虚幻引擎(UE)3D文件格式,你知道多少?

在三维设计和开发领域,选择合适的三维文件格式对于数据交换和模型渲染至关重要。

无论你是游戏开发者、电影制作人、建筑师还是工业设计师,你都需要与3D模型打交道。面对众多的3D软件和文件格式,了解如何在不同软件间无缝交流和共享3D资产变得至关重要。

今天,我们就来探讨一下最常见的Unity和Unreal Engine(UE)支持的3D文件格式。


为什么需要了解3D文件格式?

3D模型文件格式是3D数据的容器,它们不仅存储模型的几何形状,还可能包含材质、纹理、照明信息、动画数据等。不同的应用程序有不同的需求,因此,了解各种3D文件格式的特点和用途,可以帮助我们更有效地选择合适的格式,以满足特定的项目需求。


FBX格式:3D模型的通用语言

FBX是由Autodesk公司开发的3D模型文件格式。Kaydara最初开发的FBX格式是用于Kaydara MotionBuilder的。Autodesk在2006年收购了Kaydara。

FBX格式几乎受到所有3D引擎的支持,是Autodesk开发的3D模型的专有格式。它支持顶点、索引、法线、UV坐标、材质和动画。FBX还支持许多其他类型的信息。

FBX格式主要用在不同应用程序之间交换角色动画,支持的应用程序有Cinema4D、Maya、Autodesk 3ds Max、Wings3D,支持的引擎有Unity3D,Unreal Engine 3/UDK、Unreal Engine 4、Unreal Engine 5。如果导出器可将网格修改器及动画烘培到FBX文件中,因此最终效果与Blender中的结果相同。

有两种可行的方法可以将FBX文件支持集成到引擎中:

  • 使用Autodesk官方的FBX SDK,它允许导入和导 FBX文件或具有相同用途的其他库。SDK公开了两个接口,一个是 C++ 接口,另一个是Python接口。
  • 编写自定义FBX解析器,避免对其他库的依赖。

UE(Unreal Engine)虚幻引擎支持的3D格式

Unreal Engine是一款功能强大的游戏开发引擎,它支持多种3D文件格式,以确保广泛的兼容性和灵活性。

UE引擎支持的3D文件格式包括:

FBX格式(.fbx):广泛用于角色动画和模型交换。

GLB格式(.glb):GLTF的二进制形式,适用于Web和移动平台上的3D模型交换和加载。

OBJ格式(.obj):主要支持多边形模型,支持法线和贴图坐标。

3DS格式(.max):由Autodesk公司开发,被许多三维建模、动画和渲染软件广泛支持。

STL格式(.stl):常用于3D打印和快速原型制作。

Collada格式(.dae):基于COLLADA XML框架,适用于视频游戏和电影行业。

glTF格式(.gltf):基于JSON的开放标准,适用于互联网上的实时渲染和虚拟现实应用。

REVIT格式(.rvt):用于建筑信息模型(BIM)的数据交换。


Unity支持的3D文件格式

我们都知道,Unity是一款强大的游戏开发引擎,但由于它的格式兼容问题,还是让很多3D从业者望而却步。

Unity可支持的仅仅是少数模型文件,比如.fbx、.dae (Collada)、.dxf、.obj四种格式。仅占3D领域的一小部分,除此之外在市面上存在的百余种格式想要进行Unity开发,就变得非常困难。

另外,Unity如果要作为内部使用,则只支持.fbx、.obj等少数文件格式作为其导入链,其中.fbx文件使用率更为高频,而它的特性之一,就是复杂模型应用困难,数据量一旦变大,就很难灵活开发应用。


1. 模型文件格式

Unity支持多种标准和专有模型文件格式。

Unity内部使用 .fbx 文件格式作为其导入链。最佳做法尽可能使用 .fbx 文件格式,并且不应在生产中使用专有文件格式。


2. 支持的模型文件格式

(1)标准文件格式

Unity可读取以下标准 3D 文件格式:

FBX格式(.fbx):广泛用于角色动画和模型交换。

Collada格式(.dae):基于COLLADA XML框架,适用于视频游戏和电影行业。

DXF (.dxf):DXF文件格式主要用于二维和三维设计数据的交换。

OBJ格式(.obj):主要支持多边形模型,支持法线和贴图坐标。

(2)专有文件格式

不应在生产中使用这些文件格式,应尽可能导出为.fbx文件格式。但是,有时可能需要将这些文件作为项目的一部分包含在内。

Unity可以从以下 3D 建模软件中导入专有文件,然后将其转换为 .fbx 文件:

  • ​Autodesk Maya
  • Blender
  • ​Modo
  • ​Cheetah3D

以下应用程序不使用.fbx作为中间格式。Unity必须先将其转换为 .fbx 文件之后再导入编辑器:

  • ​SketchUp
  • ​SpeedTree
  • ​Autodesk 3ds Max

3. 不支持的模型文件格式

Unity不提供对 Cinema4D 文件的内置支持。要在 Unity 中使用 Cinema4D 文件,应该将它们从专有软件导出为 .fbx 文件。

除非在计算机上安装了相应的3D 建模软件,否则保存为 .ma、.mb、.max、.c4d 或 .blend 文件的资源将无法导入。这意味着,处理 Unity 项目的每个人都必须安装正确的软件。例如,如果你使用 Autodesk Maya LT 许可证来创建 .mb 文件,并将其复制到你的项目中,那么任何打开该项目的用户也需要在他们的计算机上安装 Autodesk Maya LT。


4. SketchUp导入设置文档

SketchUp是常用于建筑结构建模的软件。Unity 直接读取 SketchUp 文件并支持以下 SketchUp 特性:

纹理和材质:Unity根据 Materials 选项卡上的设置导入它们。

组件定义和组:它们将转换为网格,并实例化为可置于场景中的游戏对象。

文件中每个场景的摄像机数据。

Unity支持 SketchUp 文件中针对每个节点的可见性设置。如果一个节点在 SketchUp 文件中为隐藏状态,Unity 默认情况下不会导入该节点。但是,可以覆盖此行为,单击 Select Nodes 按钮,在 SketchUp Node Selection Dialog 窗口中显示 SketchUp 节点层级视图。


限制

  • Linux不支持 SketchUp 导入。
  • Unity不支持 GIF 纹理。
  • Unity仅导入 SketchUp 场景中的有限数据。
  • Unity不支持或导入以下 SketchUp 特性:
    - 2D组件(文本、尺寸)
    - 动画设置
    - 属性
    - 绘图样式
    - 动态组件
    - 层
    - 线条
    - 剖面
    - 阴影设置

选择合适的3D文件格式对于项目的顺利进行至关重要。无论是Unity还是Unreal Engine,FBX和OBJ都是最常用和支持的3D文件格式。

这两种格式因其广泛的兼容性和能够包含丰富的3D模型信息而被广泛应用于游戏开发和虚拟现实项目中。了解这些格式的特点,可以帮助你更高效地在不同软件和平台间交流和共享3D资产。


本文转自:字符无限科技,转载此文目的在于传递更多信息,版权归原作者所有。如不支持转载,请联系小编demi@eetrend.com删除。

最新文章