基于虚拟现实技术的云端建筑方案展示系统*

2018-02-10 01:45:56王守平陆海燕宁宝宽杨思瑶
建筑设计管理 2018年1期
关键词:第三人称第一人称漫游

王守平,陆海燕,宁宝宽,杨思瑶

(沈阳工业大学 建筑与土木工程学院,沈阳 110870)

0 引言

虚拟现实技术是计算机技术与艺术相结合的新兴产物[1],涉及了计算机图形学、人机交互、人工智能等学科的一项综合技术,并且它具有交互性、沉浸感、构想性3个最突出的特征。由于虚拟现实技术对真实环境的强大的虚拟功能和给用户带来的强烈的沉浸感和自然真实的交互性,所以被广泛应用于医学、游戏、建筑设计、航空航天等多个领域[2]。刘芳英[3]等研究了虚拟现实技术在大型公共建筑规划动态分析中的应用关键技术和创新论证方案。王要武[4]等论述了虚拟现实技术在建筑和房地产业及建筑教育领域的应用,通过分析给出了虚拟现实技术在这些领域的应用模型。朱惠娟[5]通过实践的研究结果得出Unity3D具有很好的网络三维展示和交互功能,是虚拟平台设计开发的一个有力工具的结论。

Unity3D游戏引擎是目前最专业、最热门、最具前景的虚拟现实开发工具,它是由UnityTechnologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化和实时的三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎[6]。

本文旨在通过Unity3D创建一种全新的建筑方案展示系统,主要包括第一人称漫游、第三人称漫游、飞行模式、摄像机动画漫游、声音处理、信息交互查询等功能。

1 系统的框架

本文讨论的建筑方案展示系统(如图1),主要利用建筑信息化模型具有可视化、协调性、模拟性、优化性及可出图性等特点[7],对场景所需模型进行创建。将创建完成的模型发布成FBX格式导入Unity3D,并在其中给模型重新赋予贴图与材质球,使模型达到预期效果。因为本系统是一个信息可视化的系统,因此需要强大的数据库做支撑。系统设计时采用SQL作为系统的数据库。以BIM的建筑模型数据、材质贴图数据和应用信息数据、为基础构建本文系统所需的数据库,并将数据库放在云端。系统框架如图2所示。

图1 建筑方案展示系统

2 Unity平台的设计与实现

首先进行UI界面的搭建,再通过第一人称与第三人称浏览,让使用者获得沉浸式体验,得到虚拟现实技术所带来的一种逼真的效果,同时也可以更好的了解建筑方案的每一个细节。飞行模式是在上空对地下建筑物的一个俯瞰,解决在建筑群中无法观察建筑的整体风格问题,可以判断是否符合审美要求,与周围建筑是否能相互融合的问题,给设计者后期带来了辅助决策作用。摄像机动画漫游是一种无需人工操作的漫游方式,实现多条路线的浏览。这样就解决了对整体建筑方案不熟悉,容易迷失方向的问题,同时也可以让使用者放松下来。最后进行声音处理,声音可以加深沉浸感和代入感,让整个操作的过程变得更加具有生动性,使用户得到更多的操作体验。

图2 系统框架图

2.1 UI界面的搭建

该系统UI界面主要是通过对按钮的监听,进行不同事件的触发。根据上述所要实现的功能,分别制作功能相对应的按钮。对于声音开关按钮需要在同一位置制作开启按钮与关闭按钮,相互监听替换,执行相对应的事件。

2.2 第一人称浏览

参见图3实现第一人称浏览。在Unity3D标准资源包里,包含了一个名为Characters的资源包,这是Unity3D建好的关于人物的资源包,我们需要将这个资源包导入到项目中来,进行预制体的使用和参数数值的修改。

点击Assets打开它的子菜单并找到Import Package中的Characters资源包,导入到项目中。我们会看到Assets下多了一个名为Standard Assets的文件夹,在里面找到第一人称预制体放入搭建好的场景中。在Inspector(属性)面板中修改脚本组件中的移动速度与视角变换等一些参数,来适应场景的浏览。

接下来我们要实现对按钮点击事件的监听、不同摄像机的开、关,以及保证每次摄像机都在同一地点开启。假定菜单中有两个按钮,名称分别为“主入口”和“次入口”,在场景中放置两个第一人称预制体,命名为“Ca1”和“Ca2”,实现的上述所说的功能,代码如下:

图3 第一人称浏览

2.3 第三人称浏览

图4 第三人称浏览

参见图4实现第三人称浏览。在Standard Assets中找到第三人称的预制体放入搭建好的场景中,修改移动速度与视角变换等参数。将相应的摄像机作为预制体的子物体。

2.4 飞行模式

参见图5实现飞行模式浏览。要实现W、S、A、D键分别控制前进与回退、左旋与右旋。

图5 飞行模式

首先导入一个飞行器模型,新建一个摄像机,创建其父子关系,保证中心点在飞行器模型的中心位置,并放在建筑上方,调整视角。建立脚本,代码如下:

2.5 摄像机动画漫游

摄像机动画漫游要实现在播放摄像机动画时,隐藏所有UI元素,做到全屏播放效果,当按下键盘上ESC键的时候,退出播放,返回主场景。

第一步创建摄像机动画。添加Animation编辑器。选中制作动画的摄像机,在Animation编辑器中,点击Add Property添加属性。把Transform组件的Position和Rotation添加进来。鼠标拖动帧的位置,并改变摄像机的坐标与角度,这样在该帧就记录了摄像机改变之后的坐标与角度,当播放到该帧时,摄像机就会平滑的出现在该位置。每帧之间,所移动的位置越小,制作的帧数越多,那么摄像机动画越平滑。

第二步编辑状态机控制器。在Parameters视窗下,添加两个bool类型的复选框,分别命名为“play”与“go”,设为false状态。建立如图6所示动画过渡基础关系图,单击New State与“动画一”的动画过渡基础关系线,添加播放环境,选择“play”,状态改为true。这就表明当状态机控制器中的布尔值“play”的值为true时,就播放“动画一”;在“动画一”与Exit的动画过渡基础关系线上,将“play”,状态改为false。这就表明当状态机控制器中的布尔值“play”的值为false时退出“动画一”的播放。“动画二”的编辑与“动画一”的编辑大同小异,只是将布尔值“play”改为了“go”。最后,用代码控制摄像机动画的全屏播放与退出。代码如下:

图6 状态机控制器的编辑

2.6 声音的处理

创建一个音频播放器,当进行场景浏览时,加载音频文件,通过代码进行开关音频;

在Hierarchy面板中点击右键选择Create Empty(创建空物体)命名为Audio;选取Audio,点击菜单栏Component下面的Audio选择Audio Source;将音频拖拽到Audio Source组件中的Audio Clip中,将Loop复选框进行勾选,让音频可以重复播放。创建控制音频开关脚本,代码如下:void Start(){Aud=gameObject.GetComponent();

btn1.onClick.AddListener (OnClick1);btn2.onClick.

AddListener(OnClick2);}

void OnClick1(){Aud.mute=true;}void OnClick2()

{Aud.mute=false;}}

3 结语

本文简述了Unity3d游戏引擎在建筑方案展示中功能的实现与应用,讨论并实现了虚拟现实在建筑方案展示中的关键应用技术。实现了在Unity3D中,包括第一人称漫游、第三人称漫游、飞行模式浏览、摄像机漫游动画、声音处理等功能。本文开发的建筑方案展示系统具有人机交互UI界面,场景中的虚拟现实漫游以及背景音乐的渲染,给使用者带来沉浸式体验,云平台的采用,为系统的实时交互与信息查询提供了基础,通过虚拟现实的浏览,可以及时的发现在建筑设计过程中存在的纰漏。

[1]宁敏.虚拟现实技术及其在虚拟校园中的应用[J].中国信息化,2017(10):71-73.

[2]洪炳镕,蔡则苏,唐好选.虚拟现实及其应用[M].北京:国防工业出版社,2005:2,90-107.

[3]戴成元,刘芳英.虚拟现实(VR)技术在大型公共建筑规划互动分析中的应用研究[J].水资源与水工程学报,2012.23(04):167-170.

[4]王要武,薛小龙,韩喜双.虚拟现实技术在建筑业中的应用研究[J].低温建筑技术,2004(01),90-91.

[5]朱惠娟.基于Unity3D的虚拟漫游系统[J].计算机系统应用,2012(10):36-39,65.

[6]汪成为.人类认识世界的好帮手虚拟现实[M].北京:清华大学出版社,2000.

[7]张德海,陈娜,韩进宇.基于BIM的模块化设计方法在装配式建筑中的应用[J].土木建筑工程信息技术,2014(06):81-85.

猜你喜欢
第三人称第一人称漫游
谈谈英语教学中 第三人称单数及其后面动词的用法
霹雳漫游堂
用第三人称和自己说话能减压
幸福·悦读(2017年10期)2017-10-18 10:16:13
It’s Your Turn, Roger! (I)
汉代铜镜铭文中的第一人称
中国收藏(2017年4期)2017-05-13 07:23:02
NASA漫游记
第一人称小木屋
“我”最初是古代兵器
边走边看:漫游海底 梦想成真
聚焦现在完成进行时