Zh/L4D Mapping Notes: Difference between revisions
(新建了翻译页面,翻译中...) |
(WIP20180731) |
||
Line 12: | Line 12: | ||
== 开场镜头 == | == 开场镜头 == | ||
在第一个章节中,游戏使用了4个"<code>info_survivor_position</code>" 实体和4个"<code>point_viewcontrol_survivor</code>" | 在第一个章节中,游戏使用了4个"<code>info_survivor_position</code>" 实体和4个"<code>point_viewcontrol_survivor</code>"实体来制造出“镜头拉近”的效果。尽管没有这8个实体也不会影响游戏正常运行,我们还是建议在发布地图之前,添加介绍镜头作为最后的完善。 | ||
* <code>logic_choreographed_scene</code> | * <code>logic_choreographed_scene</code> | ||
* <code>point_viewcontrol_multiplayer</code> | * <code>point_viewcontrol_multiplayer</code> | ||
Line 18: | Line 18: | ||
* <code>info_survivor_position</code> | * <code>info_survivor_position</code> | ||
* <code>env_fade</code> | * <code>env_fade</code> | ||
* ''' | * '''实体:''' <code>logic_relay</code> '''命名:''' relay_intro_start | ||
:{| {{OutputsTable}} | :{| {{OutputsTable}} | ||
| [[Image:Io11.png]] || OnTrigger || director || ForceSurvivourPosition || || 0.00 || No | | [[Image:Io11.png]] || OnTrigger || director || ForceSurvivourPosition || || 0.00 || No | ||
Line 25: | Line 25: | ||
|} | |} | ||
== | == 导演系统 == | ||
求生之路使用“导演”,而不是固定的出生点,来放置敌人和物品。放置的位置和数量都是根据每名玩家当前的状态、数据、能力和位置决定的。 | |||
* <code>info_director</code> | * <code>info_director</code> | ||
:{| {{OutputsTable}} | :{| {{OutputsTable}} | ||
Line 32: | Line 32: | ||
|} | |} | ||
=== | === 为感染者创建出生区域 === | ||
导演会在玩家视线以外的区域生成感染者,因此一张高难度的地图往往有很多视线外的区域。有时候生成区域在玩家不可到达的地方,为了让感染者进入游戏区域,应该在障碍背面放置<code>[[func_ladder]]</code>梯子,以便感染者翻越。 | |||
== | == 生成物品和武器 == | ||
设置Flags标志让生成位置随机化。 | |||
* <code>weapon_molotov_spawn</code> | * <code>weapon_molotov_spawn</code> | ||
* <code>weapon_pipe_bomb_spawn</code> | * <code>weapon_pipe_bomb_spawn</code> | ||
Line 49: | Line 49: | ||
* <code>weapon_pumpshotgun_spawn</code> | * <code>weapon_pumpshotgun_spawn</code> | ||
* <code>prop_physics</code> | * <code>prop_physics</code> | ||
** | ** 绿色氧气罐: <code>models/props_equipment/oxygentank01.mdl</code> | ||
** | ** 红色汽油桶: <code>models/props_junk/gascan001a.mdl</code> | ||
** | ** 白色丙烷罐: <code>models/props_junk/propanecanister001a.mdl</code> | ||
** | ** 烟花: <code>models/props_junk/explosive_box001.mdl</code> | ||
== | == 恐慌事件 == | ||
触发 info_director 导演实体的事件来生成尸潮。 | |||
* <code>info_game_event_proxy</code> | * <code>info_game_event_proxy</code> | ||
* <code>ambient_generic</code> | * <code>ambient_generic</code> | ||
* <code>logic_timer</code> | * <code>logic_timer</code> | ||
* ''' | * '''示例''' | ||
** | ** 警报车 | ||
** | ** 开门警报 | ||
** | ** 火警 | ||
** | ** 烟雾报警器 | ||
** | ** 金属探测器 | ||
** | ** 爆炸 | ||
== Crescendo events == | == 剧情事件(Crescendo events) == | ||
剧情中间的任务目标。剧情事件就像是缩小版的救援关战斗,通常出现在途径中有意思的地方。它的设置与恐慌事件极其相似,除了不能被跳过这一点之外。 An in-game example being the Waterworks part of No Mercy, the survivors must fend off a horde of infected while they wait for the lift to arrive. | |||
* <code>func_button</code> | * <code>func_button</code> |
Revision as of 04:14, 31 July 2018
This page contains a rough collection of notes and incomplete articles related to L4D mapping. Most of the sections here will not likely be completed until after Left 4 Dead's SDK is released. |
开场镜头
在第一个章节中,游戏使用了4个"info_survivor_position
" 实体和4个"point_viewcontrol_survivor
"实体来制造出“镜头拉近”的效果。尽管没有这8个实体也不会影响游戏正常运行,我们还是建议在发布地图之前,添加介绍镜头作为最后的完善。
logic_choreographed_scene
point_viewcontrol_multiplayer
point_viewcontrol_survivor
info_survivor_position
env_fade
- 实体:
logic_relay
命名: relay_intro_start
My Output Target Entity Target Input Parameter Delay Only Once OnTrigger director ForceSurvivourPosition 0.00 No OnTrigger director ReleaseSurvivourPosition 0.01 No
导演系统
求生之路使用“导演”,而不是固定的出生点,来放置敌人和物品。放置的位置和数量都是根据每名玩家当前的状态、数据、能力和位置决定的。
info_director
My Output Target Entity Target Input Parameter Delay Only Once OnGameplayStart relay_intro_start Trigger 0.00 No
为感染者创建出生区域
导演会在玩家视线以外的区域生成感染者,因此一张高难度的地图往往有很多视线外的区域。有时候生成区域在玩家不可到达的地方,为了让感染者进入游戏区域,应该在障碍背面放置func_ladder
梯子,以便感染者翻越。
生成物品和武器
设置Flags标志让生成位置随机化。
weapon_molotov_spawn
weapon_pipe_bomb_spawn
weapon_pistol_spawn
weapon_pain_pills_spawn
weapon_ammo_spawn
weapon_smg_spawn
weapon_first_aid_kit_spawn
weapon_hunting_rifle_spawn
weapon_rifle_spawn
weapon_autoshotgun_spawn
weapon_pumpshotgun_spawn
prop_physics
- 绿色氧气罐:
models/props_equipment/oxygentank01.mdl
- 红色汽油桶:
models/props_junk/gascan001a.mdl
- 白色丙烷罐:
models/props_junk/propanecanister001a.mdl
- 烟花:
models/props_junk/explosive_box001.mdl
- 绿色氧气罐:
恐慌事件
触发 info_director 导演实体的事件来生成尸潮。
info_game_event_proxy
ambient_generic
logic_timer
- 示例
- 警报车
- 开门警报
- 火警
- 烟雾报警器
- 金属探测器
- 爆炸
剧情事件(Crescendo events)
剧情中间的任务目标。剧情事件就像是缩小版的救援关战斗,通常出现在途径中有意思的地方。它的设置与恐慌事件极其相似,除了不能被跳过这一点之外。 An in-game example being the Waterworks part of No Mercy, the survivors must fend off a horde of infected while they wait for the lift to arrive.
func_button
filter_activator_team
info_game_event_proxy
logic_relay
My Output Target Entity Target Input Parameter Delay Only Once OnTrigger director PanicEvent 1.00 No
One method for changing levels
Add a trigger_changelevel
inside the safe house at the end of the level and have it come in contact with the floor space inside the room. The trigger brush doesn't necessarily have to overlap the floor space, but it does have to at least touch it, or a good portion of where the nav square(s) will be generated. If the trigger_changelevel
doesn't come in contact with the floor space, you will have nav errors when the map is loaded and may have to manually mark the nav squares.
Make sure the info_landmark
is named and that the landmark name is specified inside the trigger_changelevel
settings along with the name of the next map to be loaded. For the prop_door_rotating_checkpoint
, make sure the model is set to models/props_doors/checkpoint_door_02.mdl
and the "Starts Open" option is checked inside the "flags" tab.
You need to have the map already compile and loaded, then open up the console in game and type the following:
sv_cheats 1
nav_edit 1
nav_mark_walkable
nav_generate
nav_analyze
nav_edit 0
sv_cheats 0
The map is reloaded twice during the process, once after nav_generate
and again after nav_analyze
, but the game should stay in edit mode when the map is reloaded.
Keep in mind, while the console commands above will build a basic mesh, it will be far from perfect and thus should only be used for testing purposes. A good nav mesh should be thoroughly examined and edited before releasing a map, which can often be a good deal of work depending on the map's structure. For this reason, its recommended that you save fine tuning the mesh until after you are completely finished with the map's layout. Significant changes in a maps structure may render an older nav mesh useless requiring it to be rebuilt from scratch.

- Relocated to L4D Level Design/Nav Attribute Descriptions
- Fog: Whether or not the area has fog associated with it.
- Incoming/Outgoing: (Probably not L4D Specific) Likely used to select areas with incoming or outgoing path information.
- Max Light / Min Light: (Not L4D Specific) Used to select areas that have certain levels of light. (.25 max / 0 min for a dark place, 1 max / .75 min for a bright place)
- Place: (Probably not L4D Specific) "Place" is the term used in nav creation to name specific areas. This is likely a way to select named/unnamed areas only.
Finale
Ending the campaign. In the final chapter of each campaign, the players must defend a position from an onslaught of Infected until a rescue vehicle arrives.
Setting up the radio
- Entity: trigger_finale
- Name: FinaleRadio
- World Model: models/props/terror/hamradio.mdl
- Start Disabled: No
- First Use Delay: 2
- Use Delay: 2
- Description: This single entity is responsible for starting the finale sequence after being triggered twice.
- FinaleEscapeStarted - ABOUT: Basically means "when the finale is finished, fire this output". This is usually used to trigger a relay to summon the rescue vehicle.
注意:The VALVe maps use two seperate "func_buttons" for triggering this entity. This is possibly a last minute workaround on VALVe's part when they found playtesters starting finale sequences "by accident" since the trigger_finale can recieve "use" input itself when it's world model is set.
Adding the rescue vehicle
- Entity: logic_relay
- Name: EscapeRelay
- Description: Triggered once the finale sequence has been completed. Starts the escape vehicles animations and moves it to the RESCUE_VEHICLE nav squares. When the vehicle is in place, the func_brush entities used to reach the RESCUE_VEHICLE nav areas are enabled.
- FinaleEscapeVehicleReadyForSurvivors - This "unlocks" the "RESCUE_VEHICLE" nav squares, upon which the survivor bots will rush towards them. Its a good idea to delay this to give the rescue vehicle enough time to get in position.
注意:The VALVe maps also have trigger_hurt and trigger_push entities used to clear a path for the rescue vehicle and simulate it running something over.
- Entity: func_door, Name: RescueBrush
- Entity: func_door, Name: RescueBrushDr1
- Starts Open: Yes
- Parent: RescueBrush
- Entity: func_door, Name: RescueBrushDr2
- Starts Open: Yes
- Parent: RescueBrush
- Entity: func_brush, Name: RescueBrushRamp
- Start Disabled: Yes
- Solidity: Toggle
- Entity: trigger_multiple, Name: TriggerEscape
- Description: Set to be enabled after the rescue vehicle animation finishes. When activated, triggers the VehicleLeaveRelay.
- Entity: logic_relay, Name: VehicleLeaveRelay
- Description: Used for controlling the rescue vehicle exit animations and firing the OutroRelay

Rolling the credits
- Entity: logic_relay, Name: OutroRelay
- Description: Ends the map and starts up the credits screen.
- FinaleEscapeForceSurvivorPositions - This enables the "info_survivor_position" entities to remove players from the battelfield.
- Entity: env_fade Name: FadeOutro
- Entity: env_outtro_stats Name: OutroStats
- Entity: info_game_event_proxy Name: InstructorFinale
- Entity: info_survivor_position Name: survivor_pos1
- Entity: info_survivor_position Name: survivor_pos2
- Entity: info_survivor_position Name: survivor_pos3
- Entity: info_survivor_position Name: survivor_pos4
- Entity: point_viewcontrol_multiplayer Name: EndCamera
Notes
Doors
- Type: prop_door_rotating
- Frame Dimensions: width: 56, height: 104
- World Model: models/props_doors/doormainmetal01.mdl

- For a basic tutorial on creating and setting up doors in Left 4 Dead, see:
Doors in Left4Dead (l4dmaps.net)