标题:诗性侠影基于李白侠文

文档介绍:

绪论

1.1 课题研究背景与意义

唐代侠风盛行,文人的任侠风气空前绝后,李白就是其中最为典型的一位。除了创作大量的咏侠诗外,还身着侠服,行侠仗义,他的诗里有“仰天大笑出门去”的豪放不羁,“十步杀一人”式的侠义精神和游仙诗里所体现出来的自由精神。将文人风骨、侠客精神、仙道情怀三者融合起来所形成的这种文化特质,在文学性、传奇性方面都有了新的发现,给武侠游戏设计赋予了全新的创作视角。李白的侠文化不同于传统的武侠江湖恩怨,更体现出现代的武侠游戏缺少的精神内核就是超越世俗、追求精神自由的人格境界。

近些年来,武侠题材游戏市场的热度一直居高不下,从传统的RPG到开放世界的动作游戏,武侠类型的种类也越来越多。但是大多数作品存在着文化表达同质化、符号化的问题,只是对门派争斗、招式较量这些表面的内容进行了叙述,侠客的形象也仅仅被刻画成武力无比的战斗机器,缺少对于侠文化精神实质的深入探讨。玩家在游戏里获得的只有打斗的爽快感,却不能体会出侠之大者、为国为民的精神境界,更别提李白笔下的功成身退、平交王侯的那种超然气度了。目前游戏行业正在向着文化赋能方向发展,把传统文化和游戏设计相结合是提高游戏文化附加值的有效途径,也是推进传统文化年轻化传播的重要方式。同时Unity引擎技术日趋成熟,3D建模、动画状态机、战斗AI、任务系统等方法给创建出有文化表现力的武侠游戏提供良好的支持。

本课题的研究意义从理论、实践两方面来体现。从理论角度来说,本文对李白的侠文化内涵和外延做了系统的梳理,在游戏设计领域里首次提出李白文化的研究空白问题,并且探讨如何把文学资源变成游戏的设计元素的理论方法。从实践上来说,以李白侠文化为基础的武侠游戏《诗性侠影》,可以冲破传统武侠游戏同质化的困局,给玩家赋予既有文化体验又有娱乐功能的游戏产物,为国风游戏文化价值的挖掘赋予了现实案例。

1.2 国内外研究现状

1.2.1 国外研究现状

国外有关文化遗产的数字化保护及创新性传播研究起步较早,有较多的理论研究和实践成果。欧美国家对于实时渲染技术、高沉浸感的虚拟现实、交互式的故事叙述有较早的探索,而且用游戏引擎重现了大量的历史场景、戏剧表演、文化文物等。欧洲的博物馆和文化机构也开始使用Unity、Unreal引擎等软件来搭建虚拟展厅,将重要的历史文物、艺术作品用网络的形式展示出来。这些项目重视用户体验和教育功能相结合,用交互设计加强观众的参与度以及学习效果,给文化遗产数字化传播树立了范例。但是这些项目大多关注西方文化语境下文化遗产的展示,在对中国传统文化的数字化转化方面研究很少。

就技术而言,国外的研究机构在实时渲染、物理模拟、依赖人工智能驱动的虚拟角色行为等各方面的研究也取得了较大的进展。利用动作捕捉技术、实时面部动画技术可以达到对表演艺术家动作和表情的精准再现,给虚拟表演提供技术支持。国外学者对交互叙事的研究也比较深入,提出了许多把用户的抉择融入到故事发展中去的交互模型,使虚拟体验更加个性化、更具感染力。但是就李白侠文化这种依靠中国古典文学底蕴、东方美学符号的文化主题来说,国外专门性的研究与实践很少。李白诗歌中侠客精神、道家思想、盛唐气象等文化资源,国外研究很难直接拿来参照。这给本课题留下了创新的余地。

国外对中国的侠文化主要用比较文学、文化传播等角度来研究,侧重于对侠文化在海外传播和发展过程的考察。国外学者对于游戏的设计更多是从游戏的交互体验、叙事结构等角度展开研究,并没有形成一个系统的理论体系,但是其成熟的设计方法可以作为参考,为本文的游戏设计工作起到一定的指导作用。但是由于文化差异,国外对于李白侠文化的理解还存在着局限性,并没有针对李白侠文化的特定设计出游戏方案。因此,在借鉴国际上先进的实时图形技术和交互设计思想的基础上,更进一步地将中国文化独特的魅力与中国艺术的精粹融合到技术里,使技术与文化内涵达到有机统一的状态。

1.2.2 国内研究现状

国内关于侠文化的研究大多集中在文学方面,学者们大多从历史发展、精神内涵等方面进行研究。关于李白侠文化的研究中,有人认为初盛唐开放包容的时代精神和尚武崇勇的风尚,使李白形成了独具特色的侠人人格,他的咏侠诗里描绘的侠客形象有古侠客、边塞少年、复仇女侠等众多种类,这些侠客的形象具有洒脱自在、豪迈慷慨的性格特点,其中蕴含着快意恩仇、不慕名利、功成名就后隐居的愿望。还有学者认为李白诗歌里英雄主义和理想主义相互交织,“侠客行”中既有为国为民的理想追求,又有对自由的渴求。就李白精神世界的探究而言,有学者提出李白的游仙诗是其生命意识的体现,诗里所描绘的神仙自由生活是诗人突破肉身局限的追求,也是对其所处现实政治的一种讽刺。

目前国内对于游戏设计的研究大多是围绕武侠游戏的玩法革新、视觉表现、国风游戏的文化传播作用展开的。有学者认为国风游戏可以承载文化符号、表现中华美学精神,唤醒青年的文化记忆、坚定文化自信。另外有学者认为电子游戏具备娱乐层和再现层,玩法机制和叙事内容可以一同参与到叙事之中来,这种观点给文化元素渗透到游戏中增添趣味性提供了一些支持。另外有学者认为游戏IP产业是数字时代文化生产的变革,用多种业态来达成经济价值和文化价值。但是目前有关李白侠文化与游戏设计的结合研究还较少,多数研究成果只是对文化元素进行了浅层次的提取,并没有对精神内核进行系统的转化。

国内利用Unity引擎进行文化数字化项目开发的速度很快,主要在文物展陈、非遗传承、虚拟旅游等方向上取得很多成果。越来越多的开发者开始使用Unity进行虚拟场景的开发,有关的教材、教程等也越来越齐全。这些项目为本课题给予了较好的技术条件和经验的参照。但是现有的武侠游戏项目都存在着同质化的现象,仅仅停留在招式比拼、门派纷争这些表层的叙述上,并没有对侠文化精神内涵进行深入挖掘。本课题是在充分调研现有成果的基础上,对以上不足进行改进和创新,在文化表达的深度和系统性方面有所突破,创建出更加完善的李白侠文化武侠游戏设计体系。

1.3 研究内容

本课题目的在于利用Unity引擎创建一款以李白侠文化为主要内容的武侠游戏原型。研究先通过文献调查整理出李白侠文化特点,提出技术方案确定开发途径,重点完成角色控制、战斗系统、任务交互、小地图和后台管理等功能模块的开发,用3ds Max完成三维建模工作。

从文化上来说,提炼出诗剑合一的设计理念,把诗歌元素加入到战斗和任务的叙事当中,在游仙诗里取自由探索的精神,在咏侠诗里取李白的气质,达成文化体验同游戏性的融合。从技术角度上讲,使用Animator状态机来控制角色的动作以达到移动、视角跟随、小地图导航、异步切换、战斗AI以及任务交互的目的。

开发完毕之后再进行功能及性能测试,保证系统稳定可靠,完成毕业论文并记录设计成果。本课题希望对“传统文化加游戏设计”法进行总结,给类似的文化数字化项目提供借鉴。

2 方案论证

2.1 方案提出

对国内外武侠游戏的发展现状以及李白侠文化研究状况进行分析后,本课题提出利用Unity引擎开发出一个以李白侠文化为主要内容、以武侠游戏为形式的原型。方案主要思想是以Unity为平台,用3ds Max建模,用C#编程,创建出集角色控制、战斗系统、任务交互、小地图导航为一体的综合性武侠游戏体验系统。核心问题就是怎样在虚拟游戏环境里逼真、流畅、交互式的再现李白侠文化精神,使玩家既可以体会到武侠战斗的快感,又能有主动去接触、了解李白诗歌文化内涵的想法。

方案所依据的有多个方面。从技术角度来讲,Unity引擎具有完善的游戏级实时渲染管线、材质系统、动画状态机,可以很好的完成角色动画控制和场景渲染,技术较为成熟,开发者社区活跃,学习资源丰富。就文化传播来说,武侠游戏能够冲破传统文学流传的时空禁锢,促使更多的人用最少的代价踏入李白侠文化的殿堂,依靠交互设计来加深用户参与程度以及印象。就应用场景而言,本系统成果可以直接应用于文化教育、游戏娱乐、文旅推广等领域,有较好的推广价值。

在方案设计时要注意到的一些主要技术难点包括如下几个方面。角色动作控制流畅性为首要任务,传统的动画切换方式会造成突兀的感觉,因此需要设计出合理的动画状态机来提高动作的自然程度。战斗系统平衡性、打击感等也成了重要的难点,需要对攻击判定、受击反应加以精心的设计。任务系统的叙事逻辑同游戏性相融合也不能被忽略,必须创建出可以承载李白侠文化精神的叙事结构。根据以上困难,本方案用Animator状态机来管理动作、用射线检测来实现攻击判定、用多级任务结构来设计方法。

2.2 可行性分析

2.2.1 技术可行性

本课题所处的开发条件比较具备。Unity引擎有着比较完善渲染管线、材质系统和动画状态机,可以完成角色动画控制和场景渲染的任务。C#是经过官方指定的语言,语法清晰规范,标准有注释文档可以用于角色控制、战斗、任务等操作方式算法的编写。Unity也有了NavMesh这些插件工具,可以大大简化敌人AI的编写。

开发团队经过系统学习,已经掌握了Unity开发、计算机图形学、三维建模等相关的知识,并且具备了一定的实践能力。学校实验室的设备可以达到开发测试的要求,有足够的计算能力和软件授权。另外Unity有着活跃的开发者社区、大量的学习资料,在出现技术问题的时候可以快速找到解决办法,技术实现途径比较清晰、合理。

从资源管理的角度来说,Unity的AssetBundle机制可以达到快速加载、自动更新的效果,从而避免因为内存使用过多造成性能问题。动画状态机设计已经有了成熟的思路,只需要根据武侠游戏的特点进行个性化的调整,战斗系统中的攻击判定、伤害计算等逻辑也可以采用通用的设计模式。因此本课题的技术上是完全可以实现的。

2.2.2 经济可行性

本课题开发成本小、投入产出比高。软件开发上使用Unity的免费版Personal可以达到所有的开发目的。3ds Max教育版是供学生免费使用的一款软件,学生可以随意地对3ds Max教育版进行下载和使用,并可以对角色建模、场景搭建、材质制作等各个方面的工作进行操作。Visual Studio Community也免费,软件工具链全部可以免费或者教育版获得,大大降低了开发成本。

本课题只需要一台配置合适的计算机就可以进行开发和测试。学校实验室设备以及学生个人电脑可以满足Unity引擎运行的需求,不需要购买高性能工作站或者昂贵的设备。游戏美术资源可以采用自主建模的方式来完成,李白侠文化素材可以从公开的古籍文献以及艺术资源中得到,不需要缴纳版权费用。

经济效益方面,项目成果可以转化成文化教育工具或者娱乐产品,具有一定的社会效益和经济效益。不论是为了博物馆陈列、学校文化教学,还是用作商业游戏参考依据,在产生社会效益的同时也有可能带来经济效益。即使是不做商业利用,本课题也具有了毕业设计的学术价值和学习价值,值得投入。

2.2.3 操作可行性

本文根据用户的实际情况,即使用环境和使用习惯来展开设计方案。前台游戏体验模块为与用户直接互动的部分,用户使用鼠标、键盘进行操作的时候可以对角色进行移动、换位移、攻击等操作,不需要学习太多的技巧。角色移动使用WASD键来操控,是大多数3D游戏中使用的操作习惯。攻击、技能释放使用鼠标点击或者按键触发的方式,操作简单直接。任务交互用点击NPC然后选择对话选项的方式来完成,信息显示清楚不会对用户造成沉浸式的体验影响。

后台管理系统的设计也考虑到操作方便性。系统给出图形化的配置界面,文化内容管理员不需要学习编程就可以对游戏资源的添加、任务内容的编辑以及文化知识库的维护进行操作。所有的操作都有提示、确认的过程,避免出现由于操作失误而导致的数据丢失等问题。场景流程的配置采用可视化的方法,管理员可以通过拖拽或者填写表单的方式来设置NPC的位置以及任务的触发条件。

就项目开发管理而言,本文所定的项目周期计划科学合理,各项任务清楚明了。需求分析、系统设计、编码实现、测试完善等各个环节都会产生相应的产出物以及质量标准。根据功能模块开展任务开发,可以达到按期完成各项工作阶段的目标。因此本课题的操作是可行的。

2.3 方案确定

经过综合比较和分析后,本课题最后确定用Unity引擎为主,3ds Max为建模工具,C#为编程语言的技术路线。在渲染引擎方面,对比了Unreal Engine和Unity Engine。Unreal Engine画面表现力强,但是学习曲线陡峭、硬件要求高,其蓝图脚本和C++编程方式与本课题需求不匹配。Unity引擎使用简便、有强大的社区支持、可以实现跨平台部署,适合开发工作,最终选择使用Unity。

在建模工具方面,对比了3ds Max、Maya和Blender。3ds Max、Maya功能强,学生用教育版免费使用。Blender虽然是开源软件并且功能不亚于3ds Max,但是由于学校教学主要使用的是3ds Max,所以选择3ds Max作为角色及场景的建模工具。

交互控制部分用Unity原生Input系统加射线检测来完成,灵活处理键盘输入和鼠标交互。角色动画用Animator状态机和动画参数组合来达到动作平滑切换的目的。战斗系统用碰撞体为基础来做出攻击判定,从而构成一个完整的战斗逻辑闭环。任务系统用到的是基于状态机的设计思想,用任务ID、阶段管理和奖励来控制。数据存储使用本地方案,用PlayerPrefs和JSON文件进行持久化。由此可以看出本方案从技术、经济、操作等各方面均可以实现,为以后的开发工作打下了良好的基础。

3 需求分析

3.1 总体目标

本课题的总体目标就是利用Unity引擎创建出以李白侠文化为基础的武侠游戏原型,具有沉浸式的探索、爽快的战斗、有文化内涵的任务系统,使用户能更好的理解李白侠文化的艺术性与精神。系统既要满足前台用户的使用要求,又要把后台管理员的内容维护需求考虑到里面,在保证视觉效果以及操作流畅性的情况下实现文化传播和管理方便性的目的。

从用户体验的角度来讲,系统应当具备第三人称视角角色控制功能,在盛唐风格的武侠世界里自由地去探寻,体会李白所描绘出的“诗剑江湖”。玩家和NPC进行对话交流,接取任务并完成任务,在整个过程中体会李白侠文化的内在精神。战斗系统要具备爽快的打击感和策略性战斗体验,使玩家用诗剑合一的思想去战胜敌人。从技术性能的角度来讲,要求实现系统具有实时渲染的能力,角色动画不会出现卡顿的情况,并且还要保证交互响应的迅速完成。

在内容管理上,系统应该有后台管理的功能,可以对任务内容、NPC信息、文化知识库进行编辑和更新,同时也可以对游戏中场景的交互点进行设置调整,管理员不需要编程就可以完成系统的内容管理。就文化传播而言,系统必须准确传递出李白侠文化的精神内涵,角色设置、任务叙述以及场景的美术风格都应当符合盛唐文化所具有的审美特点,在让用户得到愉悦的体验的同时,又能够学到有关李白诗歌以及侠文化的一些知识。

3.2 用户需求分析

本系统的用户主要分成两个主要的部分,分别是玩家用户和文化内容管理员。

玩家用户是系统的使用者,以游戏的方式感受李白侠文化。其基本需求就是武侠世界自由地穿梭,身临其境的感受体验;与敌人进行酣畅淋漓的对决,在惊心动魄之中感受那份爽快的快感;与NPC交流,接任务,了解背后所隐含的文化内涵以及诗句的意思,去发现更多的文化元素;与游戏中的场景物体有互动,从中获取新的文化信息。玩家对画面表现、操作感受、故事底蕴等各方面的标准很高。

文化内容管理员负责系统日常维护以及内容更新工作,主要需要能够快速地对任务内容进行编辑,可以管理NPC的信息,对文化知识库做相应的管理,同时还能对场景交互点进行设置。管理员没有编程的能力,所以后台需要提供图形化的操作界面,降低技术门槛,可以实现资源版本的管理以及备份恢复功能。

还要考虑教育工作者、研究人员等各方面的需要。教育工作者希望把系统当作教学辅助工具,就要给予文化知识点检索作用。研究者对文化转化的方法论进行关注,需要给出具体的开发文档。这几种需求对拓展系统应用场景都有十分重要的意义。

3.3 功能需求分析

3.3.1 角色控制与漫游

角色控制以及漫游功能属于武侠游戏体验的基础。本系统需要实现玩家用第三人称视角在盛唐风格的武侠世界里自由移动,用键盘控制角色移动、用鼠标控制摄像机视角的功能。角色控制功能要有流畅的操作手感,移动速度适中,视角转动灵敏但不会引起眩晕。漫游功能还要和场景碰撞体相结合,保证玩家角色不能穿过建筑物或者掉出场景边界的状况出现。

除了基本的移动、视角控制之外,还要加上增加沉浸感的元素。玩家行走于不同地面上会发出不同的脚步声,接近可交互物体会产生视觉或者听觉的提示,进入到某个区域内会触发剧情或者事件。角色动作的丰富性以及流畅度属于重要的部分,玩家角色要具备站姿、行姿、跑姿、跃姿、打斗等众多的状态,依靠Animator状态机完成平滑转变,给玩家带来良好的动作呈现效果。

3.3.2 战斗系统

战斗系统属于武侠游戏的主要玩法单元,是决定游戏是否具备可玩性以及沉浸感的关键因素。本系统要达到实现玩家同敌人之间的即时战斗交流的目的,包含普通攻击、技能施展、敌人AI行为、伤害评定以及战斗状况的把控这些内容。战斗系统要体现出诗剑合一的思想,把诗歌元素和战斗机制结合在一起,用特殊的操作组合来使用诗意技能,感受李白诗歌的豪迈和飘逸。

敌人AIG的设计很难。敌人要具备待机、巡逻、追击、攻击、受击、死亡等各方面的行为状态,按照玩家距离以及自身情况来改变。战斗系统的打击感与平衡性也要加以精心安排,攻击判定应当采取碰撞体或者射线检测办法,受击反应包含视觉特效、音效、震动以及角色动画等种种形式,伤害计算要全面考量诸多要素,塑造出合理的战斗数值结构。

3.3.3 任务与NPC交互系统

任务、NPC、内容三者之间所形成的互动关系才是李白侠文化传播的主要方式。本系统应该具有实现玩家同NPC之间对话的功能,并对任务的获取、进行以及结束的整个过程都进行有效的管理。任务系统应该能处理打败敌人、获取物品、和NPC交谈、到达目的地等种种任务,并且具有任务追踪的功能,在界面中可以显示出目前的任务进度以及目标。

任务叙事的文化内涵属于本系统的特性。任务的构建应以李白的侠文化为中心,把李白的诗歌、典故、精神带入到故事背景和对话中。玩家可以经由完成任务而体会李白的“将进酒,杯莫停”的豪情壮志或者领悟到李白的“十步杀一人,千里不留行”的侠义风神,这样便是在游戏的过程里不知不觉之中去领会李白的侠文化。

3.3.4 小地图与视角系统

小地图、视角系统属于提高玩家游戏体验的辅助手段。小地图在界面的角落处可以显示出场景的俯视图以及重要的地方,NPC的位置、任务的目标、敌人的方位等等都可以在上面标出。视角系统包含主摄像机跟随和玩家视角控制这两个部分,主摄像机会一直跟随玩家角色,保持一定的跟随距离和角度,在经过障碍物的时候可以自动改变位置来保证不被遮挡。

视角系统还有一个重要的功能就是战斗中视角的管理。当玩家处于战斗状态的时候,视角应该稍稍远离一些,这样才能从全局角度去观察敌人的位置和动作。当玩家锁定某个敌人之后,视角就应当把敌人的视角作为中心进行跟随,而不能把视角移开到其他位置去。这些功能可以极大地改善战斗的体验感、观感,并且使玩家可以在战斗里更多的去关注战斗本身。

3.3.5 后台管理系统

后台管理系统为文化内容管理员设计,给非技术用户提供方便地对系统内容进行管理。本系统应该包含任务内容管理、NPC信息管理、文化知识库管理、场景配置管理这四个主要的子模块。管理员对任务可以实现增删改查,可以设置任务名称、任务描述、目标任务和任务奖励。

NPC信息管理模块可以供管理员来设定NPC的名字、外表、所在地点、对话的话语及可获取或者可以完成的任务清单,对话内容能够包含多轮对话以及分支走向。文化知识库管理模块对有关李白侠文化图文、音频、视频等资料做统一管理。场景配置管理模块主要是对游戏世界中交互逻辑进行设置,可以做可视化编辑以及实时预览。后台系统应当给出直观的图形化界面来削减操作繁杂程度。

3.4 性能需求分析

性能需求属于影响系统良好运转的重要指标。本系统属于实时渲染的3D游戏应用,性能较高。系统在主流配置的计算机上运行的时候,帧率要保持在一个稳定的水平,不能出现大幅度的变化导致玩家产生眩晕或者操作迟缓的情况发生。特别是当敌人同时出现、技能特效频繁的时候,帧率稳定就变得格外重要了,它直接影响到玩家的战斗感受以及作出判断的速度。

系统的起动时间和场景转换的等待时间应当处在可以容忍的程度之下。对大型场景模型、纹理资源等可以使用异步加载或者分步骤加载的方法,先加载出玩家可见的部分,从而缩短等待时间。内存占用要处于合适的范围内,不能因为数据的增加而使内存的使用量过大,从而引起内存溢出或者性能降低。采用资源池、对象复用等方式来控制内存消耗,尤其是经常出现生成和销毁战斗特效以及敌人单位的情况,在合适的时机采用合适的对象池管理方法能够大大地减小内存使用带来的开销。

用户的交互响应时间应该很短,这样才能保证玩家的操作是即时的。角色移动以及攻击动作的操作应在输入后的下一帧得到反馈,不能存在明显的输入滞后现象。攻击动画和伤害判定时机要准确对接,保证打击感真实可靠。动画过渡效果应该流畅自然,状态切换过程中不能出现卡顿或者穿模的现象。系统的稳定性与容错性也不能忽略,不能出现由于某个操作的无效导致整个系统崩溃的情况,在无效的操作或者资源加载失败的时候给出友好的提示而不是直接结束程序运行。因此性能要求既要考虑视觉效果又要考虑运行速度,在美观和稳定之间取得平衡。

4 设计论述

4.1 概要设计

4.1.1 系统总体架构

本系统使用分层架构的设计思想,把系统分成用户交互层、业务逻辑层、数据访问层、资源层四个主要部分,各个层次之间有明确的责任划分,具有低耦合高内聚的特点。用户交互层是对玩家的操作进行处理,并给出视觉上的反应,即控制角色、摄像机跟随以及显示UI等内容,主要为用户的使用体验与操作的响应速度着想。业务逻辑层为系统的灵魂,是主要对战斗逻辑、任务状态控制、NPC互动反应进行操作的模块,从用户层面的请求出发来执行逻辑处理,然后更新到数据层以及资源层的状态上。

数据访问层对数据进行持久化存储和读取,任务数据、NPC数据、玩家进度数据等都属于其中。本系统采用本地存储的方式,用JSON格式将数据序列化后存储到PlayerPrefs中,也可以通过文件的读写操作进行数据的存取操作,不需要对系统做额外的部署,简化了系统的复杂程度。资源层是所有美术资产(即3ds Max导出的所有模型文件、纹理图片、音频文件等)的统称,用Unity的资源系统来加载和管理。各个层次之间进行规范的调用,使得整个系统更加容易维护、扩展,也利于多人一起工作。

图4-1 系统架构图

4.1.2 功能模块划分

根据需求分析,本系统可以分成六大部分来完成,即角色控制和漫游模块、战斗系统模块、任务及NPC交互模块、小地图及视角模块、后台管理系统模块和场景及UI模块。每一个模块都有一定的职责范围,利用接口来达成协作。角色控制和漫游模块用来处理玩家的移动输入、动画状态管理以及摄像机跟随控制,需要和战斗系统模块一起工作,在进入战斗模式之后就切换成控制模式。

战斗系统模块主要是攻击判定、伤害计算、敌人AI的行为控制以及战斗状态的管理,需要和角色控制模块相互配合获取位置信息,需要与任务系统模块相互配合更新任务的进度。任务和NPC交互模块对所有非玩家角色的行为主体、任务的执行流程等行为进行管理,依靠事件机制与其它模块进行通讯。小地图、视角模块主要用作导航、视角的辅助功能,后台管理模块具有内容管理的功能,场景、UI模块可以对场景进行搭建,界面进行设计。六个模块互相配合,就构成了完整武侠游戏系统。

图4-2 功能结构图

4.2 详细设计

4.2.1 首页面模块设计

首页模块以李白的侠文化为中心,在首页上部用唐代的书法体写李白的“诗性侠影”,在下面用墨色系的诗意图、侠客剪影来营造诗剑江湖的意境。页面中央竖向排布有开始游戏、加载游戏、后台管理、退出游戏这四个入口按钮,开始游戏为主入口并且做了视觉上的加强。按钮用半透明毛玻璃的效果来表现,鼠标悬停时会有所反馈,鼠标经过处有缩小、加深的效果。

点击开始游戏,进入主场景,加载游戏本地存档进度,后台管理需要密码认证以防止未经许可的访问,退出游戏弹出确定提示以免误操作。首页面包含音乐控制部分,文化传递、视觉效果、实用性均达到要求,给用户留下良好的第一印象。

图4-3 首页界面

4.2.2 角色控制与漫游模块设计

角色控制模块把移动和视角的控制分开。创建胶囊体作为角色的物理载体,用角色控制器组件控制角色位置的移动以及物体的碰撞,摄像机设于角色的后面。移动控制用WASD键检测输入,根据摄像机朝向改变世界坐标移动的方向。

视角控制用鼠标移动增量来实现水平、垂直的转动,设定上下角度限制防止翻转。角色移动动画用Animator状态机来控制,在移动的过程中根据速度的不同从站立状态变为行走状态或者跑步的状态。模块中加入碰撞检测避免穿墙,接近可交互物体时出现提示图标,摄像机会被遮挡的时候自动靠近以保证视野。

图4-4 角色控制与漫游界面

4.2.3 战斗系统模块设计

战斗系统用状态机设计模式来处理,把战斗过程划分为探索、战斗、战后这三个部分。探索状态下玩家可以自由移动,接近敌人的时候进入战斗状态,打败所有的敌人之后进入战后状态结算奖励。攻击判定使用基于碰撞体的方式,在攻击动画的某个帧上产生判定碰撞体,命中之后计算伤害并触发受击动画以及特效。

为了加强打击感,在声音上加一些小小的停顿、震感及被击响时的声音。敌人AI用有限状态机来表现,它有四个状态,待机、巡逻、追击、攻击以及被击中这五种。“诗剑合一”的理念是经由技能系统达成的,每一个技能都和李白的诗歌存在联系,释放的时候会出现相应的诗句并且会带来特殊的战斗效果。

图4-5 战斗界面

4.2.4 任务与NPC交互模块设计

任务模块使用状态机设计模式把任务的生命周期划分成未接取、进行中、可完成和已完成四个阶段,可以建立任务链和依赖关系来形成完整的叙事结构。系统具有任务跟踪功能,可以在界面上给出当前的任务进度以及目标。

图4-6 任务界面

NPC交互系统的中心就是对话系统,每一个NPC有标识信息、对话条目以及相关联的任务。根据任务状态显示不同的对话内容,有接取任务时显示接取选项,有交付任务时显示完成选项,没有任务时显示默认闲聊。对话提供多轮、分支式的选项。任务设计以李白侠文化为载体,以李白生平事迹、诗歌典故为取材,用游戏化的方式开展文化传播活动。

图4-7  NPC交互界面

4.2.5 小地图与视角模块设计

小地图以场景上独立设有一个摄像机的形式存在,在场景上方用单独的摄像机会把渲染出的图层纹理展示出来,并且是使用正交投影法从正面正视着场景的方式出现,标注了npc、任务点等重要信息。主摄像机用平滑跟随算法来保持玩家前方固定偏移的位置,用插值函数来保证平滑的过渡,不会出现突然的跳跃。

与墙壁发生碰撞的时候会自动缩小距离来避开穿透,战斗场景下会拉近距离以便于观察。视角模块有手动控制功能,可以使用鼠标拖拽旋转摄像机,也可以通过调节灵敏度、反转垂直视角等方式来改变视角。

图4-8  小地图与视角模块

5 软件测试

5.1 测试概述

软件测试是保证系统质量的重要环节,在整个开发过程中系统性地开展了各种各样的测试工作。测试目标是对系统满足需求分析的要求做验证,发现、纠正可能存在的缺陷来保证系统的稳定性、可靠性。测试工作存在于开发的各个环节当中,即单元测试、集成测试以及系统测试等各方面。测试环境尽量模拟真实使用的环境,在各种硬件平台上、各种操作系统、各种输入设备上进行测试,保证系统的兼容性。

测试用例的设计遵循全面性和典型性的原则。全面性指的是测试用例需要覆盖所有功能模块和关键逻辑路径,对正常的操作流程进行测试的同时,也要对异常情况下处理流程进行测试。典型性即测试用例要体现真实用户使用的习惯以及常用的操作方式,不能出现过于极端或者不现实的测试场景。每一个测试用例都会把测试步骤、预期结果以及实际结果全部罗列出来,有利于问题的找出并追踪。对发现的问题根据严重程度进行分类,高优先级的问题立即处理,低优先级的问题可以在以后的版本中加以改善。

测试资源有测试人员以及测试环境。测试人员包含课题组成员以及一些测试用户,依靠系统实际运行情况来找出隐藏的问题,依照用户的反应来进行系统的交互设计改良。测试环境包含不同的电脑种类,这些电脑中有些有各种各样的配置,包括不同的显卡配置,不同的处理器配置等等,也有不同的分辨率显示屏以及其他操作系统的版本,在这种差异环境下系统才能表现出较好的功能和效率。对跨平台需求的检验,在不同的目标平台上都进行了测试。整个测试工作有条不紊地向前推进,为系统质量提供强有力保障。

5.2 系统测试

5.2.1 功能测试

功能测试是对系统中各个功能模块是否符合需求分析中规定的功能进行的检验。测试角色控制、漫游等主要功能键盘WASD键控制移动时,是否能够准确的完成移动,移动的方向和视角的方向是否一致,在测试中发现摄像机移动时平滑不平滑以及相机的跟随是平滑的吗,在跳伞过程中是否还能完成正常的跳跃动作吗。经过测试发现,角色控制功能基本上达到了设计的要求,移动手感良好,碰撞检测也正确。测试时发现的视角卡入墙壁的现象,用摄像机碰撞检测逻辑进行修正。

战斗系统功能测试包含攻击判定、技能释放、敌人AI行为、伤害计算、战斗状态转换等各方面内容。在测试的过程中主要对攻击判定是否准确进行了检测,保证攻击碰撞体能准确地与敌人碰撞盒相碰;对技能释放是否流畅进行了检查,保证技能动画和技能特效能同步播放;对敌人AI行为逻辑是否正确进行了核对,保证敌人可以按巡逻、追击、攻击等状态条件进行转换;对伤害计算和生命值系统是否准确进行了检验,保证战斗数值系统正常运转。对测试中出现的攻击判定有时不准的情况进行调整,改变攻击判定帧以及碰撞体大小。

任务与NPC交互系统功能测试是对NPC对话触发、任务接取、任务目标跟踪、任务完成判断、任务奖励发放等全部过程进行检验。对NPC对话的测试结果显示NPC可以按照任务状态展示不同的对话内容,任务系统也可以正确跟踪玩家的任务进程,在完成任务之后给玩家发放奖励。后台管理系统功能测试包含任务编辑、NPC配置、文化知识库维护等操作,保证管理员可以使用后台界面完成所有内容管理的操作,并且修改能被正确地保存下来并在前台游戏中反映出来。所有的功能模块经过多次的测试、改进后才达到设计的目的。

表5-1 功能测试内容与结果

测试模块

测试内容

测试结果

角色控制与漫游

WASD移动响应、视角方向一致性、碰撞检测、摄像机跟随、跳跃功能

基本满足要求,视角卡墙问题已解决

战斗系统

攻击判定准确性、技能释放流畅性、敌人AI状态转换、伤害计算

攻击判定偶有不准确,已通过调整判定帧优化

任务与NPC交互

NPC对话触发、任务接取与完成、任务追踪、奖励发放

功能正常,符合设计要求

后台管理

任务编辑、NPC配置、知识库维护、修改保存与生效

功能正常,修改可正确反映至前台

5.2.2 性能测试

性能测试的主要目的就是检测系统在不同的硬件环境下运行情况,保证玩家得到良好的使用体验。测试所用到的指标主要有画面帧率,内存占用情况,场景加载时长等。性能测试在各种配置的计算机上完成,集成显卡和独立显卡,不同性能档次的处理器和内存。经过测试可以发现,在主流配置的计算机上,该系统可以正常运行,帧率达到流畅体验的基本要求。战斗场景中如果敌人数量很多的时候帧率会有一小段时间的波动,但是并不会影响到整个战斗的流畅性。

内存占用测试用Unity Profiler来监测。完整游戏场景加载完之后,包含的所有角色模型、场景模型、纹理资源和音频资源的内存使用率处在比较好的范围内。经过资源压缩和优化以后减少内存使用的量。内存泄漏测试是用长时间的运行观察内存的变化情况,没有发现内存的持续增大,说明系统资源管理机制正常。从资源加载速度测试结果可知,系统从启动到主菜单出现所用时间在合理范围内,主菜单进入游戏场景的加载时间以及场景之间切换的时间也都处于可以接受的程度之内。

经过对于资源的压缩、优化之后,最终游戏包体大小满足要求。纹理压缩使用了合适的压缩格式,能够保证较好的画质下减少纹理的内存占用;音频文件用MP3等压缩格式减小音频文件的体积;模型文件去掉冗余顶点、改变网格拓扑来减小文件的大小。启动速度的优化包含着资源加载方式的改进,把非关键资源设为异步加载,先加载玩家最先接触到的内容。性能测试、优化工作做好之后,使得系统可以在目标硬件上正常运转,给玩家带来良好的游戏感受。

表5-2 性能测试结果

测试指标

测试条件

测试结果

画面帧率

主流配置计算机(战斗场景多人同屏)

流畅运行,帧率满足要求,偶有波动无卡顿

内存占用

完整游戏场景加载后

保持在合理范围,无内存泄漏现象

加载速度

启动至主菜单、主菜单至游戏场景、场景切换

时长在可接受范围内

包体大小

发布后游戏包

符合预期,通过压缩优化控制

5.3 结果分析

经过系统的综合功能测试以及性能测试可知,该系统基本符合设计目标及用户要求。角色控制与漫游、战斗系统、任务与NPC交互、小地图与视角、后台管理等各个模块都实现了正常的运行,主要的功能是稳定的,但是还有一些辅助性的功能还存在着一些缺陷。测试过程中发现的问题大都得到了解决,剩下的低优先级问题不会对系统正常使用造成影响,可以放到后期的优化工作中再继续改进。战斗系统所产生出来的打击感得到测试用户的好评,认为战斗操作顺手、反应快速,较好地表现出武侠战斗的快意。

性能测试结果证明,在主流配置的计算机上系统可以流畅运行,帧率可以达到较好的流畅效果,内存占用在可以接受的范围内,加载时间在玩家可接受的时间内。经由性能剖析可知,性能瓶颈主要是由于资源加载速度较慢、大量特效一起出现时渲染耗费过大等原因造成的。针对上述问题,用资源异步加载、特效对象池优化和LOD技术等办法进行改进。后台管理系统操作便捷性测试结果表明,没有技术背景的管理员在简单指导下可以完成简单的增删改查操作,达到了降低运维门槛的目的。

但是系统也存在很多可以改进和完善的地方。当场景中有大量的模型和特效同时渲染时,帧率会受到一定的影响,在之后通过LOD设置以及视锥体裁剪算法来改善。一部分的测试用户认为应该加入更多种类的技术以及更加丰富的战斗系统,在后续的新版本当中可以加以发展。本系统功能完备,性能良好,符合预期目标,实现了李白侠文化与武侠游戏设计的结合,有较强的实用性、发展性。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐