APP下载

基于VR技术程序开发设计方法简化研究

2020-02-21李传志

电子技术与软件工程 2020年13期
关键词:程序开发脚本气球

摘要:本文为实现虚拟现实程序开发的有效简化,借助PAR平台和PAR方法,总结出一种虚拟现实程序开发的新方法。

关键词:VR技术;Unity 3D; PAR平台

随着我国科学技术水平的不断提高,各种高新技术不断被研发出来并投入使用,其中以虚拟现实技术(VR)最受各行各业及技术研发人员的关注,可是在其实际应用当中,基于虚拟现实技术开发的应用均需要由计算机软件来实现,进而导致虚拟现实系统软件尤为复杂,为此本文将PAR平台及方法为基础,结合虚拟现实软件系统主要特征,对开发虚拟现实软件的新方法进行探讨。

1 概述

VR技术是集计算机、多媒体、传感器、人工智能等多种先进技术于一体进而达成人机交互的一种技术手段,其可以将当前存在的多种技术进行合理应用,以此模擬出各式各样的真实世界,从而让人们产生到身临其境的感觉。以当前科学技术的发展趋势来看,VR技术在未来必定成为各行业的发展基础,由于其具有较强的跨学科性,目前已经成为科技探索中的第三种手段[1]。VR技术主要包含三个特征:其一,沉浸感,指人在虚拟环境和获得与现实世界差距不大的感受;其二,交互性,指人处于虚拟环境中时,能与虚拟环境中的事物交互,同时可于人机操作界面反馈;其三,构想性,人机交互时人可不受限制的选择任一场景漫游,进而让人在各种虚拟环境中产生更多新想法[2]。

2 Unity 3D简介

Unity 3D是一款操作相对简单的游戏开发工具,是一个由Unity Technologies公司开发并进行全面整合的专业游戏引擎[3]。Unity 3D编辑器在微软公司开发Windows系统和苹果公司专属Mac OS X系统中均能稳定运行,并可在Windows、Mac、iPhone、Android、Windows phone 8等系统平台中发布游戏,同时也可在Unity web player插件辅助下进行网页游戏发布。相比其他游戏引擎,Unity 3D具有更强的跨平台性、交互性及可移植性,得到了许多游戏制作公司的青睐[4]。Unity 3D的最初设计目的并非虚拟现实,但在场景开发时开发者能实时预览场景变化,致使其逐渐被VR所利用,物理碰撞器、网络功能、灯光特效等功能都可由Unity 3D直接提供,从而可一定程度上降低开发者工作量,缩短场景渲染时间,进而使得虚拟现实的开发效率大幅度提升。

3 Unity 3D开发VR程序基本过程

研究发现,开发一个典型VR程序通常要进行需求分析、模型建立和C#脚本开发与测试三个步骤,本文以相对简单的VR球类游戏对以上三个步骤进行举例说明。

3.1 程序需求分析

游戏玩法介绍:在一个盒子中,存在n个普通小球、一个较大气球及一个透明板,游戏过程中需借助VR设备吹动气球,VR设备与摄像头在此过程中能对用户嘴部和肢体动作行动态捕捉,以评定用户吹气球的动作,从而将用户吹气球的过程模拟出来,游戏开始后透明板会以一定速度向气球移动,用户吹动气球并撞到小球后得分,并使得透明板向远离气球的方向移动一段时间,此段时间过后透明板继续向气球移动,直至透明板撞到气球,游戏结束,游戏结构详见图1。

3.2 模型建立与加载

以往软件系统实现人机交互多是常通过等标准输出入设备,VR软件系统则无需这些硬件设施,用户在使用VR设备期间,仅需要一台设备就可以直接进入VR软件系统为其营造的3D环境中,设备还能实时监测用户的动作与表情,进而达成人机交互,由此可见,3D建模在VR软件系统中发挥着极为重要的作用。通常情况下,3D建模需要首先使用3DS MAX等3D建模软件进行模型设计,并将这些设计好的模型以.fbx或.obj格式存储起来,随后将这些模型文件导入Unity 3D中行上色处理,此过程中,Unity 3D主要提供了Assetbundle.Load读取和加载资源与Resources.Load动态加载资源两种加载方法。第一种加载方法主要是为了应对.fbx格式文件无法在Unity 3D中实现稳定运行的状况,因此普通情况下,常会利用这种加载方法先将文件转换为.prefab格式,随后再导入Unity 3D中进行上色。第二种加载方法能够从缺省打进程序包中的AssetBundle里面行资源加载,但通常此类文件需要由用户自建,运行时为动态加载,加载路径与文件来源均能由用户指定,所以利用这种方式进行资源加载,可有效解决资源依赖问题,以便于用户制定路径和来源对GameObject进行快速加载[6]。

3.3 C#脚本开发与测试

C#脚本是一种以C#为主要编写方式、以控制3D模型移动和功能为主要目的的控制程序,在Unity 3D导入所有以.prefab格式储存的3D模型后,需用进行C#脚本编写以实现对模型的控制。各个C#脚本相互制约、相互联系,其能通过对用户数据进行全面收集,进而控制3D模型,从而完成人机交互,并达成多种功能。

4 VR程序开发关键技术

4.1 3D建模技术

研究表明,模型精细程度与用户体验之间存在紧密联系,因此在一般情况下,优秀的VR作品都会伴随精致的3D模型,想要构建出更为精细的3D模型,则需要计算机图形技术和立体显示技术这两种技术手段的帮助。计算机图形技术是一种利用计算机完成图形生成、显示及绘制的技术,图形在计算机中多以数据形式存在和表达,如果想要将对图形进行显示、绘制、打印等操作,则需要将数据转化成线条,此技术不仅可以实现大批量机械图、电路图等图形的快速规范制作,同时还能通过其制作动态图形和三维图形,从而将绘图无法解决的问题有效解决。立体显示技术则是一种能实现虚拟现实的技术手段,现阶段存在的方式主要包括双色眼镜、立体显示器、真三维立体显示器、主动立体显示等[7]。

4.2 C#脚本编写技术

C#作为一款由微软公司研发的程序设计语言,主要面向于.NETFramework和NET Core之上的高级程序设计。应用Unity 3D开发VR程序的过程中,需要开发者对3D模型进行脚本编写才能使其运作起来,富有生命力,因此在此期间难免会使用C#语言来进行脚本编写,并且VR程序越大,需要编写的C#脚本便会越多越复杂。

5 VR在已拓展PAR平台中的实现

5.1 PAR平台及方法

PAR平台和PAR方法是一种综合性较强的软件开发环境。PAR平台是一种由Apla代码转换至高级程序设计语言的自动转换工具,包含Radl转换为Apla的自动转换系统、Apla转换为Java的自动转换系统、Apla转换为C++的自动转换系统等;PAR方法主要由一系列建模语言和形式化规则两方面内容组成。

5.2 PAR平台拓展思路

框架选择是软件开发过程中十分重要的步骤之一,高性能框架可在软件开发的后续工作中发挥出重要作用,但是并非所有软件框架均可达到完美程度,比如利用Unity 3D进行引擎开发时,就会存在许多需要使用C#编写代码的问题,但针对这些问题,合理使用PAR平台及方法,便只需要进行少量代码编写,即可将一些相对复杂的功能设计出来,进而使编程效率得到大幅度提升[8]。

5.2.1 PAR方法简化VR程序开发过程

通过对大量VR程序开发过程进行研究,现己明确VR程序的开发过程,因此便可将由一系列建模语言和形式化规则组成的PAR方法拓展到VR领域,并通过使用效率驱动的开发方法对程序进行简化,从而实现程序自动化。因此简化VR程序开发过程时,首先可利用PAR方法中的建模语言对利用UML建模的VR程序进行简化,其次利用Apla语言对C#脚本的编写效率进行全面提升,从而减少VR程序开发所需时间,并确保开发者无需熟悉C#语言,即可实现复杂C#脚本的编写,最后通过将Apla语言编写代码转化成C#脚本,以便于Unity 3D程序随时调用。

5.2.2 PAR平台拓展数据库

使用Unity 3D进行VR程序开发时,大多数VR程序均要使用数据库操作,但是利用Unity 3D本身提供的图形化界面无法确保这些数据库操作能够有效实现,而是需要通过Visual Studio编写以下程序来实现:

更新数据:

string s=“server=localhost: database=u3dproject; uid=sa;pwd=qwe”;

SqIConnection conn-new SqIConnection

conn.Open0;

SqICommandcmd=new SqICommand0;

cmd.Connection=conn;

cmd.CommandText=“INSERT INTO Userlnfo VALUES (Jom.Boy,1 7,Namchang)”;

SqID ataReader=sdFcmd.ExecuteReader0;

读取数据:

string s=“server=localhost;database=u3dproj ect;uid=sa;pwd=qwe";

SqIConnection conn=new SqIConnection(s);

conn.Open0;

SqICommandcmd=new SqICommand0;

cmd.Connection-conn:

cmd.CommandText=“select*from Table”:

SqIDataReadersdr =cmd.ExecuteReader();

while (sdr.Read0){

print(sdr[O].ToString0); )

cmd.Dis pose();

6 结束语

大数据时代的到来,以及互联网技术的迅猛发展,虚拟环境中的交互体验越来越受到关注,VR技术不仅改变了人机交互方式,同时也改变了人类的生活方式,致使基于VR技术的程序开发显得极为重要,为有效应对当前VR程序开发方法复杂的现象,应积极探索新方法以简化VR程序开发,其不仅有助于加快VR程序开发速度,同时对于促进我国VR技术发展也具有一定推动作用。

参考文献

[1]马宝忠,孙聪,赵连政等,基于虚拟现实的变电站交直流电源操作仿真系统设计[J].电子设计工程,2020,28 (19):31-34+39.

[2]閆亚刚,刘恒,李中旗等,基于虚拟现实技术的高压开关设备三维检修系统设计[J].电子设计工程,2020,28 (17):156-159+164.

[3]蒋宁,徐济惠,基于可视化的VR编辑引擎[J].计算机系统应用,2020,29 (5):76-81.

[4]高伟,王昱霖,郭瑾.国外虚拟现实与增强现实技术教育研究热点及启示[J].开放学习研究,2020,25 (2):47-54+62.

[5]彭亮,仲思东,李学鹏.基于真三维模型的室内定位系统设计[J].科学技术与工程,2020,20 (13):5205-5209.

[6]冯佳,安建强.虚拟现实技术在国内教育中的运用现状与趋势分析[J].开放学习研究,2020,25 (1):39-47.

[7]谷冰,基于虚拟现实技术和智慧校园设计研究[J].电子测试,2020 (5):135-136.

[8]周哲泓,薛锦云,黄捷文.虚拟现实软件系统开发方法研究[J].计算机工程与科学,201 9,41 (11):1968-197 5.

作者简介

李传志(1984-),男,吉林省吉林市人。硕士学位,讲师。研究方向为计算机科学与技术。

猜你喜欢

程序开发脚本气球
酒驾
APP应用程序开发模式探究
数据库系统shell脚本应用
基于TestStand的自动检测程序开发
找气球
快乐假期
基于嵌入式系统Windows CE的应用程序开发
基于App inventor 2手机程序开发过程的学习与实——以“喵喵定时器”APP开发为例