Software Engineering and Applications
Vol. 11  No. 04 ( 2022 ), Article ID: 54524 , 9 pages
10.12677/SEA.2022.114081

基于Unity3D的文字冒险游戏的设计与开发

刘宁晖,宋瑾钰

浙江理工大学计算机科学与技术学院,浙江 杭州

收稿日期:2022年6月4日;录用日期:2022年8月1日;发布日期:2022年8月9日

摘要

Unity作为一款被游戏开发者广泛使用的游戏引擎,其强大的功能有利于实现玩家沉浸式的交互体验。本文基于Unity开发引擎,设计并制作一款文字冒险游戏《剑》。利用3DSMAX进行三维场景的建模,使用Adobe Photoshop进行游戏素材的制作,在Visual Studio中利用C#代码进行游戏逻辑编写,将水墨画风与游戏设计进行巧妙地结合,配合多样性的交互,融入了三维场景漫游与语音交互技术,给玩家带来沉浸式的游戏体验。

关键词

Unity3D,语音识别,水墨画风格,文字冒险游戏

Design and Development of Text Adventure Game Based on Unity3D

Ninghui Liu, Jinyu Song

School of Computer Science and Technology, Zhejiang Sci-Tech University, Hangzhou Zhejiang

Received: Jun. 4th, 2022; accepted: Aug. 1st, 2022; published: Aug. 9th, 2022

ABSTRACT

Unity is a game engine widely used by game developers. Its powerful functions are conducive to the realization of players’ immersive interactive experience. Based on the unity development engine, this paper designs and makes a text adventure game. 3dsmax is used for 3D scene modeling, Adobe Photoshop is used for game material production, c# code is used for game logic writing in visual studio, and the Chinese-Ink-Painting style is combined with game design, combined with diverse interaction, and integrated with 3D scene roaming and speech recognition technology to bring immersive game experience to players.

Keywords:Unity3D, Speech Recognition, Chinese-Ink-Painting-Style, Text Adventure Games

Copyright © 2022 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).

http://creativecommons.org/licenses/by/4.0/

1. 引言

如今,随着生活节奏加快,人们在工作、学习等方面所面临的心理压力也在不断增大。为了放松身心,人们需要各种形式的精神娱乐产品,而其中游戏就成为了当下首选的娱乐产品 [1] 。

相较于国外,我国游戏行业起步较晚,游戏质量与种类上都存在一定缺陷,这就导致了我国本土经典游戏数量较少 [2] 。近些年来,随着数字媒体技术的进步,无疑为游戏领域提供了崭新的发展契机 [3] ,游戏产业发展势头迅猛,各种类型的游戏尤其是冒险类游戏发生了显著性的变化。文字冒险游戏又称电子小说,不同于注重实际操作的游戏,文字冒险游戏更强调丰富的故事情节、生动的角色形象以及玩家的沉浸情感体验 [4] 。玩家在游戏中通过不同的操作与选择,触发不同故事情节,自我决定游戏进程。因此文字冒险类游戏获得了大量游戏爱好者的青睐。

文字冒险类游戏的发展,首先体现在游戏质量上的优化,游戏设计能够满足不同用户的需求;其次是游戏的视觉效果,AR、VR等技术的发展,使游戏在感官感受设计上更加注重玩家的游戏沉浸感;最后,在游戏设计上开始重视融入本国特色,在游戏中展现出浓厚的民族文化内容 [5] 。如今,“轻形似重意似”的水墨表现形式也越来越受到玩家的认可,也正在逐步影响当前游戏美术风格的发展 [6] ,开始被广泛地应用到游戏设计中。例如在跑酷类手游《忍者必须死3》、武侠冒险手游《说剑》中,就大量运用了中国水墨风,独具风格的水墨场景切换,让玩家可以体验到穿梭在刀光剑影的丛林中的感受,给玩家以东方的水墨之美印象 [7] 。

但是目前水墨风格游戏并不多,这主要是因为水墨风格一般会局限游戏的情节内容与背景,本文深入研究如何将水墨画风与游戏设计进行巧妙地结合,设计并制作了一款基于Unity引擎的水墨风格文字冒险游戏《剑》。剧情设定在武侠世界,一名望仙派弟子在门派惨遭灭门后,独自探索真相,重振门派。游戏侧重于用文字或图像来展现游戏剧情,通过探险解谜完成推理。游戏的创新点在于将水墨画风与游戏设计进行巧妙地结合,配合多样性的交互,融入了三维场景漫游与语音交互技术,力求给玩家沉浸式的游戏体验。

2. 游戏架构设计

作为一款文字冒险游戏,《剑》侧重于通过玩家对线索的推理分析,还原故事真相进而推动游戏剧情的发展,玩家在游戏过程中最重要的任务就是寻找线索,并分析线索之间的关联。游戏按照时间发展顺序展开,通过主人公的成长历程,让玩家感受到角色的代入感。游戏的整体架构如图1所示。游戏以“死亡之谜–后山奥秘–决战之巅”为剧情主线,按照时间顺序串联。游戏的序幕与尾声篇章以动画的形式呈现,交代故事发生背景。

游戏实现分为四个主要的模块,如图2所示。“后山奥秘”篇章中玩家需要在后山进行漫游,搜集可用的线索。因此该篇章分为建模模块与漫游模块,其中建模模块完成漫游场景中物体的建模,包括吊桥、山石植被、住宅等的建模。漫游模块中需要在Unity3D中完成鼠标操纵玩家视角移动、键盘操纵玩家位置移动以及靠近关键性物品时的碰撞检测等主要功能。“死亡之谜”篇章中玩家需要对师父的死亡原因进行调查,主要涉及语音交互模块,实现玩家与NPC的语音交互以及文字对话界面的显示。“决战之巅”篇章中玩家通过游戏给定的线索最终通向隐林阁完成武林大会,主要涉及按钮交互模块,需要实现按钮的触发以及相应的执行操作。

Figure 1. Diagram of game architecture

图1. 游戏架构图

Figure 2. Diagram of game module

图2. 游戏模块图

3. 游戏界面风格

3.1. 视觉风格设计

视觉风格是指游戏呈现在玩家面前的状态。它专注于以游戏世界的外观,以及游戏世界中所使用的元素来强化玩法。文字冒险游戏《剑》以水墨风为主要视觉风格(如图3),采用水墨风格能使游戏更具有中国武侠风的视觉美感。

3.2. 界面要素设计

游戏中界面文字使用了隶书与行书两种字体,图形设计融入了印章、背篓、毛笔等中国风元素(如图4),将玩家置于游戏创设的武侠情境中。同时游戏图形要素与实际的意义又有所关联,例如背篓的图形会让玩家顺理成章地联想到背包的功能,印章上麦克风的图形会让玩家联想到语音交互的功能,这些都不仅起到装饰的作用,而且可以让玩家直接感知其背后的含义。

Figure 3. Diagram of game scene

图3. 游戏部分场景界面图

Figure 4. Diagram of game interface elements

图4. 游戏部分界面要素图

4. 漫游场景设计

4.1. 游戏模型制作

本游戏中需要完成五个主要模型的制作,分别为房屋、树木、山石、吊桥以及拱门。漫游场景贴近古风,因此模型的贴图和材质以相关图片为参考,较为真实地呈现。所有模型通过3DSMAX软件多边形建模技术,主要过程如下:

根据需要仿制的图片,建立封闭曲线,将其转换为可编辑多边形,完成面片创建。将制作的面片进行剪切,意在制作模型的一些细节部分。在制作例如拱门这类对称模型时,就将制作的面片,进行对称操作,选择菜单栏中的“修改器–网格编辑–对称”。接下来建模就是重复过程:复制面,选择多边形,shift+拖动。也可以选中一条边,按住shift拉出相邻的一个面。如果不在同一个平面上,但是相邻的话,可以进行塌陷操作。由于多边形建模的一个弊端在于会产生较多的可编辑顶点,因此在制作过程中对于相近的两个顶点,可以用目标焊接的方法将它们焊接成同一个顶点,便于后续的UV展开与贴图。选中创建好的两条边,点击“桥”操作,可以直接在两条边中创建一个面,从而提高建模效率。

在完成模型制作之后,需要对制作的模型进行贴图渲染。UV展开与贴图的主要制作过程如下:选中模型,打开编辑器,添加“UVW展开”命令,进入“UVW编辑器”。UV展开时选中模型需要断开的边,再在UV网格进行断开操作。选中每个分开的面,进行“松弛”操作。将未被展开的面移出网格外,将已经展开完毕的面放置到网格内,可以进行“水平对齐”或“竖直对齐”,方便把需要的贴图放置到具体位置。完成UV展开后点击“工具”中的“渲染UV模板”,保存为JPG格式。在Photoshop中打开该JPG文件,将搜集整理的贴图放置到具体位置上,制作完毕后存储为JPG文件。在3DSMAX中打开“材质编辑器”,在材质球的漫反射处添加制作完成的材质图片,将材质球附加给模型,完成模型材质贴图。实现效果如图5所示。

Figure 5. 3D model drawing of the game

图5. 游戏部分三维模型图

4.2. 漫游场景搭建

将制作完成的模型在3DSMAX中导出为FBX格式的文件,将文件放置到Unity游戏下的Assets文件夹中,同时将涉及的所有贴图移动到同一目录下。在Unity3D中会生成相应的3D模型,将模型拖拽到场景中,调整模型的位置与大小,复制基础模型搭建漫游场景,效果如图6所示。

4.3. 第一人称漫游实现

创建Capsule作为漫游主体,通过代码实现摄像机视角旋转与主体移动。玩家通过鼠标移动实现视角转动,通过键盘操作玩家移动。为场景内的关键线索添加刚体Rigidbody与盒碰撞器Box Collider组件。同时添加不同的标签Tag,当玩家碰撞到不同的线索时能够显示不同的线索信息面板。实现效果如图7所示。

Figure 6. 3D scene construction of the game

图6. 游戏三维场景搭建

Figure 7. Game first person roaming

图7. 游戏第一人称漫游

5. 语音识别与游戏交互

本游戏的创新点在于融入了语音识别技术。通过语音识别,玩家可以与NPC进行互动,获得相关线索完成推理。

5.1. 语音识别技术的实现

基于语音的交互技术作为当下一种主要的技术,可以让用户迅速便捷地与设备交互 [8] 。目前智能设备被广泛应用,越来越多的设备开始支持语音交互,而语音交互也成为了当下非常流行的交互方式 [9] 。因此,如何将语音交互技术应用在游戏中具有较高的研究价值。目前,大多数语音识别系统采用的是模式分类的原理,即通过学习,系统把能够输入的语音按一定的模式进行分类 [10] 。一般而言,语音识别过程如图8所示。

Figure 8. Process of speech recognition

图8. 语音识别过程

《剑》中语音交互的实现基于Unity3D自带的语音识别功能,主要流程如图9所示。在游戏中,玩家可以与游戏中的角色进行对话,通过给定的提示,询问相关问题以获取进一步的信息。在实现中通过C#语言选择语句将游戏中识别到的话语与设定的字符串进行对比,根据判断后的结果执行相应的操作,给玩家不同的线索回答(如图10所示)。按照上述语音交互的原理,玩家还可以通过语音完成除提问外的语音交互,例如“决战之巅”篇章中的猜灯谜,“后山奥秘”篇章中的告知前往地点等,多样的语音交互实现有利于增加游戏的趣味。

Figure 9. Flow chart of speech recognition in the game

图9. 游戏中的语音识别流程

Figure 10. Speech interaction diagram

图10. 语音交互图

本游戏中的语音识别系统实现效果如图11所示,玩家按下按钮后进行识别。

Figure 11. Game speech recognition function display

图11. 游戏语音识别功能展示

5.2. 基于GUI技术的交互实现

UI是游戏组成的重要部分,游戏中玩家的许多操作是直接通过UI进行控制的。GUI作为Unity3D中的图形接口,它允许玩家操作游戏界面上不同的选项,同时执行相应的操作。游戏中利用GUI技术实现的交互主要有四个方面:动画视频的播放、背包道具的拖拽使用、按钮触发事件以及横向画布移动,主要使用到Canvas组件下的“Image”“Button”“Scroll View”以及Video Player组件。在序幕与尾声篇章中,利用Video Player组件实现游戏内动画视频的播放,玩家通过按钮点击播放剧情动画。在“决战之巅”篇章中,实现背包道具交互。利用GUI技术的OnDrag与OnEndDrag事件完成道具图片拖拽,并通过相应代码实现道具图片与触发位置的距离检测,执行相应操作。

此处以“死亡之谜”破案阶段的场景来具体说明(如图12)。在此场景中需要实现倒计时与剩余生命值显示,真相还原文字内容显示以及按钮交互。倒计时使用“Slider”组件、文字显示使用“Text”组件、按钮使用“Button”组件。其中按钮交互利用GUI技术的OnClick事件,通过相应代码实现游戏交互。

Figure 12. “Death mystery” case-solving stage function display

图12. “死亡之谜”破案阶段功能展示

6. 结语

本文通过Unity3D与3DSMAX相关技术,结合水墨创作风格,制作了一款文字冒险游戏。该游戏中道具背包系统的实现基于Unity3D的GUI技术,游戏中文字对话系统结合了语音识别技术,实现游戏中的语音交互功能,游戏中的3D模型通过3DSMax完成。故事情节与互动性在文字冒险游戏的设计中至关重要,决定着玩家在游戏过程中的情感沉浸。该游戏中线索的推理追求严谨,游戏中通过漫游与语音交互推动情节发展,也让玩家更容易代入到剧情中,增强玩家的游戏体验感,适当的谜题与任务增加了游戏的可玩性。同时融入中国特色的水墨风,让玩家感受到中华传统艺术,兼具趣味性与艺术性。

基金项目

浙江理工大学2021年高等教育科学研究课题、浙江省一流课程建设项目资助。

文章引用

刘宁晖,宋瑾钰. 基于Unity3D的文字冒险游戏的设计与开发
Design and Development of Text Adventure Game Based on Unity3D[J]. 软件工程与应用, 2022, 11(04): 779-787. https://doi.org/10.12677/SEA.2022.114081

参考文献

  1. 1. 彭伟国, 皇富强. 基于Unity的《占地为营》游戏的设计和实现[J]. 电脑知识与技术, 2019(34): 196-199.

  2. 2. 李滟秋. 浅析国内游戏开发现状和平台前景[J]. 东西南北, 2019(20): 105.

  3. 3. 王籍. 浅谈数字媒体技术下游戏的发展与创新[J]. 营销界, 2020(47): 37-38.

  4. 4. 林睿. 一起玩作品: 探析“橙光”文字冒险游戏的多重互动[J]. 东南传播, 2020(8): 97-100.

  5. 5. Sagor, A., Anomita, D., Shahnawaz, M., et al. (2020) Study of an Application Develop-ment Environment Based on Unity Game Engine. International Journal of Computer Science and Information Technol-ogy, 12, 43-62. https://doi.org/10.5121/ijcsit.2020.12103

  6. 6. 王一. 分析水墨元素在跑酷类手机游戏中的应用[J]. 艺术品鉴, 2021(5): 158-159.

  7. 7. 李娇. 水墨美术风格在游戏中的应用研究[J]. 戏剧之家, 2018(14): 147.

  8. 8. Fraser, A., Marcus, C., Martin, G., et al. (2018) Design Patterns for Voice Interaction in Games. Proceedings of the 2018 Annual Symposium on Computer-Human Interaction in Play, Melbourne, 28-31 October 2018, 5-17. https://doi.org/10.1145/3242671.3242712

  9. 9. 陈志刚, 刘权. 人工智能技术在语音交互领域的探索与应用[J]. 信息技术与标准化, 2019(1): 16-20.

  10. 10. 潘智刚, 姚敏风. 基于语音识别的Android游戏应用[J]. 现代计算机(专业版), 2015(7): 36-39+44.

期刊菜单