前言:想要写出一篇引人入胜的文章?我们特意为您整理了VR技术下密室逃脱游戏制作与设计范文,希望能给你带来灵感和参考,敬请阅读。
摘要:密室逃脱游戏需要玩家在有限空间内不断搜集线索与道具对其进行破译和组合,完成解密。通过Unity引擎开发一款反映现实社会问题的密室逃脱游戏,使玩家对游戏剧情所映射出来的问题进行反思,具有重大的社会意义。该文将游戏剧情集中关注与揭露不良PUA的行为方式与危害,基于虚拟现实技术对密室逃脱类游戏进行研究,设计并制作了密室场景及相关道具线索,系统设计过程中充分集成利用三维建模技术、碰撞检测算法、人机交互技术、图形UI界面设计、C#脚本代码编写等方法,并设计合理的剧情发展及线索。
关键词:虚拟现实;密室逃脱游戏;实时漫游;人机交互
密室逃脱类游戏是一种冒险类的益智游戏,玩家需要进行逻辑性的破译或组合,不断收集与合成新的线索的道具,并最终完成密室的解密。密室逃脱类游戏具有很强的故事性,可以让玩家在游戏的过程中对故事剧情的发展产生思考,并能够从中有所感悟。将现实中存在的矛盾与冲突融入游戏剧情中,利用虚拟现实技术将问题以及可能产生的后果以沉浸式方式展示给玩家,能够使玩家对现实有更深入的思考。
1游戏开发框架与实现流程
本系统主要是针对PC端用户,从游戏场景与剧情的构思、三维模型的制作、图像素材的制作和处理、Unity引擎内游戏场景的搭建以及UI交互设计和逻辑实现这五部分进行设计制作。其中,前期准备中需完成三维模型设计、贴图制作渲染、动画设计、图像线索设计等部分;在Unity引擎中使用UGUI系统,通过C#语法规则和Unity引擎特有的应用程序编程接口(API),完成游戏中场景的跳转、游戏的进入和退出、物体动画的触发、密码的输入等功能的实现。
2游戏场景模型及动画设计
建立一个虚拟现实系统的关键问题是对系统的建模与仿真[1]。首先根据预想的游戏场景,确定场景的楼层数和每层房间的位置与面积;用CAD简单制作每层的平面图,并在3DsMax中制作三维的楼体;需要在场景中出现的三维模型,在3DsMax综合运用挤出、连接、倒角、倒角坡面、涡轮平滑、车削等功能,制作出风格统一的模型。教学楼仿真模型的制作主要包含三大楼层多种类型教室:音乐教室、图书室、普通教室、礼堂、储物间等,以及多种家具模型,如垃圾篓、桌椅、书柜、风扇、黑板等多种基础模型。
3系统的功能设计与实现
3.1光线效果分析与手电效果
通过分析调研市面相似游戏,为营造紧张的氛围,场景光线效果一般为昏暗或忽明忽暗的光线,本游戏采用手电筒光进行照明,场景中未添加光源,同时手电筒应跟随玩家视角进行移动。开关效果通过if条件判断语句判断布尔值真假以此来调用Light。具体的手电筒开关效果如图1所示,选用FirstPer⁃sonCharacter以及spotlight聚光灯源,可调节光源的照射范围、光线角度、照射强度、光照颜色、反射强度等选项,使手电筒的效果更加逼真。
3.2动画播放控制与背景音乐切换
游戏中的模型需要制作动画控制器控制动画的播放。如图2所示,在Project面板中新建一个动画控制器,将模型及动画文件拖动到控制器面板,创建空状态empty;将空状态和动画之间建立过度maketransition,此时会从empty上延伸出一段线条,把线条的另一端点放在动画上。为了能使模型再回到原始状态,需要在导入相同的动画,把动画的播放速度改为负值,实现了动画的倒放,按照图2中的方法实现连接,并在过渡线段上分别添加控制动画播放的布尔。播放动画的关键代码如下:publicvoidOpenDoorTiaoJian()//声明播放第一段动画的条件{animator.SetBool("OpenDoor",true);animator.SetBool("CloseDoor",false);music.Play();}privatevoidOnMouseDown()//声明一个鼠标点击事件{isAn=!isAn;if(isAn)//判断当前模型的状态{CloseDoorTianJian();}else{OpenDoorTiaoJian();}print(isAn);}publicvoidCloseDoorTianJian()//声明播放第二段动画的条件{animator.SetBool("CloseDoor",true);animator.SetBool("OpenDoor",false);}
3.3高亮状态显示与线索查看
在密室逃脱游戏中,线索不能够轻易被发现,只有执行了指定的动作或者进入了指定的区域内,才有被触发的可能。本游戏中发现线索的逻辑是这样的:玩家进入指定区域后,游戏道具会以高亮的轮廓线框提示玩家,玩家处于可触发的范围内点击道具,就能查看道具的详细信息,按Z键可以关闭详情页。功能实现通过添加触发器与碰撞器并利用bool值进行条件判断,具体实现代码如下:usingcakeslice;//调用OutlineEffect的命名空间publicGameObjecttupian1;publicGameObjecttupian2;publicOutlinem_outline;privateboolisTrigger=false;//声明游戏组件、高亮组件和布尔privatevoidOnTriggerStay(Colliderother){if(other.tag.Equals("Player"))//判断玩家是否进入触发器中{if(Input.GetKeyDown(KeyCode.Z)){tupian1.SetActive(false);tupian2.SetActive(false);}//输入Z键图片消失}}publicvoidopenPaper()//建立鼠标的点击事件{if(isTrigger)//判断布尔值是否为真{tupian1.SetActive(true);//为真时点击模型可以示图片}}
4结果
利用虚拟现实软件开发了基于社会问题不良PUA的三维密室逃脱游戏,可通过游戏初始界面进入游戏完成线索搜集及解谜通关。密室环境首先利用AutoCAD对教学楼场景进行平面设计与合理安排,运用3DStudioMax对整体环境以及各种物品进行建模,通过PhotoShop制作相关贴图,实现物品与相关线索的联系。其次,将模型导出为.fbx格式导入Unity3D中,通过对场景内光源选择营造紧迫气氛、音效调控跳转、碰撞检测技术、高亮效果的改进实现用户在游戏场景中的高仿真实时漫游模拟,漫游过程中可通过剧情线索的搜索不断了解不良PUA的搭讪技巧及其危害性,避免个人落入相关陷阱中,充分地将社会问题与游戏相结合,更大程度地反映剧情及社会问题。
参考文献
[1]刘贤梅,石杨,赵娅,等.基于虚拟现实的室内仿真操作系统研究与应用[J].计算机技术与发展,2020(1):149-154.
作者:张胜男 司占军 李晗 单位:天津科技大学轻工科学与工程学院