第一節(jié):地圖編輯器
地圖編輯器,顧名思義,就是用來(lái)編輯地圖的工具,如果玩過(guò)《魔獸爭(zhēng)霸》或是《帝國(guó)時(shí)代2》、《英雄無(wú)敵》的話,應(yīng)該會(huì)知道這幾款游戲都附有地圖編輯工具,可提供玩家自行編輯地圖關(guān)卡,地圖編輯器就具有類似的功能。
這套東東通常是由程序,美工,企劃三人所討論出來(lái)的,理由很簡(jiǎn)單,因?yàn)槊拦な鞘褂眠@套編輯器的"使用者"(不一定哦,很多國(guó)內(nèi)的小組都是企劃編地圖),程序則作出這一套編輯器提供美工去使用,企劃則居中作協(xié)調(diào)工作,間或與程序討論編輯器的用途。
程序開(kāi)發(fā)編輯器軟體的目的何在?事實(shí)上這是一個(gè)大問(wèn)題,這得從頭開(kāi)始談起了其實(shí)一般常玩游戲的玩家應(yīng)該都可以發(fā)現(xiàn),幾乎沒(méi)有一款游戲是不帶背景的,小從大富翁,大到角色扮演,戰(zhàn)略,其實(shí)玩家應(yīng)該都會(huì)發(fā)現(xiàn)這種事實(shí)才是,換句話說(shuō),背景(或說(shuō)是背景地圖)在游戲中,正扮演著一個(gè)不容忽視的角色。
“不過(guò)是背景圖罷了,有啥大驚小怪的,只是把圖貼上去而已不是嗎?”
當(dāng)然,有人會(huì)這樣評(píng)判背景圖的功能性,或者,我該舉個(gè)例子讓大家知道它的功能究竟包含了什么?最方便解釋的應(yīng)該是事件處理的部份,玩過(guò)角色扮演游戲的人應(yīng)該都知道,當(dāng)玩家控制主角行經(jīng)某處時(shí),會(huì)出現(xiàn)一些偶發(fā)事件,像是忽然有人會(huì)跑出來(lái)跟你講話,或是遇到特定的敵人等等,像這些事件,通常都是由地圖編輯器來(lái)予以設(shè)定的。
另一個(gè)例子是障礙物的設(shè)定,譬如玩《星際爭(zhēng)霸》,如何讓軍隊(duì)無(wú)法越過(guò)高山河流,又譬如玩《英雄無(wú)敵》,如何讓軍隊(duì)在途經(jīng)沼澤地帶時(shí),減緩其行進(jìn)速度,這些都是靠地圖編輯器予以設(shè)定的。
也就是說(shuō),其實(shí)地圖編輯器不光是將圖秀在背景這個(gè)簡(jiǎn)單的任務(wù)而已,它所包含的功能幾乎占了游戲的大半,凡跟背景牽上關(guān)系的,全部都要靠地圖編輯器來(lái)付予其適當(dāng)?shù)墓δ埽胫谱饔螒虻娜瞬豢刹恢肋@個(gè)重點(diǎn)。
就以星際爭(zhēng)霸的地圖編輯器來(lái)說(shuō),通常玩家只要開(kāi)出一個(gè)地圖編輯器,將你所要的高山河流圖案“貼”上去,然后再放幾個(gè)軍種,設(shè)定過(guò)關(guān)條件,最后儲(chǔ)存檔案,然后只要玩家想玩自己設(shè)計(jì)的地圖,很簡(jiǎn)單,進(jìn)入游戲,選擇自己設(shè)計(jì)的檔案,按OK,然后就開(kāi)始可以玩了,像這樣子簡(jiǎn)單的工作就可以處理好一個(gè)游戲關(guān)卡(玩家連程序都不必寫),可以想見(jiàn)地圖編輯器包含了多少的設(shè)定與功能。
再換另一個(gè)角度來(lái)說(shuō),像這樣的地圖編輯器,甚至連玩家都可以自訂關(guān)卡,可以想見(jiàn)該游戲公司的美工是如何輕松愉快了,所以,一個(gè)好的地圖編輯器不僅可以包含游戲大部份的功能設(shè)定,還可以減少公司開(kāi)發(fā)游戲時(shí)所耗費(fèi)的成本,無(wú)怪各游戲公司幾乎都是采用地圖編輯器這種演算法來(lái)制作游戲了。
那么地圖編輯器究竟含有什么玄機(jī)?
對(duì)制作游戲的人來(lái)說(shuō),不論他是企劃、程序或美工,相信都可以回答這個(gè)問(wèn)題,整個(gè)問(wèn)題的答案可以用一個(gè)詞兒來(lái)涵蓋說(shuō)明,那就是“Tile”(瓷磚)!
Tile算是地圖編輯器的一個(gè)專有名詞吧!對(duì)美工而言,說(shuō)它是貼圖的元素也可以;而對(duì)企劃而言,說(shuō)它是事件引發(fā)的記錄點(diǎn)也沒(méi)什么不對(duì),就看整個(gè)Team(游戲制作團(tuán)隊(duì))要怎么樣看待它所代表的功能性了,而且這方面的問(wèn)題,最好還得經(jīng)過(guò)三方面的協(xié)調(diào),才能夠真正的確定。當(dāng)然,如果你只是一個(gè)人想制作游戲的話,那就不需要溝通這方面的問(wèn)題了。
究竟Tile這種東西該如何解讀呢?
我們可以試著這樣想,今天我們要制作一張背景圖,這張圖上面,有一面墻壁,大約占掉畫面上約百分之七十的面積,而畫面下方剩下的百分之三十,則是路面……
OK,現(xiàn)在我們開(kāi)始畫了,一種方法是開(kāi)啟小畫家(或類似小畫家之類的繪圖工具),一筆一畫地將圖給完成……至于另一種方法,則是將墻壁分成一塊塊地先畫好,路面也是一樣的處理,然后,再將這些畫好一塊塊的東西,像拼圖一樣的拼上去……
似乎有人會(huì)開(kāi)始比較這兩種方法的優(yōu)劣性:“似乎第一種方法會(huì)比較有效率,而且也會(huì)畫得比較有質(zhì)感吧!”當(dāng)然,如果工程就只是這么一張圖的話,利用第二種方法的確是有點(diǎn)畫蛇添足,而且利用拼圖的方式,恐怕也會(huì)拼得不是很好看的樣子。但如果我們換一個(gè)角度來(lái)思考,可能答案就不同了:
如果我們準(zhǔn)備要畫10張這種圖,同樣是墻壁跟路面,但是比例可能會(huì)不同(有幾張可能是六成墻壁四成路面,有些則是九成墻壁一成路面),而且,理所當(dāng)然地,這些墻壁路面不可能每一張都長(zhǎng)得一模一樣...
好,問(wèn)題來(lái)了,你仍然會(huì)認(rèn)為第一種方法最快嗎?
那如果要你畫五十張呢?或者一百?gòu)垼?BR> 究竟是那一種方法最快?
換句話說(shuō),地圖編輯器最大的優(yōu)點(diǎn)就在于:重覆使用性高,背景地圖制作速度快,簡(jiǎn)單易用等。譬如你想制作一個(gè)RPG游戲,很明顯的,RPG游戲一定會(huì)有城鎮(zhèn),而且由于文化的一致性,一般來(lái)說(shuō)城里的房屋都是大同小異,如果我們以《暗黑破壞神II》來(lái)說(shuō)明,其中有一個(gè)阿拉伯城(玩過(guò)的人應(yīng)該知道)就是一個(gè)很典型的例子。
現(xiàn)在假設(shè)你的游戲背景設(shè)定在中古世紀(jì)的阿拉伯,并且整個(gè)游戲共有二十個(gè)城鎮(zhèn),首先我們會(huì)注意到的是:這二十個(gè)城鎮(zhèn)的建筑物排列是肯定不會(huì)一樣的,但由于文化上的一致性,肯定長(zhǎng)得也會(huì)差不多;其次是城里的道路,房屋,幾乎也相差不大,于是,地圖編輯器在此發(fā)揮了功效,試想,如果你一開(kāi)始的時(shí)候就先把具有阿拉伯風(fēng)格的幾個(gè)墻壁的Tile(小瓷磚)給畫好,然后當(dāng)然,你的每一張背景就開(kāi)始利用Tile貼圖的方式來(lái)制作了,而且相信速度將會(huì)非常的快。
也有人問(wèn),如果光靠幾個(gè)Tile就想畫出二十個(gè)城鎮(zhèn)好幾百個(gè)建筑物的外觀,似乎也太難、太懶了吧!
個(gè)人完全同意這種看法,所以事實(shí)上,真正要做出好幾個(gè)城鎮(zhèn)的背景圖的話,所準(zhǔn)備的Tile也不能太少,譬如說(shuō),有些Tile可能同樣都是墻壁,卻有好幾種不同的樣式,有的Tile上面有斑駁的痕跡,有的Tile上面可能有涂鴉等,像這樣同樣是墻壁但樣式不同的,就必須要準(zhǔn)備好幾個(gè)來(lái)使用,又如樹(shù)之類的背景,可能也要準(zhǔn)備個(gè)好幾種不同樹(shù)的Tile,否則的話一個(gè)游戲從頭到尾就只有一種樹(shù),豈不荒唐!
不過(guò)一般游戲還是會(huì)重覆使用到一些Tile的,玩家如果不信,可以在玩RPG的時(shí)候稍微注意一下,應(yīng)該會(huì)發(fā)覺(jué)有重覆的地方,譬如樹(shù)這種東西,應(yīng)該是最容易發(fā)現(xiàn)到的。
至于是否簡(jiǎn)單易用,那就得看程序設(shè)計(jì)師的功力了。功力好的,制作出來(lái)的編輯器可能比小畫家還要簡(jiǎn)單。但也并非全然如此,如果這套編輯器被企畫付予太多的功能,恐怕再厲害的設(shè)計(jì)師也不一定做得出簡(jiǎn)單好用的編輯器系統(tǒng)。但唯一能夠給予肯定的,是它仍然比傳統(tǒng)的畫法要更為方便好用,光是這一點(diǎn),就足以支持我們用地圖編輯器這個(gè)演算法了。
但我們也必須承認(rèn),如果光只是這個(gè)原因來(lái)驅(qū)使我們使用地圖編輯器,那也太小看地圖編輯器的「勇猛」了,它在其它功能的強(qiáng)大,似乎更使得我們不得不承認(rèn)它存在的價(jià)值。
第二節(jié):地圖編輯器--地圖之外?
前面談到地圖編輯器可以拿來(lái)節(jié)省繪圖的工時(shí)成本,這一點(diǎn)確實(shí)蠻吸引人的(至少對(duì)游戲開(kāi)發(fā)公司而言是如此),但我們也不得不趕緊將它更強(qiáng)大的功能給介紹出來(lái),好讓大家知道在地圖之外,它所代表的地位依然也是無(wú)可取代的。
相信玩過(guò)《魔法門英雄無(wú)敵》的人都知道,每次玩家在控制英雄行動(dòng)時(shí),他的速度經(jīng)常是時(shí)快時(shí)慢的,譬如當(dāng)英雄行走的是一條路面時(shí),一回合下來(lái),就可以走的很遠(yuǎn);如果行走的是草原的話,一個(gè)回合下來(lái),走得就慢了一些;如果經(jīng)過(guò)的是沙漠區(qū)的話,速度更是慢了下來(lái);甚至當(dāng)英雄經(jīng)過(guò)沼澤區(qū)時(shí),能走到三步就已經(jīng)很偷笑了。這類形的游戲其實(shí)很多,通常戰(zhàn)略游戲都有作這樣的設(shè)定,即便是《三國(guó)志》,也沒(méi)有例外。
這樣的設(shè)定其實(shí)必須歸功于地圖編輯器的功效,它是怎么做到這樣一件事的?其實(shí)也不難,只要程序設(shè)計(jì)師在制作編輯器時(shí),順便設(shè)定一個(gè)值,然后讓這個(gè)值跟著一個(gè)Tile跑,這樣一來(lái),每一個(gè)Tile就會(huì)帶有一個(gè)值,而這個(gè)值所代表的就是該Tile所消耗的步數(shù)。
還不通嗎?再詳細(xì)一些你可能就曉得了,假設(shè)今天已經(jīng)設(shè)計(jì)好一套地圖編輯器讓美工去繪背景地圖:
a. 此美工先開(kāi)啟地圖編輯器和一張背景地圖,這張背景地圖因?yàn)檫€沒(méi)貼圖,所以是空的。
b. 地圖編輯器要求美工選取Tile,美工便將自己先前畫好備用的圖案選進(jìn)地圖編輯器中,這些圖案應(yīng)該是一些沙漠,草原之類的,先假定該美工已畫好了十五種沙漠圖案跟二十種草原圖案,所以美工將這些圖案選進(jìn)來(lái)當(dāng)作 Tile。
c. 編輯器要求美工針對(duì)每一個(gè)Tile給定一個(gè)數(shù)值,由于美工不知道每個(gè)Tile的數(shù)值是多少,所以跑去問(wèn)企劃,于是企劃跟他說(shuō)只要是草原數(shù)值就給 2,沙漠的Tile就給4。(這一個(gè)步驟非常重要,因?yàn)檫@一個(gè)步驟,先前所述各游戲的效果才能顯現(xiàn)出來(lái))
d. 數(shù)值給定之后,美工開(kāi)始將這些Tile貼進(jìn)整張地圖編輯器中,貼完之后,整張背景地圖于焉完成。這是一張有沙漠跟草原參雜的背景地圖。
e. 美工將做好的背景地圖交給程序師,再來(lái)就是程序師的功夫了,理論上,程式會(huì)寫一個(gè)程序讓一個(gè)假人在這張地圖上跑,假定這個(gè)假人的行走能力是每回合8步,所以當(dāng)假人往前走到草原區(qū)的Tile時(shí),程序會(huì)判斷該地區(qū)的數(shù)值是2,所以會(huì)消耗掉2步的能力(還記得草原給定的數(shù)值是2嗎),剩下6步,照這樣看來(lái),如果這個(gè)假人一直都在草原區(qū)行走的話,算算每一回合應(yīng)該可以走4格Tile的長(zhǎng)度(8步÷2步=4);但如果該假人是在沙漠區(qū)行走的話,由于程序判斷該地區(qū)每一個(gè)Tile的長(zhǎng)度會(huì)消耗掉4步,所以假人一回合只能走兩個(gè)Tile的長(zhǎng)度,相形之下,這種因地形不同而有速度快慢的效果,就可以做出來(lái)了。當(dāng)然啦!如果經(jīng)過(guò)兩個(gè)草原和一個(gè)沙漠的話,也是剛好能在一回合走完喔(2個(gè)2步+1個(gè)4步=8步)
從上述的例子,我們就不難發(fā)現(xiàn),地圖編輯器甚且具有地形標(biāo)示的功效呢!
第三節(jié):地圖編輯器之事件處理
談到事件處理,恐怕有很多人不知道它是干什么的,這里我們希望能夠先聊聊這個(gè)東西。
事件處理,顧名思義,就是用來(lái)處理事件的,不過(guò)還是舉例比較快:
譬如《軒轅劍參》這個(gè)游戲,玩家應(yīng)該在玩的過(guò)程中,常會(huì)碰到一些突發(fā)狀況,譬如主角跑到一個(gè)地方,就會(huì)有人跑出來(lái)跟你講話,或是會(huì)在該處秀一段動(dòng)畫等,像這類的東東,就可以說(shuō)是事件。事件可以分為兩種,一種是自發(fā)性的,另一種則是非自發(fā)性的,如果是非自發(fā)性的,就比較難用地圖編輯器來(lái)設(shè)定(也是可以啦!只是比較難,程序設(shè)計(jì)師跟企劃必須多花點(diǎn)腦筋做溝通才行);而如果是自發(fā)性的話,利用地圖編輯器就方便很多了。
什么事件是非自發(fā)性的呢?又什么事件是可以自發(fā)的呢?
譬如現(xiàn)在我們正在設(shè)計(jì)游戲,游戲過(guò)程是主角接受了一位城里的美女請(qǐng)托,希望主角能從城外的賊窟里救出她父親,這里總共有三個(gè)事件:第一個(gè)是主角經(jīng)過(guò)美女面前時(shí)發(fā)生,此時(shí)主角會(huì)自動(dòng)停下來(lái)(理論上此時(shí)鼠標(biāo)按鍵是不能操控的),該位美女會(huì)走到主角面前說(shuō)話,要主角救她父親,主角同意了。
第二個(gè)是主角找到美女的父親,然后自動(dòng)播放動(dòng)畫,主角將父親從牢里放出來(lái)。
第三個(gè)則是主角再度經(jīng)過(guò)美女面前,主角再度停下來(lái),然后美女跑過(guò)來(lái)給主角一個(gè)熱吻,表達(dá)感謝之意。
其中,第一個(gè)和第二個(gè)就是自發(fā)性的事件,而第三個(gè)事件,如果沒(méi)有經(jīng)過(guò)第一個(gè)和第二個(gè)事件的話,是不可能會(huì)發(fā)生的,所以第三個(gè)事件并非自發(fā)性的事件。
之所以自發(fā)性事件可以利用地圖編輯器來(lái)反映,這邊就做一個(gè)說(shuō)明:
同樣地,程序在與企劃溝通過(guò)之后,針對(duì)每一個(gè)Tile再給定一個(gè)數(shù)值,用來(lái)表示事件的處理,所以現(xiàn)在的Tile除了有上次提過(guò)的地形數(shù)值之外,又增加了一個(gè)事件的數(shù)值。OK!我們繼續(xù):這個(gè)事件數(shù)值,同樣地,美工人員在貼Tile的時(shí)候,事件數(shù)值也應(yīng)該給定一個(gè)值,所以美工跑去問(wèn)企劃該設(shè)定多少?企劃就跟它說(shuō),在美女附近的場(chǎng)景路面的Tile,給定事件數(shù)值1,另外,在城外父親被關(guān)的地牢附近的Tile,其事件數(shù)值給2,其余的地方就給0,美工照做了。
做好之后,程序設(shè)計(jì)師拿來(lái)試用,當(dāng)假人在地圖上亂跑時(shí),程序設(shè)計(jì)師會(huì)要求程序去偵測(cè)假人所在之處的事件數(shù)值,如果是0的話就沒(méi)事,如果是1的話,就讓程序去跑那一段美女要求主角幫忙的動(dòng)畫;如果是2的話,就讓程序去跑那一段從地牢救人的動(dòng)畫,果然,因?yàn)槊拦ぴ诿琅浇牡孛鎀ile之事件數(shù)值都設(shè)為1,所以當(dāng)假人跑到美女附近時(shí),事件啟動(dòng)了,要求幫忙的動(dòng)畫也就出現(xiàn)了;同樣地,當(dāng)假人跑到地牢附近時(shí),也會(huì)踩到美工設(shè)定事件數(shù)值為2的Tile上,同樣會(huì)觸發(fā)事件2的啟動(dòng),救人的動(dòng)畫也就出現(xiàn)了!
所以我們已經(jīng)檢視過(guò),一連串的自發(fā)性事件是如何地被編入背景地圖的每一個(gè)Tile中,當(dāng)然,并不是每一個(gè)Tile都會(huì)用到這個(gè)事件數(shù)值,所以有些人會(huì)認(rèn)為,為了引發(fā)幾個(gè)事件,要弄到地圖上的Tile都得跟一個(gè)事件數(shù)值,會(huì)不會(huì)不太劃算(這一點(diǎn)跟程序設(shè)計(jì)師大有關(guān)系)?
唯我必須強(qiáng)調(diào)的是,如果整個(gè)游戲就只有少數(shù)幾個(gè)事件的話,誠(chéng)如所說(shuō)的,確實(shí)是有點(diǎn)不太劃算,只不過(guò),事實(shí)并非如此,按照目前發(fā)行的游戲水準(zhǔn)來(lái)看,通常一套完整的RPG,所包含的事件至少就應(yīng)超過(guò)500個(gè)(這還算小喔),如果企劃統(tǒng)一將那些寶物獲取、室內(nèi)外進(jìn)出、地圖間切換等也一并算進(jìn)來(lái)當(dāng)成是事件的話,更可以肯定將會(huì)超過(guò)1500個(gè)以上,在這種情形之下,利用地圖編輯器來(lái)處理事件,就不是一件不劃算的事了。當(dāng)然,如果萬(wàn)一類似的自發(fā)性事件真的不多的話,卻也可以考慮另一種節(jié)省的辦法,那就是將事件處理的數(shù)值和地形數(shù)值合并在一塊使用,如此的話,就可以解決所謂的浪費(fèi)問(wèn)題了。
但說(shuō)是浪費(fèi),其實(shí)每一個(gè)Tile不過(guò)只多用了2個(gè)位元組的空間,算算一個(gè)游戲如果有一萬(wàn)個(gè)Tile的話,也不過(guò)是多用了兩萬(wàn)個(gè)位元組的空間,相較現(xiàn)在的記憶體動(dòng)輒一億幾千萬(wàn)的位元組容量,似乎也不必太吹毛求疵吧!
自發(fā)性可以利用地圖編輯器,非自發(fā)性呢?
嘿!那可難多了,通常會(huì)讓程序師最后放棄采地圖編輯器來(lái)處理事件的原因,多半就是非自發(fā)性事件過(guò)多,過(guò)雜的因素。一般采多線式劇情的RPG,也是不建議用地圖編輯器來(lái)處理事件的,原因很簡(jiǎn)單,如上周談過(guò)的例子,我們已設(shè)定美女要求主角救她父親的事件是1,所以美女所在地區(qū)的Tile事件數(shù)值都已經(jīng)設(shè)為1了,意思就是說(shuō)只要主角走到該處,事件1就會(huì)被啟發(fā),現(xiàn)在如果我們?cè)O(shè)定美女親吻主角的事件數(shù)值為3的話,試問(wèn),這事件數(shù)值3應(yīng)該被設(shè)定在那里?
沒(méi)錯(cuò),我們?cè)谶@兒遇到了沖突,那就是--當(dāng)主角走到美女附近的時(shí)候,應(yīng)該有可能會(huì)出現(xiàn)兩種情形:
事件1:美女要求救她父親
事件3:美女親吻主角
試問(wèn),如今美工已設(shè)定附近Tile都是事件1了,那么事件3該怎么辦?
如果將附近Tile又全改為事件3的話,那事件1又該如何?
換句話說(shuō),我們?cè)撊绾尉庉嫷貓D,好讓主角走到美女附近時(shí),會(huì)先啟動(dòng)事件1(而不啟動(dòng)事件3),等到救到她父親了之后,又能夠在美女附近啟動(dòng)事件3(而不會(huì)啟動(dòng)事件1)呢?
我想,如果只利用這個(gè)地圖編輯器的話,應(yīng)該是辦不到吧!
第四節(jié):地圖編輯器進(jìn)階說(shuō)明
之前談了好幾個(gè)有關(guān)地圖編輯器的基本作用,現(xiàn)在談?wù)勊倪M(jìn)階。
這次想要來(lái)談?wù)動(dòng)嘘P(guān)多層的概念。
什么叫作多層的概念?
其實(shí)就字面上來(lái)說(shuō),大家應(yīng)該不難猜出它是什么,簡(jiǎn)單來(lái)講,就是地圖編輯器具有多層貼圖的功效。
那什么是多層貼圖呢?我們可以舉個(gè)例子,譬如我們?cè)孢^(guò)博德之門或是軒轅劍參的朋友們,應(yīng)該會(huì)發(fā)現(xiàn)主角有時(shí)候會(huì)被一些高聳的建物,或是幾棵樹(shù)擋住,這種“建物圖蓋在角色的圖上”或是“樹(shù)圖蓋在角色圖上”的狀況,使我們?cè)谕娴臅r(shí)候,很容易地就產(chǎn)生了一種“角色在建物或樹(shù)后面”的錯(cuò)覺(jué),這種錯(cuò)覺(jué)運(yùn)用,在RPG或是動(dòng)作類游戲中最常被運(yùn)用,而所采用的,就是多層貼圖的觀念。這種概念說(shuō)穿了也沒(méi)什么,如果當(dāng)主角站在草原上的樹(shù)后面的話(以玩家的角度看),它的方法就是先貼草原圖,然后貼主角人物圖,最后再貼樹(shù)圖,然后就達(dá)到這個(gè)功效了。
作法似乎很簡(jiǎn)單不是嗎?
還有另一種情況也很常用多層貼圖,譬如一個(gè)主角站在湖的船上,以玩家在岸上的角度看,近處先有楊柳,然后較遠(yuǎn)處的湖中,主角正站在那兒,更遠(yuǎn)的地方則有高山白云,當(dāng)游戲畫面想要制造遠(yuǎn)近效果時(shí),可能會(huì)先貼最遠(yuǎn)的山圖,然后再貼湖面和主角(包括船),最后才貼近處的楊柳,如此的話,三層圖共分遠(yuǎn)、中、近,就可達(dá)到立體遠(yuǎn)近的效果了。當(dāng)然,如果想要強(qiáng)化這個(gè)效果的話,還有妙招,一般人都曉得,當(dāng)一個(gè)人坐在火車上從車窗向外看風(fēng)景時(shí),最遠(yuǎn)的山是移動(dòng)最慢的,而最近的火車電竿則是移動(dòng)最快的,所以當(dāng)景物越遠(yuǎn),它的移動(dòng)就越慢,我們嘗試將這個(gè)觀念運(yùn)用上去--當(dāng)主角在湖中移動(dòng)時(shí),我們讓最靠近玩家的楊柳圖層位移的比較快,然后讓最遠(yuǎn)離玩家的高山白云的圖層位移變緩,然后中間的主角不動(dòng) 你猜會(huì)怎樣?
沒(méi)錯(cuò),看起來(lái)就好像是主角的船正在移動(dòng)一般,而且它的立體效果肯定會(huì)非常好,要是沒(méi)記錯(cuò)的話,軒轅劍貳倒是運(yùn)用了不少這方面的技術(shù),不知是否還有玩家記得?
第五節(jié):地圖編輯器 進(jìn)階II
上周談到地圖編輯器中有關(guān)多層的概念,并且也舉了例子,事實(shí)上這種例子很多,不勝枚舉,就連微軟提供的DirectX Demo中,也用到了類似的概念(安裝過(guò)的人應(yīng)該知道熊吃狐貍的那個(gè)例子吧!),一套特別強(qiáng)調(diào)多層技術(shù)的游戲,有時(shí)候甚至?xí)玫桨司艑拥馁N圖也不是沒(méi)有可能。
至于地圖編輯器制作多層的界面,通常是用某些按鍵來(lái)切換的,就我之前來(lái)說(shuō),有關(guān)地圖編輯器的撰寫,就曾有做過(guò)四層的記錄,方法自然是利用function鍵來(lái)切換了。按F1時(shí),畫面是秀最底層,而且這時(shí)美工所編輯的也是最底層的,如果按F2的話,就編輯第二層,如此類推,按F4的話就是編輯最上面一層。那如果要看四層貼圖合起來(lái)的效果,就可以按F5,利用這樣的方式,想寫多層地圖編輯器的人,或許可以參考參考(雖然個(gè)人界面這樣的設(shè)定未必是最好的)。
多層談完之后在來(lái)是有關(guān)3D的地圖編輯器探討,這部份算是所有地圖編輯器中,屬于較麻煩的部份,個(gè)人在此并不打算深談,因?yàn)檫@已經(jīng)牽涉到3D中有關(guān)Z-Buffer以及Ray Tracing的技術(shù)了,談下去恐怕會(huì)停不了,并且也有點(diǎn)離題過(guò)遠(yuǎn),有關(guān)3D的部份以后如果有機(jī)會(huì)的話再來(lái)專題討論一番。這次只打算談到一些相關(guān)技術(shù)的游戲,如毀滅戰(zhàn)士系列的游戲(例如《毀滅公爵》、《古墓麗影》等),都是利用了3D地圖編輯器來(lái)編輯場(chǎng)景貼圖的,作法是先利用一張某固定比例的2D平面圖,然后在上面畫出線條(好像在畫建筑工程圖一樣),并利用不同的顏色來(lái)表示壁面材質(zhì),如灰色線是指墻壁,咖啡色線是指木頭等,等畫好之后,這張圖在將來(lái)就是游戲過(guò)程中,玩家可以拿來(lái)看自己所在位置的小型地圖了,然后當(dāng)美工要開(kāi)始貼圖的時(shí)候,就執(zhí)行3D地圖編輯器,讀取這張2D平面圖,之后便可發(fā)現(xiàn),自己好像身在一個(gè)利用線條所組織起來(lái)的迷宮之中,沒(méi)錯(cuò),這就是該2D平面圖所展現(xiàn)出來(lái)的3D效果,只是目前只有線條而已。這時(shí)美工該做的,就是在這些只用線條架構(gòu)起來(lái)的迷宮,一格一格地將圖貼上去,而且還要在迷宮中邊走邊貼喔!