Your First Left 4 Dead Map

From Valve Developer Community
Jump to navigation Jump to search
English (en)Português do Brasil (pt-br)Русский (ru)中文 (zh)中文(臺灣) (zh-tw)Translate (Translate)

這個教程會教大家製作一個基本的Left 4 Dead(en)地圖。教程會教大家如何使用一些在必需Left 4 Dead(en)地圖上必要的Entity(en) , 例如Director,生成可用的武器和生成喪屍等等。還解釋一些地圖製作者常犯的錯。

這個教程對象並不是入門級的地圖製作者,所以教程所用的技巧可能看不懂,建議先看Basic level construction(en)


Tut title.png
本教程地圖的布局。

這個教程會教大家製作一個一共包含兩個章地圖的戰役,但永遠玩不完,没有結局。Sounds fun, right? 這個教程目標不是完整的戰役,但會教大家如何製作一個基作的基本的L4D地圖。
首先,製作一個可玩的L4D地圖需要以下的東西:

  • A director (導演)
  • 生還者開始地點
  • 兩道安全門
  • 武器,彈藥和藥包
  • 救出死去同伴的密室
  • 轉換地圖
  • 雾的控制器 (粒子效果需要)


以下教程會根據右面那張圖的布局。 還有的是Hammer並没有中文版,所以一些功能上的字眼仍然使用英文。

生還者開始地點

首先在上圖最左邊(區域紅色1)里面增加一個Entity名叫info_player_start。之後,增加另外兩個Entity,info_directorenv_fog_controller,這兩個Entity放在那裡都可以。為了方便,建議都放到區域1。 之後確保env_fog_controller的「Properties」內,「Fog Enable」是「Yes」的。

在這里,我們可以新增加以下補給的Entity:

  • 四個藥包,weapon_first_aid_kit_spawn
  • 兩支槍; weapon_smg_spawnweapon_pumpshotgun_spawn
  • 彈藥 weapon_ammo_spawn

開始地點需要一道安全門,新增一個Entity叫prop_door_rotating_checkpoint。在「Properties」里,更改名稱(Name)為「checkpoint_exit」,「Spawn Position」設定成「Closed」,「world model」設成「models/props_doors/checkpoint_door_01.mdl」和確定「Flag」內的「Starts Open」没有被選取。還有確保安全門上「EXIT」的標誌是向內的。

生還者開始地點大致上完成,最後增加一個Entity叫info_landmark,並命名為「landmark_a」,之後會解釋為什麼。

救出死去同伴的密室

之後我們會製作兩個小密室(上圖區域2),救出死去同伴。在第一個小密室里,大家只需要增加四個Entity,包括三個info_survivor_rescue和一個prop_door_rotating。在第二個小密室里,同樣做法。 我們需要一道闊54個單位,高104個單位的門,所以prop_door_rotating里的「world model」設成「models/props_doors/doormain01.mdl」。

安全室和轉換地圖

現在我們製作一個可以轉換到下一個地圖的安全室。安全室(區域3)門口位新增一個一道門prop_door_rotating_checkpoint,這里與之前的安全門有少許不相同,開它的「Properties」,並把它命名為「checkpoint_entrance」,「world model」設成「models/props_doors/checkpoint_door_02.mdl」,亦都確保「Flag」內的「Starts Open」是選取了的。還有安全門上「小屋圖示」是向外的。

我們要轉換地圖需要增加info_landmarktrigger_changelevel。首先我們在安全室的中間位置增加info_landmark,之後將其命名為「landmark_2」。現在我們在安全室內建立一個大型的方塊(Brush),方塊的大小要蓋著整個安全室,不可有空位,最低限度需要貼著牆邊,穿過牆都不要緊。之後開啟trigger_changelevel的「Properties」,「landmark name」設成「landmark_b」和「Next map」設成「1st_l4dmap_b」。

製作路線(Nav)

要令電腦玩家懂得在你的地圖上走動,無論是生還者或感染者,你都需要為你的地圖製作一個路線圖(mapname.nav 檔案)。製作一個基本的路線圖,你需要編譯你的地圖,並進入遊戲,成功載入你的地圖。當地圖完全載入,你的準星要描著地上,開啟指令控制台(按~鍵),輸入以下指令:

sv_cheats 1
nav_edit 1
nav_mark_walkable
nav_generate

當你選入了nav_generate,地圖會自動運算路線圖。如果你運氣好的話,當運算完畢時你不會再看見錯誤信息「NAV ERRORS - Map is unplayable!」,因為nav_generate亦都會為你的路線圖設定屬性(Attribute)。

用「select_with_attribute A」指令以看到一些屬性變化。選取了的區域(淡黃高亮)是所「Marked」的屬性。例子,現在我們想找CHECKPOINT的位置,使用「select_with_attribute CHECKPOINT」指令,選取了的區域(淡黃高亮)就是CHECKPOINT位置。

選入「nav_edit 1」指令,之後選入以下指令:

select_with_attribute DOOR
有門的地方會被選取。
select_with_attribute CHECKPOINT
安全室會被選取。
select_with_attribute RESCUE_CLOSET
救同伴的密室會被選取。
select_with_attribute ESCAPE_ROUTE
有很多區域會被選取,由生還者玩家開始地點到安全室。
using select_with_attribute DOOR
using select_with_attribute CHECKPOINT
using select_with_attribute RESCUE_CLOSET

NAV Marking

在這個情況,「nav_generate」所生成的路線圖是十分完美的,所有相關的屬性都已經為我們設定好了。但是有時候運氣不是太好,需要手動設定一些屬性。你要用指令「mark A」,A是你想設定的屬於。

例如,「nav_generate」不能自動設定安全室的屬地,你需要以下指令:

sv_cheats 1
nav_edit 1

現在到安全室,準星向著安全室的地上,打開控制台,選入:

  •  mark CHECKPOINT

有時候安全室內有多個區域需要設定成CHECKPOINT,我們可以用指令:

  •  nav_gui
the nav mesh now with both checkpoints marked

方便選取多個區域。選取後,同樣做法,在控制台,選入「mark CHECKPOINT」。

如果你設定錯誤,可以用以下指令:

  • nav_clear_attribute A
    • 你想移除某區域內屬性A (eg: nav_clear_attribute CHECKPOINT)

或者你想移除整個地圖的屬性,可用以下指令:

  • wipe_attributes

當你完成了設定屬性後,切記儲存,指令是「nav_save」。之後你需要用指令「nav_analyze 」分析一次你的地圖。

感染者出現在你的地圖

現在你的路線圖已經完成,你需要選入以下指令才會有喪屍生成:

director_stop
director_start

製作第二章地圖

如果你已經明白如何製作你第一個地圖,第二個圖基本上没有難度。

附加事項

還有很多武器可以使用,你不一定只用SMG或Pump-shotgun:

  • weapon_rifle_spawn
  • weapon_autoshotgun_spawn
  • weapon_hunting_rifle_spawn

相關資料