本文与游戏《求生之路2》有关。点击这里查看更多信息。
这篇条目有关 Source引擎。如需详情,点击这里。

L4D2自制战役打包教程

From Valve Developer Community
< Zh
Jump to: navigation, search
English (en)Русский (ru)中文 (zh)Translate (Translate)

本简体中文页面由 Gloria 汉化。

在求生之路2代中打包你的自定义战役一共分为六个基本步骤:

  1. 创建Add-on文件夹与对应子文件夹。
  2. 创建好各类游戏资源并放入对应的子文件夹。
  3. 创建好数据描述文件(addoninfo.txt等)并放如对应的子文件夹。
  4. 将Add-on的所有内容打包成 .VPK 文件。
  5. 完整测试VPK文件,并修复出现的问题。
  6. 创建一个玩家可以从中下载你的地图的主页。

安装开发工具

为了创作求生之路2的三方内容,你需要安装求生之路2开发工具(Left 4 Dead 2 Authoring Tools)(en)。它提供了用于创作游戏内容的各类程序与工具。一般来说,可以使用 Hammer(en) 程序创建关卡,使用其它工具创建自定义纹理(en)模型(en)

如何创建各类游戏资源不在这个教程的介绍范围之内。你可以进入L4D关卡制作基础教程(en)找到相关的内容。介于这篇教程的重点在于讲解如何将所有地图内容打包到VPK中,因此当你开始学习这篇教程之前,应该已经熟悉了如何创建那些游戏内容。

开发工具附带了一个叫做 Dead Line 的战役示例,包含了各类源文件示例。

创建 Add-on 文件夹

首先,在你的求生之路2代游戏安装路径下找到 'addons' 文件夹。对于大多数人来说,应该是类似下面的路径:

C:\Program Files\Steam\steamapps\common\left 4 dead 2\left4dead2\addons
Note.png注意:如果你的文件夹是带连字符的,例如“add-ons”,确认它如果是空的就可以直接删除。正确的名称应该是不带连字符的“addons”。

注意:你的L4D2开发工具安装后可能并没有 'addons' 文件夹

在 'addons' 中创建一个新的文件夹,并取个合适的名称。这将会是你最后创建并发布的VPK文件名称。全部使用小写字母、避免使用空格是一个好习惯。你还可以将游戏名写入标题,同其它标题加以区分,并可以考虑添加一个版本号。为了便于阅读,我们的示例中还是使用了“deadline”而非“l4d_deadline”。

...\left4dead2\addons\deadline2

概念上来说,这个文件夹就相当于地图的游戏根目录,它的目录结构是下面将要介绍的用于发布的 .VPK 文件的镜像。

创建基础游戏资源

你创建的这些内容实际上将会与其它内容一块附加到游戏中。对于一张战役图来说,最基本的地图资源是 .BSP 文件和 .NAV 文件。

在你的工程文件夹下新建一个 'maps' 文件夹:

...\left4dead2\addons\deadline2\maps

在这个 maps 文件夹中,将你地图的 .BSP 文件和 .NAV 文件复制到这里。在 Dead Line 教程示例中,有两组 bsp/nav 地图文件:

文件 描述
l4d_deadline01 精简的初始地图,包含合作、对抗
l4d_deadline02 最终的地图,包括合作、对抗、生存、清道夫

在一张单独的地图中制作多种游戏模式的优点在于可以节省空间,尽管增加了制作复杂度,这样做还是值得的。

你还可以创建并在地图中使用自定义的 .VTF 纹理文件、自定义的 .VMT 材质描述文件、以及自定义的 .MDL 模型文件。为了减小VPK包的体积,建议你尽可能多地使用游戏自带的纹理。

额外的 .VMT 与 .VTF 文件(见自定义材质教程(en))应该放在下面的文件夹中:

...\left4dead2\addons\deadline2\materials

文件与相关的模型文件(见导出模型(en)编译模型(en))应该放在下面的文件夹中:

...\left4dead2\addons\deadline2\models
Note.png注意:从“牺牲”更新开始,模型的 .vtx 文件(en)在打包时将不再被重命名。例如,打包一个 .dx90.vtx 文件将不再被重命名成简单的 .vtx。所有原本是 .vtx 的官方文件都转换回了 .dx90.vtx 文件。在此更新之前发布的某些带自定义模型的战役中,模型在游戏中会变得不可见。在2010年10月的更新之前,包含了 .sw.vtx 与 .dx80.vtx 文件的战役在打包时会崩溃。

模型的材质文件放在下面的文件夹中:

...\left4dead2\addons\deadline2\materials\models

需要注意的是,L4D2将 /deadline2 文件夹的内容当作 /left4dead 的内容一样处理,因此如果你使用了 /materials 与 /models 下的任何纹理与模型,都应该在你的战役文件夹中添加一份。

创建次要游戏资源

次要的游戏资源例如海报与缩略图并不是必要的,但它们能让你的战役更加出彩。(再说了,海报/概念图恐怕是你头一项制作的东西,不是吗?)如果还没有制作的话,新建一个 materials 文件夹,并在其中创建一个 vgui 文件夹:

...\left4dead2\addons\deadline2\materials\vgui

地图战役海报

在 vgui 文件夹下需要放置两个 .VTF 文件,以及两个引用它们的 .VMT 文件:

LoadingScreen_DeadLine2.vtf 
这是一张在你的战役加载界面出现的海报图片。标准的尺寸为1024×1024像素,并带有表示透明度的Alpha通道。
OutroTitle_DeadLine2.vtf 
这是一张在关卡最后的鸣谢/数据统计界面出现的标题图片。标准的尺寸为1024×256像素。你创作的图片应该适合显示在黑色背景下,并且让上方滚动的白色文字易于阅读。

地图缩略预览图

除了上述两张图片之外,你还要有展示战役每一关的缩略图。这些图片能让玩家在游戏大厅中选择地图“章节”时有可见的、更直观的提示。

为了添加缩略图,在 vgui 文件夹下新建一个 'maps' 文件夹:

...\left4dead2\addons\deadline2\materials\vgui\maps

在这个文件夹中,为每一张地图创建 VTF/VMT 缩略图。它们的尺寸均为256×128像素。在合适的情况下,也可以使用一张缩略图表示多个 .BSP 地图,例如既用于对抗又用于生存的一关。

用于界面元素的 .VMT 文件例如战役海报、缩略图等(也就是通常放在 material/vgui 文件夹中的那些文件)一般需要指定为“UnlitGeneric”材质。 见 Deadline vgui .VMT File(en) 示例。

创建音频缓冲文件

如果在你的 add-on 中包含了自定义音频,你需要创建游戏引擎可以加载的音频缓冲文件。在VPK根目录下的“sound”文件夹放置你的音频文件,在L4D2运行时输入指令“snd_buildsoundcachefordirectory <path>”,其中path表示你放置音频的文件夹位置。例如,在 Deadline 示例中,音频文件放置在:

..\left4dead2\addons\deadline2\sound

使用下面的指令进行重建:

snd_buildsoundcachefordirectory "..\left4dead2\addons\deadline2"

这条指令将会在你的音频文件夹中创建一个 sound.cache 文件,在打包VPK时可以添加进去。

创建元数据文件

此外还需要一些文件才能保证你的附件能够在游戏中正常工作。

addoninfo.txt

首先是 addoninfo.txt 文件。该文件让你的内容能被游戏识别。它应该放在VPK的根目录中,也就是上面最开始创建的文件夹:

...\left4dead2\addons\deadline2\addoninfo.txt

这个文件用在游戏中的Add-ons界面。文件简要地描述了 add-on 中提供了什么内容。示例文件 Deadline AddonInfo File(en) 中包含了完整的注释与使用说明,可以直接拿来作为你的 add-on 模板。

addonimage.jpg

另一个需要在根目录下创建的是图片文件 addonimage.jpg。它将作为你的 add-on 的图标显示在游戏的用户界面上,同时显示的还有 addoninfo.txt 中列出的内容。部分JPG格式可能会失效,这与创建它们的软件有关。如果遇到了JPG失效的头疼头疼问题,不妨使用 VTFEdit(en) 来导出。

Mission 文件

其次需要的文件是战役文件(en)。 它描述了战役的结构与内容,并且会被用于战役选择的用户界面、 匹配系统、以及游戏服务器。它应当是一个有独有命名的 .TXT 文件。将它放置在 'missions' 文件夹中,这个文件夹也是你需要创建的:

...\left4dead2\addons\deadline2\missions\deadline2.txt

示例中的 Deadline Mission File(en) 文件包含了完整的注释与使用说明,可以直接拿来作为你的 mission 文件模板。

Note.png注意:将 mission.txt(或是其它任何txt文件)添加到 missions 文件夹都会让VPK被标记为战役而不是附加内容包。尚不清楚有没有其它影响VPK标记类型的因素。VPK中特定的几组文件并不会影响到其它战役。这些内容包括但不仅限于:独有的与替换的材质/纹理、模型、音频、音频缓冲、粒子、以及粒子效果。目前,脚本文件(位于 scripts 文件夹中)以及资源文件仍然会被其他的 add-on 覆盖,不论打包成什么类型的VPK。如果出现了命名重复,将与官方或是其它 add-on 中的战役产生冲突

测试VPK

目前为止,你的 add-on 应该已经功能完备了。可以进入游戏,打开Add-ons菜单来启用你的 add-on。如果在控制台中输入 path,你将会在底部附近看到你的 add-on 的根目录。这意味着游戏如果在标准的游戏目录下找不到对应资源时,将会进入你的 add-on 文件夹中搜索。在其它电脑中完整运行你的地图来检查有无错误,例如崩溃或是游戏资源丢失。你可以继续调整你的内容,直到准备好了面对那神奇的一刻:向外界发布。

打包与发布

剩余的最后一步就是将你的 add-on 文件夹打包成用于发布的 .VPK(en) 文件。

.VPK 文件的作用是为了方便其他人只用一个文件就能安装好你的 add-on。玩家只需要将 .VPK 放在自己的 add-on 文件夹下就行了。或者,假如他们像大多数非地图作者的玩家一样,没有将 .VPK 扩展名关联到其他的程序上,就可以通过双击VPK来自动安装到正确的位置。

每个 .VPK 文件都有一个独一无二的ID,来确保所有人运行的是相同的内容。如果你的元数据文件配置正确,有必要的情况下,游戏将会提示玩家下载新的版本。

找到这个文件夹:

C:\Program Files\Steam\steamapps\common\left 4 dead 2\bin\

找到 vpk.exe 打包工具并在桌面上创建快捷方式。拖动你的 add-on 根文件夹到快捷方式上运行。该工具将会在你原有文件夹的位置创建一个 .VPK 文件。默认情况下并不会包含源文件例如 .VMF、.TGA、.SMD、.QC 等,并且会移除可执行二进制文件。移除文件夹版的 add-on(或是放到安全的位置)以便单独测试 .VPK 文件。 .VPK 文件应该能像文件夹版的一样正常工作。如果工作正常的话,就算是准备好将它上传到你在元数据文件中描述的下载位置了。

理想情况下,最好有一个包含了评分、截屏以及玩家评论的 add-on“主页” 。这里是一个简单的例子。

压缩

由于一张L4D2的完整战役可能会非常大,因此建议在上传到分享站点用于发布之前,最好将它们进行压缩。开源的Windows工具 7-zip 支持将文件压缩成 7z格式/LZMA算法,它的压缩率非常高。 .BSP 地图文件占了战役文件的大部分体积,而该文件可压缩性很好,因此一个vpk压缩后的体积可以减小到原来的25%甚至更低。例如一张由粉丝制作并打包的非官方地图 Death Aboard,压缩前的VPK大小为267MB,压缩成zip后大小为92MB,压缩成7z后大小仅为55MB。

最终测试

进行到这一步,你应该已经测试完成了下载功能。在本地服务器上建立一个游戏大厅,邀请你的朋友加入。他们接受邀请后,将会收到下载必要的 add-on 的提示,接着会在浏览器窗口中打开你的下载主页。他们应当能够在无需重启游戏的情况下,下载并安装好你的 add-on,然后加入你的游戏大厅。

另见