基于Unity3D的ARPG游戏开发与设计

/ 2

基于Unity3D的ARPG游戏开发与设计

丘文毅 ,孙兴春

东莞城市学院

摘要

现如今,游戏已经成为日常生活中必不可少的一部分,本文会以Unity3D平台,对ARPG游戏,进行设计与实现,使用C#语言,基于Unity3D 2017平台开发的一款名为界域的游戏。玩家可以通过操作键盘与鼠标,对游戏角色进行操纵。本文首先介绍游戏规则及游戏背景,而后对游戏架构进行分析,最后阐述和展示游戏实现效果。

关键词:Unity3D  ARPG游戏

Abstract

Nowadays, games have become an indispensable part of daily life. This paper will design and implement ARPG games on Unity3D platform, and use C# language to develop a game named Boundary based on Unity3D 2017 platform. Players can operate the keyboard and mouse to control the game character. This paper first introduces the rules of the game and the background of the game, then analyzes the structure of the game, and finally expounds and shows the effect of the game.

Key words: Unity3D   ARPG game

0引言

计算机发展至今历经几十年,计算机游戏也随之兴起,掀起一股热潮,并经久不衰,至今,衍生了许多类型的游戏,如RPG,即时策略,卡牌对战,放置等不同种类的游戏;2D到3D,甚至是可以期待的虚拟现实技术,无不体现着游戏的蓬勃发展。其中ARPG游戏是游戏中的热门种类的一种,ARPG融入了传统RPG游戏的优势,也衍生了自己独特的优势。其激烈的打斗场景,炫酷的战斗画面,爽快的打击快感,无不让玩家欲罢不能,大大增加了玩家的游戏参与感。

1开发工具简介

Unity2019介绍

Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。

2 游戏策划

2.1游戏背景介绍

界域星球是一个粒子星球,但犹豫世界之心的元素失衡,导致妖魔鬼怪有机会入侵界域星球,粒子们为保卫家园,消耗生命元素释放技能,可收效甚微。一位粒子勇士发现,当等级达到一定程度后,便可化身为屠魔勇士。于是界域星球的原住民耗费百年物资,打造了修炼祭坛,该祭坛可帮助粒子快速升级,完成修炼,化身屠龙勇士。

2.2 游戏流程介绍

一、登上祭坛,修炼升级。粒子首先要登上祭坛进行修炼,当修炼成功之后,会获得一个技能,该技能名叫:黑暗领域。

二、穿过魔怪区,寻找屠龙勇士雕像。粒子获得技能后,需要穿过魔怪区,魔怪会对粒子进行攻击,粒子死亡游戏失败。粒子可以使用技能:黑暗领域 对魔怪造成伤害,使用技能会损失生命值。最后寻找到屠龙勇士雕像,激活屠龙勇士。

三、勇士屠魔,界域重返光明。操纵屠龙勇士,找寻到最终BOSS四脚猫,消灭它,还界域星球光明与和平。

2.3玩家角色及怪物图片

1665804480616166580463110716658155934251665815859958

3 游戏整体架构设计

3.1设计思路

本游戏为ARPG类型的游戏,游戏开始界面,点击开始游戏进入游戏。游戏刚开始操纵的是粒子,粒子可以移动,只有寻找到祭坛并在里面修炼后,才能获得技能和附身屠龙勇士。祭坛的作用是帮助粒子升级。四脚猫只受物理攻击伤害,粒子是法术攻,所以只有屠龙勇士才能造成伤害。魔怪可以受到物理和法术伤害,所以,粒子和屠龙勇士都可以攻击魔怪。

3.2 系统功能模块图

1665820322509

功能模块分别有UI界面,怪物,人物主角,祭坛四部分组成。

UI界面:开始游戏点击可以进入游戏界面;退出游戏功能是退出游戏;设置可以调节游戏音量大小。

怪物模块:受击反馈是怪物收到攻击时,身体颜色发生改变,攻击结束,颜色变成默认颜色;AI自动巡逻、追击、攻击:怪物可以在一定范围内进行巡逻,当主角进入怪物追击范围后,自动追击主角,主角与怪物距离大于追击距离后,停止追击,回到追击时的初始位置。当怪物与主角距离小于攻击距离,进行攻击,大于攻击距离,小于追击距离,停止攻击,进行追击。人物死亡或怪物死亡,该部分功能将不在运行;生命值显示:怪物遭受攻击后,生命值血条将会减少,死亡血条消失,怪物拥有回血功能。

人物主角:粒子拥有等级功能,屠龙勇士没有此功能;粒子和屠龙勇士都可以移动;信息显示:操控粒子时显示粒子人物面板,操作屠龙勇士时显示屠龙勇士人物面板,人物面板包含生命值,人物名称,等级;屠龙勇士只有攻击功能,粒子拥有技能的获得与释放,两者可对不同性质的怪物造成伤害。

祭坛:在祭坛一定范围内修炼可以提升粒子的等级,其他人物不能使用祭坛功能。

游戏内的一部分状态图,如图所示:

  1665820724653

4游戏内使用的关键技术

4.1场景的实现

该系统的重点不在于游戏场景,所以所选素材均来自网络。将素材导入到Project文件夹中,并将相应所需用到的人物主角,怪物,场景预制体添加到场景中,添加相应的组件,完善场景。添加天空盒,烘焙光源,调整场景中各预制体的位置。

4.2碰撞检测

该部分可以分为人物主角与敌人的碰撞检测,粒子技能释放后攻击碰撞检测,屠魔勇士大剑攻击碰撞检测,怪物的攻击碰撞检测。

人物主角与敌人的碰撞检测:为了提高攻击碰撞时的真实性和准确性,必须要为粒子,屠魔勇士和魔怪,四脚猫之间设置碰撞检测。本款游戏运用了Unity 2017自带的箱体碰撞器组件(Box Collider)、触发器(Is Trigger)联合进行碰撞检测。

粒子技能释放后攻击碰撞检测:Dark_fog(技能黑暗领域预制体的名称)添加Sphere Collider组件,并把Is Trigger勾选上。当技能的碰撞器接触到敌人躯体碰撞器时,会对敌人造成伤害。

屠龙勇士大剑攻击碰撞检测:该碰撞检测是将箱体碰撞器组件(Box Collider)和脚本组件添加到大剑的模型上。当按下左键时,进行挥舞大剑动作动画的播放,并且通过脚本代码控制,只有当动画播放完后,按下左键才会进行一下次挥舞大剑的动画播放。大剑碰撞检测到敌人会造成伤害,敌人触发受击效果,为了避免攻击上的逻辑混乱,既双方同时攻击,敌人受击时,需将敌人攻击方法模块判断为false。

怪物的攻击碰撞检测:怪物的碰撞逻辑与屠龙勇士大剑碰撞逻辑大致相同,不过需将怪物的攻击间隔和频率设置为固定时间,且需要在碰撞范围内才能触发,不在碰撞范围内,则根据敌人与人物主角之间的距离判定是否进行追击。

4.3敌人AI设计

利用Unity提供的Navigation寻路功能,在复杂的场景中,可以轻松实现敌人的寻路对场景进行Bake,选择出敌人可以走的范围,不能走的范围,以及障碍物。

敌人共有4种动画,对应其状态,包括待机、行走、攻击和死亡。更新Enemy脚本使在不同的动画状态使敌人的行为也发生改变。默认敌人处于待机状态,并播放待机动画,我们使用了一个计时器,当待机时间超过2秒并距离主角 1.5m 以内,则播放攻击动画,进入攻击状态,否则进入跑步状态。在跑步状态中,使用计时器每间隔1秒更新一次主角的位置进行寻路,并始终追击主角,当距离主角1.5m 以内,停止寻路,播放攻击动画进入攻击状态。在攻击状态中,如果攻击动画播完则回到待机状态。敌人在不同的状态下会播放相应的动作,当距离主角较近时,则会攻击主角。

4.4出生点设计

为敌人制作出生点,使其在场景中的不同位置每隔一定时间生成一定数量的敌人。为了能够控制敌人的数量,每个出生点需要消楚自己生成了多少个敌人,当达到最大值时,则暂停生成教人。当教人被消灭时,则需要通知出生点更新生成数量。创建一个空物体Enemy Spawn,并编写脚本代码来控制怪物生成,生成间隔,以及波数。

4.5祭坛修炼系统

给Training(祭坛)添加Sphere Collider并把Is Trigger 勾选上,当粒子进入到碰撞范围内时,开始修炼。修炼时间为30s,期间粒子不能移动,当修炼结束后,粒子等级提升,拥有技能。

4.6 游戏实现部分效果图展示

1665824651969166582467622016658247008211665825276450

5总结

游戏基本Unity 3D引擎开发的一款ARPG类的游戏,由动画系统,控制系统,人工智能部分功能,部分战斗系统功能等构成。使用C#语言在Visual Studio2019平台进行编码实现。

5参考文献

[1]邓增强。基于Unity3D的轻量级ARPG游戏系统研究与应用[D]。广州:广东工业大学,2017。

[2]王艳,华唯辰。基于Unity3D的ARPG游戏设计与实现[J]。软件期刊,2020,16。

[3]王洪源,华宇宁。Unity3D人工智能编程精粹[D]。北京:清华大学出版社,2014。

作者简介:第一作者:丘文毅,广东韶关人,2000年7月生,计算机科学与技术。
第二作者,孙兴春,湖北钟祥人,1980年9月生,研究方向:软件系统分析与设计