Portal 2

Portal 2

Not enough ratings
如何为你的 Hammer 地图正确构建 cubemap 立方体贴图
By Madeline and 1 collaborators
本指南说明了如何在 Hammer 制作的 Portal 2 自定义地图中构建 cubmap 以及如何解决可能出现的问题。
   
Award
Favorite
Favorited
Unfavorite
这是一个翻译副本 / This is a translated copy
原指南 / Original guide:
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=861820969
本指南中出现的 “我” 均指原作者。/ All "I" in this guide mean the original author.

本指南存在许多翻译不当的地方,欢迎提出指正。/ There are many improper translations in this guide, please correct me.
为什么仍然要构建 cubemap?
构建 cubemap 非常重要,因为它们会在地图中的反射材料(例如玻璃和发光表面)上提供反射。当您不构建 cubemap 时,引擎有时会显示默认反射,这些反射看起来是错误的并且确实很丑陋。
准备阶段
在生成 cubmap 之前,需要确保:
  1. 您的地图包含 env_cubemap 实体,它们位于正确的位置(在闪亮的物体旁边或通常在房间的中央。将其放置在 64 单位的高度是最好的,因为那是玩家的水平视线高度),否则引擎会不知道从哪里构建 cubmap。
  2. 您的地图会使用针对 HDR 和 LDR 的完整编译进行编译。(嗯,您不一定非要这样做才能进行下一步,但是我强烈建议您这样做。)如果您不知道如何进行完整编译,那么创意工坊上有一些有关此问题的像这样的指南可供参考。
  3. 地图的文件名不包含任何空格或奇怪的字符。为了 100% 安全起见,请不要使用除 a 到 z,下划线和数字之外的任何东西来命名您的文件。(这样做的原因是,如果您使用了一些奇怪字符,则文件将在上传后自动重命名,从而破坏了立方体贴图。有关更多信息,请参见下文)
构建 cubemap
通常,要在 Source 游戏中构建 cubemap,只需在开发者控制台中输入 buildcubemaps 并重新加载您的地图即可。但是,在 Portal 2 中,事情变得更加复杂。

首先,将新编译的地图复制到以下目录:<Steam 安装目录>/steamapps/common/Portal 2/portal2/maps。如果你使用 map <您的地图名称> 命令在 Portal 2 中加载地图,然后使用 buildcubemaps 命令继续构建 cubemap,则游戏将崩溃。gg valve

因此,为防止发生这种情况,您需要将完全编译的 bsp 文件从 <Steam安装目录>/steamapps/common/Portal 2/portal2/maps 移到 <Steam安装目录>/steamapps/common/Portal 2/portal2_dlc2/maps。之后,您可以再次在游戏中加载地图。

注意:如果您出于其他原因使用自定义内容、bee mod 或拥有更高的 DLC 文件夹(例如 portal2_dlc3),则应将地图放在此处(数字最大的 DLC 文件夹中),而不是 portal2_dlc2

然后继续输入以下命令:
  1. mat_hdr_level 0
  2. mat_specular 0
  3. buildcubemaps
  4. mat_hdr_level 2
  5. mat_specular 0
  6. buildcubemaps
这是为 HDR 和 LDR 照明构建 cubmap。mat_specular 命令禁用所有已经存在的反射,以使它们不会干扰正在构建的新反射。

注意:您的游戏将在 mat_hdr_levelbuildcubemaps 命令之后重新加载地图。这是正常的。
现在呢?
恭喜,您的 cubmap 已建立!(希望是这样)
如果要测试新生成的反射,只需键入命令 mat_reloadallmaterials 并重新加载地图。现在,您应该在地图的发光表面上看到漂亮的反射。(如果您想 100% 确保没有看到任何缓存的反射,请重新启动整个游戏。这就是我大部分时间所做的事情)
如果有任何错误,您可以跳到下一节,我在这里尝试解释可能的错误。

还有两点很重要:
  1. 构建 cubmap 后,请勿重命名地图。您可以移动它,这很好,但是重命名会破坏反射。如果要上传此地图,请确保在构建 cubmap 后不要更改文件名!(您当然可以在上传地图时更改您的创意工坊项目的标题,但文件名必须保持不变)
  2. 如果要将一些自定义内容打包到地图中,请在构建 cubmap 后执行此操作。我还强烈建议您将 bsp 文件从 portal2_dlc2/maps 文件夹移回 portal2/maps 文件夹,以防您使用的是像 Pakrat 这样的软件来打包自定义内容,因为自定义材料文件中的 texture 文件的文件路径将是由 Pakrat 更新,并且如果您的地图仍在 portal2_dlc2/maps 文件夹中,则可能会弄乱某些内容(不应该这样,但最好将其移回以确保不会出现问题)
故障排除
以下是一些常见问题:

问题:我的 Portal 2 崩溃了!wtffffffff
解决方案:确保将地图放置在 portal2_dlc2/maps 目录中,而不是放置在默认的 portal2/maps 文件夹中。

问题:重新加载地图后,反射未显示。
解决方案:关闭游戏,然后重新打开,然后重试。也许已经缓存了一些东西。

问题:重新启动游戏后,反射仍然不存在,或者反射太亮/太彩色,看起来不正确或不合适。
解决方案:有些事情可能出错了。
首先,当您使用 buildcubemaps 命令并且似乎可以正常工作时,引擎实质上所做的就是通过获取每个 env_cubemap 实体周围环境的 6 个低分辨率方形屏幕截图来构建 cubmap(因此,将其命名为 cubemap / 立方体贴图,因为它将环境映射到立方体的 6 个面上)。然后将这些映像写入 portal2_dlc2/maps 目录中磁盘上的现有 bsp 文件。因此,您可以做的第一件事是检查它们是否确实已保存到地图文件中。为此,请在构建 cubmap 之前导航到文件浏览器中的地图文件(<Steam安装目录>/steamapps/common/Portal 2/portal2_dlc2/maps),并记住文件大小。然后按照上述步骤继续构建 cubmap,然后再次检查文件大小。如果文件尚未变大,则意味着您的 cubmap 可能已构建但未保存到文件中。这不应该发生,但是您可以尝试做的是重新编译地图,重新启动游戏或按照下一节中的步骤进行操作。

问题:使用 buildcubemaps 后,地图的文件大小增加了,但是反射仍然看起来很奇怪或丢失了。
解决方案:这个问题也发生在我身上。我认为这与 Portal 2 的蒸汽管道更新有关,因为它以前一直在工作。您可以在下一部分中找到解决此问题的方法。

问题:我的地图的文件大小减少了?!在我使用 buildcubemaps 之后!
解决方案:有时会发生这种情况。只要文件大小更改,就意味着 Portal 2 能够写入 bsp 文件。因此,只要下次您加载地图时反射起作用,就不必担心。
试图解决蒸汽管道问题
如果您的地图一切正常,则可以跳过本节!

如果不是,则这里可能是导致构建 cubmap 失败的问题:
由于 Valve 将 Portal 2 移植到蒸汽管道内容分发系统上,由于某种原因,构建 cubmap 有时会失败,因为地图编译器已经在 bsp 文件中放置了空的 cubmap 纹理,然后 Portal 2 不想覆盖此数据或这样做失败。 。
要解决此问题,我们需要首先从 bsp 文件中删除该数据,以便 Portal 2 可以将其新数据放在此处。为此,您需要一个 bsp 文件编辑器,例如 Pakrat 或 VIDE。
我将使用 Pakrat 演示您需要做的事情。您可以在此处下载 Pakrat[www.bagthorpe.org]

好吧,因此,首先,请确保您的地图未加载到游戏中(最好完全退出 Portal 2)。
然后,使用您选择的 bsp 编辑器打开地图。
您将看到打包到 bsp 地图文件中的所有其他文件:

现在,您要做的就是选择所有以 .vtf.hdr .vtf 结尾的文件,除了 cubemapdefault.vtfcubemapdefault.hdr.vtf 外。
另外,请确保您没有选择任何以 .vmt 结尾的文件(如果有),因为它们是必需的。然后按下面的 Delete 按钮删除这些文件。我要再次指出,您一定不要删除 cubemapdefault.vtfcubemapdefault.hdr.vtf,因为那样会浪费很多时间进行反射。
删除这些文件后,单击 File / 文件 -> Save BSP and overwrite the file / 保存BSP并覆盖该文件,这意味着使用相同的文件名将文件保存在之前的确切位置(在 portal2_dlc2/maps 目录中)。现在,从 bsp 中删除了 cubmap 纹理数据,您可以继续在游戏中构建 cubmap(首先重新启动游戏并重新加载地图)。

注意:有时,应用此修复程序可能会使事情变得更糟,然后 cubmap 看起来非常丰富多彩且不合适。在这种情况下,只需重新编译映射,然后重试以构建 cubmap,而无需先删除 bsp 文件中的 cubmap。如果您知道发生这种情况的原因,请告诉我,因为我真的没有任何线索...


如果仍然无法使用它,或者您有任何疑问,请在下面留下评论以解释您的问题,我们将对其进行研究并尝试为您提供解决方案或答案。

感谢您的阅读并愉快地构建 cubmap ! :)