关卡转换

From Valve Developer Community
< Zh
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
English (en)中文 (zh)Translate (Translate)
概括性的地图制作系列 讨论你的想法——帮助我们写你需要的文章和想法

弹药 | 生物 | 蚁狮 | 光束和激光 | 线缆和绳子 | 动态的天空与云雾 | 颜色理论 | 战斗 | 联合军 | | 尘土、雾、烟 | 升降机 | 关卡转换 | 环境光效、太阳、天气、室外 | 爆炸 | 火焰 | 植被 | 玻璃和窗户 | 梯子 | 光效 | 优化 | 物理 | 视网膜扫描仪 | 声效和音乐 | 特效 | 地形 | 火车 | 机枪塔 | | 僵尸

关卡转换允许玩家从一张地图转移到另一张地图,实质上使两个单独的关卡看起来像一个较大的地图。

为什么要进行关卡转换?

起源引擎尽管可以扩展,但可以处理的数据数量仍然有限.分割地图还可以在关卡设计过程中减少工作量和编译时间(毕竟你不想把你的vvis给气死对吧)

关卡转换的类型

双向转换

双向转换允许玩家在两张地图之间来回移动

单向转换

单向转换阻止玩家在完成地图转换后返回上一张地图,通过任意事件或障碍来阻止玩家回到上一张地图

关卡转换的方法/样式

无缝

  • 示例:
    • 连接两个房间的门或走廊

需要转移地点的

  • 示例:
    • 一个连接两个地图的传送门
    • 一个角色(普遍理解为玩家)被打昏,之后被拖入进了一个新的区域

游戏中无缝切图的示例

要做到无缝切图, 一个关卡的一部分包含在正在加载的下一关卡中."远程传送"这种的话是例外,玩家被转移到一个全新的世界或环境中.下面是HL2中的例子 d1_trainstation_01,游戏中的第一张地图.
D1 trn sta 01.jpg D1 trn sta 02.jpg D1 trn sta 03.jpg D1 trn sta 04.jpg D1 trn sta 05.jpg

  • 在第一张图片中,您可以在门口看到加载下一张地图的trigger_changelevel.
  • 在第二张图里,缩小后您可以看到地图实际上在第一张图片中门外的楼梯处结束。大部分关卡位于图片右侧。
  • 一旦玩家碰到changelevel,他们就会看到第3张图里的"载入",下一张地图将加载到当前地图上(此处可能可能有错译).
  • 现在玩家处于一个全新的地图中,但是从门的另一侧看,上一张图似乎仍在那里。.
  • 但是,如果缩小,您可以看到加载了新地图并且几乎完全删除了原来的地图。从上面缩小的截图中不再有上一张图的任何部分,而是左上角的全新区域。

创建无缝切图

首先,你的两张需要进行关卡转换的图必须要有:

  • info_landmark
  • trigger_changelevel
  • trigger_transition

首先,在可见区域中具有完全相同的固体和实体。这将使关卡转换无缝。你也可以在Hammer编辑器使用复制粘贴。

接下来,在两个关卡中,将info_landmark放置在相对于地图的完全相同的位置,然后起一个相同的名字。

Warning.png警告:如果不这样做,您将在地图更改时被传送到(0,0,0)处。

然后,在两个关卡中创建trigger_changelevel。可以不起名字。打开属性面板,在Landmark name一栏中输入你的info_landmark的名字,在New map name一栏中填写上一关卡或下一关卡的地图名,具体取决于trigger_changelevel所在的关卡。

Warning.png警告:在相同的相对区域中,会形成一个循环效果,当你进入下一关卡将立即回到原来的关卡。不要将它们放在相同的相对区域。
Tip.png提示:将第二张地图中的trigger_changevel设置在第一张地图的后面。这可以防止玩家在生成后立即向后走,然后立即被送回上一张地图。

最后,在两个关卡中创建一个trigger_transition。(但不必要)这将是在两个关卡之间传送物品的区域。其名称应与info_landmark的名称相同。

需改变场景的切图

创建一个改变场景的切图

有四种不同的方法:

方法 1

按照无缝切图的步骤进行操作,但不包含与上一张地图相同的结构,如果需要的话你可以禁用传送到上一个关卡的trigger_changelevel。


方法 2

在开始之前,你的两张需要进行关卡转换的图必须要有:

首先,在第一关创建一个触发(trigger)纹理的小固体。并转为实体trigger_changelevel。在属性面板中,设置new map name为第二张地图,设置landmark name为info_landmark的名字。

然后,创建一个地标(landmark)区域。这可能需要一些尝试和错误来确定它应该放在哪里,以免在更换第二关中的墙时出现问题。

接下来,如果你希望物品能够继续使用,创建一个trigger_changelevel并将其命名与info_landmark相同的名称。这将把包含在该体积内的任何实体都传送到下一关卡。

然后,您可以创建一个指向您的trigger_changelevel的logic_relay。将目标输入设置为ChangeLevel。你可以把它放在玩家无法接触的地方。

在第二个关卡中,添加info_landmark(名称与上一个相同)。

你必须在第二张地图中创建第二个trigger_changevel,但这可能会被禁用,玩家无法访问。将新地图名称设置为第一个地图。将地标名称设置为地标的名称。


方法 3

(仅存在于 传送门2 中)

在开始之前,你的两张需要进行关卡转换的图必须要有:

添加 point_changelevel,并创建一个输入,将目标输入设置为ChangeLevel,参数(parameter)设置为地图名称。不需要其他任何东西。

方法 4

(仅存在于 Left 4 Dead series 中)

在开始之前,你的两张需要进行关卡转换的图必须要有:

首先,在两个关卡各创建一个info_landmark。在两个关卡中将其设置为相同的名称。

最后,创建一个info_changelevel刷在安全屋。将新地图名称设置为下一个地图。将landmark name关键字值设置为地标(landmark)的名称。

也可以参考以下页面