Zh/L4D Mapping Notes: Difference between revisions
No edit summary |
m (Using L template for links) |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{lang|title=L4D地图制作注意事项|L4D Mapping Notes}} | ||
| title = L4D地图制作注意事项 | |||
| | |||
}} | |||
<center> | <center> | ||
{| border=1 cellpadding="2" cellspacing="1" | {| border=1 cellpadding="2" cellspacing="1" | ||
Line 22: | Line 18: | ||
* '''Entity: ''' <code>logic_relay</code> '''Name: ''' relay_intro_start | * '''Entity: ''' <code>logic_relay</code> '''Name: ''' relay_intro_start | ||
:{| {{OutputsTable}} | :{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnTrigger || director || ForceSurvivourPosition || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || director || ReleaseSurvivourPosition || || 0.01 || No | ||
|} | |} | ||
Line 31: | Line 27: | ||
* <code>info_director</code> | * <code>info_director</code> | ||
:{| {{OutputsTable}} | :{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnGameplayStart || relay_intro_start || Trigger || || 0.00 || No | ||
|} | |} | ||
=== 为感染者创建出生区域 === | === 为感染者创建出生区域 === | ||
导演会在玩家视线以外的区域生成感染者,因此一张高难度的地图往往有很多视线外的区域。有时候生成区域在玩家不可到达的地方,为了让感染者进入游戏区域,应该在障碍背面放置<code> | 导演会在玩家视线以外的区域生成感染者,因此一张高难度的地图往往有很多视线外的区域。有时候生成区域在玩家不可到达的地方,为了让感染者进入游戏区域,应该在障碍背面放置<code>{{L|func_ladder}}</code>梯子,以便感染者翻越。 | ||
== 生成物品和武器 == | == 生成物品和武器 == | ||
Line 79: | Line 75: | ||
:{| {{OutputsTable}} | :{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnTrigger || director || PanicEvent || || 1.00 || No | ||
|} | |} | ||
Line 100: | Line 96: | ||
需要注意的是,上述控制台指令只能创建最基础的导航网格,它还远远不够,因此只能用于测试而不是发布。在发布地图之前应该仔细、全面地检查并编辑导航网格,取决于地图的结构,工作量也会有所不同。因此,建议你先完成地图的全部细节,最后再进行导航网格的调整。地图结构上的大变动会导致旧的nav渲染在错误的位置,需要进行重建。 | 需要注意的是,上述控制台指令只能创建最基础的导航网格,它还远远不够,因此只能用于测试而不是发布。在发布地图之前应该仔细、全面地检查并编辑导航网格,取决于地图的结构,工作量也会有所不同。因此,建议你先完成地图的全部细节,最后再进行导航网格的调整。地图结构上的大变动会导致旧的nav渲染在错误的位置,需要进行重建。 | ||
{{ | {{note|有关高级导航网格的创建与编辑,请点击{{L|Navigation Meshes|导航网格}}进行查看。}} | ||
== 导航网格属性描述 == | == 导航网格属性描述 == | ||
* 重定向到 | * 重定向到{{L|L4D Level Design/Nav Attribute Descriptions|求生之路地图设计/导航网格属性描述}} | ||
== 导航网格图形用户界面 == | == 导航网格图形用户界面 == | ||
Line 123: | Line 119: | ||
: '''Description:''' 这个实体的作用是在被触发两次之后,启动救援流程。 | : '''Description:''' 这个实体的作用是在被触发两次之后,启动救援流程。 | ||
::{| {{OutputsTable}} | ::{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || FinaleEscapeStarted || EscapeRelay || Trigger || || 5.00 || No | ||
|} | |} | ||
::'''FinaleEscapeStarted''' - 事件说明:它的含义是“当救援关完成之后,触发这个事件”。通常用于触发一个中继器(logic_relay),进而召唤救援载具。 | ::'''FinaleEscapeStarted''' - 事件说明:它的含义是“当救援关完成之后,触发这个事件”。通常用于触发一个中继器(logic_relay),进而召唤救援载具。 | ||
::{{ | ::{{note|官图中使用了两个独立的按钮(func_button)来触发这个实体。这很可能是他们发现,由于 trigger_finale 实体在设置了模型后,本身就能接受“use”(使用键)输入,导致参与测试的玩家会“无意中”触发救援事件,因此做出的临时的修复。}} | ||
<br> | <br> | ||
Line 134: | Line 130: | ||
: '''Description:''' 当救援关流程完成时触发一次。用于启动救援载具的动画,并使其移动到标记了 RESCUE_VEHICLE 导航网格的位置。当载具到达之后,用于承载 RESCUE_VEHICLE 标记的导航网格的 func_brush 固实体就会生效。 | : '''Description:''' 当救援关流程完成时触发一次。用于启动救援载具的动画,并使其移动到标记了 RESCUE_VEHICLE 导航网格的位置。当载具到达之后,用于承载 RESCUE_VEHICLE 标记的导航网格的 func_brush 固实体就会生效。 | ||
::{| {{OutputsTable}} | ::{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnTrigger || RescueBrush || Open || || 0.10 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || FinaleRadio || FinaleEscapeVehicleReadyForSurvivors || || 3.50 || No | ||
|} | |} | ||
::'''FinaleEscapeVehicleReadyForSurvivors''' - 这个事件能够“解锁”RESCUE_VEHICLE 导航网格,有了它后电脑AI就会冲向载具。建议给这一事件添加延迟,来让载具有足够的时间进入位置。 | ::'''FinaleEscapeVehicleReadyForSurvivors''' - 这个事件能够“解锁”RESCUE_VEHICLE 导航网格,有了它后电脑AI就会冲向载具。建议给这一事件添加延迟,来让载具有足够的时间进入位置。 | ||
::{{ | ::{{note|官方地图中有时候还会加入 trigger_hurt 与 trigger_push 实体,来模拟出载具一路碾过去的效果。}} | ||
<br> | <br> | ||
: '''Entity:''' func_door, '''Name:''' RescueBrush | : '''Entity:''' func_door, '''Name:''' RescueBrush | ||
::{| {{OutputsTable}} | ::{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnOpen || TriggerEscape || Enable || || 3.10 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnOpen || RescueBrushRamp || Enable || || 3.10 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnOpen || RescueBrushGate || Close || || 3.20 || No | ||
|} | |} | ||
<br> | <br> | ||
Line 165: | Line 161: | ||
: '''Description:''' Set to be enabled after the rescue vehicle animation finishes. When activated, triggers the VehicleLeaveRelay. | : '''Description:''' Set to be enabled after the rescue vehicle animation finishes. When activated, triggers the VehicleLeaveRelay. | ||
::{| {{OutputsTable}} | ::{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnEntireTeamStartTouch || VehicleLeaveRelay || Trigger || || 0.00 || No | ||
|} | |} | ||
<br> | <br> | ||
Line 171: | Line 167: | ||
: '''Description:''' Used for controlling the rescue vehicle exit animations and firing the OutroRelay | : '''Description:''' Used for controlling the rescue vehicle exit animations and firing the OutroRelay | ||
::{| {{OutputsTable}} | ::{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnTrigger || RescueBrushDr1 || Close || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || RescueBrushDr2 || Close || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || RescueGate || Open || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || RescueBrushRamp || Kill || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || TriggerEscape || Kill || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || OutroRelay || Trigger || || 0.00 || No | ||
|} | |} | ||
<br> | <br> | ||
{{ | {{note|生还者AI似乎在检测导航网格上有一定困难。因此,建议使用斜坡、下降、楼梯、梯子来连接 RESCUE_VEHICLE 区域和其它区域,而“向上跳”的连接方式似乎存在着问题。}} | ||
<br> | <br> | ||
=== 滚动致谢画面(Credits) === | === 滚动致谢画面(Credits) === | ||
Line 190: | Line 186: | ||
: '''Description:''' Ends the map and starts up the credits screen.结束一张地图,并显示致谢画面(Credits) | : '''Description:''' Ends the map and starts up the credits screen.结束一张地图,并显示致谢画面(Credits) | ||
::{| {{OutputsTable}} | ::{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnTrigger || InstructorFinale || GenerateGameEvent || || 0.00 || No | ||
|- align=left | |- align=left | ||
| [[ | | [[File:Io11.png]] || OnTrigger || FinaleRadio || FinaleEscapeFinished || || 4.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || FadeOutro || Fade || || 5.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || OutroStats || RollStatsCrawl || || 6.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || FinaleRadio || FinaleEscapeForceSurvivorPositions || || 7.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || EndCamera || Enable || || 8.00 || No | ||
|} | |} | ||
::'''FinaleEscapeForceSurvivorPositions''' - 这个事件能够使 "info_survivor_position" 实体生效,并将玩家从战场移出。 | ::'''FinaleEscapeForceSurvivorPositions''' - 这个事件能够使 "info_survivor_position" 实体生效,并将玩家从战场移出。 | ||
Line 219: | Line 215: | ||
--> | --> | ||
=== 门 === | === 门 === | ||
[[ | [[File:Doors.jpg|thumb|right|200px|门的模型和皮肤有很多种。这张图片只是用作参考。]] | ||
:'''Type:''' prop_door_rotating | :'''Type:''' prop_door_rotating | ||
:'''Frame Dimensions:''' '''width:''' 56, '''height:''' 104 | :'''Frame Dimensions:''' '''width:''' 56, '''height:''' 104 | ||
:'''World Model:''' models/props_doors/doormainmetal01.mdl | :'''World Model:''' models/props_doors/doormainmetal01.mdl | ||
{{note | {{note|如果 prop_door_rotating_checkpoint 实体设置在了安全屋区域8个单位以外的位置,感染者可能会试图翻越过去。}} | ||
* 有关求生之路一代中门的创建与设置,见:<br>[http://forums.l4dmaps.net/f11/doors-in-left-4-dead-t140.html Doors in Left4Dead (l4dmaps.net)] {{clr}} | * 有关求生之路一代中门的创建与设置,见:<br>[http://forums.l4dmaps.net/f11/doors-in-left-4-dead-t140.html Doors in Left4Dead (l4dmaps.net)] {{clr}} | ||
[[Category:Left 4 Dead]] | [[Category:Left 4 Dead]] |
Latest revision as of 08:00, 11 July 2024
此页面包含与求生之路地图制作相关的大量笔记和不完整的文章。如果您在地图制作中发现并解决了一些问题,可以在这里补充一下,这样可以方便其他地图作者了解更多相关问题的内容。 |
本简体中文页面由 Gloria 汉化。
开场镜头
在第一个章节中,游戏使用了4个"info_survivor_position
" 实体和4个"point_viewcontrol_survivor
"实体来制造出“镜头拉近”的效果。尽管没有这8个实体也不会影响游戏正常运行,我们还是建议在发布地图之前,添加介绍镜头作为最后的完善。
logic_choreographed_scene
point_viewcontrol_multiplayer
point_viewcontrol_survivor
info_survivor_position
env_fade
- Entity:
logic_relay
Name: 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)
剧情中间的任务目标。剧情事件就像是缩小版的救援关战斗,通常出现在途径中有意思的地方。它的设置与恐慌事件极其相似,除了不能被跳过这一点之外。例如战役毫不留情(No Mercy)中的医院中,生还者必须抵御尸潮直到电梯抵达。
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
一种关卡切换的方法
在一关最后的安全屋中添加 trigger_changelevel
,并将它与房间的地板空间关联起来。触发器(trigger)笔刷并不需要与地板重叠,但是必须紧贴着地板,或者与nav网格生成的位置大部分重合。如果 trigger_changelevel
没有与地板空间关联起来,在地图加载时就会出现nav错误,需要抽动调整nav网格。
确保命名了 info_landmark
实体,以及确保名称与 trigger_changelevel
中设置的、以及下一关的landmark名称一致。 For the prop_door_rotating_checkpoint
,至于安全门实体 prop_door_rotating_checkpoint
,将模型设置成 models/props_doors/checkpoint_door_02.mdl
,确保勾选了“Flags”选项卡中的“Starts Open”选项。
创建导航网格
首先必须编译并加载好地图,再在游戏中打开控制台,输入以下内容:
sv_cheats 1
nav_edit 1
nav_mark_walkable
nav_generate
nav_analyze
nav_edit 0
sv_cheats 0
在整个过程中地图会被重新加载两次,一次是在 nav_generate
之后,一次是在 nav_analyze
之后,但游戏应当始终处于nav编辑模式。
需要注意的是,上述控制台指令只能创建最基础的导航网格,它还远远不够,因此只能用于测试而不是发布。在发布地图之前应该仔细、全面地检查并编辑导航网格,取决于地图的结构,工作量也会有所不同。因此,建议你先完成地图的全部细节,最后再进行导航网格的调整。地图结构上的大变动会导致旧的nav渲染在错误的位置,需要进行重建。

导航网格属性描述
导航网格图形用户界面
- Fog:该区域是否关联了雾(fog)。
- Incoming/Outgoing:(可能不仅限于求生之路)很可能是用于选择带有向内/向外路径标记的区域
- Max Light / Min Light:(不限于求生之路)用于选择有特定级别光照的区域,(最大0.25/最小0 是黑暗区域,最大1/最小0.75是明亮区域)
- Place:(可能不仅限于求生之路)“Place”标记用于给nav网格中的特定区域命名。很可能仅用于选择命名/未命名区域。
救援关
一个战役的终点。在每个战役的最后一章,玩家必须在感染者的疯狂进攻中守住一片区域,直到救援载具到达。
设置呼叫电台
- Entity: trigger_finale
- Name: FinaleRadio
- World Model: models/props/terror/hamradio.mdl
- Start Disabled: No
- First Use Delay: 2
- Use Delay: 2
- Description: 这个实体的作用是在被触发两次之后,启动救援流程。
- FinaleEscapeStarted - 事件说明:它的含义是“当救援关完成之后,触发这个事件”。通常用于触发一个中继器(logic_relay),进而召唤救援载具。
注意:官图中使用了两个独立的按钮(func_button)来触发这个实体。这很可能是他们发现,由于 trigger_finale 实体在设置了模型后,本身就能接受“use”(使用键)输入,导致参与测试的玩家会“无意中”触发救援事件,因此做出的临时的修复。
添加救援载具
- Entity: logic_relay
- Name: EscapeRelay
- Description: 当救援关流程完成时触发一次。用于启动救援载具的动画,并使其移动到标记了 RESCUE_VEHICLE 导航网格的位置。当载具到达之后,用于承载 RESCUE_VEHICLE 标记的导航网格的 func_brush 固实体就会生效。
- FinaleEscapeVehicleReadyForSurvivors - 这个事件能够“解锁”RESCUE_VEHICLE 导航网格,有了它后电脑AI就会冲向载具。建议给这一事件添加延迟,来让载具有足够的时间进入位置。
注意:官方地图中有时候还会加入 trigger_hurt 与 trigger_push 实体,来模拟出载具一路碾过去的效果。
- 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

滚动致谢画面(Credits)
- Entity: logic_relay, Name: OutroRelay
- Description: Ends the map and starts up the credits screen.结束一张地图,并显示致谢画面(Credits)
- FinaleEscapeForceSurvivorPositions - 这个事件能够使 "info_survivor_position" 实体生效,并将玩家从战场移出。
- 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
注意事项
门
- Type: prop_door_rotating
- Frame Dimensions: width: 56, height: 104
- World Model: models/props_doors/doormainmetal01.mdl

- 有关求生之路一代中门的创建与设置,见:
Doors in Left4Dead (l4dmaps.net)