U3D|毕设答辩|毕设项目|毕业论文|基于Unity的白族扎染工艺交互设计与开发

U3D|毕设答辩|毕设项目|毕业论文|基于Unity的白族扎染工艺交互设计与开发
文档标题基于Unity的白族扎染工艺交互设计与开发文档介绍第1章 绪论1.1 课题研究背景与意义白族扎染是中国云南省大理地区传统的手工印染工艺已有上千年历史的传承。2006年被列为第一批国家级非物质文化遗产名录。它用针线作笔、布料作纸在布料上表现出青白相间的自然晕染的效果。但是随着现代化生活方式的冲击以及年轻人对于传统工艺认识的淡化白族扎染也正处在传承人老龄化、传播方式单一、受众群体萎缩等现实问题之中。传统的展示方式大多只是博物馆陈列、静态图文解说或者简单的工艺演示不能使观众真正领悟扎染工艺的精髓和魅力。数字技术发展给非遗保护、传承赋予了新的方法。增强现实技术可以把虚拟的信息叠加到真实环境中使虚实结合的互动变得更为有趣因此很适合应用于工艺的展现以及文化的传承之中。借助AR技术用户可以在真实的环境中使用手机或者平板扫描特定的图片就可以看到三维的扎染工具、材料以及成品模型并且还可以观看整个制作的过程。这样一种生动形象的展示方式能很好地调动用户学习的积极性也使得文化认识变得容易一些。所以将白族扎染工艺和AR交互技术结合在一起有重大的现实意义。本课题研究意义表现在诸多方面。从文化传承的角度来说用数字化手段记录、再现扎染工艺可以使得更多的人认识、了解扎染工艺进而提高扎染工艺的文化传播广度、深度。教育科普中用AR交互系统为学校、博物馆、旅游景区等场所带来文化感受体验的方式可以使学习更加有新意。从技术应用的角度来说本文对Unity引擎、Vuforia插件以及它们对于非遗数字化的应用方式进行了探索给其它非遗数字技术的保护提供了一条可行的道路。此外本课题又把答题挑战、视频播放等互动方式加入了到AR体验里来使得系统既具有教育功能又带有娱乐性。1.2 国内外研究现状1.2.1 国外研究现状国外对于文化遗产的数字化保护研究开始的比较早并且技术体系比较成熟。欧美各国在虚拟现实、增强现实、混合现实技术的运用方面有比较多的经验很多知名的博物馆、文化遗产机构已经有了比较完善的数字展示系统。大英博物馆、卢浮宫等机构推出了AR导览应用程序扫描展品就可以获得详细的资料、三维模型或者历史复原场景。既改善了展览体验又给文化教育带来新的途径。就技术而言国外研究重点由原来的单个模型展示转变为沉浸式体验、交互式叙事等重视用户情感投入以及知识形成。就非物质文化遗产的数字化而言国外也取得了很大的成就。日本对于能乐、歌舞伎这些传统表演艺术的数字化保存与再现有着深入的研究利用动作捕捉、三维扫描等手段对表演的每一个细节都进行准确地记录。欧洲的一些国家对手工艺类的非遗项目做了数字化的建档工作用交互式的方式把工艺过程呈现给公众。但是国外的研究大多集中于本国的文化遗产对于中国特有的白族扎染这样的区域性的、民族性很强的非遗项目专门研究和实践较少。另外现有的系统对于AR识别同答题教育的结合还不充分。国外技术平台、开发工具给本课题研究工作提供支持。Unity引擎属于目前主流的实时三维开发平台在AR应用的开发当中有着成熟的应用。Vuforia是一款流行的AR识别插件有比较稳定的图片识别、跟踪功能被许多商业、教育软件使用。技术、工具等开源社区和教程资料丰富给开发者的学习、解决问题提供方便。因此本文在借鉴国外先进经验的同时根据白族扎染工艺的特点来设计开发出有本土文化特色AR交互系统。1.2.2 国内研究现状近些年来由于国家对非物质文化遗产保护工作予以高度关注国内有关非物质文化遗产数字化保护的研究水平明显提高。许多高校、科研机构对于各个不同的非遗项目进行了数字记录、展示与传播的相关研究。扎染领域的相关研究已经有少量学者做了一些初步的数字化尝试比如扎染纹样数字化采集、工艺流程视频录制以及简易多媒体展示系统的创建。博物馆、文化馆等开始使用二维码导览、触摸屏等数字化的方式提高观众的参观感受。但是现有的系统大多只是停留在信息展示层面并没有进行深度的交互设计以及沉浸感的营造。目前我国非遗数字化的研究已经取得了很多用AR技术成功应用实例。以剪纸、皮影、京剧脸谱等项目为对象研究者制作了相应的AR展示系统用户扫描图片就可以看到三维模型或者动画演示。从上所述可知利用AR技术进行非遗的传播是行之有效。但是针对白族扎染这种特殊的工艺来说还没有形成相应的AR交互系统。目前已有扎染数字化项目大多集中在纹样数据库创建或者静态作品展示上缺少对制作工艺的动态展现以及互动式的教育方式。就技术实现而言国内的学者对于Unity以及Vuforia的AR开发有着诸多的体会并且相关的学术文献以及开源项目也不断增多。但是现有的系统在功能整合方面还存在着很大的提升空间。很多系统只实现了单个模型展示的功能没有音效、视频播放、答题挑战等功能造成用户体验比较单一。本课题就这一缺陷设计出一个具有多种交互方式的AR系统目的是给用户带来更丰富的立体化学习感受。同时把扎染的制作过程设计成答题闯关的形式来增强系统教育性以及趣味性。1.3 研究内容本课题的主要研究内容就是设计并实现一个使用Unity引擎开发的、基于AR技术的白族扎染工艺交互系统。系统要实现AR图片识别和三维模型显示多目标识别和自动切换音效和背景音乐控制AR视频播放与控制文字简介显示答题挑战以及扎染制作答题流程等功能。用户用扫描识别图片的方式来观看扎染工具、材料或者成品模型在真实环境中可以观察到扎染的文化知识。技术选择上用Unity3D作开发平台Vuforia当作AR识别的插件来使用达成稳定的图片识别以及多目标动态切换的效果。三维模型用Blender创建音视频素材来自公开渠道或者自行录制。系统设计采用软件工程的方法依次完成需求分析、概要设计、详细设计、编码实现、系统测试用C#脚本控制各个功能之间的交互逻辑。文化内容上同白族扎染非遗传承人或者相关机构联系起来保证展示内容的文化真实性。选择具有代表性的扎染工具、纹样作为图片的选取对象答题题目以扎染实际操作步骤为依据来设计。经过本课题的开展希望能给白族扎染的数字化保护和传承赋予一种完备的技术解决办法。第2章 相关技术2.1 Unity3D引擎Unity3D是本项目的主开发平台是跨平台实时三维内容创作软件主要被用来做游戏开发、虚拟现实、增强现实和建筑可视化。Unity引擎具有良好的图形渲染系统可以比较好的表现出三维模型的材质、光照和阴影等。其模块化的架构设计可以方便的添加不同模块的脚本以及组件来完成复杂的交互效果大大提高开发速度。Unity还有资源商店可以获取很多模型、贴图、音效、插件等免费资源大大缩短了项目开发时间。就AR应用开发而言Unity有着较好的扩展性可以同许多AR SDK相无缝对接。本项目中使用的Vuforia插件就是Unity官方推荐的AR解决方案之一用简单地配置可以在Unity编辑器中完成AR识别图库的设置、目标模型的关联和识别响应的逻辑编写。Unity跨平台编译能力可以让开发者一次编写发布到iOS、Android、WebGL等不同的平台不需要对不同的平台重写大量的代码。对本项目的多终端适配有着十分重要的意义。另外Unity有活跃的开发者社区和大量的学习资料遇到技术问题时可以很快找到解决办法。Unity引擎的动画系统以及UI系统对本项目交互设计起到重要的作用。动画系统可对三维模型进行展示动画、溶解切换效果的控制使得变脸表演模块中脸谱切换更加自然流畅。UI系统有用户界面设计的灵活性可以自适应地显示屏幕尺寸不同的移动设备上的应用。使用Unity自带的性能分析工具实时监控应用的帧率、内存占用、渲染消耗等各项指标找到存在的性能问题并加以解决。因此Unity3D引擎可以完全满足本项目的需求也是完成白族扎染AR交互系统理想的平台。2.2 Vuforia增强现实技术Vuforia是本项目里完成AR识别和追踪的主要组件是PTC公司的增强现实软件开发工具包可以创建性能优越的AR应用程序。Vuforia的主要技术是基于计算机视觉的图像识别和跟踪算法可以识别人工设定好的目标图片在摄像机的正确位置加上虚拟物体。Vuforia支持多种类型的目标识别包含二维图片、圆柱体、三维物体和用户自定义的VuMark标记等给开发者留有灵活的选择余地。本项目用Vuforia来完成白族扎染图片识别以及三维模型叠加显示功能。开发者需要到Vuforia官网创建应用程序并得到许可证密钥在Unity的Vuforia配置面板里设置好之后就可以开始开发。在使用Vuforia之前要先将图片上传到目标管理器中系统会对每一幅图片的特征点进行检测并对识别效果进行评价只有特征点丰富且评分高的图片才能得到较好的识别效果。Vuforia可以同时识别和跟踪多个目标给本项目的“扫描不同图片自动切换模型和简介”打下了技术基础。当多个目标出现在视野当中的时候开发者可以编写优先级管理逻辑来决定现在要显示哪个模型。Vuforia还具有很好的环境适应性在不同的光照条件下、部分遮挡以及摄像机角度改变的时候仍然可以得到稳定的跟踪效果。它提供了一种智能的跟踪算法当识别到的目标从视野里消失后又重新出现的时候可以迅速地使跟踪状态恢复到原来的水平。Vuforia支持扩展跟踪功能即不管识别出来的图片处在哪个位置虚拟物体都会保持原来的所在位置给用户带来更好的AR体验。另外Vuforia同Unity深度整合起来之后开发者可以在Unity编辑器当中即时看到AR的效果而不需要不断重新打包部署到真机上测试这样就极大地提升了开发速度。利用Vuforia本项目AR交互功能可以得到有效的、稳定的AR交互体验。2.3 C#编程语言C# 是本项目用来实现交互逻辑以及功能实现的语言它是微软公司所开发的一款面向对象、类型安全的现代编程语言也是Unity引擎官方推荐使用的主流开发语言。C#语言的语法简单清晰结构有条理使用起来比较容易对于中等规模以上的软件项目开发来说非常合适。在Unity环境下使用C#脚本来连接游戏对象依靠生命周期函数StartUpdateAwake等等控制对象的行为并处理各种事件。开发者可以使用C#访问Unity引擎提供的各种API来控制三维模型、摄像机、音频、视频等各个部分。C#脚本担负着本项目当中诸多关键功能的执行工作。AR识别模块需要编写脚本来处理Vuforia的回调事件当识别到目标图片的时候就动态加载对应三维模型并且给它指定位置、姿态等属性。多目标自动切换模块用C#逻辑来管理不同的识别目标优先级决定当前激活哪个模型以及更新对应的文字简介。音效与音乐模块用C#封装了AudioSource组件操作给玩家带来了背景音乐、交互音效、音量调节等等一系列统一的方法。使用c#调用VideoPlayer组件的API来实现实时音频数据流在屏幕显示视频播放模块实现视频文件加载、播放、停止、改变到任意位置、改变音量等功能。答题挑战、扎染制作答题流程模块是C#代码实现的重头戏也是难点所在。该模块要对题目进行加载界面进行刷新用户答案做判断分数进行计算关卡进行解锁等多方面的复杂的操作。利用C#的面向对象特点可以将题目、关卡、用户进度等概念抽象成类和对象的形式使代码结构更加清楚、容易扩展。C#还具有事件、委托等机制可以很好地实现模块间的解耦当用户答对题目的时候触发音效播放以及界面更新而不需要模块之间直接引用。因此C#语言对本项目的交互逻辑以及功能实现起着稳定的技术支持作用。2.4 Blender三维建模软件Blender 是本项目用来创建三维模型的工具软件它是一款开源的、功能齐全的三维图形图像软件可以完成建模、雕刻、材质贴图、渲染、动画制作等所有的创作流程。Blender的最大优势就是它具有免费开源的特点用户不需要花费高昂的授权费用就可以使用它的全部功能这满足了本项目经济性要求。但是Blender拥有庞大的全球程序员社群以及丰富的视频教程资源在短时间内就足以使初学者学习基本的建模技巧。Blender可以导出FBX、OBJ等常见的三维文件格式这样的文件格式可以直接被Unity引擎所导入。在本项目中Blender主要用来创建白族扎染相关的三维模型即扎染工具模型、扎染材料模型和扎染成品模型。在建模过程中首先要根据真实的扎染工具、成品照片或实物来确定模型的基本形态及比例关系。利用Blender的多边形建模工具用挤出、倒角、细分等方式逐层构造出模型的几何外形。为了使模型更真实需要给模型加上合适的材质以及贴图Blender的节点材质编辑器可以创建复杂的材质效果比如布料的纹理、金属的光泽等等。模型制作完毕之后要对模型做一些必要的修改来符合移动设备的要求。优化方法就是降低模型的三角面数量去掉不需要的材质球产生合理的UV贴图等。Blender提供减面修改器在保证模型轮廓的情况下可以大幅度减少面数对AR应用的运行帧率有很大的提高作用。优化后的模型导出为FBX格式和贴图文件一起导入到Unity项目中。在Unity中可以对模型材质做进一步调整使用标准着色器或者自定义着色器来达到理想的光照、渲染效果。使用Blender和Unity配合来建立完整的扎染文化三维资产库。第3章 需求分析3.1 总体目标本课题的总体目的就是用Unity引擎来设计和实现一个基于AR的白族扎染工艺互动系统用数字技术传播国家级非物质文化遗产。系统要给用户带来沉浸式的AR体验使用移动设备扫描图片时能够直接看到扎染工具、材料、成品三维模型并且可以通过文字、音频、视频、答题等不同的方式了解扎染工艺的文化内涵和制作过程。系统应该简单易用运行流畅并能适应各个年龄段、各种文化背景的用户使用。从功能上讲系统要完成对AR图片识别与模型显示的全部功能、多个目标的识别及自动切换、音效和背景音乐、AR视频播放与控制、文字介绍显示、答题挑战和扎染制作答题的全部流程。每一个功能模块都应该设计得合理、稳定。需要注意的是扎染制作答题流程要按照实际扎染工艺的步骤顺序来设计使用户在答题的过程中自然而然地掌握扎染完整的工艺流程达到寓教于乐的设计目的。从性能方面来说在主流移动设备上要保证系统的流畅运行AR模型加载及切换要快而及时视频播放不能有卡顿、音画不同步的现象。系统的启动时间不能太长内存占用也不能太高造成应用崩溃。对图片识别的速度及跟踪稳定性也要加以注意用户浏览图片后模型应该能够及时地出现当设备移动时模型也能稳定的附着在识别图上保证 AR 体验连续性、真实性。从文化传播角度来讲整个系统必须保证所有的展示内容都是文化准确的。三维模型的形态、颜色、纹理应该尽量还原真实的物品原貌文字简介以权威资料为依据客观、准确地介绍扎染的历史、工艺和文化内涵。视频内容要完整展示扎染制作的关键步骤并加有详细的解说答题题目应紧扣扎染的知识点并且难度要适中。从而达到以上目标以期给白族扎染的数字化传承提供一套可以使用的工具。3.2 用户需求分析本系统的主要用户为普通观众和系统管理员两类。普通观众即博物馆参观者、学生、景区游客以及对传统文化有浓厚兴趣的群众希望可以方便地获取有关白族扎染的知识并得到愉快的体验。该类用户没有专业的操作技能所以系统的交互必须简单直观用点击、扫描等自然的交互方式就可以完成操作。同时用户希望得到三维模型、语音解说以及视频演示等形式丰富的信息从而达到全方位的认知体验。普通观众对系统的沉浸感和趣味性有很重要的作用。三维模型应该能够与现实环境自然地融合在一起答题挑战以及扎染制作答题流程要具有趣味性不能过于枯燥。用户还要得到清晰的指引以及进度上的反馈知道自己处在哪一个环节之中并且知道自己下一步要做些什么事情。系统管理员主要是非遗保护机构的工作人员、博物馆的策展人员以及教师主要对系统的可用性进行保障。管理员希望对识别图片、模型、简介、视频、题目等信息进行便捷的更新不需要重新开发整个系统。由于管理员没有编程能力后台需要提供图形化的操作界面或者简单的配置文件编辑方式能够对用户的使用情况进行统计从而改善内容。此外系统还需考虑非遗传承人对系统扩展接口的要求保留可以连接非遗传承人作品模型以及制作视频的接口并且尊重知识产权清楚地注明版权声明。只有当该系统的各种需求被充分满足之后才能起到文化、教育方面的传播作用。3.3 功能需求分析3.3.1 AR视频播放与控制AR视频播放和控制功能可以实现系统在AR场景下播放视频是显示扎染动态工艺流程的最佳方式。视频可以真实的再现传承人扎花、浸染、拆线等步骤的全过程表现布料在染液里慢慢变色的变化。用户可以扫描某个图片触发视频播放。视频播放控制功能有播放暂停进度拖拽音量调节等基本功能。用户可以根据自身的学习速度来控制播放进度对重要的步骤进行暂停以仔细观察。视频播放器的界面要简洁明了控制功能以触屏为主背景半透明有利于显示视频内容。视频内容加载、播放性能要加以关注。视频文件一般比较大可以使用网络流式加载来减小安装包的体积也可以使用本地存储但是对视频进行合理的压缩。视频解码应该用硬件加速来保证播放的流畅性以及电池的续航能力。3.3.2 答题挑战答题挑战功能属于系统里的趣味性教育模块用问答的形式来考察和加深用户对于扎染文化的认识。用户进入独立入口之后随机抽取一定的题目进行作答题目的内容包含扎染的历史渊源、工艺流程、工具材料、纹样寓意等内容。每一道题应该有一个正确的答案给出一个简单的解析让用户在答错的时候知道正确的知识。答题挑战的流程设计要有激励性。用户连续答题系统即时判定对错并累加得分答对指定数量之后可以获得成就徽章或者开启新的内容。答题界面清晰地显示出当前题号、总分等信息每答完一道题就会马上得到正确与否的反馈答错的题目可以在挑战结束时汇总起来供用户复习。题库管理是项重要工作。系统可实现题目增删改查以及分类管理每次都会产生一个随机生成的题目来保证题目的新鲜度。系统能够对用户的答题情况进行记录当用户答错某一题时在之后的挑战中会加大该题的难度并在下次再遇到此题时会给予用户更大的机会去解答。3.3.3 扎染制作答题流程扎染制作答题流程是该系统最具有特色的功能模块把答题挑战同扎染的实际制作过程结合起来产生一种“以答促学”的互动体验。该功能按扎染实际制作过程分为若干个关卡每个关卡对应一个制作步骤用户必须正确回答出每个步骤的相关题目才能进入下个步骤最后完成虚拟的扎染制作流程。每个关卡的题目都是紧扣这一步骤的重点知识内容例如“设计图案”的关卡考察的是使用图案设计工具“扎花”的关卡考察的是使用缝扎法、绑扎法的不同。只有答对当前关卡所有题目才能进入下一关保证用户在推进过程中的前置知识已经掌握符合循序渐进教学的原则。界面设计要具有很强的进度感和仪式感用扎染工艺流程图展现每个步骤用户通关以后被点亮或者打钩。每关开始前可以显示简要介绍或者图片来帮助复习答完所有关卡之后再出示完整的扎染成品三维模型并播放祝贺音效。用户可以随时回炉重试用沉浸式的学习加深对于扎染的了解。3.4 性能需求分析性能需求就是保证系统良好的使用体验的约束条件。该系统是运行在移动设备上的AR应用程序对性能有较高的要求。系统帧率不宜太低每秒至少30帧左右否则就会出现帧率偏低的状况进而造成AR模型跟踪延迟并且操作反应变慢。为了实现高帧率在模型面数、纹理分辨率、渲染管线等各个方面的参数需要进行调整对复杂的模型使用LOD技术根据距离改变模型精度。识别的速度、稳定度为AR体验。用户将摄像头对准识别图片到模型出现的时间越短越好识别成功后模型应该稳定跟随图片的移动不能出现抖动或者漂移。光照发生改变或者存在部分遮挡的时候系统依然会继续执行跟踪任务。这就需要合理选取识别图片的特征丰富度在开发过程中对实地测试以及参数调节进行充分的操作。内存占用、启动时间属于指标。应用安装包大小应该在合适的范围内第一次启动或者进入场景时的时间越少越好。运行时应该防止出现内存泄漏以及过度的内存分配以防止由于内存不够造成应用突然崩溃。对模型、纹理、音频等资源要选择恰当的压缩格式依照需求决定是否立即装载以及卸载。系统能耗也不能忽略。AR应用不断使用摄像头、GPU和CPU会造成设备发热快、耗电快。本系统在保证功能体验的基础上优化算法去除不必要的计算、渲染比如模型不在视野内的时候暂停渲染用户长时间没有操作的时候降低帧率或者进入待机模式。经过全方位的性能优化之后在主流移动设备上可以得到流畅、稳定、省电的使用体验。第4章 设计论述4.1 概要设计4.1.1 系统总体架构本系统总体结构以高内聚、低耦合为原则把整个系统分成四个部分分别为表现层、业务逻辑层、数据访问层和资源层。表现层是用户与AR系统交互的层也是AR摄像头画面上的数据呈现层以及各种用户界面和动作的执行者。其目的在于界面美观、操作流畅和反应快速。AR画面渲染以及模型叠加的工作交由表现层来执行使用Unity的渲染管线来产生逼真的虚实结合效果。业务逻辑层是系统的灵魂它对所有的功能模块的流程进行控制以及数据流。当用户在表现层操作的时候业务逻辑层就会接到相应的事件并且会调用合适的处理函数。比如Vuforia识别出目标图片的时候业务逻辑层就会决定用哪一个模型、显示什么简介、播放哪种音效。答题挑战、扎染制作答题流程的逻辑控制也就是题目抽取、答案判断、分数累加、关卡解锁等都属于这一层次。数据访问层主要是进行数据的读取以及持久化的操作即对本地或者远程的数据进行加载以获取到对应的识别图库配置、模型资源地址、音视频文件、题目题库等。同时用户的答题记录、系统设置也被这一层所保存和读取。数据访问层给出统一接口让业务逻辑层不必理会数据具体的存储形式从而减小模块间的耦合程度。资源层是所有的美术资源、数据文件的物理存放处包含模型、贴图、音频、视频、配置文件等等。图4-1 系统架构图4.1.2 功能模块划分根据需求分析本系统功能被分为AR识别与模型展示模块、多目标自动切换模块、音效与音乐模块、AR视频播放模块、文字简介显示模块、答题挑战模块和扎染制作答题流程模块这七个主要模块。每一个模块完成一组相关联的功能各个模块之间用明确的接口进行交流便于分工开发、独立测试、后期维护。只要接口不变修改或者改进某个模块不会影响到其它模块的正常工作。AR识别与模型展示模块属于系统的基础部分对Vuforia进行初始化设置、创建识别图管理、加载模型并创建实例、绑定模型与识别图的姿势同步等做了封装处理向上层提供识别成功、识别失败等事件回调接口。多目标自动切换模块对多识别目标进行优先级管理在识别目标发生变化的时候协调模型的卸载和加载并向简介模块发出内容更新的通知。音效和音乐模块主要处理所有的音频资源的加载、播放以及音量的控制并为其它模块提供简单的API来调用播放指定的音效背景音乐的循环播放和开关控制也由它负责。AR视频播放模块包含着视频的加载播放暂停进度跳转等等控制逻辑。文字简介显示模块管理简介内容数据库根据当前展示模型自动更新UI面板文本。答题挑战和扎染制作答题流程模块完成完整的问答游戏逻辑即题库管理、界面控制、得分计算、流程推进等各项功能的实现。图4-2 功能结构图4.2 详细设计4.2.1 首页面模块设计首页是用户第一次打开软件时所看到的第一界面它既有导航功能也有营造氛围的作用。首页设计简捷大方主要用来表现白族扎染文化。背景可用扎染纹样动态变化或者一段精美的扎染作品视频来呈现使用户一进入应用就会有浓郁的民族艺术氛围。在应用的中央位置用手工感觉的字体用双手制作出来标题。在标题下有AR体验、答题挑战、扎染制作指向扎染制作答题流程、设置等几个主要的功能入口按钮。按钮设计应清楚易按大小适合手指触摸。按钮上可以用图标加文字的形式来提高可识别性。按钮被点击的时候应该有视觉反馈比如缩放效果或者颜色变化同时伴随着短暂的声音。为了使首页面更美观按钮采用圆角矩形、半透明毛玻璃并带有一些微弱的阴影。背景音乐应在首页启动后开始播放音量保持在合适的程度用户可对页面进行设置从而调节音量。首页面还要考虑到不同设备屏幕大小的适配问题。UI元素应该用相对布局或者锚点系统来保证横竖屏切换时位置、大小的合理性。对平板电脑这类大屏幕设备来说按钮、文字可适当放大留白空间增加。首页面的加载速度应该尽可能快避免用户等待过久。所有使用到的图片、音频资源要进行压缩处理缩短首次加载时间。图4-1 首页界面4.2.2 音效与音乐模块设计音效和音乐模块使用单例模式来保证全局只有一个音频管理对象在运行。该模块封装了对Unity AudioSource组件的操作提供PlayBGM、StopBGM、PlaySound、SetVolume等公开方法。背景音乐用AudioSource组件控制设为循环播放音量适中。交互音效使用另外一个AudioSource组件播放短促的声音每次只播一个支持多个音效一起播放。为便于管理、调用可以将所有音效片段存入一个字典结构中用字符串键值对的形式访问。例如“button_click”对应按钮点击音效“answer_correct”对应答题正确音效。这样在其他模块调用时只需传入键名即可播放对应的音效不需要直接引用AudioClip资源减少了模块间的耦合。音效的优先级可以适当设置重要的提示音优先级可以设置得高一些这样在同时播放多个音效的时候不会出现重要信息被覆盖的情况。背景音乐的播放、停止应该与应用的生命周期相配合。应用启动时开始播放进入后台的时候暂停回到前台的时候恢复。用户可以打开或者关闭背景音乐在界面的设置里面设置一个开关来控制其是否开启设置应被保存下次启动程序时自动使用。交互音效一般不需要关掉但是可以允许用户调节音量大小。背景音乐在播放视频的时候会自动变小或者消失在视频结束之后才会重新出现。这些细节的控制要依靠事件监听来完成。图4-2 音效与音乐设置界面4.2.3 AR视频播放模块设计AR视频播放模块设计要选取恰当的视频播放器方案。Unity自带的VideoPlayer组件功能完备可以播放各种格式的视频并且可以实现播放控制等功能适合本项目的需要。视频播放有两种触发方式一种是由用户主动点击视频播放按钮另一种是由扫描特定的视频识别图片来触发播放。无论是哪一种方法都必须建立一个可以显示视频画面的渲染器Component将视频输出到RawImage上从而得到一个悬浮于AR空间里的虚拟屏幕。视频播放器控制界面需要有播放/暂停按钮、进度条、时间显示、音量滑块和关闭按钮。所有的控件都应该放在视频画面的下面或者旁边采用半透明的背景不能完全挡住视频的内容。进度条可以被拖动跳转使用户能够迅速到达想要看的区域。当视频结束时应自动弹出重播按钮或者引导进入相关的答题挑战页面加强学习的效果。在视频播放时AR识别及模型展示功能要持续运行视频画面可依识别图片而行或独立于识别图片而定此视情况而定。视频文件的处理属于本模块一项的工作。原始视频文件体积大必须做压缩转码。使用视频编辑软件把视频分辨率为1280x720编码格式设成H.264帧速在30帧以下。音频码率也可以稍微降低一点来缩减文件体积。压缩之后的视频文件放到StreamingAssets文件夹里打包的时候也会和应用一起发布。对大的视频项目来说还可以采用AssetBundle技术把视频当作外部资源分批次下载从而减小初次安装包的体积。图4-3 AR视频探索界面4.2.4 答题挑战模块设计答题挑战模块设计出了一套完整的问答游戏逻辑。首先要设计题目数据结构每个题目包含题目ID、题目文本、选项列表、正确答案索引、所属类别、难度等级、解析说明。题目数据可以存成JSON文件方便修改、扩展。挑战开始的时候系统按照设定好的规则从题库中随机选择出指定数量的题目组成一份试卷。游戏界面应该清楚地显示当前题号、总题数、得分、题目内容。用户点击某个选项的时候立刻对答案做出判断并且给用户视觉和声音上的反馈。如果得分增加则播放正确的音效选项变绿如果得分减少则播放错误的音效正确选项变绿用户选择的选项变红并显示解析说明。用户需要点击下一页或者几秒钟自动跳转。所有题目做完之后会进入到结果页面总分、正确率、答错题目的列表、正确答案都会在结果页中展示出来同时还会有一个“再来一局”和“回到首页”的按钮。答题挑战模块还要有进度保存以及成就系统。如果用户中途退出系统可以保存当前进度下次再进去时提示用户是否继续。答对全部题目得一个特别的AR模型或者一枚电子徽章来激励用户不断尝试。为了提高可玩性可以设计出不同的难度模式简单模式有提示功能困难模式有时间限制。游戏化的丰富设计可以大大提高用户参与以及学习的效果。图4-4 答题挑战界面4.2.5 扎染制作答题流程模块设计扎染制作答题流程模块是本系统的特色部分把扎染实际制作过程和答题闯关结合起来。首先要梳理扎染完整的工艺过程即设计图案、扎花、浸染、氧化、拆线、清洗晾晒、成品展示。每一个步骤对应一个关卡每一关有若干个和该步骤有关的题目。只有全部答对当前关卡的问题才可以进入下一关。该种设计模拟出真实的扎染中“一步出错成品全毁”的特点使用户感受到每一个步骤的决定性作用。关卡界面的设计要带有强烈的仪式感以及进步感。屏幕上方可以显示出扎染工艺流程时间轴或者阶梯图已经完成的关卡用绿色打勾标识当前关卡高亮显示未解锁的关卡用锁定图标标识。在每一个关卡开始之前先呈现一段该步骤图文或者视频说明再进入答题阶段。答对当前关卡的所有题目之后就会出现一个“扎染成功”的动画效果然后解锁下一站。完成所有关卡之后用户就会得到一个完整的虚拟扎染作品。系统可以显示一个精美的三维扎染成品模型用户可以自由地转动、放大、缩小地观赏它并且还会提供有关这个成品的详细解说。同时可以询问用户是否愿意将自己的成就分享出来来扩大扎染文化的影响。用户还可以随时对过程进行重置重新挑战或者从中间某个关卡继续。经过这样一种深度沉浸式的工艺流程学习之后用户就会对扎染有系统的认知。图4-5 扎染制作答题界面第5章 软件测试5.1 测试概述软件测试对保证系统质量起到决定性的作用。在开发的过程中对系统进行了系统的测试包含功能测试、性能测试、用户体验测试等各方面内容。测试的主要目的是保证系统能满足需求分析中规定的全部功能和性能要求发现并改正可能存在的缺陷使交付出来的系统稳定可靠。测试工作在整个开发过程中一直持续进行从单元测试到集成测试再到系统测试都有测试计划及相应的测试用例。测试环境模拟出真实的使用场景即各种不同的移动设备、各种不同的光照条件、各种不同的识别图片的打印质量等。测试人员为课题组成员及部分普通用户目的是要得到各种类型的用户的不同的操作习惯、认知水平的测试结果。测试过程中发现的所有问题都会被记录到缺陷跟踪表里标注严重程度、复现步骤以及截图马上分派给开发人员去修补。系统测试重点放在AR识别的准确度和稳定性、多目标切换的流畅度、音视频播放是否可靠、答题逻辑是否正确、扎染制作答题过程是否完整上。尤其扎染制作的答题流程要严格依照工艺顺序开展检验工作不允许出现任何逻辑上的失误或是知识性的纰漏。经过严格的测试本系统质量得到保证为正式发布打下了基础。5.2 系统测试5.2.1 功能测试功能测试主要是对系统是否满足需求文档里所规定的所有功能点进行验证。对AR图片识别及模型展示功能用测试人员用各种不同的距离、角度、光照条件打印出的各种识别图片扫描测试。从测试结果可知在正常的光照条件以及一定的距离内可以得到较高的识别成功率使得模型能够稳定的叠加到图片之上并且跟随移动。光照不足或者图片被部分遮挡的时候识别速度和稳定性都会降低但是依旧能在一段时期内保持跟踪符合预期。多目标识别和自动切换功能测试时把多张识别图片摆放在桌上然后让摄像头依次扫过不同的图片。经过测试可知系统可以将视野内主要的目标识别出来在切换图片的时候可以自动更新显示的模型、文字简介等切换的过程很平滑没有明显的卡顿或者错误。当两张图片在画面里同时出现的时候系统会根据优先级规则只显示其中的一个模型不会出现模型重叠、频繁跳动的情况。音效和音乐模块的测试为背景音乐播放、停止、调整音量等提供服务还给各种交互音效的产生做准备。测试人员点击各个按钮、完成答题、通过关卡检验音效是否按要求做出相应的反应。测试结果显示所有的音效都可以正常播放背景音乐的开关功能也正常音量的调节是平滑的。对视频播放模块进行了视频的加载、播放、暂停、进度拖拽、关闭等测试各种设备运行都正常。答题挑战和扎染制作答题流程检验了题库抽取、判断答案、累积得分、解锁关卡的全部过程是否准确全部操作可以完成。表5-1 功能测试结果测试模块测试内容测试结果AR图片识别与模型展示不同距离、角度、光照条件下扫描识别图片正常光照下识别成功率高模型稳定跟随光照过暗或遮挡时仍可维持跟踪多目标识别与自动切换多张图片摆放桌面依次移动摄像头扫描正确识别主要目标切换平滑多图同时出现时按优先级显示单一模型音效与音乐模块背景音乐播放/暂停/音量调节交互音效触发音效正常播放音乐开关功能正常音量调节平滑AR视频播放模块视频加载、播放、暂停、进度拖拽、关闭各项播放控制功能表现良好答题挑战模块题目抽取、答案判断、得分累计逻辑正确流程顺利完成扎染制作答题流程关卡解锁、流程推进、完成反馈逻辑正确流程顺利完成5.2.2 性能测试性能测试主要是针对系统在各种不同的设备上运行的流畅性、所占资源及响应时间等各方面进行考察。测试人员用不同档次、不同品牌、不同配置的手机进行测试有高配置旗舰机、中等配置主流机。高配手机系统的响应速度比较快在对AR模型进行3D建模时可以进行旋转、缩放之类的操作并且不会出现视频卡顿的情况。在中等配置手机上系统仍旧可以保持较好的帧率在多模型同时加载或者视频播放的时候存在一些延迟但是不会对使用造成太大影响。内存占用上使用性能分析工具来观察应用运行时内存的变化。测试结果表明系统启动之后内存消耗稳定视频、模型加载造成内存增加但是不会无限制地增多。切换识别图片、卸载旧模型加载新模型的时候内存可以被正确地回收没有发现内存泄漏的现象。连续做答题挑战、视频播放等动作之后并没有因为内存不足而导致闪退的现象。所有启动的时间在允许范围内场景转换时间控制在允许的时间内系统响应的时间也符合要求。从点击图标到最后一页全部显示测试结果是满意的。从首页进入AR场景的加载时间也快不会产生明显的等待感。视频第一次出现的时间由视频的文件大小和设备的读取速度决定优化过的视频一般会比较快地显示出来。本系统性能满足设计要求可以给用户带来较好的体验。表5-2 性能测试结果测试指标测试内容测试结果运行流畅度高配旗舰机及中等配置主流机型运行测试高配机型流畅顺滑中等机型帧率可接受内存占用启动后及切换过程中的内存变化监控占用稳定切换时正确回收无内存泄漏应用稳定性连续答题挑战和视频播放操作连续操作无闪退启动与加载时间应用启动至首页面、首页进入AR场景启动及场景加载时间在可接受范围内5.3 结果分析综合功能测试和性能测试结果可以看出本系统基本达到了设计要求各个功能可以正常工作性能较好。功能测试中出现的个别设备上的视频播放器控件响应不灵敏、多目标切换时少数文字简介没有及时更新的问题已经被解决并且已经得到了验证。系统在各种主流移动设备上可以正常使用各个设备屏幕分辨数、操作系统版本都能正常工作没有出现严重的兼容性问题。从用户角度出发本系统用户的总体评价是比较积极的。大部分用户认为AR模型展示效果逼真扎染工具及成品立体感强可以很好地体会它的形状以及使用方法。视频播放功能得到了用户的认可认为能看到真实的制作过程比看静态图片或者文字描述更生动。答题挑战、扎染制作答题流程被用户认为是有趣的、有教育意义的功能在互动中学习而不是枯燥地记忆知识点。尽管测试结果总体较好但是系统还存在着可以进一步改进之处。在极端的光照下AR识别率会降低以后可以采用更鲁棒的特征匹配算法。另外一些人认为应该加入更多的扎染图片及更加多样的扎染纹样模型来使系统更好的使用深度学习技术。这些反馈给本系统之后期的迭代及改良给予有益的参照。总的来说本系统已达到项目所设的各项指标具有一定的应用价值和推广意义。

最新新闻

日新闻

周新闻

月新闻