基于unity3D的角色扮演类游戏设计与开发

基于unity3D的角色扮演类游戏设计与开发


2024年4月23日发(作者:腾达路由器怎么无线桥接)

基于 unity3D 的角色扮演类游戏设计与开发

发布时间:2021-02-19T05:35:33.972Z 来源:《科技新时代》2020年11期 作者: 赵威

[导读] 随着科技的迅速发展,生活节奏日益加快,游戏成为了人们生活中必不可少的一部分,RPG 游戏以其完整的故事情节,强烈的代入

感,较为简单的操作要求成为了备受广大群众欢迎的游戏类型之一,但现有的 RPG 游戏仍不能满足所有玩家的需要。本次设计并开发一

款 RPG 游戏《可可萝历险记》,是为以后做出一款能够被广大人群称赞的 RPG 游戏设计与开发的一款基础的PG 游戏框架,将以

Unity2017.4.20f2 为开发工具,以 C#语言为主要的编程语言。

赵威

山西农业大学 山西 晋城市 048100

摘要:随着科技的迅速发展,生活节奏日益加快,游戏成为了人们生活中必不可少的一部分,RPG 游戏以其完整的故事情节,强烈的

代入感,较为简单的操作要求成为了备受广大群众欢迎的游戏类型之一,但现有的 RPG 游戏仍不能满足所有玩家的需要。本次设计并开发

一款 RPG 游戏《可可萝历险记》,是为以后做出一款能够被广大人群称赞的 RPG 游戏设计与开发的一款基础的PG 游戏框架,将以

Unity2017.4.20f2 为开发工具,以 C#语言为主要的编程语言。需要从游戏的 策划、素材的加工、各功能模块的设计到代码的实现,最终形

成一个完整的 3d 游戏,并通过 Unity 选择平台生成可执行文件。经过实际开发,拥有了基础的任务系统、战斗系统、宠物系统等基本功

能。

关键字:C#;Unity;RPG 游戏;

1 绪论

1.1 游戏产业发展背景

游戏产业最早从美国开始发展,很快就扩展到了全世界。时至今日,游戏行业蓬勃发展,据中国经济网发布的数据显示:2019 年我国

游戏市场和海外市场出口收入再次急剧提升,收入超过了 3100 亿元。同时游戏产业的发展也带动了直播行业、赛事、俱乐部的发展。

随着游戏的不断发展和电脑配置的不断提高,2d 游戏已经不足以满足人们的需求,3d 游戏迅猛发展,如今3d 游戏已经占据了游戏市场

的很大比重,而 3d 游戏仍有无限的发展空间。

1.2 开发意义

游戏是时代产物,它有巨大的商业价值,它是科技进步的体现,深受广大青年的喜爱,给人们带来了心灵的安慰,现代的社会缺少它

将无法正常运转。 本此游戏开发的目的在于理解游戏的交互式结构,掌握游戏角色、道具、UI 的设计方

法,掌握游戏脚本的编写技巧,了解游戏中人工智能的设计方法从而编写怪物 AI。进而锻炼自己的动手能力、独立思考能力和编程能

力,最终开发出一款拥有一定可玩性的 RPG 游戏。

2 相关概述

2.1 Unity3d 引擎简介

Unity3d 是由 Unity Technologies 开发的一个让开发者轻松创建诸如三维游戏、建筑可视化、实时三维动画等类型互动内容的多平台综

合型游戏开发的工具,是一个资源全面整合的专业游戏引擎 Error! Reference source not found.。Unity 有三大优点:面向组件、可视化、跨平

台。在游戏运行前就可以看到游戏的各个模块,一次开发就可以发布到不同平台,使得 unity成为当今的主流游戏引擎之一。当下最火的游

戏王者荣耀、炉石传说等游戏就是以 Unity 为引擎开发的。

2.2 C#语言简介

C#是一种安全的、稳定的、简单的、优雅的,由 C 和 C++衍生出来的面向对象的编程语言。它继承了 C 和 C++强大功能,去掉了一些

例如没有宏和模版,不允许多重继承的复杂特性。C#综合了 VB 简单的可视化操作和 C++的高运行效率,以其强大的操作能力、优雅的语

法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET 开发的首选语言。

3 开发环境介绍与配置

本此游戏开发在 Windows 系统下,使用 Unity 2017.4.20f2 引擎进行游戏主体的开发,使用 Visual Studio 2019 编辑器,以 C#作为基础语

言进行脚本编写,最后使用 XML 存储游戏数据。Unity 2017.4.20f2 版本是 unity 长期支持的一个版本,在官网中下载安装,注册账号并以

个人身份激活 unity3d 引擎便可免费试用。但是以这种方式激活有频繁时间限制,可能每天都需要激活一次。

打开 unity 引擎后,点解上方 Edit,点击 preferences,点击 External Tools,在 External Tools Editor 中将 Visual Studio 2019 设置为默认编

辑器,就可以在开发脚本时使用。在游戏资源方面可能会有以.max 为后缀的文件,需要下载安装 3dmax,打开后将其导 出为 fbx 格式文件

才可以在 unity 中使用。

4 游戏策划

4.1 游戏简介

《可可萝历险记》是使用 Unity3d 引擎开发的一款单机的 3dRPG 游戏,游戏中我们将扮演一个可爱的角色可可萝,在古风的世界中探

索,与强大的敌人战斗。

4.2 主要剧情

被封印的黑暗女王苏醒,带领手下入侵人们的家园,于是异常保卫家园的战斗爆发了,玩家将扮演女骑士角色,寻找传说中的铠甲与

宝剑,不断地强化自己的能力,与暗黑女王进行斗争,最终将其重新封印,保护人间的太平。

4.3 UI

在每一款软件应用中,用户界面(UI)都是核心特征。游戏 UI 将直接影响用户的体验感,精美的 UI 更能吸引玩家。本作使用了简洁

明了的 UI 界面,主场景中玩家可以在左上角看到自己的状态,在左侧中间是追踪的任务,在右上角看到小地图,屏幕下方有技能按键和常

用的功能键。背包和技能、人物信息页面用全屏 UI,能够详细的描述其功能。

4.4 游戏场景

游戏中运用了古风的场景,场景中有美丽的古风建筑、青葱的翠竹、火红的枫叶、随风飘散的蒲公英、潺潺的流水、高耸的石山等。

场景中花草树木等游戏对象添加了 LOD Group 组件,它可以起到摄像机距离过远就不再渲染该对象从而降低性能消耗的作用。

图1游戏场景

4.5 游戏角色

游戏主角分为主角和 npc。主角色采用了动漫美少女的形象。npc 有制造装备的铁匠、售卖道具的杂货商、任务发布者、为了不让世界

显得单调的普通人。有些 npc 甚至可以帮助主角战斗。

4.6 战斗系统

战斗系统采用了高自由度的战斗风格,传统的回合制战斗虽然简单但会显得无趣。进入战斗状态时,人物的待机动作、背景音乐等会

发生改变。进入怪物的领地会自动进入战备状态,打败的敌人会掉落各种道具,并会在一定的时间后重新生成。被杀死会掉落金钱、磨损

大量的装备的耐久度,重生到出生点。

4.7 任务系统

玩家可以与头顶带有问号标记的 npc 对话来接取和提交任务,也可以通过告示板来获取一些咨询和任务。任务接取后会显示在左侧中

间的任务栏中以作提示。完成任务会增加角色的经验,部分任务不需要与 npc 对话就可完成。

任务分为主线任务、支线任务、寻宝任务、狩魔任务四种。主线任务的主要功能是推进故事的发展,同时会获得大量经验。支线任务

会获得各种道具。寻宝任务可能会遇见强大的宝物守护者,击败他们找到宝藏吧。告示板或特殊的 npc 会发布狩魔任务,完成后可以获得

大量的金币和战利品。

4.8 道具系统

道具分为装备、消耗品、杂物、任务道具四大类。玩家可以通过完成任务、击杀怪物掉落、寻宝、商店等方式获得不同的道具。道具

获得后会存储到背包中,鼠标移动到道具上可以获得相应的描述。本次开发中道具的掉落是固定的,装备属性不会由系统随机生成。

4.9 宠物系统

由于工程量巨大,简略了宠物功能。本次开发中宠物仅供观赏,并不会帮助主角战斗,但会跟随人物移动,人物待机时,宠物会做出

一些动作。通过各种渠道获得宠物后,会在宠物界面解锁已经获得的宠物,玩家只可以选择一个显示在游戏主场景中。

5 游戏的设计与实现

5.1 创建游戏工程

打开 unity,任选一目录新建工程,创建 Scenes 文件夹保存场景文件,创建 Scripts 文 件夹保存脚本文件,创建 Prefab 文件夹保存预设

体文件,创建 Audio 文件夹保存声音文件,创建 Materials 文件夹保存材质球,创建 Textures 文件夹保存贴图文件,创建 Animation 文件夹

保存动画文件,创建 Animator 文件夹保存各个模型的动画控制器文件,创建 Shaders 保存 Shader 文件,创建Resource 文件夹保存各种资

源,创建 UI 文件夹保存 Sprite 图片。

5.2 资源的准备

5.2.1 模型资源

开发者可以根据需求可以自己制作 3d 模型,但需要耗费巨大的时间成本。3d 模型的 素材一般使用 3dmax 或 maya 软件制作,再用 ps

或 bodypaint3d 绘制贴图。从一个box 盒子开始制作人物模型将会耗费大量的时间和精力。简单的模型素材如场景中的箱子、杆子、

楼梯灯可以自己制作。本次开发只有极少数模型为自己制作,大多数模型素材为网上的资源。

5.2.2 场景资源

Unity 自带的地形功能 Terrain 可以用来搭建简单的场景。创建 Terrain 后场景中会出现一个平面,再通过笔刷可以升降地形制作出跌宕

起伏的山峦丘陵(必须先设置平面的高度>0 才能用笔刷让平面某部分下降),也可以在上面种树等。做出大概的地形后,将导入的建筑模

型摆放上去,同样的石头、树木等素材调整不同的角度和位置变回变成美丽的场景。

5.2.3 动画资源

动画资源指的是人物和怪物的动作,动画资源可以再 3dmax 中制作,需要将人物或动物绑定骨骼,调整每块骨骼控制模型的部分

(点、线、面),之后通过设置关键帧,在关赵威:基于 unity3d 的角色扮演类游戏设计与开发

键帧中调整模型的动作后,3dmax 会自动计算补充人物中间动作来达到制作动画的效果。如果人物用的是同一副骨骼,就可以共享这

些动作,但由于模型问题会产生少许的偏差。

5.2.4 导入方式

如果是自己在 3dmax、maya 做的模型资源,需要我们导出为 fbx 格式的文件,放入建好的 unity 工程的 asset 文件夹的子目录下便可以

在 unity 场景中使用。后缀为.unitypackage的文件,需要把文件名中的中文字符去掉再双击打开,等待 unity 准备完成点击 import 即可。

5.2.4 资源使用方式

将资源放入相应的文件夹,模型资源直接拖到场景中即可。材质、声音等资源需要给游戏对象添加上相应的组件后将其加入对应组件

的属性中。资源整理后可以将其直接拖拽到 Prefab 文件夹中,unity 会把拖入的资源自动生成为预设体文件,之后我们可以用代码来生成这

些预设体文件。

5.3 UI 的搭建

5.3.1 帆布 Canvas 简介

首先在 Unity 中创建 UI-Canvas,Canvas 相当于帆布,之后的所有 UI 都需要放在其上。其中有图片 image、文本 text、按钮 button 等。

Canvas 中的渲染模式(RenderMode)提供

了三种方案:

第一种,ScreenSpace-Overlay,这种模式不需要摄像机,Canvas 中的所有 UI 都会显示在屏幕的最上层,遮盖掉从主摄像机获取的游戏

场景画面。本次开发中游戏主界面的 UI就采用这种方式。

第二种,ScreenSpace-Camera,这种模式需要摄像机,在这种模式下可以让 2d 的 UI和3d 物体并存。通过调整 PlaneDistance 调整摄像

机与帆布的距离。

第三种,WorldSpace,需要摄像机,是纯 3d 的 UI。Npc 名字和怪物血条等需要用到这个模式。

5.3.2 精灵 Sprite 简介

精灵 Sprite 是 Unity 中绘制图集的控件,他可以把一张大的充满各种元素的图片中的元素裁剪出来,然后保存为一个图集,其中各元素

都可以作为 Image 使用。普通的图片也需要更改成精灵模式才可以在 UI 中使用。本次开发 UI 中许多图片都是从网上截取的图片,通过

unity 中精灵的编辑成为 UI 中的一部分。

5.3.3 登录界面

本次开发中将登录界面独立为一个场景,这样在游戏运行时将会降低性能消耗。登录界面的需要用户输入正确的用户名和密码才可以

开始游戏。开始后会出现选项:新的开始、读取存档、设置。选择新的开始或读取存档后便会加载游戏场景,进入游戏。场景之间的切换

用到了读条界面,一般游戏的读条界面都是假的,并不具备与加载进度匹配的功能,只是起到了缓解玩家等待时焦急的作用。要做到场景

切换需要将所有需要的尝尽添加到 Scenes in Build 下,之后才能通过代码进行场景切换。

5.3.4 游戏主界面

主界面包括人物信息展示、任务栏、技能栏、小地图、各种功能按键。

人物信息栏包括人物头像图片,血条、蓝条和文字,其中血条和蓝条下有黑色空白图片,通过代码计算人物血量百分比来改变血条、

蓝条的长度从而实现血条蓝条的可视化增减功能。血条和蓝条上相应的数字也会发生改变。

任务栏只显示当前追踪的任务来方便玩家完成任务,想要更改追踪的任务需要按j 键或点击功能栏中的任务图标打开任务界面。可以通

过导航系统来自动移动到任务目的地,方便了玩家寻路。

屏幕下方的技能栏只能显示并存放已经学会的技能。需要按 k 键或点击功能栏中的技能图标,打开后拖动已解锁的技能到相应的格

子。

小地图有两种方案:第一种需要美工来帮忙绘制一张地图,通过代码获取人物的位置和朝向来显示在主界面中。第二种需要创建一个

摄像机,Camera 的 Projection 有两种模式可选择:ctive(透视)、raphic(正交),透视模式会呈现出近大远小的效果,而

正交模式无论距离物体多远看到的都是一样的,制作小地图需要采用透视模式,将摄像机放在适当的高度,然后新建一个 RenderTexture 拖

到摄像机的 TargetTexture 属性上,之后再从 UI 中新建一个 RawImage 调整好位置,将 RenderTexture 拖到 RawImage 的 Texture 属性上即

可。

图2游戏主界面

之后我们在人物模型的头顶添加一个 cube 盒子,贴上箭头贴图,放入人物模型充当其子文件,在小地图上就会显示这个箭头。这种效

果的小地图会显得比较突兀,我们只需再加个边框即可。

各种功能按键采用了水平布局(HorizontalLayoutGroup)的方式,设置好边距等,这样在代码中方便用 GetChild 方法来寻找各自的功

能。

5.3.5 各种功能界面

主要包括背包界面、技能界面、宠物界面、任务界面、商店界面等。其中背包界面用了 ScrollView(滚动视图)来显示背包格子,删掉了

水平滚动,只保留了垂直滚动,在ScrollView(滚动视图)下添加了 GridLayoutGroup( 格布局),网格布局设置好间距后会自适应生成背包

格子,再添加组件:Content Size Fitter(自适应大小) 其功能是根据对象的内容多少,

发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1713849780a2330807.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信