分类:Unity、C#、VS2015

创建日期:2016-04-05

一、常用三维软件简介

由于游戏引擎本身的建模功能相对较弱,无论是专业性还是自由度都无法同专业的三维软件相比,所以大多数游戏中的模型、动画等资源都是通过专业的三维软件来制作的,制作完成后再将其导入到Unity中使用就行了。

Unity支持几乎所有主流的三维文件格式,例如.FBX、.dae、3Ds、.dxf、.obj等。其中,最常用的三维建模软件有:3Ds Max、Blender、Maya、……等。

用户在3Ds Max、Blender或Maya中导出文件到Unity工程的资源文件夹下以后,Unity会自动更新这些资源,然后就可以在工程中使用了。

1、3ds Max

Autodesk3D studio Max(简称3ds Max或MAX)是Autodesk公司开发的基于PC系统的三维动画渲染和制作软件。3ds Max被广泛应用于广告、影视、工业没计、建筑设计、三维动画、多媒体制作、游戏、辅助教学及工裎可视化等领域。

3ds Max 2015(16.9商业版)的文件扩展名为“.max”,可利用该软件提供的fbx导出插件直接导出.fbx格式的文件(安装时已经自动包含该插件)。

通过此软件导出的.fbx文件导入到Unity后,网格(Meshes)、纹理(Textures)、动画(Animations)、骨骼(Bones)都支持。

2、Maya

Autodesk Maya是美国Autodesk公司出品的三维软件,应用领域是专业的影视广告、角色动画、电影特技等。Maya能够提供良好的3D建模、动画、特效及渲染功能,是电影级别的高端三维制作软件。Maya可在Windows、Mac os等操作系统上运行。

通过此软件导出的.fbx文件导入到Unity后,网格(Meshes)、纹理(Textures)、动画(Animations)、骨骼(Bones)都支持。

3、Blender

Blender是—个开源的、跨平台的全能三维软件,提供从建模、动画、材质、渲染到音频处理、视频剪辑等一系列动画短片制作的解决方案。Blender以Python为内建脚本,支持Yafaray渲染器,同时还内置游戏引擎,拥有极丰富的功能。

通过此软件导出的.fbx文件导入到Unity后,网格(Meshes)、纹理(Textures)、动画(Animations)、骨骼(Bones)都支持。

4、Cinema 4D

Cinema 4D是—套由德国Maxon Computer公司开发的三维软件,以极高的运算速度和强大的渲染插件而著称。Cinema 4D应用广泛,在广告、电影、工业设计等方面都有出色的表现。它正成为许多—流艺术家和电影公司的首选。

通过此软件导出的.fbx文件导入到Unity后,网格(Meshes)、纹理(Textures)、动画(Animations)、骨骼(Bones)都支持。

5、LightWave

LightWave是由美国NewTek公司开发的一款高性价比的三维动画制作软件,在生物建模和角色动画方面功能异常强大。基于光线跟踪、光能传递等技术的渲染模块,令它的渲染品质几尽完美。LightWave的11.5版(或更高)已经成为一款功能非常强大的三维动画软件,并支持大多数操作系统,而且在各个操作系统上都有一致的操作界面。

通过此软件导出的.fbx文件导入到Unity后,网格(Meshes)、纹理(Textures)、动画(Animations)、骨骼(Bones)都支持。

二、导入模型到Unity工程中的方式

导入用其他软件制作的三维模型时,Unity会将其表示为许多不同对象,包括游戏对象 (GameObject)、网格(可以根据导入选项蒙皮)、动画片段 (AnimationClip) 等。在Project下的文件夹中,主导入对象为模型预设 (Model Prefab)。

对于网格(Mesh)来说,必须使用网格过滤器 (Mesh Filter) 组件将导入的网格附加到游戏对象 (GameObject) 上。另外,要使网格可见,游戏对象 (GameObject) 还必须附加网格渲染器(Mesh Renderer) 或其他渲染组件。有了这些组件,网格就可以在游戏对象 (GameObject) 位置处可见,其确切外观取决于渲染器使用的材质。

网格筛选器 (Mesh Filter) 与网格渲染器 (Mesh Renderer) 相结合使模型出现在屏幕上。

Unity的网格导入程序提供了许多选项,用于控制网格生成并将其与其纹理和材质相关联。

1、将模型导出为.fbx或者.obj格式

这种方式先用某种三维软件导出三维文件,比如导出为.FBX文件或者.OBJ文件,然后再将导出的三维文件导入到Unity中。

这是建议的方式。

优势:

  • 仅导出所需数据
  • 使用可验证的数据(在 Unity 重新导入至三维资源包)
  • 文件通常更小
  • 鼓励使用模块化方法 - 例如,根据碰撞类型或交互性选择不同的组件。
  • 支持其他三维包(不直接支持其专有格式的三维包)。

劣势:

  • 原型和迭代的管道会导致运行速度更慢。
  • 容易丢失源工作文件和游戏数据(如导出的 FBX)之间的版本信息记录。
  • 直接导入专业三维软件的工程文件

这种方式直接导入三维应用文件到Unity中,比如直接导入用3DS Max制作的.max文件,或者直接导入用Blender制作的.Blend文件。

一般不采用这种方式。

优势:

  • 快速的迭代过程(节省源文件和 Unity 重新导入的时间)
  • 简化的初始阶段。

劣势:

  • 使用 Unity 工程的所有机器都必须安装有许可证的软件副本。
  • 无用数据会大大增加文件的容量。
  • 文件太大会降低 Unity 更新的速度。
  • 增加了故障排除的难度。

3、缩放因子(Scale Factor)和文件缩放比例(File Scale)

Unity的默认度量单位为“米”,将其他专业三维软件制作的模型导入到Unity 5.3.4中时,如果希望模型和原来的大小相同,需要设置缩放因子,其默认的比例关系如下:

导入3ds Max时,缩放因子应设置为0.01

导入Lightwave时,缩放因子应设置为0.01

导入Maya时,缩放因子应设置为100

导入Cinema4D时,缩放因子应设置为100

如果是导入的文件,Unit会再提供一个文件缩放比例,这个比例实际上就是缩放系数。

下面通过例子说明具体步骤。

三、示例—将用3ds Max 2015创建的.fbx模型导入到Unity

下面以3ds Max 2015(16.9商业版)为例,说明用专业三维软件创建模型的基本办法,以及将创建的模型导入到Unity中的基本操作步骤。

1、先解决3ds Max 2015显示驱动程序的问题

不知道什么原因,3ds Max 2015推荐的显示驱动程序(Direct3D 11.0)在本人的计算机上无法正常显示模型,只能显示线框。为了解决这个问题,需要先更改一下显示驱动程序。具体办法为:运行3ds Max 2015,选择主菜单的【自定义】->【首选项】,在弹出的窗口中,将【显示驱动程序】改为“Direct3D 9.0”,如下图所示:

修改以后,重新启动3ds Max 2015,就可以正常显示模型或线框了(F3切换)。

2、设置度量单位

由于3ds Max 2015导出的.fbx模型导入到Unity中时默认的缩放因子为0.01,为了让创建的模型导入到Unity后看到的大小一致,可将3ds Max 2015的【系统单位】和【显示单位】都设置为“厘米”。下面是具体操作办法。

启动3ds Max 2015,【自定义】->【单位设置】,如下面的左侧图所示。在下面右侧的弹出界面中,将【显示单位比例】设置为“厘米”:

  

单击上图右侧的【系统单位设置】按钮,在下面的弹出界面中,将【系统单位比例】也设置为“厘米”:

依次单击【确定】按钮,完成单位设置。

3、创建立方体

创建—个长宽高都为100cm的立方体,并将其位置移动到坐标原点。如下图所示:

4、将模型导出为.fbx格式

选中创建的立方体,然后选择【导出】->【导出选定对象】,将该模型导出到文件名为Box001.fbx的文件中。如下图所示。

记住导出的文件位置,以备下一步使用。

还有一种更简便的办法,就是直接将模型导入到Unity工程的某个文件夹下,这样就可以在Unity工程中直接双击该模型打开3ds Max 2015并编辑该模型,编辑后Unity会自动更新,不需要再复制了。

为了演示如何导入现有的模型,本节的例子并没有将模型直接保存到Unity工程下(下一节的例子再介绍这种办法)。

5、导入模型到Unity

运行Unity,打开ch03Demos工程,然后将从3ds Max 2015导出的Box001.fbx文件(如果有其他文件和文件夹,要一块导入)拖放到工程视图Assets文件夹下的Models文件夹下:

观察检视器,可看到该模型的【File Scale】为0.01,而【Scale Factor】为1:

6、使用导入的模型

将Box001.fbx拖放到层次视图中,并调整其位置,如下图所示:

7、贴图

将Texture文件夹下的砖块纹理拖放到层次视图的Box001上,就能在场景中看到该模型贴图后的效果了:

通过这个例子,我们就理解了从用3ds Max 2015创建模型到在Unity中导入并使用这些模型的基本操作步骤,以后既可以自己去创建模型,也可以直接导入别人创建好的各种复杂模型了。

【Unity】3.3 用3ds Max 2015制作模型并将其导入到Unity的更多相关文章

  1. 3ds Max怎么制作亮木材质的球体

    3DSMax怎么制作亮木材质的球体?3DSMax中想要设计一款亮木材质的球体,该怎么设置呢?下面我们就来看看详细的教程,需要的朋友可以参考下! 1.运行软件,选择材质编辑器图标: 3.双击拖拽出的材质 ...

  2. “Assign Random Colors” is not working in 3ds Max 2015

    Go to Customize -> Preferences…-> General (tab) Uncheck “Default to By Layer for New Nodes”

  3. 【Unity】3.4 将现有的3ds Max模型导入到Unity

    分类:Unity.C#.VS2015 创建日期:2016-04-05 一.简介 这一节我们用一个带有"装子弹和上膛"动画的"枪"模型,介绍在3ds Max 20 ...

  4. 基于点云的3ds Max快速精细三维建模方法及系统的制作方法 插件开发

                                 基于点云的3ds Max快速精细三维建模方法及系统的制作方法[技术领域][0001]本发明涉及数字城市三维建模领域,尤其涉及一种基于点云的3d ...

  5. 教你用3ds max制作多边形小狗建模

    本教程是一篇关于用3ds max来制作多边形小狗建模的简易教程,介绍地很详细,制作出来的狗很有特色,转发过来,感兴趣的朋友可以过来学习一下! 建立一个BOX,把物体放到空间原点上(这样在以后调节中间点 ...

  6. (转)Unity与3ds Max的单位关系(使用FBX文件)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/a1780531/article/deta ...

  7. 万圣节福利:红孩儿3D引擎开发课程《3ds max导出插件初步》

    ds max文件夹,插件文件夹以及3ds max的可执行程序文件夹: 位的,这里要改成x64,否则启动程序后3ds max会提示"不是有效的win32程序"之类的对话框. 然后要将 ...

  8. 3ds Max导出FBX动画模型在OSG中使用

    3ds Max做好动画模型 导出选项:包含-动画-附加选项-勾选使用场景名(这样动画名就是场景名)高级选项-单位-勾选自动(否则导出的模型很小) 导出文件名假设a.fbx使用osgconv工具旋转坐标 ...

  9. 3ds Max光照纹理导入Unity的教程.

    原地址:http://www.cocoachina.com/gamedev/gameengine/2010/0531/1581.html 相信这个3ds Max光照纹理导入Unity的教程对游戏设计师 ...

随机推荐

  1. ps 如何将视频转换成gif?

      1.情景展示 视频转gif如何实现? 2.解决方案 通过ps可以实现. 打开ps-->打开视频文件: 功能介绍: 选中图层--> 修改持续时间,可以控制显示的内容: 修改播放速度,可以 ...

  2. springMVC自定义方法属性解析器

    使用场景例子: 用户登陆系统一般会往Session里放置一个VO对象,然后在controller里会来获取用户的userId等信息. 之前的写法是:@SessionAttributes配合@Model ...

  3. django之异常错误3(Student matching query does not exist.)

    错误提示: DoesNotExist at /blog/test2/ Student matching query does not exist. 说明:错误提示说明错误在test2中,查找数据库的表 ...

  4. Linux管道思想

    1.Linux管道 {{book | upper |lower | capfirst}} 含义:就是把前一个命令的结果当成后一个命令的输入.然后在下一个管道中输出满足条件的数据,如此继续数据的流向运动 ...

  5. 创建第一个servlet程序--HelloServlet

    这篇文章是用来纪念我第一次创建一个Servlet程序,步骤我会写得详细点,也可以参考一下,后续我会将SpringMVC 跟ssh的搭建分别更新(ps:不忙的话我会更新) 工具:java jdk 1.6 ...

  6. Makefile 和 CMakeLists.txt

    Makefile Makefile 的格式 target: prerequisites [tab]command 例子 #Makefile all:chap1 chap2 chap1: - - - : ...

  7. VS2010 lib和dll导出路径设置

    创建库文件工程时往往需要设置.lib文件和.dll文件的路径. 假设一个solution对应了多个工程,然而他们共用一些库,就可以在solution文件夹下分别添加两个文件夹lib和bin(其实放在一 ...

  8. 【Oracle+PHP】php连接oracle设定字符集,避免乱码

    数据库用oracle,当php连接oracle的时候,最好指定字符集. 查PHP手册,oci_connect的第四个参数为charset,这是关键. 首先获取oracle的字符集,运行“select ...

  9. Git/Github的使用以及与Eclipse的整合

    Git简介       Git是一个免费的.分布式的版本控制工具,或是一个强调了速度快的源代码管理工具.每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络 ...

  10. Kubernetes的Cron Job

    Kubernetes集群使用Cron Job管理基于时间的作业,可以在指定的时间点执行一次或在指定时间点执行多次任务. 一个Cron Job就好像Linux crontab中的一行,可以按照Cron定 ...