Unity 支持的模型格式及详细介绍

Posted Gyp郭小帅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 支持的模型格式及详细介绍相关的知识,希望对你有一定的参考价值。

1.fbx

2.glb

3.gtlf

4.obj

简述: .obj文件是Alias|Wavefront公司为它的一套基于工作站的3D建模和动画软件"Advanced Visualizer"开发的一种标准3D模型文件格式,很适合用于3D软件模型之间的互导,也可以通过Maya读写。 .obj文件是一种文本文件,可以直接用写字板打开进行查看和编辑修改。

文件特点:obj3.0文件格式支持直线、多边形、表面和自由形态曲线。直线和多边形通过它们的点来描述,曲线和表面根据它们的控制点和依附于曲线类型的额外信息来定义,这些信息支持规则和不规则的曲线,包括那些基于贝赛尔曲线,B样条,基数和泰勒方程的曲线。其他特点:1.不包含动画、材质信息、贴图路径、动力学、粒子等信息。2.主要支持多边形模型。虽然也支持曲线、表面、点组材质,但Maya导出的obj文件并不包括这些信息。3.支持三个点以上的面,这一点很有用。很多其他的模型文件格式只支持三个点的面,所以导入Maya的模型经常被三角化了,这对于我们对模型的进行再加工甚为不利。4.支持法线和贴图坐标。在其他软件中调整好贴图后,贴图坐标信息可以存入obj文件中,这样文件导入Maya后只需指定一下贴图文件路径就行了,不需要再调整贴图坐标。

基本结构:

v  368.114563 -14.971357 -240.879517

vt 0.614590 0.133400 0.000000

f 160597/75915 160598/75916 160595/75913 160594/75912 

1.顶点数据(Vertex data) 

v 几何体顶点(Geometric vertices)

vt 贴图坐标点(Texture vertices)

vn 顶点法线(Vertex normals) 

vp 参数空格顶点 (Parameter space vertices)

2.自由形态曲线(Free-form curve)/表面属性(surface attributes):

deg 度(Degree)

bmat 基础矩阵(Basis matrix)

step 步尺寸(Step size)

cstype 曲线或表面类型 (Curve or surface type)

3.元素(Elements):

p 点(Point)

l 线(Line)

f 面(Face)

curv 曲线(Curve)

curv2 2D曲线(2D curve)

surf 表面(Surface)

4.自由形态曲线(Free-form curve)/表面主体陈述(surface body statements):

parm 参数值(Parameter values )

trim 外部修剪循环(Outer trimming loop)

hole 内部整修循环(Inner trimming loop)

scrv 特殊曲线(Special curve)

sp 特殊的点(Special point)

end 结束陈述(End statement)

5.自由形态表面之间的连接(Connectivity between free-form surfaces):

con 连接 (Connect)

6.成组(Grouping):

g 组名称(Group name)

s 光滑组(Smoothing group)

mg 合并组(Merging group)

o 对象名称(Object name)

7.显示(Display)/渲染属性(render attributes):

bevel 导角插值(Bevel interpolation)

c_interp 颜色插值(Color interpolation)

d_interp 溶解插值(Dissolve interpolation)

lod 细节层次(Level of detail)

usemtl 材质名称(Material name)

mtllib 材质库(Material library)

shadow_obj 投射阴影(Shadow casting)

trace_obj 光线跟踪(Ray tracing)

ctech 曲线近似技术(Curve approximation technique)

stech 表面近似技术 (Surface approximation technique)

使用范围:3D打印机、3dmax、maya、LightWave等主流软件

Unity模型

1、Unity中使用的模型

Unity支持很多模型格式,比如:.fbx,.dae,.3ds,.dxf,.obj等等

大部分模型都不是在Unity中制作的,都是美术人员在建模软件中制作,如 3DMax、Maya等等
当他们制作完模型后,虽然Unity支持很多模型格式,但是官方建议是将模型在建模软件中导出为FBX格式后再使用

使用FBX模型格式的优势

  • 减少不必要数据,提升导入效率
  • 不需要再每台计算机上安装建模软件的授权副本
  • 对Unity版本无要求,使用原始3D模型格式可能会因为版本不同导致错误或意外

如果美术同学不知道如何导出FBX格式的模型和导出规范,可以参考Unity官网文档或者百度谷歌
美术同学在导出模型时需要注意

  • https://docs.unity.cn/cn/2019.4/Manual/CreatingDCCAssets.html
  • 坐标轴,人物面朝向为Z轴正方向,Y轴正方向为头顶方向,X轴正方向为人物右侧

2、导入模型的基本流程

  • 美术同学用3D建模软件制作好模型导出FBX格式模型资源
  • 程序将这些模型资源导入到Unity的资源文件夹中
  • 在Unity内部对这些模型进行基础设置——模型、骨骼、动作、材质

3、如何在Unity中设置模型相关内容

在Project窗口选中导入的模型,在Inspector窗口进行相关设置,4个页签分别是

  • Model 模型页签
  • Rig 操纵(骨骼)页签
  • Animation 动画页签
  • Materials 材质纹理页签

通过这4个页签对模型动作相关信息设置完成后,之后我们才能在场景中更好的使用这些模型资源

4、Model模型页签

该页签主要是用于设置比如:模型比例设置、是否使导入模型中的摄像机和光源、网格压缩方式等等相关信息。修改模型中存储的各种元素和属性,最终会影响在Unity中使用模型时的一些表现。

 5、Rig操纵(骨骼)页签

该页签主要是用于设置如何将骨骼映射到导入模型中的网格,以便能够将其动画化。对于人形角色模型,需要分配或创建Avatar(替身信息)。对于非人形角色模型,需要在骨骼中确定根骨骼。

简单来说Rig页签主要是设置骨骼和替身系统相关信息的,设置了他们,动画才能正常的播放。

  •  Avatar化身系统

3D动画的本质也是骨骼动画,为制作好的模型绑定骨骼制作动画是模型动画的制作流程。

形象的理解,对于人来说,人的整体结构都是一致的,另一个人能做的动作理论上来说我们是完全可以模仿出来的,而化身系统的本质,就是动作的模仿(复用),我们可以把一个标准人形动作通过化身系统复用到其它人形模型上,只要保证他们的关节点对应关系是一致的

6、材质纹理页签

 

以上是关于Unity 支持的模型格式及详细介绍的主要内容,如果未能解决你的问题,请参考以下文章

Unity技术支持团队性能优化经验分享

[经验分享]gpt-3.5-Turbo|unity中实现http接口调用gpt新接口以及信息处理的实现案例分享

整理分享Unity中的绘图插件

经验分享目标检测 VOC 格式数据集制作

Unity渲染管线流程

DEDECMS建立模型及分表操作方法经验分享