Half-Life地圖
Half-Life(半條命)是一款深受世界遊戲玩家喜愛的第一人稱射擊遊戲。以其獨特的形式駁得無數玩家的芳心。而BSP檔案這種場景檔案就可以實現讓玩家根據自己的想法來設計自己的HL地圖。大多數MOD之間(如Cs),BSP檔案是可以通用的,只要符合讀取的條件,能夠調用到地圖裡用到的資源,就一定能讀取。比如HL:OP就能讀取大多數HL的地圖。HL地圖製作工具
首先必須提到的是WC,既WorldCraft。它是一個比較常用的HL地圖製作工具。但是隨著時代的發展,WC也出現許多不足的地方。所以它的作者Valve公司又對它進行改新,直到現在的最新版本——VHE3.5終結版(WorldCraft 3.33版本以後都叫做VHE),既Valve Hammer Editor 3.5終結版。它修正了WC的不足,新增了許多WC不能做到的地方,如將實體顯示成模型或圖示而非一個小方塊,並且支持製作Source引擎地圖,halflife.fgd檔案是HL地圖實體列表,它決定了你在地圖編輯器里能直接製作哪些實體。現有的fgd檔案有漢化的Half-Life.FGD.
它適合對於英文不是很了解的朋友使用,也修正了Valve官方提供的fgd的許多bug(但沒有在編輯器顯示中模型的功能)。使用此軟體可以製作出*.RMF或*.map檔案,即HL地圖源檔案,可編譯為.bsp格式檔案,即上面所說的能被遊戲引擎讀取的地圖檔案,未經編譯的地圖源檔案是無法被遊戲讀取的。您還可以添加自定義紋理(.wad)、聲音(.wav)、模型(.mdl)、圖示(.spr)等等,這樣可以個性化HL地圖,而不局限於官方僅有的那些枯燥素材。
HL地圖的構成
HL地圖中包括以下部分:
【固體】(Brush):在遊戲中沒有特殊功能,僅僅構成遊戲可見部分(如地面、山體等等),玩家看得見摸得著的那些物體。
【實體】(Entity):指遊戲中用來實現某種功能(如在地面上放置的武器等等)的元素,分為:
【固體實體】——由固體轉換而來的實體,可以用來規定一些特殊區域,如觸發區,也可以做出如水、按鈕、可開動的汽車等等使其有一般固體做不出的特殊能力;
【點實體】——絕大多數遊戲中不可見,僅僅用來實現一些功能,如播放聲音、規定玩家出生點等等。
紋理知識
【紋理】(Texture):本質為圖片,覆蓋在固體或固體實體表面,使遊戲更加逼真。比如在作為地面的地方貼上地磚,在作為草地的地方貼上草地,等等。
紋理檔案保存在擴展名為wad的檔案中,這些檔案可以在VHE中被直接調用。
註:不透明的水、天空、軸心與貼附固體,均為各表面覆蓋有特殊紋理的固體,在遊戲中有一定特殊作用,但並不屬於實體。
紋理必須要有名稱,這樣可以迅速區分普通的固體紋理與特殊紋理。關於這些,下面給出具體的分類方式:
【固體紋理】:只起到視覺效果,如沙地、草地、牆壁等等,名稱沒有什麼特別之處,如sand01、steeldoor1等等。
【標記紋理】:名稱為AAATRIGGER,常用於不可見的固體實體之上,在製作地圖的時候可以提醒製圖者哪些實體在遊戲中不可見,可以方便地圖製作。(但是覆蓋在固體之上可能會引發遊戲錯誤!)
【天空紋理】:名稱為sky,貼有該紋理的固體是作為天空的,在遊戲中可以顯示出逼真的藍天白雲或者月夜星空。
【軸心紋理】:名稱為origin,作為一些實體的軸心,例如轉門、風扇、汽車、火車、飛機、鐘擺、有架子的機槍等等,它們在轉動或運動時,都要圍繞一定的軸心運動。覆蓋有這個紋理的固體,就用來代表軸心。凡是要製作上述效果的實體,都必須要集成一個貼有origin紋理的固體,以作為軸心(放在你認為或需要是軸心的地方)。否則的話,無論上述實體身在地圖何處,他們都將只圍繞地圖原點(0,0,0)轉動或運動。你不能給一個實體集成2個或2個以上的軸心,否則將會導致出錯。你不能把貼有該紋理的固體單獨轉化為固體實體,否則同樣會引起遊戲錯誤。
【貼附紋理】:名稱為clip,遊戲中不可見,可以阻擋玩家(如無形的牆壁一般),但不會阻擋玩家的子彈或手雷,例如HL:CS中de_Aztec的吊橋,人可以走在上面,但是子彈和手雷可以穿過去。該紋理不能和別的紋理用於同一固體之上,也不能把貼有該紋理的固體單獨轉化為固體實體。
【水紋理】:名稱前帶有!,如!water01、!lava_x等等。遊戲中作為液體,可以自己動來動去,如水、岩漿,但是這種液體是不透明的,如果需要透明,就必須轉化為func_water固體實體。
【透明紋理】:名稱前帶有{,如{ladder_red。通過一定的設定,在遊戲中純藍部分會完全透明,只留下不是藍色的部分,可以用來做梯子等等。
【動畫紋理】:首幀前為+0的紋理,如+0movie。這類紋理在地圖中可以自動按+1、+2、+3……的順序播放,比如覆蓋有+0movie的固體,在遊戲中就會自動按照+1movie、+2movie……自動變化下去,而且是循環的。(只有覆蓋開頭為+0紋理才能變化,貼上+1、+2……就不行了!)
【切換紋理】:首幀前為+0,末幀前為+A的紋理,如+0button、+Abutton。必須經過引發才會播放的紋理,引發後+0變為+A,然後如果需要還可以變回來,可以用來製作按鈕。
【印花紋理】:存在於decals.wad,VHE中“印花工具”使用的紋理,在遊戲中作為牆壁上的噴塗、血跡等等。
HL怪物實體略述
這些就是HL1中可能使用到的部分實體名稱及其作用的簡述
下面是怪物實體,屬於遊戲中的NPC,我們拿它作為例子:
【實體monster_human_grunt】人類士兵
健值:
name: 此乃實體名稱。
TriggerTarget:怪物觸發實體的名稱。
TriggerCondition:此乃選項,選擇怪物在什麼情況下觸發實體。
squadname:所屬小隊的名字,給很多人類士兵起同一名字,他們就是一個小隊了。
weapons:此怪物手上的武器。
標記:
waittillseen: 自動觸發此怪物。
gag:怪物閉嘴,不發出聲音。
monsterclip: 怪物將不會穿過func_monsterclip 實體指定的區域。
prisoner: 任人宰割的AI特性。
squadleader:小分隊領導。
waitforscript: 等待腳本。
pre-disaster: 只能死於天災。
fade crops:已經重傷。
【紋理的製作】
使用wally紋理製作工具
貼圖以靜態圖片格式,長寬都必須是16或16的倍數,最大尺寸為256×256,尺寸單位為像素。
貼圖顏色須為256色
然後導入wally之後,打包成wad檔案
可以將很多的貼圖都放進一個wad檔案裡面