热点推荐

小喇叭+ 发布

01-16 02:17
01-16 02:04
01-13 17:30
查看: 846|回复: 0

[脚本示例] 地图编辑器

[复制链接]
avatar

签到天数: 350 天

[LV.8]以坛为家I

7651

主题

255

回帖

31万

积分

司徒主管

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

UID
1
司徒币
260203
传世币
3000
元宝
0
在线时间
266 小时

最佳新人灌水之王

QQ
online_admin 发表于 2021-12-6 13:48:34 | 显示全部楼层 |阅读模式
初识地图编辑器
地图编辑器,顾名思义,就是用来编辑地图的工具,如果玩过魔兽争霸或是帝国时代2,英雄无敌的话,应该会知道这几款都附有地图编辑工具,可提供玩家自行编辑地图关卡,地图编辑器就具有类似的功能。这套东东通常是由程序,美工,企划三人所讨论出来的,理由很简单,因为美工是使用这套编辑器的"使用者",程序则作出这一套编辑器提供美工去使用,企划则居中作协调工作,间或与程序讨论编辑器的用途。程序开发编辑器软件的目的何在?事实上这是一个大问题,这得从头开始谈起了。

其实一般常玩游戏的玩家 应该都可以发现,几乎没有一款游戏是不带背景的,小从大富翁,大到角色扮演,战略,其实玩家应该都会发现这种事实才是,换句话说,背景(或说是背景地图)在中,正扮演著一个不容忽视的角色。 织梦内容管理系统

「不过是背景图罢了,有啥大惊小怪的,只是把图贴上去而已,不是吗?」 内容来自dedecms

当然,有人会这样评判背景图的功能性,或者,我该举个例子让大家知道它的功能究竟包含了什么?最方便解释的应该是事件处理的部份,玩过角色扮演的人应该都知道,当玩家控制主角行经某处时,会出现一些偶发事件,像是忽然有人会跑出来跟你讲话,或是遇到特定的敌人等等,像这些事件,通常都是由地图编辑器来予以设定的。另一个例子是障碍物的设定,譬如玩星际争霸,如何让军队无法越过高山河流,又譬如玩英雄无敌,如何让军队 在途经沼泽地带时,减缓其行进速度,这些都是*地图编辑器予以设定的。 织梦好,好织梦

也就是说,其实地图编辑器不光是将图秀在背景这个简单的任务而已,它所包含的功能几乎占了游戏的大半,凡跟背景牵上关系的,全部都要*地图编辑器来付予其适当的功能,想制作游戏的人不可不知道这个重点。就以星际争霸的地图编辑器来说,通常玩家只要开出一个地图编辑器,将你所要的高山河流图案「贴」上去,然后再放几个军种,设定过关条件,最后储存档案,然后只要玩家想玩自己设计的地图,很简单,进入游戏,选择 自己设计的档案,按OK,然后就开始可以玩了,像这样子简单的工作就可以处理好一个游戏关卡(玩家连程序都不必写),可以想见地图编辑器包含了多少的设定与功能。再换另一个角度来说,像这样的地图编辑器,甚至连玩家都可以自订关卡,可以想见该游戏公司的美工是如何轻松愉快了,所以,一个好的地图编辑器不仅可以包含游戏大部份的功能设定,还可以减少公司开发游戏时所耗费的成本,无怪各游戏公司几乎都是采用地图编辑器这种演算法来制作了。 copyright dedecms

那么地图编辑器究竟含有什么玄机?对制作游戏的人来说,不论他是企划、程序或美工,相信都可以回答这个问题,整个问题的答案可以用一个词儿 来涵盖说明,那就是「Tile」(瓷砖)! Tile算是地图编辑器的一个专有名词吧!对美工而言,说它是贴图的元素也可以;而对企划而言,说它是事件引发的记录点也没什么不对,就看整个Team(游戏制作团队)要怎么样看待它所代表的功能性了,而且这方面的问题,最好还得经过三方面的协调,才能够真正的确定。当然,如果你只是一个人想制作的话,那就不需要沟通这方面的问题了。 究竟Tile这种东西该如何理解呢? 我们可以试著这样想,今天我们要制作一张背景图,这张图上面,有一面墙壁,大约占掉画面上约百分之七十的面积,而画面下方剩下的百分之三十,则是路面... OK,现在我们开始画了,一种方法是开启小画家(或类似小画家之类的绘图工具),一笔一画地将图给完成... 至于另一种方法,则是将墙壁分成一块块地先画好,路面也是一样的处理,然后,再将这些画好一块块的东西,像拼图一样的拼上去... 似乎有人会开始比较这两种方法的优劣性「似乎第一种方法会比较有效率,而且也会画得比较有质感吧!」 当然,如果工程就只是这么一张图的话,利用第二种方法的确是有点画蛇添足,而且利用拼图的方式,恐怕也会 拼得不是很好看的样子。但如果我们换一个角度来思考,可能答案就不同了: 如果我们准备要画10张这种图,同样是墙壁跟路面,但是比例可能会不同(有几张可能是六成墙壁四成路面,有些则是九成墙壁一成路面),而且,理所当然地,这些墙壁路面不可能每一张都长得一模一样...  dedecms.com

好,问题来了,你仍然会认为第一种方法最快吗? copyright dedecms

那如果要你画五十张呢?或者一百张? dedecms.com

究竟是那一种方法最快?换句话说,地图编辑器最大的优点就在于:重覆使用性高,背景地图制作速度快,简单易用等。譬如你想制作一个RPG游戏,很明显的,RPG游戏一定会有城镇,而且由于文化的一致性,一般来说城里的房屋都是大同小异,如果我们以暗黑破坏神II来说明,其中有一个阿拉伯城(玩过的人应该知道)就是一个很典型的例子。现在假设你的游戏背景设定在中古世纪的阿拉伯,并且整个游戏共有二十个城镇,首先我们会注意到的是:这二十个城镇的建筑物排列是肯定不会一样的,但由于文化上的一致性,肯定长得也会差不多;其次是城里的道路,房屋,几乎也相差不大,于是,地图编辑器在此发挥了功效,试想,如果你一开始的时候就先把具有阿拉伯风格的几个墙壁的Tile(小瓷砖)给画好,然后,你的每一张背景就可以开始利用Tile贴图的方式来制作了,而且相信速度将会非常的快。也有人问,如果光*几个Tile就想画出二十个城镇好几百个建筑物的外观,似乎也太难、太懒了吧!个人完全同意这种看法,所以事实上,真正要做出好几个城镇的背景图的话,所准备的Tile也不能太少,譬如说,有些Tile可能同样都是墙壁,却有好几种不同的样式,有的Tile上面有斑驳的痕迹,有的Tile上面可能有涂鸦等,像这样同样是墙壁但样式不同的,就必须要准备好几个来使用,又如树之类的背景,可能也要准备个好几 种不同树的Tile,否则的话一个游戏从头到尾就只有一种树,岂不荒唐!不过一般还是会重覆使用到一些Tile的,玩家如果不信,可以在玩RPG的时候稍微注意一下,应该会发觉有重覆的地方,譬如树这种东西,应该是最容易发现到的。 dedecms.com

至于是否简单易用,那就得看程序设计师的功力了,功力好的,制作出来的编辑器可能比小画家还要简单。但也并非全然如此,如果这套编辑器被企划付予太多的功能,恐怕再厉害的设计师也不一定做得出简单好用的编辑器系统。但唯一能够给予肯定的,是它仍然比传统的画法要更为方便好用,光是这一点,就足以支持我们用地图编辑器这个演算法了。但我们也必须承认,如果光只是这个原因来驱使我们使用地图编辑器,那也太小看地图编辑器的「勇猛」了,它在其它功能的强大,似乎更使得我们不得不承认它存在的价值。前面谈到地图编辑器可以拿来节省绘图的工时成本,这一点确实蛮吸引人的(至少 对游戏开发公司而言是如此),但我们也不得不赶紧将它更强大的功能给介绍出来 ,好让大家知道在地图之外,它所代表的地位依然也是无可取代的。相信玩过魔法门英雄无敌的人都知道,每次玩家在控制英雄行动时,他的速度经常是时快时慢的,譬如当英雄行走的是一条路面时,一回合下来,就可以走的很远;如果行走的是草原的话,一个回合下来,走得就慢了一些;如果经过的是 沙漠区的话,速度更是慢了下来;甚至当英雄经过沼泽区时,能走到三步就已经很偷笑了。这类形的游戏其实很多,通常战略都有作这样的设定,即便是三国志,也没有例外。这样的设定其实必须归功于地图编辑器的功效,它是怎么做到这样一件事的?其实也不难,只要程序设计师在制作编辑器时,顺便设定一个值,然后让这个值跟著一个Tile跑,这样一来,每一个Tile就会带有一个值,而这个值所代表的就是该Tile所消耗的步数。还不通吗?再详细一些你可能就晓得了,假设今天已经设计好一套地图编辑器让美工去绘背景地图: 内容来自dedecms
a. 此美工先开启地图编辑器和一张背景地图,这张背景地图因为还没贴图,所以是空的。
b. 地图编辑器要求美工选取Tile,美工便将自己先前画好备用的图案选进地图编辑器中,这些图案应该是一些沙漠,草原之类的,先假定该美工已画好了十五种沙漠图案跟二十种草原图案,所以美工将这些图案选进来当作Tile。
c. 编辑器要求美工针对每一个Tile给定一个数值,由于美工不知道每个Tile 的 数值是多少,所以跑去问企划,于是企划跟他说只要是草原数值就给2,沙漠的Tile就给4。(这一个步骤非常重要,因为这一个步骤,先前所述各的效果才能显现出来)
d. 数值给定之后,美工开始将这些Tile贴进整张地图编辑器中,贴完之后,整张背景地图于焉完成。这是一张有沙漠跟草原参杂的背景地图。
e. 美工将做好的背景地图交给程序师,再来就是程序师的功夫了,理论上,程序师会写一个程序让一个假人在这张地图上跑,假定这个假人的行走能力是每 回合8步,所以当假人往前走到草原区的Tile时,程序会判断该地区的数值是2,所以会消耗掉 2步的能力(还记得草原给定的数值是2吗),剩下6步,照这样看来,如果这个假人 一直都在草原区行走的话,算算每一回合应该可以走4格Tile的长度(8步÷2 步= 4);但如果该假人是在沙漠区行走的话,由于程序判断该地区每一个Tile 的长度会消耗掉4步,所以假人一回合只能走两个Tile的长度,相形之下,这种因地形不同而有速度快慢的效果,就可以做出来了。当然啦!如果经过两个草原和一个沙漠的话,也是刚好能在一回合走完喔(2个2步+1个4步=8步)从上述的例子,我们就不难发现,地图编辑器甚且具有地形标示的功效呢!  内容来自dedecms

地图编辑器之事件处理 内容来自dedecms

谈到事件处理,恐怕有很多人不知道它是干什么的,这里我们希望能够先聊聊这个东西。事件处理,顾名思义,就是用来处理事件的,不过还是举例比较快: 织梦内容管理系统

譬如『轩辕剑3』这个,玩家应该在玩的过程中,常会碰到一些突发状况,譬如主角跑到一个地方,就会有人跑出来跟你讲话,或是会在该处秀一段动画等,像这类的东东,就可以说是事件。事件可以分为两种,一种是自发性的,另一种则是非自发性的,如果是非自发性的,就比较难用地图编辑器来设定(也是可以啦!只是比较难,程序设计师跟企划必须多花点脑筋做沟通才行);而如果是自发性的话,利用地图编辑器就方便很多了。 dedecms.com

什么事件是非自发性的呢?又什么事件是可以自发的呢? 织梦好,好织梦

譬如现在我们正在设计游戏,过程是主角接受了一位城里的美女请托,希望主角能从城外的贼窟里救出她父亲,这里总共有三个事件: 织梦内容管理系统

第一个是主角经过美女面前时发生,此时主角会自动停下来(理论上此时 鼠标按键是不能操控的),该位美女会走到主角面前说话,要主角救她父亲,主角同意了。 本文来自织梦

第二个是主角找到美女的父亲,然后自动播放动画,主角将父亲从牢里放出来。 本文来自织梦

第三个则是主角再度经过美女面前,主角再度停下来,然后美女跑过来给主角一个热吻,表达感谢之意。其中,第一个和第二个就是自发性的事件,而第三个事件,如果没有经过第一个和第二个事件的话,是不可能会发生的,所以第三个事件并非自发性的事件。之所以自发性事件可以利用地图编辑器来反映,这边就做一个说明: 织梦好,好织梦

同样地,程序在与企划沟通过之后,针对每一个Tile再给定一个数值,用来表示事件的处理,所以现在的Tile除了有上次提过的地形数值之外,又增加 了一个事件的数值。OK!我们继续:这个事件数值,同样地,美工人员在贴Tile的时候,事件数值也应该给定一个值,所以美工跑去问企划该设定多少?企划就跟它说,在美女附近的场景路面的Tile,给定事件数值1,另 外,在城外父亲被关的地牢附近的Tile,其事件数值给2,其余的地方就给 0,美工照做了。 织梦内容管理系统

帖子地址: 





上一篇:关于XP系统显示韩文改中文的办法
下一篇:传奇私服爆率文件,基础经验,解析!!!!
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【乱回复灌水将给予禁言处理】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则