时间:2024-05-04
郭圣,胡辉煌,李军
(湖南涉外经济学院信息科学与工程学院,长沙 410081)
随着近些年来计算机技术的迅猛发展其三维仿真技术、虚拟现实技术、三维电子地图技术等多个领域也逐渐引起了人们的广泛关注。本文是以“湖南涉外经济学院”为案例而设计出的一款基于PC 端Unity3D 平台开发的“智慧校园”应用系统。用户可以选择不同视角在三维校园地图中体验三维漫游和情景交互功能。本系统将结合时下流行的VR 技术将学校以三维的形式展示校园真实场景来增强用户体验,从而达到学校宣传的目的。
“智慧校园系统”的功能框架,如图1 所示,本系统由三大模块组成:
第一部分是最为核心的功能——寻址功能,系统将用户选取的校园输入地点作为起始地点,然后再由用户选择终点位置,点击查询后本系统将利用Unity3D中Navigation 组件(该组件使用网格算法实现)的来计算起点与终点间的最短路径,并由寻路机器人带领用户前往目的地;
第二部分是查询功能:包括查询校园历史、校园荣誉、校园开展的专业、校园景点用户点击菜单中的校园简介,可以查询到湖南涉外经济学院的历史,开展的专业,所获得的荣誉等信息;校园景点信息查询,用户可以通过景点名称查询到与之对应的景点或者建筑物的相关图片以及文字介绍信息,还可以通过点击对应的景点跳转按钮,将视角切换至三维地中对应的景点的位置。
第三部分是附加功能:附加功能主要具体包括系统退出功能、小地图显示功能和背景音乐调节功能等。
退出功能:将系统打包成PC 端后,提供退出功能;
小地图显示功能:在地图的右上方添加一个小地图,让用户在操作界面中也能清楚的知道自己当前所在位置;
背景音乐调节功能:当用户走进校园的树林中可以听到鸟儿清脆的声音,在湖边也听到潺潺的流水声,在校园其他地方漫游可以听到动人的背景音乐;使其虚拟校园世界更加真实有趣。
图1 智慧校园系统的功能框架图
“智慧校园系统”界面设计框架,如图2 所示。主要功能为“最短路径查询”(最短路径计算并显示),“学校简介”(对学校信息,专业,师资力量,所获荣誉等进行介绍),“景点简介”(对校园的景点以及建筑物进行介绍),退出(退出系统),“背景音乐调节”(对背景音乐进行调节),“小地图”(显示学校平面图)。“智慧校园系统”界面设计框架,如图2 所示。主要功能为“最短路径查询”(最短路径计算并显示),“学校简介”(对学校信息,专业,师资力量,所获荣誉等进行介绍),“景点简介”(对校园的景点以及建筑物进行介绍),退出(退出系统),“背景音乐调节”(对背景音乐进行调节),“小地图”(显示学校平面图)。
图2 智慧校园系统的界面设计框架图
2.2.1 寻址功能实现
Navigation 简介:Navigation 是 Unity3D 提供的导航的组件,可以对地图进行烘培,显示可以行走的区域,实现路径寻址的功能。
NavMesh(导航网格)是3D 虚拟世界中用于实现动态物体自动寻址的一种技术,将场景中的复杂的结构组织关系简化带有一定信息的网格,在这些网格的基础上通过一系列的计算来实现自动寻路。
(1)在unity 的InSpector 面板中将要参与网格导航的物体上勾选Navigation Static 选项。
(2)打开网格寻路的面板(Window->Navigation)选择调整的烘培半径(Agent Radius)、角色可以通过高度(Agent Height)等参数,然后进行地形的烘培。
(3)在寻路 NPC 上添加寻路组件(Nav Mesh agent)。
(4)创建一个校园建筑物名称与坐标的关系哈希表(Hashtable),作为映射表
(5)编写控制NPC 寻路和人机交互的交互C#脚本,定义获取用户输入终点的下拉菜单,根据获取下拉菜单输入的建筑物名称,根据获取用户输入的信息查看Hashtable 得到该建筑物的三维坐标,使用Nav Mesh agent 组件中的SetDestination(终点的三维坐标)方法进行寻址,该方法参数接收一个三维坐标,并移动挂载了的该寻路组件的NPC 进行移动寻址;寻址结束为判断当前寻址物体与终点坐标的距离小于1f,使用Unity 中 Vector3.Distance(Vector3,Vector3)判断寻址机器人是否到达目的地,当函数返回值小于1f 认定以到达目的,大于1f 继续寻址,实现该功能的代码请查看附件。
2.2.2 校园简介实现
编写了 ShoolHistory()、ShoolHonor()、SchoolMajor()三个方法分别用来绑定校园历史、校园荣誉、开设专业的Button 控件,获取一个text 控件来输出对校园信息的文字描述(Text.text=“文字描述”)。
2.2.3 景点简介实现
(1)创建获取用户的输入名称的下拉菜单(Drop⁃Down)。
(2)创建输出图片、文字信息的UGUI 控件Image和Text。
(3)根据用户输入,输出对应的信息,使用unity 中提供的动态加载图片的技术,其实现代码如下所示:
2.2.4 音乐模块功能实现
(1)在第一人称视角的胶囊体上添加Audio Listen⁃er 组件(类似与现实中的耳朵),用于收听虚拟校园中的声音。
(2)在地图中有树和湖的地方添加碰撞器,在这些碰撞器上添加Audio Source 组件(用于播放音乐)。
(3)编写控制音乐播放的C#脚本:第一步获取碰撞器上的Audio Source 组件,使用触发检测函数On⁃CollisionEnter()、OnCollisionExit()来实现不同场景的音乐播放,当用户进入碰撞器的范围OnCollisionEnter()方法自动执行,在该函数中写入播放音乐的方法Au⁃dio Source.PlayOneShot(“音乐片段名”),当用户离开碰撞器的范围OnCollisionExit()方法自动执行,这时在该方法中写播放背景音乐的,这样就实现音乐模块的功能。
在系统中按下“Z”快捷键调出菜单界面,其菜单界面由六部分组成,具体包括学院简介、景点简介、路径查询、课程推荐、声音调节、退出系统六个部分;菜单界面内容显示如图3 所示。我们将介绍的导航程序位于路径查询模块中,选择路径查询选项并进入路径查询界面如图4 所示。
图3 菜单界面
图4 路径查询界面
进入路径查询界面后,先点击“起点”的下拉菜单来选择初始出发地点,然后点击“终点”的下拉菜单来选择你的目的地接着点击查询按钮,如图5 所示。程序将在后台开始执行路径查询操作,当路径计算完毕之后将在人物前方调出一个寻路机器人,用户只需跟随机器人即可到达目的地,如图6 所示,自此寻路完成。
图5 导航地点选择
图6 寻路机器人
本文给出了基于选择思想的不改变数据的原始位置而对数据进行排序的算法并利用C#语言编程实现了该算法的动态演示,该算法可用于解决实际工作中的一些相关问题,具有一定的实际意义。用C#语言实现的动态演示程序则有助于读者更好地理解和把握该算法的基本思想和实现过程。
摄像机可视范围参数调节对场景影响结果如表1所示。
表1 摄像机可视范围参数对场景的影响结果
从表1 可以清晰看出,通过对摄像机可视范围参数进行调节,当Graphcs<40 时画面就会出现掉帧,卡顿的现象,摄像机可视范围过大容易导致帧数过低,从而造成画面卡顿;而摄像机可视范围过于小则会导致用户体验差,场景模糊等问题。为了使其画面的清晰与操作流畅,综上考虑选取摄像机可视范围的参数为200,此时能够在帧数与场景清晰度达到较好的平衡。
“虚拟校园漫游系统”主要实现了校园导航、路径查询、场景漫游、小地图、登录、注册等功能。系统的界面简洁明了,操作便捷。在建模方面主要是把校园环境、教学楼、宿舍楼、图书馆、体育馆等主要建筑进行了细致的建模,使其通过三维立体的方式呈现出来。真实的校园模型不仅有利于教师和学生进一步了解学校,还能在无形之中提升学校魅力,尤其在学校宣传、招生和展示学校风貌等方面有着积极作用。当然我们对于校园的三维模型建设方面还存在很大的优化空间,对于体验感的提升还可以考虑采用更加精细的校园模及逼真的贴图纹理去实现。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!