TF2 Hammer 地图编译失败,如何修复位移错误?
结论
日志显示 VBSP 已启动并读取 map_name.vmf。编译停在 Trying to create a non-quad displacement! (entity 0, brush 11)。这表示地图中有一个 displacement 无法作为四边形面处理,因此 VBSP 没有生成供后续阶段使用的 map_name.bsp。
后续 VVIS 和 VRAD 无法打开 BSP,是因为该文件缺失。还需要检查文件名或路径:VVIS、VRAD 和 Copy File 阶段使用的是 Saxxy_Cliffs.bsp,而 VBSP 的输入和报错路径使用的是 map_name。编译配置中至少有一处与当前地图不一致。
修复 displacement
entity 0 指向 world entity,日志中的 brush 11 可帮助定位问题。先在 Hammer 中检查地图的 displacement 面,重点查看形状经过修改、面不再是四边形或所属 brush 几何异常的部分。日志没有提供 brush 的具体位置,无法仅凭这段输出确定它在地图中的位置。
可以这样检查和处理可疑面:
- 在 Hammer 中检查地图上的 displacement,尤其是最近创建或编辑的面。
- 如果某个位移面所属 brush 的几何不规则,先移除 displacement,再检查并重建 brush,确保目标面是有效的四边形。
- 在重建后的四边形面上重新应用 displacement。如果该处不需要地形起伏,也可以保留为普通面。
- 保存 VMF 后重新编译,确认 VBSP 不再报告
non-quad displacement,并在地图目录中生成当前地图对应的.bsp。
纹理在编辑器中显示正常,并不能排除 brush 存在 displacement 几何问题。
检查编译文件名
修复 VBSP 错误后,检查 Hammer 的编译配置,确保 VBSP、VVIS、VRAD 和 Copy File 阶段都指向当前地图的同一个输出文件。日志显示 VBSP 使用 map_name.vmf,后续阶段却读取并复制 Saxxy_Cliffs.bsp。如果配置沿用了其他地图的路径,请改为当前地图对应的 BSP 路径。
重新编译时,先确认 VBSP 已成功生成当前地图的 BSP,再检查 VVIS 和 VRAD 能否打开该文件。单独出现 unknown light specifier type - lights,不足以说明当前 BSP 缺失的首要原因。应先处理 VBSP 报出的 displacement 错误。
备注:内容仅供参考。
