《虚拟现实技术课程设计【3DSMax、Unity3D等虚拟现实设计建模】.pdf》由会员分享,可在线阅读,更多相关《虚拟现实技术课程设计【3DSMax、Unity3D等虚拟现实设计建模】.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 虚拟现实技术实习报告 3DS Max、Unity 3D 等虚拟现实设计建模 2021 年 12 月 一、实习目的 1、了解和熟悉了3DS Max、Unity 3D 等虚拟现实设计建模及开发软件各自的功能和操作。2、了解并掌握利用 C#进行虚拟现实漫游系统开发的基本算法和理念。3、加深对课本所学的理论知识的理解和掌握,掌握虚拟现实技术的基本概念、原理、分类、特性等,学会利用一些常用的虚拟现实设计软件进行虚拟现实系统的开发设计。二、实习内容 设计并实现了古代小镇五侠镇虚拟现实的漫游系统。本次实习我们小组在3DS Max里进行三维场景创建、修改导出为 FBX 模型之后,导入 Unity 3D 再通
2、过使用 Unity 3D 进行三维漫游系统设计与开发,最后导出 exe 文件。三、实习实现方案 对于此次虚拟现实漫游系统设计,我们组考虑以古代小镇为背景场景设计建模漫游系统对象,所建立的漫游系统将包括小镇房屋、地形、河流、喷泉、天气变化等基本对象,使用Unity 3D 添加河流、光照、喷泉等特效;使用脚本编辑完成天气的变化;每个房屋和树木进行碰撞体添加之后完成碰撞检测功能;通过添加粒子系统完成了落叶等效果。3.1 3DS Max 简介 3DS Max 是美国 Autodesk 公司旗下优秀的电脑三维动画、模型和渲染软件,全称:3D Studio Max。该软件早期名为 3DS,是应用在 dos
3、 下的三维软件,之后随着 PC 机的高速发展,Autodesk 公司于 1993 年开始研发基于 PC 下的三维软件,终于在 1996 年 3D Studio Max V1.0 问世,图形化的操作界面,使应用更为方便。3D Studio Max 从 V4.0 开始简写成 3dsmax,随后历经 V1.2、2.5、3.0、4.0、5.0(未细分)Autodesk 坚持不懈的努力不断更新更高级的版本,逐步完善了灯光、材质渲染,模型和动画制作。广泛应用于三维动画、影视制作、建筑设计等各种静态、动态场景的模拟制作。3.2 Unity 3D 简介 Unity3D 是由 Unity Technologie
4、s 开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity 类似于 Director、Blender game engine,、Virtools 或 Torque Game Builder 等利用交互的图型化开发环境为首要方式的软件。其编辑器运行在 Windows 和 Mac OS X 下,可发布游戏至 Windows、Mac、Wii、iPhone、WebGL(需要 HTML5)、Windows phone 8 和 Android 平台。也可以利用 Unity web player 插件发布网页游戏
5、,支持 Mac 和 Windows 的网页浏览。它的网页播放器也被 Mac 所支持。四、实习步骤 4.1 步骤流程图 图 1 实习步骤流程图 基础地形构建 人物模型第一、三人称视角转换 人物模型导入 光照、天空导入 粒子效果与动态随机天气 建筑物场景制作及导入 碰撞检测 河流、喷泉、落叶等细节装饰特效制作 草地、树木、灯光效果填充 输出 exe 4.2 操作步骤 4.2.1 基础地形构建 按照设计方案,该区域地形的总体目标效果为:远处一角为高低起伏的山峰及较低的丘陵,中部大范围为平原,一条河流贯穿平原中央。因为整个基础地形是虚构想象的,因此并不需要实地的地物与相关数据以供小组成员参考。在本次实
6、习中,小组成员利用通过 Unity 3D 软件自带的地形设置(Terrain)功能,通过 Hierarchy 面板中的目标高度绘制,平滑高度两个地形绘制工具,通过设置笔刷类型,大小等完成了地形起伏的绘制,最终绘出包含高山,丘陵,平原,河道四类地物的地形图。接着利用纹理绘制工具,根据地形特点给相应地形进行贴图,最终构建出有四种贴图的完整地形。图 2 两种工具示意 最终得到的地形效果示意图如下图。图 3 地形效果图 4.2.2 建筑物模型搭建 搜集符合预期主题的合适的建筑模型,依照目标设计与地形的特点,利用3ds max 软件将建筑物模型大体分为两个部分,分别组合在一起,为小镇中央的河流预留出空间
7、。同时调整各个建筑物之间的大小比例,使其符合现实特点。最终形成一个完整的武侠小镇。部分建筑物模型如下图。图 4 部分建筑物示意 之后根据小镇的范围,在其中进行材质贴图处理,将地面,墙壁等修改成不同的石头材质,符合古风武侠小镇的风格。小镇模型搭建完成后导出3ds max 并导入 Unity 中,与之前所做的地形进行组合,形成了隐匿于山脚平原的小镇效果图。图 5 小镇效果图 4.2.3 人物模型及一三人称漫游的实现 我们首先利用 3DS Max 搭建人物模型,并将成品结果导入 Unity 3D,但是导入的人物模型因为缺少骨骼和相关的动作导致人物四肢无法运动,第三人称下人物移动类似僵尸。因此我们选择
8、了在 Asset Store 上进行了筛选,最后选择了一个日本动漫男性角色形象 Taichi 的人物模型作为我们相关的人物外表。该人物模型拥有完整的骨骼系统和部分动作动画,是一个十分完整的模型。人物模型如下图。图 6 人物模型示意 在选择,导入人物模型后。我们开始进行一三人称场景漫游的实现。首先在人物模型里设置两个 Camera,分别控制第一人称与第三人称的视角。前者放置于人物眼部位置,而后者放置于人物身后。图 7 两个相机的位置示意 之后导入 Unity 3D 中自带的 Standard Assets 包,在其中寻找第一第三人称控制组件,并将相关组件加入到人物模型中,其中包括刚体,碰撞器,第
9、一第三人称控制器等,而对于两台 Camera 根据功能不同分别导入不同的组件。对于第一人称的实现,需要在人物模型中导入第三人称控制器,刚体和碰撞器,第一人称控制器,并且在 Camera 中设置 Head Bob 组件,进行相关设置后实现在第一人称的控制下人物仍然可以进行奔跑,跳跃等动画而不是在第一人称控制的情况下毫无动作。对于第三人称的实现,需要在人物模型中取消第一人称组件,并且取消Camera 中的 Head Bob 组件。进行相关设置后可以实现第三人称视角下的场景漫游。图 8 第一人称视角 图 9 第三人称视角 最后,编写相关程序,通过打开关闭两台Camera,实现了第一人称视角和第三人称
10、视角的自由切换。图 10 视角转换核心代码 4.2.4 动态天气效果实现 本次实现的动态天气效果分为两部分进行完成:动态天空和动态天气。动态天空的实现利用 Unity 软件简单实用的 skybox 进行,将三种不同状态下的 skybox 进行混合操作,通过混合的程度调整天空最终呈现的状态。以下为操作利用的三种 skybox 的原始效果。图 11 三种 skybox 效果示意 动态天气部分,主要实现了四种天气的状态,分别为:晴、阴、雾、雪。选择了不同天气下的一些独有气象特征,利用Unity 软件的粒子系统进行完成。四种天气的特征选择为:晴天空漂浮这一层薄薄的白云;阴天空布满较厚的一层灰黑色云;雾
11、地面附近笼罩一层接近白色的肉眼可见雾气;雪天空持续落下朵朵洁白雪花。下图为阴天的效果图。图 12 阴天效果示意 最终通过编写程序实现不同天气的随机切换以及相应天空的同时转换。具体效果为:(1)天气随机自动变化;(2)天空自动变化;(3)天空与天气的变化相一致(如晴天时天空明亮,阴天时天空昏暗,伴有乌云)。4.2.5 细节效果装饰 针对场景中的不同地区,分别进行了树木、花草、喷泉、落叶等细节效果装饰,使得整个小镇环境更加优美真实,符合武侠小镇的风格。对于场景中的树木、花草,我们利用相关材质贴图进行实现。对于场景中的喷泉,我们在 Asset Store 中下载了 Fluvio 插件,利用插件中丰富
12、的选项设置来对喷泉喷口类型,水珠材质颜色,水珠大小频率等进行设计,并且与场景中的喷泉口建筑对接,实现了喷泉口喷泉的效果。最终设计的结果如下图。图 13 喷泉效果示意 对于场景中的落叶,我们利用粒子系统进行实现,在Unity 粒子系统中设置粒子区域的大小,频率并将材质改为落叶材质,最终实现了在河流两旁的树木落叶的特效。图 14 落叶效果示意 对于场景中的河流,我们利用 Unity 自带的 Standard Assets 包,在其中寻找水面材质,并且对水面区域的高度,范围,材质等进行了设置,将其置于河道和喷泉水潭中。最终实现了水面特效,在场景中水面反射天空光照出现波光粼粼的效果。图 15 河流倒影
13、示意 4.2.6 碰撞检测 为了让最终成果显得更为具体真实,不会出现如人物穿墙而过之类的错误场景,对构建的小镇建筑模型、地面、树木等各种再真实环境中会阻挡人物的物体,根据各自的形状等特点进行了不同效果的碰撞检测,而对于花草等物体,不对实现碰撞检测,使得最终效果更加真实。4.2.7 成果输出 在 Unity 中选择 Build,并在相关界面中进行输出类型等设置,最后选择将成品输出在 win 系统中,生成.exe 文件。实习收获 1 完成内容(1)基础地形的构建 通过 Unity 自带的地形制作工具进行地形的绘制和贴图,最后完成了四类不同地形的地貌和纹理的绘制(2)人物模型的筛选导入与一三人称漫游
14、的实现 选择相关人物模型并且通过 Unity 自带的资源包,以及相关相机转换代码的编写,实现了单独的一,三人称漫游以及一三人称漫游的自由转换(3)落叶,水面,喷泉相关特效的实现 在 Unity 自带的 Standard Asset 包中寻找河流材质,经过材质,形状,大小的设置后在河道和喷泉水池中放置了水面特效。在 Unity 中利用 Asset Store 中下载 Fluvio 插件,通过材质,形状,喷泉口类型等相关参数的调节实现喷泉效果,并将其放置与喷泉建筑中。在 Unity 中利用粒子系统设置了落叶特效的材质,特效范围等参数,最终在河道两旁的树中实现了落叶特效。(4)现场答辩展示 2 个人
15、感想 本次实习,我们更多的是自己利用 Unity 自带的功能来实现相关的功能,如一三人称漫游等,但是自己主动编程的内容很少,对于我个人而言仅仅只有一三人称自由切换部分。从目前的效果来看,Unity 是一个很强大的游戏引擎,但是如果我们要更加详尽的研究 Unity,实现更多的功能,就必须要编写代码才能实现了。对于该软件,我们现在只是开了一个头。此外,我认为一个好汉三个帮,我们遇到不会的情况下一定要及时的请教老师和有相关经验的同学,这样可以减少我们很多不必要的精力,将更多的内容用于创意设计和具体内容的实现上。在第一人称漫游中,用我们在使用模型的时候出现了一些问题,导致人物模型无法移动,经过了对代码的仔细研究才发现问题出现在人物比例上,最后通过调节人物模型才解决了该问题。从中我发现了各种控件实际上是已经编写完成的代码的可视化结果,对于自带的功能我们仍然有很多需要学习的地方。