1、1毕 业 设 计基 于 增 强 现 实 的 艾 黎 :观 季 者 游 戏 设 计专 业 数字媒体技术 2基于增强现实的艾黎:观季者游戏设计摘 要增强现实技术,是一种实时的计算摄像机影响的位置和角度并加上相应的图像、视频和3D模型的技术。这一种技术主要目标是在屏幕上把虚拟世界套在现实世界并进行互动。本次毕业设计开发了一款名为“艾黎:观季者”的增强现实游戏。游戏是一个解谜类游戏,解谜类游戏是对游戏中出现的信息、图像或者情节进行分析和处理,发现线索进行解密。“艾黎:观季者”采用手机作为增强现实的运行设备。将解谜类游戏采用增强现实的方式,意在让玩家能够更好的在现实世界中感受虚拟游戏;在实现方法上采用视
2、觉错觉的玩法,通过鼠标点击屏幕,来移动玩家,找寻线索。游戏主要包含主要场景以及各部分关卡场景,玩家通过对3D场景不同角度的观察,利用视觉错觉,让角色前往提示地点,感受视觉错觉带来的别样体验。游戏使用Unity3D游戏引擎进行开发,使用C#语言为主要程序语言,硬件方面主要使用支持ARCore的移动端。由于技术层面的原因,本游戏主要适用于安卓移动端。关键词: AR;解密类游戏;手机游戏;Unity3D 引擎;C#开发语言3Augmented Reality-based AiLi: Season Watcher Game DesignABSTRACTAugmented reality, or AI,
3、 is a technology that simultaneously calculates the position and angle of a camera and plus the corresponding images, videos and 3D models. The main aim of this technology is to interact the virtual world with the real world. This graduation design develops an Augmented reality game named “AiLi: Sea
4、son Watcher” which is a puzzle game that needs to analyze and dispose the information, images or plots in the game, and decrypt the clues.“AiLi: Season Watcher” adopts mobile phones as the equipment of augmented reality. Adopting augmented reality, puzzle game gives the players a better chance to ex
5、perience the virtual games. It adopts the method of visual illusion to move the game characters and find the clues through clicking the mouse. The game mainly includes the main scenes and sectional levels scenes. Through observing the 3D scenes from different aspect, the players will make use of the
6、 visual illusion to make the characters leave for the suggested place and experience something different brought by the visual illusion. The game is developed with Unity3D engine, C# language as its main programming language. In hardware, it mainly uses the mobile terminal supporting ARCore. Due to
7、the technical reasons, this game is mainly suitable for android mobile terminal.Key words: AR; Decryption games; Mobile games; Unity3D engine; C# development language4目 录1. 绪论 .11.1 游戏开发背景 .11.1.1 开发背景 .11.1.2 研究现状 .11.2 设计内容与计划 .11.2.1 设计内容 .11.2.2 制作计划 .21.3 拟解决的关键问题 .21.4 游戏的特色与创新之处 .22. 系统关键技术 .
8、32.1 ARCore 技术研究 .32.2 VIO 研究 .32.3 寻路算法设计 .42.4 Unity3D 引擎开发 .83. 需求分析 .93.1 功能要求 .93.2 游戏架构要求 .93.3 项目用例图 .93.4 项目类图 .103.5 技术需求 .114. 游戏策划 .124.1 故事简介 .1254.2 游戏角色 .124.3 游戏进程 .124.4 游戏特点 .135. 游戏设计 .145.1 角色形象设计 .145.2 游戏场景设计 .145.3 音效设计 .175.4 功能设计 .175.5 类设计 .186. 交互实现 .196.1 代码框架 .196.2 场景管理具
9、体实现 .206.3 寻路管理具体实现 .226.4 玩家管理具体实现 .236.5 代码实现表 .257. 游戏测试 .277.1 测试过程 .277.2 在移动端测试 .27总 结 .30参考文献 .31致 谢 .32附 录 .33附录 1 物体基类 .33附录 2 宇宙飞船界面代码 .34附录 3 场景枚举类型 .356附录 4 AR 全局工具类 .35附录 5 单例类基类 .36附录 6 场景管理器 .37附录 7 关卡点击事件 .39附录 8 综合点击系统 .40附录 9 路径碰撞器 .42附录 10 位置类 .43附录 11 位置系统 .44附录 12 玩家位置检测 .45附录 1
10、3 玩家基本信息储存 .47附录 14 触发器 .47附录 15 结束动画 .48附录 16 开发显示图像 .48附录 17 魔法球 .49附录 18 魔法塔相关 .49附录 19 任务完成 .5011. 绪论1.1 游戏开发背景1.1.1 开发背景自计算机发明以来,人们就开始不断幻想着能够有一天进入计算机的世界。自游戏出现在世界上时,人们对进入游戏世界的渴望更加强烈了。游戏这种娱乐项目,带给人们一种独特的休闲娱乐方式,它使得人们能够在虚拟的世界里得到快乐、发泄情绪、找寻自己想要的感觉。随着科学技术的发展,游戏技术达到了能够让现实世界和虚拟世界进行交互的程度,这就是增强现实技术。解密类游戏一直
11、具备着未知性、益智性的特点,这吸引着无数玩家对这类游戏的喜爱。艾黎:观季者便是一款解密类游戏,作品结合移动端设备的特性,采用以点击屏幕的方式与游戏进行交互。1.1.2 研究现状解谜类游戏在多端都有作品。PC 端的解密类游戏多采用文字解密,依靠鼠标操作,更加注重剧情性。在移动端发展后,同样类型的作品出现在了移动端上,其主要还是依靠文字解密,玩家通过移动端实体按键或者点击屏幕模仿鼠标操作。解密类游戏在近几年出现了不少优秀的作品如纪念碑谷 ,该作品包含了视觉错觉这一元素,同时拥有优美的风格,主要依靠的是玩家鼠标操作与场景互动。本作品同样采用了视觉错觉作为游戏的特点。AR 是一种新兴技术,由于其发展较
12、短,因此行业并不成熟。目前为止,行业中最成功的作品是Pokmon Go ,即宝可梦 Go。宝可梦 Go 采用 AR 技术结合实时定位,玩家使用手机即可在大街小巷捕捉精灵。遗憾的是,该游戏并没有在中国区发行。AR 游戏与解密类游戏结合并不是一个特别新奇的事情,但是 AR 与视觉错觉的结合是一个尚未被开发的领域,业内尚未由一个完整、成熟的框架体系。1.2 设计内容与计划1.2.1 设计内容本作将视觉错觉融入到虚拟的 3D 世界中,意在打造一个玩家能够通过更多的与场景交互找到乐趣的游戏。玩家主要通过手机,在现实世界中观察 3D 场景,找到游戏线索,观察游戏,体验游戏乐趣,完成任务。1.2.2 制作计
13、划制作计划分为 4 期:策划期框架搭建期制作期测试发布期。2游戏策划在第一阶段,主要计划游戏的主题、内容、玩法、操作模式以及涉及的技术等。框架搭建期根据策划期相关涉及技术的分析,决定采用 ARCore 为主要技术,并为了项目的整洁性、可扩展性等为框架搭建 Framework。制作期主要使用搭建好的框架,进行具体内容的场景建造,以及相应其他脚本的书写,从而完成游戏的主要内容。测试发布耗时 3 天,主要反复测试游戏的稳定性以及玩法的可执行性,调节游戏难度等。1.3 拟解决的关键问题游戏主要对几个技术进行解决:第一,ARCore 通过摄像头扫描场景,将 3D 场景放置在现实空间内一个固定的点,这要求
14、如何运用 ARCore 达到效果。第二,游戏中视觉错觉的运用,需要对视觉错觉有相应的艺术基础以及实际动手操作。第三,移动端要求使得 ARCore 能够稳定的运行在支持 ARCore 的机型上,对该机型进行适配调试需要解决。1.4 游戏的特色与创新之处本作基于 AR 技术来制作解密类游戏,并结合了视觉错觉元素,在技术上做了大胆的突破。与普通非 AR 的视觉错觉解谜类游戏不同,本作使用 AR 技术,这就要求更多的玩家在现实空间中与 3D 游戏场景进行交互。玩家需要站起来围绕着 3D 虚拟场景,不同角度的找到路径。这更大的加强了玩家与游戏的交互,同时也增加了游戏的难度,丰富了游戏。Unity 引擎底
15、层采用 C+语言编写,其支持的开发语言现在仅有 C#语言。可以使用VisualStudio 进行开发。本作品使用 Unity 引擎开发,主要使用 C#语言。32. 系统关键技术2.1 ARCore 技术研究运动跟踪技术。在 2D 和 3D 空间中跟踪用户的运动并最终定位它们的位置是任何 AR应用程序的基础,当我们的移动设备在现实世界中移动时,ARCore 会通过一个名为并行测距与映射(Concurrent Odometry and Mapping ,COM)的过程来理解手机相对于周围世界的位置。 ARCore 会检测捕获的摄像头图像中的视觉差异特征(称为特征点) ,并使用这些点来计算其位置变化
16、。 这些视觉信息将与设备 IMU 的惯性测量结果结合,一起用于估测摄像头随着时间推移而相对于周围世界的姿态(位置和方向) 。如上图所示,在图中,我们可以看到用户的位置是如何与真实沙发上识别的特征点相关联的,以前为了成功跟踪运动(位置) ,我们需要预先训练我们的特征点,有了 ARCore,它实时的自动为我们做这些,这种跟踪技术是非常新的,当然,它也有它的不足,后面我们会谈到。 在开发中,通过将渲染 3D 内容的虚拟摄像头的姿态与 ARCore 提供的设备摄像头的姿态对齐,开发者能够从正确的透视角度渲染虚拟内容,渲染的虚拟图像可以叠加到从设备摄像头获取的图像上,让虚拟内容看起来就像现实世界的一部分
17、一样环境理解技术。ARCore 会通过检测特征点和平面来不断改进它对现实世界环境的理解。ARCore 可以查找看起来位于常见水平或垂直表面(例如桌子或墙)上的成簇特征点,并让这些表面可以用作应用程序的平面, ARCore 也可以确定每个平面的边界,并将该信息提供给应用,使用此信息将可以将虚拟物体置于平坦的表面上。由于 ARCore 使用特征点来检测平面,因此可能无法正确检测像白墙一样没有纹理的平坦表面,这一点是由算法的底层设计决定的,除非附加其它算法,否则这个问题不可解。光估计技术。ARCore 可以检测其环境光线的相关信息,并提供给定摄像头图像的平均光强度和色彩校正,利用这些光照信息,我们可
18、以使用与周围环境相同的光照来照亮您的虚拟物体,提升虚拟物体的真实感。在上图中,处于强光中的猫与处于阴影中的猫的颜色保持了与真实场景中光照的一致。利用 ARCore,还可以用来估计光源的位置和光照方向,这样,可以让虚拟物体产生与真实光照一样的阴影效果,进一步提升虚拟物体的真实性。2.2 VIO 研究VIO 即视觉惯性里程计。按照 Davide Scaramuzza 的分类方法,可以分为 filter-based 和optimization-based 两大类,和一般 SLAM 系统的分类方法类似。按照是否将图像特征信息加入状态向量来分类,可以分为松耦合和紧耦合。VIO 主要尝试的是融合 Vius
19、al 和 IMU 的信息。松耦合中视觉运动估计和惯导运动估计系统是两个独立的模块,将每个模块的输出结4果进行融合,而紧耦合则是使用两个传感器的原始数据共同估计一组变量,传感器噪声也是相互影响的,紧耦合算法上比较复杂,但充分利用了传感器数据,可以实现更好的效果。VIO 中,目前多采用流形空间上预积分的方法对 IMU 数据进行预处理,核心思路是在两帧之间计算 IMU 的帧间运动增量,在迭代优化时直接使用运动增量,提高计算效率。2.3 寻路算法设计在本作中,为了能够让视觉错觉的道路能够连成一个能行走的整体,作者参考纪念碑谷游戏的表现形式,利用计算机图形学、OpenGL 知识,自主写了一套能够将 3D
20、 坐标投影到 2D 屏幕平面上,实时监测是否不同点是否重合,是否能够构成一个连续平面的算法。逻辑流程如图 2-1 所示。3D 点投射到平面存储路径检测玩家前后路径图 2-1 逻辑流程图这部分主要涉及到四个脚本,具体代码如下:SlotSystem.csSlot slots;void Start ()private void OnEnable()slots = Object.FindObjectsOfType();InvokeRepeating(“Check“, 1, 0.2f);public void OpenInvoke() slots = Object.FindObjectsOfType();InvokeRepeating(“Check“, 1, 0.2f);