基于Unity 3D异星大冒险游戏的设计与开发
2019-03-07田翠华许立灿彭奕翔陈施恩陈玉明
田翠华 许立灿 彭奕翔 陈施恩 陈玉明
厦门理工学院计算机与信息工程学院 福建厦门 361024
当前,社会发展迅速,人们生活节奏加快。很多人选择玩游戏,通过简单操作完成有趣任务,获得放松与休息。在诸多游戏当中,RPG游戏[1]很受欢迎。RPG不仅拥有小说精彩的故事情节,电影炫酷的特效镜头,漫画精致的人物画面,游戏方式灵活多变,玩家能按自己的意愿改变故事情节,使游戏结局不同,使玩家感到自己才是剧情里真正的主角,这就是RPG游戏的精髓。
1 开发环境与工具的选择
选择Win7操作系统,Unity 3D游戏引擎[2],Adobe Photoshop CS6美工处理,Visual Studio Professional 脚本编辑,C#[3]脚本语言,用Maya 2014和3D建模。
2 游戏的设计与开发
2.1 教学游戏
近年来,教学游戏凭借教学与娱乐相结合的特色逐渐走入课堂,它极大地激发了学生学习兴趣并加强了参与体验感。同时,游戏市场火爆,人才需求急增。培养游戏开发者,开设游戏开发课程成为高校专业发展的新趋势。我校设置实验班,开设RPG游戏软件开发课程,开发异星大冒险游戏软件项目是符合当前发展趋势和满足学生实际需求的。这些都具有很高的理论研究意义和实际应用价值。
本RPG教学游戏设定主人公是普通少年,遭遇了神秘事件,导致其离开地球到达一个全新世界。这里充斥着魔法与武力,还有各种光怪陆离的事物。他能成为魔法师,也能成为剑士,向往着冒险生活。一天,从远方森林来了一群狼怪,小镇面临威胁,少年要消灭狼怪,还小镇一片安宁。他开始了冒险征途……
2.2 游戏元素
2.2.1 资源
创建工程Alien Adventure文件夹及其子文件夹:Materials、Scene、Model、Script、GUI、Sounds、Prefab、Shader。Materials存材质,Scene存场景,Model存模型,Script存脚本,GUI存图形界面,Sounds存音频文件,Prefab存预制件,Shader存着色器。
Scene里存一张地图(如图1所示)和3个场景[4]:登录场景Title Scene、人物创建场景Character Creation与小镇场景。
图1 地图场景
创建地图场景很灰暗,点击运行地图区域也是黑的,需要给场景添加一个光源[5]让整个场景亮起来,如图2a和图2b所示。
图2 调亮场景
还要添加场景中的各个元素,如树、房、NPC、复活点等。通过导入素材后制作预制件,放入Prefab文件夹中,可重复使用减少工作量,十分便捷。将各个元素都放到之前创建的地形上,地图场景就做好了。
2.2.2 角色
角色设计有四部分:整个角色的正面、侧面、背面;角色头部的正面、侧面、3/4侧面;整个角色的走、跑、跳跃等各种动作;角色面部的各种不同表情[6]。角色设计的唯一准则是突出角色个性。设计角色要考虑角色类型、特征、有哪些朋友敌人,在他身上将发生什么?他最终将会怎样?设计三类角色:Player,NPC,Enemy,然后找素材导入Maya,做相应的修改。图3为角色在Maya[7]中的呈现。
图3 在Maya中的角色
2.2.3 音效
音效占有极其重要的地位,直接关系到玩家的感官享受与游戏体验。有特色的音效非常生动地描绘出游戏所在场景的环境氛围和背景氛围,增强游戏的场景感,令人身临其境。另外,音效能够提示并表明游戏中正在进行的动作或事件,如人物攻击怪物时的武器声、技能打击声。同时,音效能在听觉方面给玩家以提示,引导玩家操作,减少由系统复杂、操作繁琐等给玩家带来的困惑。
音效制作需要技术包括录音、拟音、混音和后期处理技术。这里多用后期处理技术,收集到相应符合场景的音效后,使用Adobe Audition CC进行加工,得到16个音效与声音:背景音乐、按钮提示音、攻击音效等。
2.2.4 GUI界面
采用图形用户界面来建立与玩家的交流互动,大到人物创建,小到状态图标,都透露出游戏界面的友好性,它是GUI设计的核心[8]。在NPC商店,图文并茂,直观地为玩家呈现游戏信息,减少不必要的认知错误。背包中的物品鼠标悬停时有详细说明,如出售价格。在技能方面,使用了状态技能,并有小图标显示此技能状态的存在时间。
2.2.5 摄像机
游戏中需要两类摄像机以捕捉不同的画面。一类是主摄像机Main Camera,利用它看到较大场景的不同部分。主摄像机脚本MouseOrbit.cs:
使玩家在移动鼠标时移动摄像机,看到不同场景,即游戏中实际所见视角。
另一类是制作头像时用的摄像机,用以捕捉人物或NPC的正面图像作为人物头像或NPC对话窗口头像,LookAtCamera.cs代码:
2.3 游戏模块
2.3.1 装备系统
装备是游戏中能增加人物属性的物品,通过购买、怪物掉落等方式获得。装备有7类:头盔、盔甲、鞋子、配饰、左手、右手和双手。玩家可在小镇上的铁匠大叔那购买,也可从杀狼崽、杀野狼、杀魔狼头领时掉落拾得。获得装备穿戴后有相应人物属性加成。部分代码:
2.3.2 商店系统
商店系统作为经济命脉,在整个游戏中发挥着极其重要的作用。在这里,玩家能买到如意装备,为冒险路途做好万全准备;也能买到一些必需的补给品,如补血药和补充魔法值的药品。当然,这里也收购一些冒险者在冒险中得到的物品。总之,商店是人物发展的中心枢纽。部分代码:
2.3.3 保存系统
采用Unity 3D系统自带的一种最简单的存储方式PlayerPrefs。在Windows系统里,PlayerPrefs将数据存储在系统注册表中,以键值对的形式将数据保存在文件中。代码:
2.3.4 技能系统
游戏技能是游戏战斗体系的重要组成部分,也是职业分化的重要因素。游戏技能系统的设计是为了在游戏中体现战术,并实现战斗过程中一定的打击感和特效。游戏技能分三类:主动技能,被动技能与状态技能。主动技能是人物可主动施放目标或区域;被动技能不可主动施放,但会被动地增加人物属性或其他效果;而状态技能则介于两者之间,可主动技能施放,后增加人物的状态与属性。一些高级技能在人物等级低时被锁定,随着人物等级的提升会解锁,目的是为了在游戏初期避免高级技能的高效果对游戏造成不公平的措施。有些技能施放需要有特定目标,而有的只要大致的区域,这也是各个技能之间的区别。部分代码如下:
2.3.5 升级系统
进入游戏,展开冒险旅途。随着不断消灭威胁小镇的狼怪,角色经验值随之攀升。满时,角色等级提升,经验条重新排空。人物等级提升带来的是人物状态的全面恢复、人物属性的增加和人物技能的解锁。代码:
2.3.6 库存系统
库存系统,即游戏背包,主要功能是实现物品进入背包和取出背包。另外,还有从背包丢弃物品、物品的数量功能。背包要有背景图片,一些背景格子,设置最大容量、物品单元。部分代码:
2.4 游戏发布
设计实现完成游戏要发布。在Unity菜单栏中选择“File”,在下拉菜单选择“Build Settings”,在“Platform”下方选择“Player Settings”,进行设置。设置后,点击“Build”按钮导出文件夹Alien Adventure_Data及文件Alien Adventure.exe和UnityPlayer_Symbols.pdb。
2.5 游戏测试
点击Unity 3D中的运行按钮,Console中未报错,游戏能正常运行,则Unity 3D中软件内部测试成功。双击Alien Adventure.exe,打开并运行游戏,游戏能正常运行,且各项功能均正常,则PC端平台测试成功。
3 游戏验证
双击Alien Adventure.exe运行游戏,弹出配置窗口进行配置,调节游戏画质。设置完成后点击“Play!”按钮进入游戏,展示开场画面,如图4所示。
图4 开场画面
之后,按任意键进入游戏。出现两个按钮,“新的征程”是开始新游戏;“读取存档”即回到之前的游戏进度,若之前未存档,则此按钮为灰色,非激活状态。
3.1 任务创建
点击新的征程,进入角色创建界面,如图5所示。玩家可选择游戏人物,暂有两个人物:剑士和魔法师。之后给人物取名字,点击确定进入游戏。
图5 角色创建
选定角色出现在小镇。周围有三个NPC:中年大叔是武器商人,销售武器装备;短发大姐是药剂师,销售药剂;白胡子老爷爷是酒馆老板,可以在他这里保存游戏进度。左上方是角色人物头像,人物等级与名字,血量条和魔法值条;中下方格子是角色技能栏,角色随着等级提升,将解锁的主动技能与状态技能放到这边,以便在打怪冒险时进行技能的施放。技能栏下方是角色的经验条,经验会随着打怪数量慢慢增加,到经验条满时角色升级。右下方有四个小图标,对应人物属性、背包、装备与技能,如图6所示。点击打开看到各项数值与属性如图7所示。
图6 主界面
图7 人物属性、背包、装备、技能
3.2 战斗与技能使用
异星开始冒险,但此前必须向武器商人和药剂师那买趁手装备与必要补给品。异星穿过镇子,走过一座桥来到野外,这里有一群威胁着小镇安全的狼怪。狼怪有三种:狼崽、成年野狼和魔狼头领,如图8。狼崽最低级,不会主动攻击,能力水平低;成年野狼则会主动攻击;魔狼头领最厉害,只有一只,到来的异星首要任务就是消灭它。但由于角色人物等级太低,装备不全,只能慢慢打狼崽积累经验与金币,等到等级与装备到了能与魔狼一战时,魔狼死期即至。
图8 怪物种类
图9 战斗与技能使用
3.3 物品购买与出售
杀死怪物会掉落一些物品,如狼牙、金币等,可以拾取,狼牙还能在商店出售,如图10所示。销售所得可购买物品,用于彻底消灭狼怪,恢复小镇的安宁。
图10 物品出售
3.4 游戏存储
如暂停游戏需回到镇里和白胡子老爷爷对话,弹出保存窗口,确定存储游戏进度,如图11所示。
图11 保存游戏
4 结语
运用Unity3D技术实现了教学游戏的创建角色、打怪、购售物品、存储进度等功能,使玩家体验到了战斗的乐趣。
虽然完成了本游戏的设计制作,但仍有不足,如掌握C#脚本语言要更精,剧情上存在缺陷,对Maya的使用还处在初期,GUI方面对PS使用不够熟练,3D建模技术还较为粗浅,都有待后续不断提高与完善。