摘 要:当下功能强大的三维建模软件如3ds Max、Maya等,能制作精美的三维模型,而后导入三维模型到Unity3D开发引擎中构建各种形态的、美观的三维游戏或虚拟场景,但三维模型往往在开发引擎中会出现多种问题,如无法添加贴图、找不到导入模型、大小不符合规范、渲染时无阴影等。文章着重研究三维建模软件导出FBX格式三维模型和导入Unity3D开发引擎过程中出现的问题,以及这些问题的解决方法,方便后期游戏开发或虚拟现实中应用三维模型,增强Unity3D项目的吸引力。
关键词:Unity3D;三维模型;导出问题与解决
中图分类号:TP391 文献标识码:A 文章编号:2096-4706(2024)20-0023-04
A Solution to Testing of 3D Model Export Problems and Construction of Model Scenes Based on Unity3D
LIN Sumei, SHI Yuemei
(School of Artificial Intelligence and Big Data, Chengdu College of Arts and Sciences, Chengdu 610401, China)
Abstract: At present, good 3D modeling software such as 3ds Max, Maya and so on, could produce beautiful 3D models, and import the 3D model into the Unity3D development engine to build various forms and beautiful 3D games or virtual scenes. However, the 3D models often present a variety of problems in development engines, such as unable to add a map, can not find the import model, the size does not meet the specification, rendering without shadow, and so on. This paper focuses on the problems arising in the process of exporting the 3D model with FBX format by 3D modeling software and importing the Unity3D development engine, and the solutions to the problems. It is convenient to apply 3D models in later game development or Virtual Reality and enhance the attractiveness of Unity3D projects.
Keywords: Unity3D; 3D model; problem export and solution
0 引 言
当下市场商用中使用较多的建模软件是3ds Max、Maya或C4D、LightWare等,通过它们易懂的软件界面、强大的功能,可制作出各式各样模型。尽管如此,也会有导出问题。此文着重研究从三维软件导出的.FB三维模型,在Unity3D游戏开发引擎中检验三维模型导出是否有问题,并处理规范化模型,构建虚拟现实场景,方便后期游戏开发或制作虚拟现实项目[1-3]。
1 Unity3D开发引擎平台
本案例选用当下比较流行的游戏开发工具是Unity3D游戏开发引擎,是由Unity Technologies公司开发的一款集建筑可视化、三维游戏等多源的、可交互的软件开发引擎。Unity意为“团结”,核心是告诉开发者,游戏开发项目是需要团队相互协作完成。故此案例选用游戏项目团队中美工组前期完成的三维模型,再由开发组接受三维模型,继续完成游戏项目。双击桌面unity3D软件图标,登录用户名后,可打开Unity3D游戏开发引擎。Unity拥有强大的3D场景界面视窗,在一些简易的游戏编创过程中,开发者甚至可以通过其进行可视化的游戏设计与编辑。Unity由菜单栏、工具栏以及五大视图所构成,界面构成亲和科学,可供游戏开发者在较短的时间内掌握相应的基础操作方法[4]。
Unity的基本界面布局共包括菜单栏、工具栏及五个主要的视图操作窗口。五个主要的视图操作窗口分别为Hierarchy(层级视图)、Project(项目视图)、Inspector(审查器视图)、Scene(场景视图)与Game(游戏视图)[5-6]。
俗话说“工欲善其事,必先利其器”。Unity3D游戏开发引擎是开发VR游戏最重要的工具之一。如果想要制作一套时装,同时出现剪刀与扳手两种工具,通常会毫不犹豫地选择剪刀,这就是需要的工具,如果选择使用扳手,那么它将毫无帮助。正如想要制作一款有魅力的游戏,想要的工具就可以是Unity3D开发引擎。Unity3D开发引擎中自带有Unity资源商店,英文全称为Unity Assets Store,资源商店中为用户提供了丰富的下载资源,如人物模型、动画、粒子特效、音乐特效及功能脚本等,也提供了形态各异的三维模型、动画。开发者点击Unity3D开发引擎界面“窗口”菜单,选择“资源商店”,在工作区可见资源商店,再单击“Seach Online”可在浏览器中打开资源商店。如在搜索框中搜索“Hamster 3D”,通过关键词Hamster和3D可搜索三维地鼠模型,资源商店提供相应的资源,开发者可根据当前需求进行下载与导入相应资源。但Unity资源商店虽资源丰富,缺少灵活性,为适应生产实际,开发者还是需要独立地创建模型,尤其是中高级模型[7-10]。
2 开发引擎中三维模型
在Unity中复杂世界X是由大量简单物体组成,需要从最基础的物体开始添加。在Unity场景中可以创建3D几何物体对象,如球体、立方体、圆柱体、水平面、胶囊体等,可以使用基本几何体去构建物品或场景模型等。在Unity3D开发引擎界面层级视图,点击创建按钮,选择3D对象,选择对应三维模型,可创建不同的基本几何体。如可创建两个球体、一个圆柱体构建哑铃。
3 FBX格式的三维模型
三维模型选用可爱造型的三维地鼠模型和地鼠场景模型,前期已经在3ds Max软件中制作完成,并导出为.FBX模型,如图1所示。
Unity游戏引擎支持的模型文件不一定全部是FBX格式的3D模型。答案是Unity这款具有超强通用性的游戏引擎,除了支持.fbx格式文件外,还能支持大部分三维动画制作的文件。目前,Unity支持多种主流的3D模型文件格式导入:有通用的模型文件,如.fbx、.obj格式和原始模型文件,如.max、.mb、.blend等。其中第二种方式需要在电脑安装模型软件。通常选用fbx格式的模型文件,原因是它具有节省资源,文件小的特点,且它灵活性高,可减少项目工程的复杂程度。
4 导入Unity3D引擎
资源导入Unity3D引擎的方法有多种,这里介绍两种:一种是以Unity资源包导入,一种是以文件夹/文件的形式直接导入。
第一种以Unity资源包导入Unity3D开发引擎。首先准备好资源包(文件扩展名为.unitypackage),点击Unity3D开发引擎界面的资源菜单,选择“导入”,在弹出对话框中找到对应的资源包,即导入。获取资源包的方法,可以在Unity资源商店里面下载和导入;也可以准备好Unity工程项目,点击Assets文件,点击“资源”菜单,点击“导出”,选择存放资源包的位置,点击确认,可生成当前Unity3D工程项目的资源包(文件扩展名为unitypackage)。
第二种,右击Unity3D开发引擎界面项目视图下Assets文件夹,选择新建文件夹Moles,用于专门存储三维地鼠模型,将FBX三维模型文件直接拖入该文件夹内,即导入三维模型,并在Unity3D引擎中可见三维模型缩略图,如图2所示。
5 规范化配置模型
导入模型后,通常需要对三维模型进行规范化配置操作。规范化操作至少包括对三维模型设置缩放系数、网格压缩、生成光照贴图等。缩放系数,是建立在以立方体(长宽高为1米)为对比三维模型,对照生活中相似事物,设定缩放系数,使三维地鼠模型符合现实生活,方便后期构建虚拟世界中场景模型。设置三维地鼠模型的Model选项下,缩放系数为10。
规范配置操作1:设置模型资源的Model面板属性中Scale Factor属性、Mesh Compression属性、Generate LightMap属性。
Scale Factor属性,中文名称为缩放系数:用于矫正不同软件、不同单位创建的模型资源的大小。即修改Scale Factor属性参数值,使3D模型大小贴近生活,提升用户的VR体验指数。不能直接到Unity的SCence视图中直接修改模型的大小,否则可能影响模型的整体参数如重力、大小等方面。
Unity游戏引擎中物理系统默认游戏世界中一个单位等于1米。也就是说如果在Unity中新建一个Cube(立方体),立方体的长宽高都是1米。Unity默认的系统单位为“米”,为操作方便,在三维软件中应尽量也使用“米”作为单位。各种三维软件系统在设置成米制情况下与Unity系统单位的比例关系如表1所示。
三维软件中制作3D模型单位不是米,却也能成功地导入Unity中,原因是模型能否成功地导入Unity与模型文件格式有关,与三维软件使用的单位无关,但三维软件中使用的单位与Unity中不一致时,会导致导入Unity后的模型大小与现实生活中的大小有出入,或者看不见模型。那出现这种状况时,可以在Unity中以Cube立方体为长宽1米的参考物体大小,结合生活常识,去设定整个场景大小。具体配置场景大小步骤如下:
1)拖动Ground模型到Scence视图中,创建立方体Cube。
2)比较立方体Cube与Gound模型的大小,以Cube为长宽为1米的大小,结合
生活常识,估算Gound模型的大小为30×30平方米。
3)点击在Unity中Project视图中Moles文件夹内的Gound模型,
在审查器Inspector属性查看器中设置Scale Factor属性的参数值为40。此时场景模型大小符合现实。
Model面板中第二属性是Mesh Compression,中文名称是网格压缩,用于压缩模型,减少项目文件大小。该设置有四个选项,优先选择该项。
Model面板中第三属性是Generate LightMap,中文名称为生成光照贴图UV通道,勾选后将产生光照贴图所用的第二UV通道,适用于光照烘焙中静态物体产生光照贴图。
以上属性参数值设置完成后,需要点击APPLY应用,刚刚设置的参数值才会有效,见图4。至少是以上三项都做踏实,才能达到对三维地鼠模型规范化处理。
6 检查三维模型问题
导入模型后,需要对模型添加材质,本次案例中有四个三维地鼠模型,分别对其添加材质。新建四种材质,并设置其Main Maps组件下Albedo参数添加贴图,材质图如图3所示。将这四种材质分别给对应的三维地鼠模型,效果图如图4所示。从图4可知,黄色地鼠模型贴不上材质。
检查在场景中的地鼠模型对象,发现地鼠模型被重复导出,或有空对象(如图5所示),导致材质不知道给哪个地鼠模型,故黄色地鼠模型贴不上。
导入地鼠场景模型后,场景模型也是不符合现实实际生活,需要重塑场景。
7 解决方案
7.1 处理三维地鼠模型
针对以上从建模软件中三维模型重复导出、导出多个空对象等问题,可对场景中地鼠模型对象进行处理:右击每一个地鼠模型对象,选择对其完全解压缩,为其所有子对象“解绑”,即可单独删除(Delete)空对象,或移除重复导出对象。效果图如图6所示。
在打地鼠游戏中,出现一些游戏对象物体是被反复使用的,如树木、狗、花以及不同造型的地鼠对象物体,那么这些反复被使用的物体,在Unity游戏引擎中通常被创建为预制体,也就是Prefabs。在打地鼠游戏中,以创建和应用地鼠预制体为例对如何创建预制体以及如何使用预制体进行讲解。
首先按照之前导入3D模型资源的方法,导入地鼠模型;分离地鼠模型材质,以防止模型材质贴图丢失;将地鼠模型拖入到Scene视图中,调整好大小、位置,此时可发现在Hierarchy视图下多了一个名为Hamster的游戏对象,这就是刚刚拖入Scene视图中的地鼠模型;在Project视图中Assets资源文件下,创建文件夹,名为Prefabs,将Hierarchy视图下Hamster的游戏对象拖入到该文件夹内,此时可发现Prefabs文件夹内多了一个预制体。将删除掉在Scene视图中的地鼠模型,可发现在Prefabs文件夹内预制体还在。将地鼠模型预制体拖动至Scene视图中,可见复制的地鼠对象的字体颜色变成蓝色,说明这是一个预制体实例,按Ctrl+D复制地鼠模型。类似地创建其他5种不同造型的地鼠模型预制体,在场景中共建立12个地鼠模型预制体。
给地鼠模型添加网格碰撞体,方便后期使用,如地鼠模型与其他物体进行碰撞,产生碰撞效果或地鼠落在地面上不会穿越等。
7.2 处理地鼠场景模型
导入及配置3D模型后,需要对模型进行重新整合,是它符合现实规律,重新塑造生活功能区,让用户在打地鼠VR游戏中能有身临其境的感受。
重塑生活功能区的准备工作有:分离场景材质球,准备工作:分离材质,方便对场景材质的属性进行修改。点击地鼠场景模型,在Inspector属性查看器中点击Materials材质属性面板,在Location属性中,选择Use External Materials(Legacy),点击Apply。此时分离整个场景中模型的材质成功,可以在Moles文件夹下自动生成Materials文件夹,点击可查看场景中所有材质球。准备工作做好了,可以重塑场景中生活区,贴近生活,增强用户的VR体验效果。重塑技巧通常需要使用如下几个技巧:
1)树木是集群生长。
2)生活功能区挨着住宅,饲养区远离住宅区。
3)以Cube的长宽为1米,调整地鼠和地鼠洞大小至合适。
4)适当的增加石头,丰富充实场景。
根据生活经验与重塑生活区的技巧,将整个游戏场景分为以下几部分,分别是种植区、饲养区、生活功能区、树木集群、主游戏区,如图7所示。
8 结 论
本文以三维地鼠模型为例,介绍Unity3D开发引擎平台、导入三维模型、配置2d71f5805322000dc7328c0fc3f20662bc0eca9b16c87e20aa59c3c400f896c0三维模型、检查三维模型问题、处理三维模型等环节关键技术和技巧,实现了从导入三维模型到获取规范化三维模型的流程过程,便于后期游戏开发或构建虚拟现实世界,也更好地优化系统运行流畅度和执行效率。
参考文献:
[1] 段永良,刘敏.一款学习型游戏设计与制作 [J].工业控制计算机,2024,37(1):111-114.
[2] 张钰,李佳静,朱向阳,等.ASSISTments平台:一款优秀的智能导学系统 [J].现代教育技术,2018,28(5):102-108.
[3] 吴亚峰,于复兴,索依娜.Unity 3D游戏开发标准教程 [M].北京:人民邮电出版社,2016:1-3.
[4] 许怡.虚拟现实技术发展下的数字媒体艺术设计研究 [J].鞋类工艺与设计,2023,3(19):48-50.
[5] 梁静,王敏,赵甜甜.基于虚拟现实技术的三维漫游系统设计与开发研究 [J].鞋类工艺与设计,2023,3(23):187-189.
[6] 许欣然,顾凤梅.一种基于3ds Max和Unity3D的虚拟校园系统 [J].中国科技信息,2023(14):74-76.
[7] 曲蕴慧,白新国.基于3DMax及Unity3D的博物虚拟展示系统设计与实现 [J].微型电脑应用,2022,38(4):1-3.
[8] 吴保文,杨柏军.基于3ds Max与Unity 3D的虚拟展厅图片更新的实现 [J].文山学院学报,2016,29(6):56-58.
[9] 宣雨松.Unity3D游戏开发 [M].北京:人民邮电出版社,2012.
[10] 王宇琛,黄盖先,艾鸿.基于虚拟现实技术的3D智慧校园设计与实现 [J].智能计算机与应用,2015,5(2):89-92.
作者简介:林苏美(1987—),女,汉族,四川成都人,讲师,硕士研究生,研究方向:数字媒体技术。