益智类游戏又称为智力类游戏、难题游戏,一般需要适当的思考,这类游戏要求玩家充分运用自己的智力来解决游戏的难题从而使游戏过关解锁下一关游戏。通过游戏的形式,游戏者锻炼了自身的脑、眼、手等,获得身心健康,增强自身的逻辑分析能力和思维敏捷性[1]。优秀的益智游戏不仅娱乐性强,在娱乐的过程中也增强了逻辑判断能力。
其中在游戏中,三维互动游戏是虚拟现实技术重要应用方向之一,也为虚拟现实技术的迅速发展起了巨大的刺激作用[2]。尽管从目前来看仍然存在很多的技术难题,虚拟现实技术在激烈竞争的游戏市场中还是得到了越来越多的关注与重视。因此通过三维虚拟交互软件,以实现益智类游戏的开发[3],该文将利用热门的游戏开发游戏软件Virtools,就益智类游戏的开发的方法和过程进行相关的阐述。
1 基于Virtools的游戏开发平台
当今游戏引擎众多比如: Virtools , Unity 3D、unreal、Valve等,而国内外主要使用的虚拟现实开发软件主要有Vega,Quest3D,Virtools,VRP,Converse3D等,Virtools作为虚拟现实的一种开发工具,同时是一款应用广泛的3D形象与事件交互的游戏软件。目前,Virtools 游戏引擎是国内各个高校目前购买和使用较多的一款,在操作使用,开放性和浏览效果方面占有优势,其基本机构分为用来编写代码的应用程序[4],行为事件的引擎,渲染引擎,网络播放器,软件开发工具包五个部分。
Virtools目前支持Max, Maya, Lightwave中直接导出文件,以及Dassalt系统的3D XML文件。Virtools提供大量的模组,通过不同模组的组合,可以定制出各式的应用,以拖拽的方式来定义程序运行的逻辑,而且通过SDK工具允许使用者新增Virtools的功能,内含各个行为模块的源代码,供使用者参考或是修改[5]。
程序化的界面符合人思考的逻辑,类似于流程图的结构,而且界面美观,不需再花费巨额的人事费用聘请高级的程序设计师,进行昂贵的C++程序设计完备的互动行为模块让前期规划、美术到程序的开发流程都可以很流畅的完成,并可发布到PC和网络上进行浏览。
在利用Virtools进行游戏的制作中,最关键的部分在于利用行为交互模块(简称BB模块)组建适当的逻辑关系与算法, 制作形成及其娱乐性、审美性、互动性、教育性、虚拟现实等特征的艺术形式[6]。如下图1所示,为Virtools开发平台在三维益智类游戏的设计方案。
2 设计方案与模型建立
2.1 三维益智类游戏分析与设计
利用Virtools进行游戏的制作,核心与关键的部分在于利用行为交互模块(简称BB模块)组建适当的逻辑关系与算法,此益智类游戏的闯关流程如图2所示,分为五个大的方面,分别是游戏主页面进入,界面认识与选择,游戏选择,游戏闯关,游戏闯关进行/返回主页面/退出。
以本益智游戏主要的一个动画效果主要通过鼠标点击卡片,使卡片进行翻转,相同图案的卡片翻转过后会停住,继续其他卡片的翻转,直至所有卡片都被翻转过来,游戏结束。
要实现卡片的翻转和无序排列关键在于各个关卡所构建的逻辑关系,这也是实现所设计的这款游戏的核心部分。要实现卡片的翻转,首先要设置卡片的初始位置,然后让卡片实现无序排列,再次制作单击卡片时卡片翻转效果,翻转动画完成以后,开始制作判断相同卡片的逻辑程序,这样,该游戏的主要制作模块就已经完成了。
2.2 3ds-Max模型的建立与导入
游戏设计为翻牌游戏,利用3ds-max中的平面工具[5],画一个4*4的平面模型,利用编辑网格,在面级别下将其翻转以实现双面贴图,目的在于将模型卡片的正面贴图完全一致,反面的贴图两两一致。
由于每个3D实体都有自己的网格,这样就没有办法进行逻辑判断,无法正确的将卡片翻转过来。建模过程用到了修改器面板的编辑网格,在其下面的具体修改面板中,有一项为“命名”,选择两个网格,并点选复制,这样在导入到Virtools中会发现3d object仍为16个,但是meshes中只有8个,这样在进行test模块进行逻辑判断就可以正常运行了。
为方便导入后模块的管理,可以在3ds max中利用工具栏下重命名选项对模型进行设置,然后,再在修改面板中在进行命名复制的操作。
通过以上方法,可以减少模型导入到Virtools中的一系列问题。
3 三维益智类游戏制作与实现
3.1项目资源管理
在使用Virtools进行项目制作时,可以先创建一个新的组织资源,并把导出的模型,需要的材质,声音甚至视频文件等相应的素材分别放入2d sprites,3d entities,3d sprites, behavior graphs, characters, materials, sounds, textures和videos几个文件夹中。
一般的三维益智类游戏包含策划、原画设计、场景角色模型、摄像机、灯光、游戏引擎、程序语言Virtools技术旨在提供一种虚拟现实的环境,该文中整个游戏方案的构建中,因涉及到多个交互对象,因此需要将各部分进行有效管理,所使用到的交互对象涉及到渲染对象,场景,声音,材质等部分[4],各个部分之间的关系如图3所示。
3.2 脚本编写
3.2.1. 设置游戏模型的初始位置
在“Building Block”选项卡中选择相应模块组中的模块选项进行拖拽,初步的添加效果如图5所示。
选择Op模块,右击选择“Edit Setting ”,进行参数运算的设置,同样在加入“Remove From Group”模块后,双击该BB模块,设置Group为New Group[7],如图6所示。
在“Building Blocks”选项组中,选择3d Transformations模块组中的Set Position模块并将其拖拽至脚本编辑器中,如下图7所示连接所有的模块。单击“Set Ic For Selected”按钮,确定其初始位置。
需要说明一点,设置初始位置,对于那些在程序执行过程中的对象尤为重要,不然很有可能在程序执行过程中找不到这些物体。同样,在移动的过程中要先将选择的对象进行锁定。
3.2.2 模型的无序排列
首先在脚本编辑器中添加“Set Component”模块,取消“Counter”模块与“Op”模块之间的连接,将Set Component模块分别于Counter、Op模块连接[8]。
3.2.3 制作模型翻转效果
首先在脚本编辑器中添加Mouse Waiter模块,添加Linear Progression模块和Rotate模块,接着创建本地参数,在弹出的对话框中设置参数Parameter Name:Card-01,Parameter Type:3D Entity,Card-01:NULL,同样创建本地参数Card-02。添加Identity模块,设置参数类别为3D Entity,选择Card-01和Card-02这两个本地参数,复制并粘贴为快捷方式,并将其复制的快捷方式同Identity模块相连。该模块的主要作用是将输入参数的值指定给输出参数。在场景运行的过程中,会将暂存值存储到本地参数Card-01和Card-02中。
其次创建一个参数运算,设置参数:Input:Float、Angle,Operation:Multiplication,Output:Angle,将该参数模块分别与Linear Progression模块和Rotate模块相连,并设置Multiplication参数运算模块的第二个输入值的旋转角度为180度。而双击Linear Progression模块,可以设置卡片翻转所需要的时间,此部分设置的值为100ms,最后具体效果如图11所示。
如图12所示,为使脚本编辑器中的模块简洁明了,可以利用“Draw Behavior Graph”命令,将Mouse Waiter模块、2d Picking模块、单张卡片模块组及Set Pickable模块绘制成一个新的图形模块“拾取第一张卡片”,同样的操作,将后面的模块更改为“拾取第二张卡片”图形模块。
3.2.4 制作相同纹理模型的逻辑判断程序算法
此部分需要实现的效果如下图13所示,其中的效果需要对卡片进行无序算法的加入。
当Test模块测试值为“False”时,需要将卡片再次翻转过去。打开“拾取第一张卡片”模块组,复制“单张卡片旋转”模块与“Set Pickable”模块,并与Test模块的“False”输出值连接。同样复制并连接第二张卡片的模块组,并将其中的一个Set Pickable模块的输出值与Identity模块的输入值连接。双击连接在Test后面的Set Pickable模块,在弹出的对话框中点选Pickable。
4 结果与讨论
本文通过3ds-Max建模,并通过Virtools流程图式的编辑接口,让设计程序更有效率、通过无序算法的加入,实现了益智类游戏中模块翻转,点选无序排列等效果的开发与实现。在模型建立和导入到Virtools中得到的结论如下:
1)在建模过程中,材质的使用只是将漫反射处选择想要的贴图,并没有设置自发光,而对于贴图,需要注意贴图的格式和颜色模式,否则在导入到Virtools中,不能正确的显示贴图。
2)Virtools中对于图片有着特殊的要求,导入的纹理图片必须是以2的n次方格式来记录图片的尺寸,而且Virtools本身在保存过程中会进行压缩处理,因此无需为了省容量而去压缩图片,最后破坏整体质量,但是在全局变量设置中贴图使用JPG。.
3)在制作贴图纹理图片的时候,注意Virtools中只识别RGB模式的图片,所以若为CMYK颜色模式,导入到Virtools中图片将会无法显示。
在Virtools中完成的各个模块可发布成网页格式即HTML格式,同时也可以使用编译的程序实现EXE格式的发布,实现游戏的单机版运行。
本模型的数量较少,随着三维交互模型的增加和场景的今后扩展,对于大场景CMO文件可以分块保存,实现动态下载,即加载Web Download 和 Object Load两个模块,该文中的游戏算法,也可进一步扩展应用到大场景的游戏开发中去,为此类动画技术的应用与游戏的开发提供一定的参考和理论依据。
参考文献:
[1] 于太罡.基于Virtools平台的电子游戏设计与实现[D].北京:北京工业大学,2012:8-15.
.Journal of Cultural Heritag, 2009,10(2):161-173.
[3] 杜丽,林筑英.尹兵.网络课程教学游戏开发中的VR技术应用[J].中国远程教育,2011(7):76-80.
[4] 张佳兴,王峥.赛车类虚拟现实游戏核心技术的Virtools 实现[J].应用技术研究,2008(11):37-4.
.山东理工大学学报:自然科学版,2010,24(3):103-106.
.Computers & Education, 2009, 53(4):1231-1240.
[7] 秦思涵.Virtools三维游戏最优路径的遗传算法研究[D].成都:四川师范大学,2012:9-15.
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。