教程制作救援关压轴事件.docx

上传人:b****8 文档编号:11437693 上传时间:2023-03-01 格式:DOCX 页数:29 大小:915.17KB
下载 相关 举报
教程制作救援关压轴事件.docx_第1页
第1页 / 共29页
教程制作救援关压轴事件.docx_第2页
第2页 / 共29页
教程制作救援关压轴事件.docx_第3页
第3页 / 共29页
教程制作救援关压轴事件.docx_第4页
第4页 / 共29页
教程制作救援关压轴事件.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

教程制作救援关压轴事件.docx

《教程制作救援关压轴事件.docx》由会员分享,可在线阅读,更多相关《教程制作救援关压轴事件.docx(29页珍藏版)》请在冰豆网上搜索。

教程制作救援关压轴事件.docx

教程制作救援关压轴事件

【教程】制作救援关(压轴事件)

求生之路2在一些战役的终局来让生还者通过电台呼救,击退一波一波的感染者和Tank后,通过交通载具来逃生.在tutorial_standardsmap里也有这个案例.

最终事件的元素

~以下是让终局生效的需做的几件事情:

求生用的电台:

trigger_finale,这只是一个无线电模型,换成别的也可以

被标记为FINALE的导航区域

一个逃生载具用来带走生还者(通常是带动画的prop_dynamic)

用trigger_multiple来确认是否所有生还者都挺过来并逃进载具

四个info_survivor_positions当生还者被救后会传送到一个封闭的小房间

~可选择的放置物品:

各种物资(弹药,武器,血包)

结尾部分的一台摄像机

为结尾部分做淡入淡出需要一些实体:

env_fadeentities

为结尾部分滚动演员表一个实体:

env_outtro_stats

生还者用来防御的一个prop_minigun

一个救援密室-一个带门的小房间再在里面放置三个实体:

info_survivor_rescue

现在来放置一个无线电模型。

点击点实体工具

从Objects下拉菜单选择trigger_finale.

通过主视角将它放置到地上,再双击打开属性框。

Name参数改成radio

在Worldmodel这一行点击再点击右边的Browse按钮.

在Filterfield(过滤区域)输入"radio".

选择模型"props\terror\hamradio.mdl"再点确定,这个模型就是上图的模型

DisableShadows参数改成Yes.

UseDelay参数更改为0

参数说明:

DisableShadows这表示允许我们发送输入信息到到这个无线电模型,但不允许阴影被绘制到桌上.

UseDelay这个很常用.按按钮之后终局开始之前需要多少秒的时间.这里保留默认值0.

现在保存并编译你的地图吧。

在NAV上,

记得将幸存者在终局防守的导航区域标记成FINALE。

如果幸存者没有完全进入标记有FINALE的区域,按下无线电时就会提示“请等所有人准备好”。

只有当所有幸存者都进入了标记有FINALE的导航区域,无线电才能按下。

注意:

在任意地图的控制台里用"nav_flood_selectFINALE"就能查看所有带FINALE属性的导航区域。

你还可以用“nav_flood_select+其他属性”去查看被标记成其他属性的导航区域。

常用的导航区域属性:

·PLAYER_START

·EMPTY

·CHECKPOINT

·BATTLEFIELD

·BATTLESTATION

·FINALE

·NOT_CLEARABLE

·NO_MOBS

·OBSCURED

·RESCUE_CLOSET

·RESCUE_VEHICLE

现在,让我们制作逃生载具.

在求生之路2,四个战役各有不同的逃生载具.如:

直升机,船,飞机,装甲车.

实际上任何都行.甚至是一个敞开门的房间。

为了让Z版、D版都能用,本教程选择箱型车作为逃生载具。

选择点实体工具,在objects中选择prop_dynamic,不能用prop_static,否则它就无法移动。

选择箱型车模型:

models/props/de_nuke/truck_nuke.mdl

然后将这个模型放在当救援到来时它所在的地方。

现在有了做为逃生载具的模型.现在我们需要一个固实体func_tracktrain来让模型移动.

创建func_tracktrain

选择建造工具,在2D视图中绘制一个固体,长宽跟箱型车一样,按Enter创建。

但它很矮,我一般将它的高度设置为10个单位。

让它紧贴地表和箱型车模型底部。

然后将这个固体的纹理改为nodraw,它看起来如下图。

让这个固体被选中,按Ctrl+T.,将它转变为固实体。

双击它,打开属性框,更改属性:

(本教程所有参数单词前面或后面均没有空格)

Class参数改为func_tracktrain

Name参数改为train

FirstStopTarget参数改为train_track01.

MaxSpeed参数改为25

Heightabovetrack参数改为0

参数说明:

FirstStopTarget第一站目标,参数上是一个实体名称,现在在属性框它是红色的,这不要紧,因为还没有这个实体。

我们将在之后创建它。

MaxSpeed最大速度,就是当救援到来时它的移动速度。

25的速度和幸存者扎针跑的速度差不多,你要想设置成100也可以。

Heightabovetrack轨道高度,因为箱型车是在地面上开并紧贴这个固体,所以高度是0。

但在一些飞机的动画中,这个高度可能就要更改。

func_tracktrain的Flags标签.

切换到Flags标签.

勾选NoUserControl框.

勾选FixedOrientation框.

勾选Isunblockablebyplayer框.

点击Apply关闭窗口

添加实体path_track

将你的箱型车模型和那个固实体放在初始位置,就是救援没有到来时它所在的位置,应当把它藏起来,让玩家看不到。

现在我们需要建立一条路径让我们的箱型车知道怎样运行。

选择点实体工具,在Objects下拉菜单选择path_track,在3D视图上创建它,它是一个立方体。

在2D视图中将它放置到箱型车的正中间。

无论是XYZ都要放到中间,让path_track的中心的小X和箱型车位置的小X基本重合,相差一点没有关系,但不能相差太远。

双击打开它的属性框

Name参数改成train_track01

NextStopTarget参数改成train_track02

参数说明

现在这第一个path_track的位置就是箱型车的第一站位置,就是救援没有到来时它所在的位置

NextStopTarget就是箱型车第二站的位置,就是救援到来时它所在的位置

点Apply并关闭属性窗口。

现在放置第二个path_track。

你也可以复制第一个。

这个path_track的位置就是救援到来时箱型车应该在的位置的中心。

高度保持与第一个path_track一样。

然后更改属性参数

Name参数改成train_track02 

NextStopTarget参数改成train_track03

然后放置第三个path_track,这个path_track的位置就是在幸存者都到达箱型车后箱型车将要到达的位置的中心。

Name参数改成train_track03

NextStopTarget参数位置留空,因为已经没有下一站了。

如果你成功的制作了三个path_track,你会看到三个path_track会有两根线,这些线就是箱型车的运动轨迹,如下图(中间那个立方体是第二个path_track)。

回到prop_dynamic,就是那个箱型车模型,并打开它的属性.

Parent参数改成train

这就意味着不管func_tracktrain移动到哪里,箱型车模型都会跟随着移动.,因为func_tracktrain是箱型车的Parent啊

错误更改:

立方体应该紧贴地面,否则你会看到箱型车悬空。

抱歉!

现在,我们需要用trigger_multiple来检查是否所有幸存者都登上了箱型车

用建造工具用建造一个固体,并按Ctrl+T转换为固实体。

它的位置位于当救援到来时箱型车所在的位置。

这个固实体一定要完全包绕当救援到来箱型车所在的位置,以便于当幸存者一踏上箱型车,这个固实体就能检测到。

将这个固实体6个面的材质都更改为trigger

在过滤器中输入"trigger"并选择"tools/toolstrigger"材质.

包围住当救援到来时箱型车应当在的位置。

双击打开其属性框

Class参数改成trigger_multiple

并点击Apply来看属性.

Name参数改成train_trigger

StartDisabled参数改成Yes

EntireTeamNumber参数改成Survivor

参数说明

StartDisabled设置成yes表明幸存者无法一开始就启动它,需要等待救援到来时才能启动它。

切换到Flags

确保Clients框被勾选.

切换到outputs标签,现在我们将开始制作输出输入。

其实并不难。

输出输入简单认识

点击下面的Add...新建一个输出。

像下面的第二张图中那样,现在这个输出有一个红色的斜杠,说明它是错误,因为我们没有添加任何事件进去。

myoutput:

当玩家或另一些实体对它做了动作,这个实体就会记录下来并触发相应动作。

就比如一个人被第二个人打了,那么第一个人被第二个人打就是输入。

那人接下来做的动作就是输出。

一个输出只能有一个被动动作。

taegetsentitiesnamed:

输出实体名字也就是要做触发事件的实体,比如第一个人被打了不服气,他想还手,那么手就是这个输出实体。

viathisinput:

输出,就是触发相应的事件。

比如第一个人对第二个人还手。

withaparameter:

参数,现在用不到。

就比如第一个人对第二个人还手时用的力度。

afteradelayin:

执行延迟。

单位是秒,当输入后多久开始输出,0.0代表立即执行。

就比如第一个人被打后多久还手。

fireonceon:

只执行一次,如果被打上勾代表只输出一次。

就比如第二个人无论打第一人多少次,第一个人只有开始还一次手。

现在我们来开始制作。

添加输出信息

Myoutput:

OnEntireTeamStartTouch 

Targetsentities:

train_continue_relay

Viathisinput:

Trigger

现在下面taegetsentitiesnamed和viathisinput是红色的,说明它们现在是错误的。

我们将在以后创建它,现在点击apply应用就行了。

输出输入说明

当幸存者触碰到这个实体时就会发送Trigger输出到一个叫做"train_continue_relay"的logic_relay.的实体

-----------------------------------------------------

现在,我们来设置logic_relay当幸存者触碰它就能触发所有事件.

选择点实体工具,在Objects下拉菜单选择"logic_relay".

在主视角将其放置到"train_trigger"附近,双击打开属性框

Name参数改成train_continue_relay

当你将名字设置成功后,你会发现属性框下面突然多出一个顶着小球的箭头,那是成功的输入标志。

你可以回到trigger_multiple看看,那个错误的输出上的红斜杠是不是已经消失了?

说明你的刚才的那个输出输入已经设置成功了。

来到train_continue_relay的outputs标签,添加以下输出

------------------------

Myoutputnamed:

OnTrigger

Targetsentitiesnamed:

train

Viathisinput:

StartForward"

---------------然后还要添加

Myoutputnamed:

OnTrigger

Targetsentitiesnamed:

radio

Viathisinput:

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

--------------------------------可怜的幸存者

回到train_track02,就是那个位于中间的、两端有路径线的立方体,path_track

双击打开属性框切换到Outputs标签.

还有些别的输出是关于舱门的打开,感染者挡道会被干掉,幸存者则会被推开.现在忽视这些只管添加以下输出:

---------第一个-------

Myoutputnamed:

OnPass

Targetsentitiesnamed:

train

Viathisinput:

Stop

--------------第二个------

Myoutputnamed:

OnPass

Targetsentitiesnamed:

train_trigger

Viathisinput:

Enable

------------第三个--------

Myoutputnamed:

OnPass

Targetsentitiesnamed:

radio

Viathisinput:

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标签.,添加以下输出信息:

-----------------

Myoutputnamed:

OnTrigger

Targetsentitiesnamed:

train

Viathisinput:

StartForward

-------------------------

输出输入说明:

这会让箱型车从初始位置开始驶向救援位置。

点击Apply并关闭属性窗口。

===================

现在,回到trigger_finale(无线电模型)并再次打开其属性.,切换到outputs,为trigger_finale添加输出信息:

-----------------------------

Myoutputnamed:

FinaleEscapeStarted

Targetsentitiesnamed:

train_start_relay

Viathisinput:

Trigger

------------------------------------

输出输入说明:

当能站着的幸存者全部到达被标记为"RESCUE_VEHICLE"属性的导航区域里后,启动train_start_relay,通过train_start_relay的输出,让箱型车带着幸存者逃离。

===========================

我们仍然需要一个输出给trigger_finale告诉它逃生已经完成。

再创建一个logic_relay,这已经是第三个了。

创建方法不再叙述。

创建完后打开属性框:

Name参数改成train_end_relay

切换到Outputs标签,添加一个输出内容为:

--------------------

Myoutputnamed:

OnTrigger

Targetsentitiesnamed:

radio

Viathisinput:

FinaleEscapeFinished

Afteradelayinseconds:

2

---------------------

输出输入说明:

这会让trigger_finale被触发后两秒钟,幸存者就成功逃脱。

这2秒是用来给黑屏的时间。

=====================

回到"train_continue_relay"并打开其属性.

切换到Outputs标签,添加输出信息内容为:

-----------------

Myoutputnamed:

OnTrigger

Targetsentitiesnamed:

train_end_relay

Viathisinput:

Trigger"-

----------------------

如此一来"train_continue_relay"就有三个输出了。

输出输入说明:

这样的输出可以说是一个中转站,触发"train_continue_relay"后

立即触发”train_end_relay“,通过"train_end_relay"来让幸存者逃脱。

在这里我们可以让输出直接为FinaleEscapeFinished但是我们准备为"train_end_relay"添加别的事件,例如结束动画。

更新导航

我们现在需要更新一下包含RESCUE_VEHICLE区域的导航.

按F9保存和编译地图,进入游戏后开始编译地图的NAV。

使用穿墙去到救援来时箱型车所在的位置。

你会注意到地铁在它的初始位置.你不需要打通终局关卡就能让地铁到达救援点。

打开控制台并输入"ent_firetrain_start_relaytrigger"再按Enter,救援会缓缓驶来并最终到达救援位置。

当箱型车到达救援位置后,你可以放置一个nav_mark_walkable在里面然后使用nav_generate_incremental来为它生产导航网.

确保地铁内部的导航区域能连接到其他区域(车箱外的地面).

注意:

区域可以是单向或双向连接.浅蓝线表示是双向连接,深蓝线则表示是单向连接。

如果区域没有被连接,选择你想要连接的区域并使用nav_connect。

选择箱型车内部所有的导航区域并在控制台里使用"markRESCUE_VEHICLE"来标记它们.

记得用"markBATTLEFIELD"再标记所有区域,这告诉电脑控制的幸存者应该在哪里等待救援。

然后在控制台输入“nav_trouble_report“检查NAV错误,任何一点错都会导致终局刷不出丧尸。

这些就是让终局正常工作的必需品。

但现在登上救援后并没有就救援动画,我们下一步就将制作逃离动画所必须的东西。

现在NAV就制作完了,救援关制作再也用重新编译它了。

-----------------

疑难解答:

为什么现在就编译NAV

答:

如果逃离动画做好再编译,当你踏上救援时,就能立即看到救援动画,然后生还者已逃脱,然后退出游戏,还没保存的NAV就悲剧了。

---------------

现在,让我们开始制作逃生动画,就是幸存者全部登上了救援箱型车后的动画。

第一步放置摄像机。

选择点实体工具在objects中选择"point_viewcontrol_multiplayer"。

将摄像机的镜头对准箱型车逃离的方向。

在箱型车逃离后,玩家就会摄像机的视角观看逃离时的动画。

打开它的属性.

Name参数改成train_camera

SecondstoreachFOVtarget改成0。

这代表从玩家的视角过渡到摄像机的视角所花费的时间。

你也可以更改Fieldofview,这代表视野宽窄度,数字越小越窄,越大则越宽..

------------------

选择点实体工具,在Objects列表选择"env_fade",这个点实体的样子类似两扇窗帘。

打开它的属性并更改:

Name参数改为fade_outro_1

Duration(seconds)参数改为0.2

HoldFade(seconds)参数改为0.3

参数说明:

Duration(seconds):

这是让屏幕逐渐黑屏所花费的时间(秒数)。

HoldFade(seconds):

这是保持黑屏的时间(秒数)。

--------

然后放置第二个env_fade(也可复制fade_outro_1)并更改它的属性:

Name参数改为fade_outro_2

Duration(seconds)参数改为0.2

HoldFade(seconds)参数改为0

切换到第二个env_fade的Flags标签,

勾选FadeFrom框.

这会淡出屏幕,从黑屏回到游戏,这时已经是摄像机的视角了。

返回到第一个env_fade,也就是fade_outro_1,打开属性框并切换到Outputs标签.

添加输出值内容为:

--------------

Myoutputnamed:

OnBeginFade

Targetsentitiesnamed:

fade_outro_2

Viathisinput:

Fade

Afteradelayinsecondsof:

0.30

-----------------

这会在"fade_outro_1"的效果下让屏幕黑屏0.3秒后,开始从黑屏淡出回到场景回到摄像机视角。

这里有两个env_fade实体正好让视角黑屏后又快速移到摄像机视角。

返回到"train_continue_relay".,这是我们制作的第一个logic_relay的名字。

打开其属性框并切换到Outputs标签,添加两个输出输入:

(再次说明,本教程所有参数单词前面或后面均没有空格)

-----------------第一个------ 

Myoutputnamed:

OnTrigger

Targetsentitiesnamed:

train_camera

Viathisinput:

Enable

Afte

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1