收藏 分享(赏)

160201102957_植蒸涛_珈生活企业数据平台Android端-在线自动推荐系统设计与实现.docx

上传人:晚风 文档编号:4190747 上传时间:2021-07-28 格式:DOCX 页数:43 大小:790.30KB
下载 相关 举报
160201102957_植蒸涛_珈生活企业数据平台Android端-在线自动推荐系统设计与实现.docx_第1页
第1页 / 共43页
160201102957_植蒸涛_珈生活企业数据平台Android端-在线自动推荐系统设计与实现.docx_第2页
第2页 / 共43页
160201102957_植蒸涛_珈生活企业数据平台Android端-在线自动推荐系统设计与实现.docx_第3页
第3页 / 共43页
160201102957_植蒸涛_珈生活企业数据平台Android端-在线自动推荐系统设计与实现.docx_第4页
第4页 / 共43页
160201102957_植蒸涛_珈生活企业数据平台Android端-在线自动推荐系统设计与实现.docx_第5页
第5页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、本科毕业设计(论文)基于Unity3D的RPG游戏设计与实现-以召唤之夜:铸剑物语为例Design and implementation of RPG Game based on Unity3D-LikeSUMMON NIGHT:Swordcraft Story院(系)计算机专业软件工程班级10班学号16210121036学生姓名林政指导教师魏菊霞提交日期2020年 3月 15日内容摘要19世纪60年代,伊利诺大学厄巴纳-香槟分校于ILLIACI(当时的超级计算机)上,开发出一种用于自动教学的程序控制逻辑(Programmed Logic for Automated Teaching Oper

2、ations),简称为:柏拉图系统(PLATO),其诞生让电子游戏有了一块最早的试验田。1974年,一款名为m199h的RPG游戏,是世界上最早的一款RPG游戏,就诞生在柏拉图系统上,但不幸被管理员无情的从这个世界上抹去了;隔年,一款名为地牢的游戏,作者存储在柏拉图时将其命名为“未命名图片5”,则有幸逃过了此劫,成为了目前世界上能玩到的最古老的RPG游戏。而RPG游戏的出现,则要归功于1974年出版的划时代桌游龙与地下城(DUNGEONS & DRAGONS),简称DND,毫不夸张地说,DND桌游就是现在所有角色扮演类游戏的鼻祖和源头,可见,RPG游戏能在将近50年后的今天依旧有着无数玩家热衷

3、,其魅力和趣味性是不可小视的,也是我们游戏开发者最值得学习的。说到这里,我们不得不佩服50年前的那些开发者,他们在远比今天落后将近半个世纪的设备上创造出了远不输现今日游戏的设定和理念,真正的“带着镣铐跳舞”。因而借此契机,本次课题我将使用Unity3D上的fungus插件尝试对17年前的一款名为铸剑物语的RPG游戏进行剖析与再创作,去挖掘RPG游戏系统的深度,了解并学习当时游戏开发者的创作思维。关键词: 柏拉图 电子游戏 Unity3D fungus 铸剑物语AbstractIn the 1860s, the University of Illinois at Urbana-Champaign

4、 developed a kind of program control logic for automated teaching on ILLIACI (then supercomputer), abbreviated as PLATO, which became the earliest experimental field for electronic games.In 1974, an RPG game named m199h was the earliest RPG game in the world and was born on Platos system, but unfort

5、unately it was ruthlessly erased from this world by the administrator. The following year, a game called Dungeon was named Unnamed Picture 5 by the author when it was stored in Plato. It was lucky enough to escape the disaster and became the oldest RPG game in the world. The emergence of RPG games i

6、s attributed to the epoch-making board game DUNGEONS & DRAGONS, or DND, published in 1974. It is no exaggeration to say that DND board game is the originator and source of all role-playing games. It can be seen that RPG games can still be enjoyed by countless players nearly 50 years later. Its charm

7、 and interest are not negligible, and it is also the most worth learning for our game developers. Speaking of which, we have to admire those developers 50 years ago, who created the setting and concept of todays game on the equipment that is nearly half a century behind todays, truly dancing with sh

8、ackles. Therefore, taking this opportunity, I will use the fungus plug-in on Unity3D to try to analyze and re-create an RPG game called Sword Casting Story 17 years ago, so as to explore the depth of RPG game system, understand and learn the creative thinking of game developers at that time.Key word

9、s:PLATO Electronic games Unity3D fungus Swordcast Story目 录第一章 绪论11.1 选题的意义与目的11.2 fungus插件1第二章 游戏发展简史22.1 RPG及游戏发展简史22.2 铸剑物语相关32.2.1 锻造系统32.2.2 战斗系统42.2.3 同类游戏对比4第三章 使用工具介绍63.1 Adobe Photoshop CC软件63.2 3D Studio Max 2018软件63.3 Game Audio Player软件63.4 Visual Studi 201763.5 C#语言73.6 Unity3D引擎73.6.1 G

10、UI(图形用户界面)73.6.2 Unity3D引擎常用的生命周期函数73.6.3 物理引擎83.6.4 API接口8第四章 游戏的基础设计104.1 游戏开始的UI流程及设计104.2 菜单UI对比和设计104.3 操作修改设计15第五章 游戏的功能实现175.1 音乐解析提取175.2 图像文件整合185.3 模型制作185.4 场景搭建195.5 角色操作实现205.6 人物对话实现26第六章 测试316.1 功能测试316.2 性能测试326.3 项目测试结论32第七章 总结与展望337.1 总结337.2 展望33参考文献34致 谢35附 录36广东东软学院本科毕业设计(论文)第一章

11、 绪论1.1 选题的意义与目的RPG英文名称为Role-Playing Game,通常是指角色扮演类型游戏,玩家一般在游戏时需要扮演某一个或者几个指定角色,在制作者创造的虚拟世界里进行游戏,并且角色都有着属于各自的属性能力还能游戏随着进程不断改变;人类一直都是念旧的生物,十七年前,一款外传性质的RPG游戏,在小众圈子依旧存活至今,还有不少玩家希望出续作,然而“眼镜厂”倒闭让这一希望破灭了,而后近几年来,随着电子硬件、游戏开发引擎以及技术的快速发展,不少经典的旧游戏都因其玩法出众或人气奇高得到了重置机会,这一现象在游戏圈内被不少玩家戏称为“炒冷饭”,任天堂、SE、世嘉、卡普空等厂商都成为了一等一

12、的冷饭大厨,而此中有幸获得重置机会的旧游戏不少都是RPG类型,RPG游戏的剧情各式各样、千奇百怪,或以义取胜、或以情动人,即便去除这层外衣之后,游戏的内容所剩无几,但依旧会有无数玩家心甘情愿地投入了RPG的怀抱,也愿意为了情怀而买单,因而不少铸剑党便只能盼望着南梦宫能够出续作或者通过重置或移植到新平台来重启外传IP,让铸剑物语重新出现到玩家面前,即将成为游戏制作人一员的我,想借此课题为契机尝试对这款游戏进行剖析和非商业性的再创作,去了解当年游戏制作者的开发思维,是什么魅力使这些玩家如此热衷,同时对RPG游戏的剧情、战斗系统、升级以及技能等主要要素进行一个更深层的学习。1.2 fungus插件此

13、次课题将会使用Unity3D作为主要的游戏开发引擎,由于剧情是构成RPG游戏的要素之一,也是最重要的一个部分,因而为了再现铸剑物语中玩家的对话选择给剧情走向带来的影响,将着重使用Unity3D引擎中的Fungus插件制作情景对话,fungus是一个检视面板的自定义工具,它提供了一个简单的交互界面,可以快速构造一个对话系统,并且还能在检视面板上给不同角色的对话标志颜色,以便更清晰地显示游戏角色之间的对话逻辑;另外无需编写代码,就可以通过直观的视觉脚本系统轻松地将叙事功能添加到Unity游戏中,还可以在对话中触发条件、逻辑处理,支持摄像机以及音乐、音效的控制。非常适合用于RPG游戏的对话制作。33

14、第二章 游戏发展简史2.1 RPG及游戏发展简史说到世界上第一款游戏,很多人会认为是1972年,由Allen Alcorn发布于雅达利(Atari)平台的乒乓球游戏乓(Porn),然而它并不是电子游戏产业的先驱。早在二战刚刚结束两年后,一款叫做Cathode Ray Tube Amusement Device(简称:CRT,被称为阴极射线管娱乐装置)的游戏机鼻祖就已经问世了,该装置用于记录电子信号质量,调整光束路线的旋钮可以控制信号的强度,光束将在屏幕上投射成一个点,这个点代表飞机,玩家需要在有限的时间内,不断按键向飞机开火,当玩家在按下按键的同时,假如光束射入预置的坐标,CRT光束便会散焦,

15、这表示飞机爆炸,所为电子游戏的鼻祖,就是这么被“玩”出来的。时隔大半个世纪的今天,电子游戏产业已经十分发达!而这些游戏当中的一个类型Role-Playing Game(简称:RPG,指角色扮演类游戏)更是深受玩家喜爱;玩家常常在游戏中扮演一个背负重任即将成为英雄的角色,往往在一个漫长的旅途中不断磨练自己或者邂逅其他人物组成队伍,最终走到一个巅峰的状态,不是拯救世界,就是被世界拯救。从早期的文字选项的角色扮演到今天的强迫症玩家收集二周目就为了白金奖杯的“恶意”设计,RPG游戏的进化也是间接地映射了整个电子游戏发展史。1978年由西角友宏带来的太空侵略者是第一款采用具备循环不间断背景音乐的游戏。在

16、那之前的游戏音乐都很生硬,会被效果音打断,很多都只有标题和死亡时播放一段所谓的游戏BGM,其余时间基本就是“biu biu biu”之类的效果音。太空侵略者的到来打破了这一僵局,堪称游戏史上的音乐革命,不过这个游戏有着另一个广为人知的别名小蜜蜂。Mode7是超级任天堂游戏机的一种图形方式,可以通过逐行扫描背景层的方式,进行旋转亦或者是缩放,从而达到明显的透视效果,将高度改为深度,实现了早期的3D图形效果。具有代表性的游戏比如最终幻想4、5、6以及超级马里奥RPG,更多是用于赛车游戏,然而这个渲染方式美中不足就是只有背景能够进行透视,角色并不可以。电子游戏史上最早带有故事情节的文字冒险游戏是魔域

17、,它没有炫酷的对话框,只有与现在CMD相同的黑底白字,因而玩家也只能通过输入指令来进行角色的操作,只要玩家的指令含有游戏识别的单词就可以被系统识别,比如:Pick up the sword!(拿起那把剑)之类的。史上第一款能够保存玩家进度的游戏,也就是小蜜蜂,然而这款游戏只能保存玩家的最高分记录。在1987年,一款游戏浩浩荡荡地登录北美的NES平台,成为第一款带有存档机制的主机游戏,算是RPG游戏史上的重大革命,它便是初代的塞尔达传说。Overworld是指第三人称俯视下的游戏世界地图,通常包含了很多室外场景的地形,往往会将特定场景(比如地牢、山洞、城镇、村庄等)展示给玩家,在RPG中作为出现

18、最多,一般都是用作野外地图,早期比较富有Overworld代表性的就有勇者斗恶龙(DQ)和最终幻想(FF)系列,而大型的Overworld就是由初代的塞尔达传说最先带给玩家的。回合制是RPG里最常见的战斗方式,现如今依旧是不少日系RPG的王道法则。早期的回合制多出现于策略游戏中,早在1977年,一款叫做Empire(帝国)的游戏率先开创了回合制,算是回合制策略的鼻祖,致使80年代回合制RPG风靡一时。现在实时战斗的回合制占了主流,就比如最终幻想7,采用了一个AT条来决定角色行动顺序,大大增加了RPG战斗的机动性。Experience value,简称EXP,是指经验值,其实最早开始的游戏是没有

19、经验值这一设定的,直到1980年,Namco为世人带来了吃豆人,这种游戏角色的自身能力升级系统才被代入游戏界,然而后来几乎所有拥有等级提升概念的游戏都是从龙与地下城衍生出来的,它的升级系统基本是现如今众多RPG的雏形,直到现在,广义的比如等级的提升所需量,或者能力的变化所需点数,都可以视作是经验值。2.2 铸剑物语相关铸剑物语作为“召唤之夜”的外传性实验作品,以其新颖的系统设定和性格鲜明的人物设计吸引了不少玩家。此系列作品的战斗方式与南梦宫的“传说系列”相似。其召唤兽系统,声光效果、各种武器必杀技设定、丰富多彩的人物对白以及影响走向的选择,使得本作角色无论在战斗时或是在活动时都极具吸引力。另外

20、本作的最大卖点就是丰富多彩的武器锻造系统,使其成为GBA时代下,众多玩家公认的、不可多得的佳作。2.2.1 锻造系统游戏名称带有铸字,是因其最主要的核心玩法就是武器锻造。武器归类有五种,分别是:刀剑、大斧、长矛、拳套、钻子,不同武器有着不同的攻击方式。锻造时需要消耗水、火、风、雷四种自然元素,附魔时还需要额外消耗魔元素,即便是同类武器,每把武器锻造时所需要消耗的元素都会不一样;元素主要通过分解道具获得,也可通过分解当前所持有的武器获得。另外值得注意的是,分解武器时返还的自然元素只有制作时所消耗的一半,不过魔元素倒会全额返还,而且每天在迷宫当中获得的素材和道具基本上是很有限的,需要玩家合理的使用

21、元素,避免随意锻造武器的造成不必要的元素浪费在前期显得尤为重要。战斗前,玩家需要提前装备好武器、召唤兽魔法以及消耗类道具。角色可装备3件任意种类的武器,以及一件仅仅提升面板数值的饰品或者防具。角色属性只有ATK(攻击力)、DEF(防御力)、AGL(敏捷值,影响攻击前、后摇以及移速)三种,另外两种则是跟武器有关,DUR是当前所持武器的耐久度,TEC则是熟练度。升级时除了固定成长属性之外,还会额外获得可供玩家自由分配的点数,让玩家强化角色。召唤兽单独拥有只能通过升级成长的MAG属性(魔力值,影响召唤兽的魔法效果)。辅助装备只有四格,可装备召唤兽魔法或背包携带的消耗类道具。2.2.2 战斗系统战斗画

22、面为横版卷轴式,玩家操作角色在画面中进行实时战斗,操作与传说系列类似。战斗中能使用的只有辅助装备栏里魔法与道具,还有自己锻造的武器。在GBA游戏掌机上,A按键用来发动普通攻击,B按键用来施放辅助装备栏里指定的指令,通过R肩键令光标右移切换指令,通过L肩键切换武器。下方有角色的血槽和武器耐久值,血槽归零角色战败,武器耐久归零武器会永久消失,武器耐久度会在战斗结束后回复到最大值,另外,道具和魔法总共的使用次数,就是屏幕右下方的召唤石个数,每次成功使用都会消耗掉一个,每次战斗都有5个,所以需要玩家合理分配。2.2.3 同类游戏对比换装迷宫2平台:GBA换装迷宫2其练衣不练人,换衣即换职业的系统,令其

23、与传统RPG相比大有不同;当中每一件衣服都有着独特的能力和特技,而这值得称道的创意,颠覆了传统RPG的死板作风,更让玩家陶醉其中。令人更为赞赏的是,游戏的平衡性方面做得异常出色,服装即使多达200件,却能依据属性和能力的差异,让每件服装都发挥出其独特的作用,除此之外,每个出场角色极具个性的对白,搞笑的对话,以及触发特殊条件才会展现的隐藏事件,还有与风格搭配天衣无缝的BGM,让其成为值得一试的佳作。永恒传说平台:PS、PSP永恒传说是一款在2000年,由Namco(现万代南梦宫游戏)发售于PS游戏机上的角色扮演游戏,而且时隔五年后,再次从PS移植到了PSP游戏机当中。传说系列正统续作中的第三款,

24、简称为“Eternia”或者是“TOE”。发售时的宣传标语是:永远与羁绊。在05年三月三日,重新发售的PSP版本,修正了战斗效果,还追加了不少动画。它的出现有这两个重大意义,第一个是它彻底雪洗了南梦宫的产品质量一直以来被TRI-ACE压制的耻辱,第二个是它的出现,提高了整个日式RPG的价值!第三章 使用工具介绍3.1 Adobe Photoshop CC软件Adobe Photoshop,简称“PS”,是由Adobe Systems开发并发行的一款图像处理软件,主要处理像素构成的数字图像,其众多的编修与绘图工具,可以有效地进行图形编辑工作。在此次课题中使用版本的是CC系列内的2016版。PS软

25、件可以将从原作中整理出的零散的像素图片文件进行裁剪整合,用作模型建造的图像参考,另外也可以对部分面数较少的模型所展开的UV进行绘制成贴图,是不可或缺的一款软件。3.2 3D Studio Max 2018软件3D Studio Max简称Max或3D Max,是Discreet公司开发,基于电脑客户端系统的三维动画渲染和制作软件,前身是基于DOS操作系统的3D Studio系列软件。最初应用于游戏动画制作,而后进一步参与影视特效制作,在Discreet 3DS Max7的版本之后,由于被Autodesk合并,便重新更名为Auto 3DS Max。此次课题使用的版本是3D Max2018。把从原

26、作资源中用PS整合好的图像文件作为参考,包括场景、人物、武器以及道具,进行模型搭建。3.3 Game Audio PlayerGame Audio Player软件是一款游戏音乐播放器,能够扫描游戏内部的源文件,从而找到的音乐文件(音乐、语音、声音),还能将之转换成为WAV(包括压缩成WAV文件)的功能。由于铸剑物语距今年份相较久远,游戏的所有声乐都是当时的电子音,现在难以找到相似的音乐作为游戏的背景音乐,所以通过GAP对原作资源中的音源文件进行提取,再转换为WAV格式后得到了三十一份声源文件。3.4 Visual Studi 2017Visual Studio 2017(以下简称VS)是微软

27、于2017年,自主推出的一款开发环境,是时至今日最有生产力的一个版本。VS2017内部工具整合了.NET Core、Azure应用程序、Docker容器等内容,因而它支持最新的集成开发环境,支持开发者面向Windows进行程序开发,并且支持Microsoft SQL Server、Oracle数据库等。3.5 C#语言C#是微软公司发布的一种面向对象的高级程序设计语言,并且是开源跨平台的。而Unity3D同样作为跨平台,所以我们能够通过在VS2017写C#代码来在Unity3D上进行游戏开发。语法简洁明了,类库使用方便,是C#的优点,才会使其成为我们在Unity3D开发中优先考虑的语言。3.6

28、 Unity3D引擎Unity3D是丹麦的Unity Technologies公司开发的,一个可以让玩家方便地创建比如3D游戏,实时3D动画等类型互动内容的多平台综合型游戏开发工具,并且高效率、高度优化、高集成,是一个非常全面、专业的游戏开发引擎,提供了完美的跨平台系统,能够在近十种主流平台间完美移植。同时Unity3D也提供了一个交互良好的操作界面,能够完美地在Windows下部署。引擎自带工程视图框架,可以很好地帮助开发者分类游戏中的对象,观察游戏制作的进度;project视图可以显示游戏中存放的资源文件,hierarchy视图是显示放置在游戏场景中对应的游戏对象,inspector视图是

29、描述游戏资源的信息,scene视图存放游戏中模型资源,game视图则显示游戏的运行成果。 Unity3D还为我们提供了多种脚本语言编译的常用环境,支持C#、javascript等脚本语言,开发者可根据自身需求,调整默认的编译环境。3.6.1 GUI(图形用户界面)此次设计主要使用UnityGUI进行UI界面的开发,UnityGUI可以帮助开发者便捷地添加一些种类众多,同时功能齐备的界面元素,在GUI控件的创建操作中,实现实例化,还有功能定义。让开发者只需写出较少的代码,就能完成一个GUI界面元素实例的创建。UGUI是Unity3D内置的,而NGUI则是Unity3D引擎的功能扩展性插件,它与U

30、GUI类似,也可以给开发者提供便捷的界面设计方法,从而加快游戏设计的速度。3.6.2 Unity3D引擎常用的生命周期函数Unity3D游戏引擎不像常规的程序,在Main函数入口直接运行,而是在内部独自实现生命周期事件。通过对这些生命周期的事件进行写入,Unity内部就会不断地迭代这些生命周期函数。这次游戏开发中较常使用的事件函数主要有以下几类。Awake:在游戏运行时就会自动调用的初始化函数,每次运行只调用一次,多用于创建变量类。Start:是在Update之前,在Awake之后调用的初始化函数,每次运行同样也只会调用一次,并且只有被激活的时候才能够执行,多用于赋予变量值。Update:游戏

31、中的帧事件,每个帧都会调用一次,受到游戏的帧率影响,多作为按键输入后执行某些事件的触发点。FixedUpdate:游戏中的固定帧事件,与Update相似,不过该事件可人为控制执行的频率。OnTriggerEnter:当函数识别的碰撞体接触挂有该函数的物体后,执行一次函数内容。用于攻击碰撞判定、宝箱开启检测等。Invoke:主要在UI界面的开启和关闭上使用的延迟函数。OnDestroy:物件销毁指令,当游戏内某对象的生命或者耐久度为零的时候执行。用于武器损坏、怪物死亡、场景破坏。3.6.3 物理引擎游戏的设计需要其物体特性拥有合理性,这样才显得真实可信。Unity3D为开发人员提供了大量组件,在

32、视觉上,可以对对象进行渲染,颜色的诱明度、平行光、法线贴图、动画、声音、材质等组件可以带来逼真的效果;在物理特性上,刚体、碰撞器等组件,可以让对象受到重力、摩擦力、空气阻力等自然物理因素的影响,而坡度设定,碰撞后的所有物理变化,都可以让游戏对象逼真地去模拟一个现实中的物体。3.6.4 API接口Unity3D拥有可以帮你完成多种预想需求的API,作为预先定义好的函数,能够提供应用程序和开发人员基于软件或者是硬件,在无需访问源码的前提下,就可以访问一组例程的能力,还有理解内部工作机制的细节。通过这些API函数,开发者能方便地实现项目初始化,功能模块的每帧调用,如何进行触发检测、触发事件响应、是否

33、进入触发区、是否在触发区、是否离开触发区等。第四章 游戏的基础设计4.1 游戏开始的UI流程及设计原作在开始时,会播放一段动画,并且开始游戏后界面只有新游戏下故事模式和存档后的继续游戏,在一周目通关后剩余选项才会出现,如下图:图4-1 原作通关后开始界面完整的UI流程本次设计则暂时不需要用到训练模式等剩余选项,因而游戏开始界面只需要有新的开始、继续游戏和设置三个选项便可,于是便对比原作未通关前的UI做出简单设计,图4-2 原作界面(左)与设计界面(右)4.2 菜单UI对比和设计铸剑物语的主菜单UI以现在的技术力来评价的确算不上美观,但已经很实用,不过子菜单确实操作过于繁琐,所以需要对子菜单做一

34、些符合现在大多数玩家习惯的改进。图4-3 主菜单人物装备和召唤兽装备都是用于战斗的,因而可以统一制作,并且由原来的LR切换改为鼠标点选,在后续完善工作中再删除主菜单里的辅助装备这一选项,同时将装备改称为战斗装备。图4-4 人物装备(上)、召唤兽装备(下)消耗类物品、熔炼道具和贵重物品同属一类,所以它们的UI可制作在一起,只需在后续完善工作中加入与战斗装备一项相同的鼠标点选功能,删除资料表内的贵重品一项,改主菜单中物品一项的名称为持有物。图4-5 物品(上)、资料表-贵重物品(下)魔法是属于召唤兽的独有技能,而且有些技能如回复咒文是可以直接在非战斗状态下使用的,所以需要保留在主菜单,不做任何修改

35、。图4-6 魔法武器一项仅仅是确认角色在锻造时制成的或者是当前拥有的战斗武器,由于装备选项在装备武器时已可以确认当前拥有的武器,另外资料表里的锻技一项能确认所有锻造过的武器,作用比它还大,因此这项功能在原作里可以说是用到最少的,可以选择删除不制作。图4-7 武器人物状态在原作就已经包括了角色状态和召唤兽状态,因而只需添加制作与战斗装备相同的鼠标点选功能便可。图4-8 人物状态(上)、召唤兽状态(下)锻技是资料表的子菜单,由于删除了武器一项,可以把它从资料表中取出放到主菜单当中,而锻技内部又有五个子菜单,分别是刀剑、斧头、长矛、拳套和钻头,原作确认每一种锻技列表都需要返回和确认来回按,这样的操作

36、显得尤为繁琐,而且本就是共用一样界面,所以可以直接整合在一起,只需添加鼠标点选功能便可。图4-9 锻技由于贵重物品已经和物品整合为持有物品,锻技也取出取代了武器选项,资料表内便只剩下召唤兽图鉴这一选项,因此可以移除资料表,用其内部的召唤兽图鉴取代其位置。图4-8 召唤兽名称(上)、召唤兽描述(下)4.3 操作修改设计原作是在2003年的GBA平台发售的,其战斗操作虽然简单,但为了符合GBA掌机的键位,便导致了防御和辅助技能的切换较为繁琐,这是因为GBA一共只有十个按键,其按键如下表所示:表4-1 原作的按键设定掌机按键战斗状态地图当中菜单当中十字键单独按下跳跃,与A连打改变长矛、拳套、钻头的普

37、攻方式角色移动光标上移十字键向左移动,连打奔跑,持续触碰边界逃跑光标左移十字键单独按下无效果,与A连打改变所有武器的普攻方式光标下移十字键向右移动,连打奔跑,持续触碰边界逃跑光标右移A普通攻击对话确定B发动指令(防御、辅助技能)返回取消L循环切换武器无效果上一页、左移项R指令光标循环移动无效果下一页、右移项Start暂停开启主菜单关闭所有菜单Select无效果与召唤兽对话无效果此次课题设计的目标平台是PC端,因此需要作出修改来符合键盘的键位,同时也对指令的发动、武器切换和指令光标移动做合适的调整,如下表所示:表4-2 PC的键盘设定键盘按键战斗状态地图当中菜单当中W角色仰视,与J连按可改变长矛

38、、拳套、钻头的普攻方式角色移动光标上移A向左移动,连按奔跑,持续触碰边界逃跑光标左移S角色蹲下,与J连按改变所有武器的普攻方式光标下移D向右移动,连按奔跑,持续触碰边界逃跑光标右移J普通攻击对话确定K跳跃返回取消L防御无效果无效果Q向右循环切换武器无效果上一页、左移项E向左循环切换武器无效果下一页、右移项U指令光标向左移动开启主菜单关闭所有菜单I发动指令(辅助技能)与召唤兽对话无效果O指令光标向右移动无效果无效果第五章 游戏的功能实现5.1 音乐解析提取通过GBA模拟器安装好铸剑物语后,在资源文件里找到其目录文件夹,然后就可以根据GAP教程来完成音源提取。图5-1 模拟器的存档文件打开Game

39、 Audio Player,点击播放界面上的“PlayList”按钮,弹出“GAP Playlist”窗口后,再点击菜单“File-Scan Directiry”来找到上面的游戏目录,选好游戏目录后,软件就会自动对这个目录下的所有文件进行分析,把里面的音乐(音效)文件找出来,找到了所有音乐(音效)文件后,就可以点击菜单“FileConvert File(s)”把文件以wav格式保存。得到了三十一首BGM如下:图5-2 解析出的音源文件5.2 图像文件整合单纯从源文件解析出的武器图像由于都是jpg格式,并且大小不一,需要通过PS对像素图片裁剪,以1厘米比1像素的比例整理好武器图片,用作后续武器模

40、型建造的参考。图5-3 剑类武器原作地图是每一小块像素地图块独立加载显示的,也同样要在PS裁剪好地图块图片并更改比例之后,才能无缝拼接成大地图,同样用作后续地图模型建造的参考。图5-4 剑都一层拼接地图5.3 模型制作将作为参考的武器素材贴入3D Max,建模完成后对原图进行取色,制作出对应部位的材质球,完成后如下图所示:图5-5 破坏者之剑原图(左)与模型(右)地图的制作也一样,不过由于二维与三维的差异,部分模型有所修改,其次面数过多,因而只对地面和墙进行了材质贴图,半成品如下图所示:图5-5 剑都一层模型地图5.4 场景搭建第一章故事按出现顺序包括的场景有家-阁楼、家-一层、剑都-一层、中

41、央城-一层、中央城-二层、中央城-二层-礼堂、白银行会-一层、白银行会-二层、白银行会-二层-专属锻屋以及剑都-码头共十个场景;在使用3D Max建好模型后,将其导出成obj格式,便可以直接导入Unity3D中二次调整并搭建场景了,其中与家有关的两个场景搭建完成如下:图5-6 家-阁楼(左)与家-一层(右)场景模型5.5 角色操作实现由于原作人物设定图难以寻找,同时人物建模更要花费大量的时间,因而角色都采用了商店里的机器人作为代替,接下来将会先实现角色的行走与奔跑移动。首先在Animations文件夹里找到要用的三个动作,分别是待机动作idle、行走动作walk和奔跑动作run图5-7 三个基

42、础动画然后进行动画重定向,将这三个动作的动画类型都更改为Humanoid;图5-8 更改动画类型观察三个动作,发现官方给予的动画时间过长,因而需要进行动画分割:将idle动画分割为第390帧至837帧,由于此动画需要重复播放,所以勾选上Loop Time,并且大多数静止待机动画一般来说是不会旋转也不会移动的,因而余下三项控制模型旋转和在Y轴以及XZ轴上的移动影响也要勾选上;将walk动画分割为第215.2帧至244.9帧,此动画在按住控制的键位时亦需要重复播放,勾选Loop Time,人物行走时会在水平面移动,也可以转向,但不会在垂直方向上移动,所以只需勾选Y轴上的移动影响;将run动画分割为

43、第335.9帧至353.7帧,此动画与walk类似,因而勾选项与walk动画一致。图5-9 分割官方动画对机器人模型进行骨骼映射,Avatar创建,与官方不同的是,本模型并没有眼睛和嘴巴动画,其次手掌没有分指,所以Head部分去除Eyes和Jaw,Body部分的Hands去除Fingers,最后Apply。图5-10 调整骨骼映射将机器人预制体模型拖到场景合适位置,添加控制动画的Animator、模拟现实的Rigidbody,还有用于碰撞检测的Capsule Collider,在Animator的Avatar处拖入先前Apply好的,再创建一个新的Animator Controller命名为“

44、player”并拖入Animator的Controller当中,如下图的所示:图5-11 调整预制体打开新创建的“player”Controller,将之前分割好的待机动画idle、行走动画walk和奔跑动画run直接拖入,并且将idle设置为默认动画,运行测试时,发现idle状态下模型的腿部会由于动作而飘移,所以需要勾选上Foot IK。图5-12 动画机视口在“player”动画机里创建一个float参数,命名为“speed”,用于控制walk动画的判定,当speed0.1时,将播放idle动画,当speed0.1时,将开始播放walk动画;再创建一个bool参数,命名为“speedup”

45、,用于控制run动画的判定,当speedup为true且speed0.5时,将播放run动画;另外三个动画两两之间的切换需要即使且无缝衔接,所以都要取消默认勾选的Has Exit Time。完成以上内容后的模型即使添加脚本也只能在世界坐标的Z轴正方向上前进移动,所以还需要在动画机内加入转向的模型动作,转向动作的分割和其他调整与之前的三个动画制作相似,不同的是转向是有角度的,分别为45、90、135、180,因而不能像行走和奔跑动作那样直接拖入,需要创建新的Blend Tree来进行动作整合,由于转向的前置状态有待机、行走、奔跑三个,所以需要三个混合树来进行动作衔接调整,先制作好右转向,然后便可

46、以通过镜像再制作出左转向。图5-13 Idle状态下向右转向的行为混合树图5-14 Walk状态下转向的混合树图5-15 Run状态下转向的混合树在创建一个bool参数“direction”用于判断朝向,以及一个bool参数“angle”控制转角,就可以开始编写脚本代码来实现角色的控制移动,脚本主要代码如下:关键定义:private int _idleTLID = 0;private int _idleTRID = 0;private int _idlePivotTransLID = 0;private int _idlePivotTransRID = 0;private void StickToWorldspace() Vector3 rootDirection = trans.forward; /获取摄像机方向 Vector3 cameraDirection = Camera.main.transform.forward; cameraDirection.y = 0; Quaternion referentialShift = Quaternion.FromToRotation(Vector

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 应用文书 > 工作报告

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报