【教程】制作救援关(压轴事件)
求生之路地图制作吧
全部回复
仅看楼主
level 10
眸子- 楼主
2014年08月10日 01点08分 1
level 11
沙发
2014年08月10日 01点08分 2
level 10
眸子- 楼主
求生之路2在一些战役的终局来让生还者通过电台呼救,击退一波一波的感染者和Tank后,通过交通载具来逃生.在tutorial_standards map里也有这个案例.
最终事件的元素
~以下是让终局生效的需做的几件事情:
求生用的电台:trigger_finale,这只是一个无线电模型,换成别的也可以
被标记为FINALE的导航区域
一个逃生载具用来带走生还者(通常是带动画的 prop_dynamic )
用trigger_multiple来确认是否所有生还者都挺过来并逃进载具
四个info_survivor_positions当生还者被救后会传送到一个封闭的小房间
~可选择的放置物品:
各种物资(弹药,武器,血包)
结尾部分的一台摄像机
为结尾部分做淡入淡出 需要一些实体:env_fade entities
为结尾部分滚动演员表 一个实体:env_outtro_stats
生还者用来防御的一个prop_minigun
一个救援密室 - 一个带门的小房间 再在里面放置三个实体:info_survivor_rescue
2014年08月10日 02点08分 3
level 10
眸子- 楼主
现在来放置一个无线电模型。
点击点实体工具
从Objects下拉菜单选择trigger_finale.
通过主视角将它放置到地上,再双击打开属性框。
Name参数 改成radio
在World model这一行点击再点击右边的Browse按钮.
在Filter field(过滤区域) 输入 "radio" .
选择模型"props\terror\hamradio.mdl" 再点确定,这个模型就是上图的模型
Disable Shadows 参数改成 Yes.
Use Delay 参数更改为0
参数说明:
Disable Shadows 这表示允许我们发送输入信息到到这个无线电模型,但不允许阴影被绘制到桌上.
Use Delay 这个很常用. 按按钮之后 终局开始之前 需要多少秒的时间. 这里保留默认值0.
现在保存并编译你的地图吧。
在NAV上,
记得将幸存者在终局防守的导航区域标记成FINALE。如果幸存者没有完全进入标记有FINALE的区域,按下无线电时就会提示“请等所有人准备好”。只有当所有幸存者都进入了标记有FINALE的导航区域,无线电才能按下。
注意:在任意地图的控制台里用"nav_flood_select FINALE" 就能查看所有带FINALE属性的导航区域。你还可以用“nav_flood_select+其他属性”去查看被标记成其他属性的导航区域。
常用的导航区域属性:
· PLAYER_START
· EMPTY
· CHECKPOINT
· BATTLEFIELD
· BATTLESTATION
· FINALE
· NOT_CLEARABLE
· NO_MOBS
· OBSCURED
· RESCUE_CLOSET
· RESCUE_VEHICLE
2014年08月10日 02点08分 4
level 10
眸子- 楼主
现在,我们需要用trigger_multiple 来检查是否所有幸存者都登上了箱型车
用建造工具用建造一个固体,并按Ctrl+T 转换为固实体。它的位置位于当救援到来时箱型车所在的位置。 这个固实体一定要完全包绕当救援到来箱型车所在的位置,以便于当幸存者一踏上箱型车,这个固实体就能检测到。
将这个固实体6个面的材质都更改为trigger
在过滤器中输入"trigger" 并选择 "tools/toolstrigger" 材质.
包围住当救援到来时箱型车应当在的位置。
双击打开其属性框
Class参数改成trigger_multiple
并点击Apply来看属性.
Name参数改成train_trigger
Start Disabled参数改成Yes
Entire Team Number参数改成Survivor
参数说明
Start Disabled设置成yes表明幸存者无法一开始就启动它,需要等待救援到来时才能启动它。
切换到Flags
确保Clients 框被勾选.
切换到outputs标签,现在我们将开始制作输出输入。其实并不难。
输出输入简单认识
点击下面的Add...新建一个输出。像下面的第二张图中那样,现在这个输出有一个红色的斜杠,说明它是错误,因为我们没有添加任何事件进去。
my output:当玩家或另一些实体对它做了动作,这个实体就会记录下来并触发相应动作。就比如一个人被第二个人打了,那么第一个人被第二个人打就是输入。那人接下来做的动作就是输出。一个输出只能有一个被动动作。
taegets entities named:输出实体名字也就是要做触发事件的实体,比如第一个人被打了不服气,他想还手,那么手就是这个输出实体。
via this input:输出,就是触发相应的事件。比如第一个人对第二个人还手。
with a parameter:参数,现在用不到。就比如第一个人对第二个人还手时用的力度。
after a delay in:执行延迟。单位是秒,当输入后多久开始输出,0.0代表立即执行。就比如第一个人被打后多久还手。
fire once on:只执行一次,如果被打上勾代表只输出一次。就比如第二个人无论打第一人多少次,第一个人只有开始还一次手。
现在我们来开始制作。
添加输出信息
My output :OnEntireTeamStartTouch
Targets entities :train_continue_relay
Via this input:Trigger
现在下面taegets entities named和via this input是红色的,说明它们现在是错误的。我们将在以后创建它,现在点击apply应用就行了。
输出输入说明
当幸存者触碰到这个实体时就会发送Trigger输出 到一个叫做"train_continue_relay"的logic_relay.的实体
-----------------------------------------------------
现在,我们来设置logic_relay 当幸存者触碰它就能触发所有事件.
选择点实体工具,在Objects下拉菜单选择"logic_relay".
在主视角将其放置到"train_trigger"附近,双击打开属性框
Name 参数改成train_continue_relay
当你将名字设置成功后,你会发现属性框下面突然多出一个顶着小球的箭头,那是成功的输入标志。你可以回到trigger_multiple看看,那个错误的输出上的红斜杠是不是已经消失了?
说明你的刚才的那个输出输入已经设置成功了。
来到train_continue_relay的outputs标签,添加以下输出
------------------------
My output named:OnTrigger
Targets entities named:train
Via this input:StartForward"
---------------然后还要添加
My output named:OnTrigger
Targets entities named:radio
Via this input::FinaleEscapeForceSurvivorPositions
输出输入说明:
当幸存者存活并且还能碰到"train_trigger" ,那么箱型车就会带着幸存者离开。logic_relay也能传送幸存者到安全地点.
----------------------------------------------
我们还需要救援成功时幸存者所在的位置,它是一个小黑屋[吐舌],封闭的,玩家、小丧尸无法进入的小黑屋。
PS:话说幸存者上了救援后不是应该离开了吗?怎么被关到小黑屋了?
选择点实体工具,在objects中选择"info_survivor_position".
在1小黑屋里放置4个,当救援成功时,幸存者就被传送到这里。
更改所有4个幸存者模型的属性,顺序随便,别重复就行
逐个打开其属性进行以下修改.
----------第一个:
Name 参数改为 train_survivor_pos1
------------第二个:
Name 参数改为 train_survivor_pos2
Order参数改为 2
---------第三个:
Name 参数改为 train_survivor_pos3
Order 参数改为 3
----------第四个:
Name 参数改为 train_survivor_pos4
Order 参数改为 4
--------------------------------可怜的幸存者
2014年08月10日 08点08分 6
level 10
眸子- 楼主
回到train_track02,就是那个位于中间 的、两端有路径线的立方体,path_track
双击打开属性框切换到Outputs标签.
还有些别的输出是关于舱门的打开,感染者挡道会被干掉,幸存者则会被推开. 现在忽视这些只管添加以下输出:
---------第一个-------
My output named:OnPass
Targets entities named :train
Via this input:Stop
--------------第二个------
My output named:OnPass
Targets entities named:train_trigger
Via this input:Enable
------------第三个--------
My output named:OnPass
Targets entities named:radio
Via this input:FinaleEscapeVehicleReadyForSurvivors
-----------------------------
输出输入说明:
第一个,当箱型车到达这第二个path_track的位置时, 则会停下来。
第二个:这个输出将会启用trigger_multiple,也就是trigger_multiple开始检查还站着的幸存者是否已经都到了箱型车上。
第三个:这会告诉电脑控制的幸存者火速赶往被标记为 "RESCUE_VEHICLE"属性的导航区域.
========================
创建logic_relay 让地铁启动.
我们仍然需要发送一些输入信息给func_tracktrain 让其从初始位置启动到达救援的位置.
选择实体工具,在Objects下拉菜单选择"logic_relay"。
放在"train_continue_relay",也就是第一个"logic_relay"附近并打开它的属性.。
Name参数改为train_start_relay
切换到Outputs标签.,添加以下输出信息:
-----------------
My output named:OnTrigger
Targets entities named:train
Via this input:StartForward
-------------------------
输出输入说明:这会让箱型车从初始位置开始驶向救援位置。
点击Apply并关闭属性窗口。
===================
现在,回到trigger_finale(无线电模型)并再次打开其属性.,切换到outputs,为trigger_finale添加输出信息:
-----------------------------
My output named:FinaleEscapeStarted
Targets entities named:train_start_relay
Via this input:Trigger
------------------------------------
输出输入说明:当能站着的幸存者全部到达被标记为 "RESCUE_VEHICLE"属性的导航区域里后,启动train_start_relay,通过train_start_relay的输出,让箱型车带着幸存者逃离。
===========================
我们仍然需要一个输出给trigger_finale 告诉它逃生已经完成。
再创建一个logic_relay,这已经是第三个了。
创建方法不再叙述。创建完后打开属性框:
Name参数改成train_end_relay
切换到Outputs标签,添加一个输出 内容为:
--------------------
My output named:OnTrigger
Targets entities named:radio
Via this input:FinaleEscapeFinished
After a delay in seconds:2
---------------------
输出输入说明:这会让trigger_finale被触发后两秒钟,幸存者就成功逃脱。这2秒是用来给黑屏的时间。
=====================
回到"train_continue_relay"并打开其属性.
切换到Outputs标签, 添加输出信息 内容为:
-----------------
My output named:OnTrigger
Targets entities named:train_end_relay
Via this input:Trigger"-
----------------------
如此一来"train_continue_relay"就有三个输出了。
输出输入说明:这样的输出可以说是一个中转站,触发"train_continue_relay"后
立即触发”train_end_relay“,通过"train_end_relay"来让幸存者逃脱。在这里我们可以让输出直接为FinaleEscapeFinished 但是我们准备为"train_end_relay"添加别的事件,例如结束动画。
2014年08月10日 08点08分 7
level 10
眸子- 楼主
更新导航
我们现在需要更新一下包含RESCUE_VEHICLE区域的导航.
按F9保存和编译地图,进入游戏后开始编译地图的NAV。
使用穿墙去到救援来时箱型车所在的位置。你会注意到地铁在它的初始位置.你不需要打通终局关卡就能让地铁到达救援点。
打开控制台并输入 "ent_fire train_start_relay trigger"再按Enter,救援会缓缓驶来并最终到达救援位置。
当箱型车到达救援位置后,你可以放置一个nav_mark_walkable在里面 然后使用nav_generate_incremental来为它生产导航网.
确保地铁内部的导航区域能连接到其他区域(车箱外的地面).
注意:区域可以是单向或双向连接. 浅蓝线表示是双向连接,深蓝线则表示是单向连接。
如果区域没有被连接,选择你想要连接的区域并使用nav_connect 。
选择箱型车内部所有的导航区域 并在控制台里使用"mark RESCUE_VEHICLE" 来标记它们.
记得用"mark BATTLEFIELD" 再标记所有区域,这告诉电脑控制的幸存者应该在哪里等待救援。然后在控制台输入“nav_trouble_report“检查NAV错误,任何一点错都会导致终局刷不出丧尸。
这些就是让终局正常工作的必需品。但现在登上救援后并没有就救援动画,我们下一步就将制作逃离动画所必须的东西。
现在NAV就制作完了,救援关制作再也用重新编译它了。
-----------------
疑难解答:为什么现在就编译NAV
答:如果逃离动画做好再编译,当你踏上救援时,就能立即看到救援动画,然后生还者已逃脱 ,然后退出游戏,还没保存的NAV就悲剧了。[狂汗]
---------------
2014年08月10日 09点08分 8
回复 疾梭微痕◆ :感谢黄老板和求生的兔指出,此文译自一代教程,所以会有这个问题
2017年07月12日 15点07分
设置battlefield属性可以准确控制感染者应该出现在哪些区域,比较适用于活动范围有限的机关/救援区域,设置不设置事实上都不影响尸潮/特感的产生
2017年07月12日 15点07分
这个属性与幸存者是否是一代人物完全无关,在一代图你也可以不用设置该属性
2017年07月12日 15点07分
严格来说设置battlefield会让游戏变得“公平”一些,因为在幸存者触发机关前,电脑控制的感染者不会主动在设置有battlefield属性的区域中产生,当然也不会产生尸潮
2017年07月12日 15点07分
level 10
眸子- 楼主
现在,让我们开始制作逃生动画,就是幸存者全部登上了救援箱型车后的动画。
第一步放置摄像机。
选择点实体工具在objects中选择 "point_viewcontrol_multiplayer"。将摄像机的镜头对准箱型车逃离的方向。在箱型车逃离后,玩家就会摄像机的视角观看逃离时的动画。
打开它的属性.
Name参数改成train_camera
Seconds to reach FOV target改成0。这代表从玩家的视角过渡到摄像机的视角所花费的时间。
你也可以更改Field of view,这代表视野宽窄度,数字越小越窄,越大则越宽..
------------------
选择点实体工具,在Objects列表选择"env_fade",这个点实体的样子类似两扇窗帘。
打开它的属性并更改:
Name参数改为fade_outro_1
Duration (seconds)参数改为0.2
Hold Fade (seconds)参数改为0.3
参数说明:Duration (seconds): 这是让屏幕逐渐黑屏所花费的时间(秒数)。
Hold Fade (seconds):这是保持黑屏的时间(秒数)。
--------
然后放置第二个env_fade(也可复制fade_outro_1)并更改它的属性:
Name参数改为fade_outro_2
Duration (seconds)参数改为0.2
Hold Fade (seconds)参数改为0
切换到第二个env_fade的Flags标签,
勾选Fade From框.
这会淡出屏幕,从黑屏回到游戏,这时已经是摄像机的视角了。
返回到第一个env_fade,也就是fade_outro_1 ,打开属性框并切换到Outputs标签.
添加输出值 内容为:
--------------
My output named:OnBeginFade
Targets entities named:fade_outro_2
Via this input:Fade
After a delay in seconds of:0.30
-----------------
这会在"fade_outro_1" 的效果下让屏幕黑屏0.3秒后,开始从黑屏淡出回到场景回到摄像机视角。这里有两个env_fade实体正好让视角黑屏后又快速移到摄像机视角。
返回到"train_continue_relay".,这是我们制作的第一个logic_relay的名字。
打开其属性框并切换到Outputs标签,添加两个输出输入 :(再次说明,本教程所有参数单词前面或后面均没有空格)
----------------- 第一个------
My output named:OnTrigger
Targets entities named:train_camera
Via this input:Enable
After a delay in seconds of:0.30
-------------------第二个------------
My output named:OnTrigger
Targets entities named:fade_outro_1
Via this input:Fade
-----------------------------------------------
输出输入说明:第一个,这会让玩家视角转变成为"train_camera"视角,也就是摄像机的视角。
第二个:这会在幸存者逃离之前的0.2秒,让env_fade进入黑屏,以便让开关不会冲突.
------------------------------
现在这个实体已经有五个输出输入了。
现在,我们需要幸存者逃脱后再一次黑屏,显示出“幸存者已逃脱”字样和其他统计数据。
放置第三个env_fade (或复制"fade_outro_1") 并打开它的属性:
----------------
Name参数更改为fade_outro_3
Duration (seconds)参数更改为0.3
Hold Fade (seconds)参数更改为0
--------------------
切换到第三个env_fade的Flags标签。
勾选Stay Out框.
意思是一旦它让游戏黑屏,就会持续黑屏,这样系统就能把各种游戏数据呈现给玩家。
--------------------------------------------------
让我们放置一个info_game_event_proxy关闭指导信息。这需要从点实体的objects下拉菜单中选择。
在摄像机视窗放置好并打开属性
---------------------------------
Name参数改为gameinstructor_disable
Name of the event to generate参数改为gameinstructor_nodraw
----------------------------------
这表示已经设置成不绘制任何指导信息.
=================================
再放置一个env_outtro_stats,这也是一个点实体。这会在战役结束出现统计的位置用来显示各种统计信息。
----------------------------
Name 参数改成 outro
----------------------------
回到"train_end_relay"这是我们制作的第三个logic_relay的名字。打开其属性:
切换到Outputs标签,添加如下输出:
---------------------------第一个
My output named:OnTrigger
Targets entities named:gameinstructor_disable
Via this input:GenerateGameEvent
--------------------第二个
My output named:OnTrigger
Targets entities named:fade_outro_3
Via this input:Fade
After a delay in seconds of:5
--------------第三个
My output named:OnTrigger
Targets entities named:outro
Via this input:RollStatsCrawl
After a delay in seconds of:10
-----------------------------------------------
然后这个点实体就有五个输出输入了
点击Apply并关闭属性窗口。
================================================
按F9保存和编译你的地图。救援关终于做完了[呵呵],因为NAV在之前就已经编译好了,现在玩一下你的地图吧
箱型车已开走,(别注意轮子,只是高度没放好),生还者已经逃脱!
2014年08月10日 12点08分 9
level 10
眸子- 楼主
本教程终于完毕,弄了一天了--------[吐舌]
2014年08月10日 12点08分 10
level 6
求助...做完后没有尸潮...
2015年08月15日 04点08分 11
提示empty spawn area set
2015年08月15日 04点08分
@asd2000228 有部分NAV是被分开的,没有被连上。穿墙看看地图内外有没有独立的NAV,将他们连上或删除
2015年08月15日 07点08分
回复 植物规定·OL :解决了
2015年08月15日 07点08分
回复 植物规定·OL :对了你知道怎么做生存模式么?
2015年08月15日 07点08分
1