1.6 导入你的资源内容
1.6 Importing your own content
After you have created a 3D model, audio clip, movie clip, or texture, you can import it into your project. In this recipe, we will learn how it can be done.
在你已经创建好3D模型、声音素材、影视素材或是纹理图片后,你可以将它导入进你的项目中。在这一部分,你将学习如何做到这些操作。
How to do it...(如何去做)
Follow these steps to import an asset:
导入资源有如下这些步骤:
1.Inside the Unity editor, access the Assets menu.
1.在unity编辑器中,打开Assets菜单。
2.Select the Import New Asset… option.
2.选择Import New Asset(导入新资源)。
3.Browse to your file and click Import.
3.浏览你的文件夹,选中后点击Import(导入)。
4.Your file should be now listed in the Project browser, as shown here:
4.现在,你的文件应该在项目面板中被这样展示出来:
图1 导入资源
Unity makes a copy of your file, converts it to an appropriate format (if necessary) and saves it into the Project browser's Assets folder.
Unity会为你的文件制作备份,并将它转化为适当的形式(如果有必要)保存到项目浏览器中的Assets文件夹内。
There's more...(更多)
Creating other kinds of game objects
Here's a couple of helpful pieces of information on the subject:
这里有一些关于本节主题、有帮助的信息:
Organizing it with the Project view
通过项目视窗去组织它
Unity updates its Project view whenever a new file is added to the Assets folder. You could then save or export your work directly into that folder. You could also paste or move multiple files into there. However, you should not reorganize or rename your imported files via your OS file management system (Window's Explorer or Mac OS Finder), as this could damage important information kept by Unity about those files.
当有新文件被添加到Assets文件夹中,Unity会实时更新项目面板。你可以在项目面板的文件夹中,直接保存或输出内容,也可以粘贴或移动大量文件到这里。然而,不要利用OS文件管理系统(或者是windows浏览器)重新组织或重命名你导入的文件,如果你这么做了,会毁坏unity关于这些文件的重要的保存信息(也就是组织文件、重命名文件一定要在unity的project View中进行)。
Exporting your assets to Unity 4.x
输出你的资源到unity中(这里给的是一些在线英文教程链接,关于如何将资源从3Dmax或是Maya中导入到unity中,为了方便我会直接给出附录,如何导入)
If you are not sure about how to prepare and export your work to Unity, or which file format you should use, please check out Unity's documentation at
http://docs.unity3d.com/Document ... ortandCreation.html for a very comprehensive
guide on the subject. Some other useful pages regarding the subject are:
Importing objects from 3D Studio Max:
http://docs.unity3d.com/Documentation/Manual/HOWTO-ImportObjectMax.html
Manual/HOWTO-ImportObjectMaya.html
HOWTO-exportFBX.html
1.6 附录:将模型导入到unity中(以3Dmax为例)
1.实际上,unity可以导入任意一款3D软件对应的模型文件。这里我们主要说说在导出文件到unity之前需要注意的几个问题,这里以3Dmax软件为例。如下图,在3Dmax中随便做了个模型:
2.首先,注意模型的大小,一般来说,unity接受任意大小的3D模型,但是unity中使用的公制是米。所以在3Dmax中,请保持你的良好的建模习惯,在单位设置时,将显示单位比例设置成米,在系统单位设置时,设置为厘米(如下两幅图所示,这是unity5之前的设置,关键是系统单位要设置成厘米,后面会讲为什么)。
3.下一步注意的就是坐标点问题:
A 坐标轴归零
B 在3Dmax中默认Z轴朝上,在Maya中默认Y轴朝上,在unity中Y轴也是默认朝上的。所以我们要把Max和unity中的坐标轴同步统一一下做法。
第一,选中物体,将模式改为Local,如下图:
第二,选中影响坐标轴功能,将其旋转90度,使得Y轴朝上(其他物体也进行同样操作)。
完成Y轴朝上,就可以着手将其导入到Unity中了。
4.选中物体,导出为FBX格式(这里最好选择FBX格式,虚幻4引擎最佳支持也是FBX格式,这是一般习惯问题)。
5.之后,会进入FBX导出设置面板,如果你导出的内容没有动画,就勾Geometry下列选项即可。(依次为:TuboSmooth(涡轮平滑)、Convert Deforming Dummies to Bones(骨架转换)、Preserve edge orientation(保存边缘定位),最需要注意的是最后一个“保存边缘定位”一定要选上)。
6.如果你的模型上有动画内容,就勾上。
7.嵌入媒体选项尽量不要选择,会使整体的文件体积变大,我们要附加文件的话在unity里就可以解决,没必要在输出模型的时候添加。
8.接下来看Advanced Options中的Units选项,因为使用公制,所以Scale Factor一般设定为1.0,场景转化为厘米(如图)
9.轴转向(Axis Conversion),现在我们看到的是默认Z朝上,不过现在选择Z朝上还是Y朝上已经没有什么关系了,因为之前我们已经手动调节轴向了。(注意,接下来会讲为什么最好手动调节)
10.确定你的3Dmax版本就好,点击OK输出。就可以将FBX文件。
11.还有另一种方法将模型导入unity,就是直接将3dmax文件拖进去,简单暴力,但是会有几个问题。第一,3Dmax版本问题,就是对方没有你的3Dmax版本时,导入unity会造成导入失败。第二,轴向也会出现问题。所以FBX导出是最安全的。
12.打开unity,我在project | Assets下新建了个imported Assets | meshes文件夹(用于放置我的场景,这里命名随便,方便识别就好),选中文件夹,右键import New Assets,就会出现这个面板(如下图),选中要导入的,直接点击Import(也可以打开导入资源所在文件夹,将他们拖进来,不过需要等一下,因为系统要进行载入工作)。
13.资源导入成功(如下图)
14.然而,如果你要在Windows里重命名或是改变资源位置,会造成unity和你的模型间出现信息断裂,所以要回到unity中也重新命名,或是重新打开文件路径重新导入。
15.导入后,可以调节模型大小,在检视面板中Scale Factor,发现右侧Scale Factor是0.01(unity5以前默认为0.01)这就是为什么系统单位在FBX输是位要用厘米,你的模型单位会被缩小100倍,所以unity5以前,在Scale Factor是0.01的情况下,达到“3DMax中创建一个1m的模型导入Unity3D也是1m”的要求,保证系统单位为厘米就好。
16.但是,如果是unity5或是unity2017,我们可以看到Scale Factor默认为1(如下图),即不对导入文件进行缩放。这种情况就相当方便了,我们只需要把3Dmax中系统单位、FBX输出单位全部归为米,就可以实现“3DMax中创建一个1m的模型导入Unity3D也是1m”的要求。
17.取消勾选Import Material,这样就不会有材质附着到模型表面(当然如果模型上原来就有材质、并且你想让材质在unity中显示,就勾上),因为一般来讲,模型师是需要反复修改材质和贴图的,所以你如果把它勾上,模型和模型上的材质就一起被导入到Assets文件夹下,作为资源预备使用。如果需要修改材质贴图,就要用新的材质替换掉导入时的旧材质、并添加到模型上,所以如无特殊要求或不是游戏开发最终环节,最好先不要把材质也导入进来。不管你进行的什么选择,最后都要点击apply,表示确认了当前选择。
如果勾上了Import Material(如下图):我在3Dmax里建了一个红色方体,在unity中也显示为红色,并且会在Assets文件夹中生成一个Material文件夹,红色材质就会在这里储存。材质名称自动为01-default,是因为我在Material Naming选择了From Model’s Material,就会应用3Dmax中材质球的名字。
18.我们就可以将模型拖入场景中了(我是分开导出的,所以显示的是拆开的样子)。
19.其他问题:
Q1:为什么导出的是FBX格式而不是我们习惯的OBJ格式?
OBJ格式是一种3D模型文件格式,是由Alias Wavefront公司为3D建模和动画软件 “Advanced Visualizer”开发的一种标准,适合用于3D软件模型之间的互相转换。
这和FBX、Max这种内部私有格式不同,OBJ模型文件是一种文本文件,我们可以直接使用记事本等软件打开进行编辑和查看,因此我们这里选择OBJ模型主要是基于它开放和标准这两个特点。需要说明的是,OBJ文件是一种3D模型文件,它主要支持多边形模型(三个点以上的面)。OBJ模型支持法线和贴图坐标,可是因为它本身并不记录动画、材质特性、贴图路径、动力学及粒子等信息,所以我们在游戏开发中基本看不到这种模型格式的。
Q2:为什么要手动调节Y轴朝向?
这里我们做一个实验,下方图,是我做的一个尖状物体(为了方便区分朝向)如下图:
手动调节之后,我们可以看到:尖刺朝上,和3DMAX里面一样;绿色轴为Y轴,local和Global坐标系状态下Y轴都朝上;而且检视面板中的旋转参数值很干净,全是0。
但是,如果我们在3Dmax模型创建完成后,什么都不管,仅仅在FBX输出时调整为“Y-UP”。
之后将模型导入到Unity中,我们会发现,模型的尖刺的确像之前实验一样也朝上,但是,在Local坐标系下,Z轴(unity中蓝色为Z轴)是朝上的,而且旋转数据中,X栏里面为-90度。这样不太符合规范,还要在unity里继续调整,所以个人建议是在3Dmax中进行前文提供的手动调整。
好了今天的分享就到这里,回顾这次分享我们系统的学习了Unity官方资源包的导入和自研资源的导入的流程和注意事项。下次我们将带来Unity的摄像机和Shader的相关内容。