编译错误

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)Русский (ru)中文 (zh)Translate (Translate)

This page was translated by DaKang233 on October 6, 2023 (UTC+8). Anyone is welcome to add new content or fix errors.


Note.png注意:本文指的是在 Hammer(en) 中编译地图,而不是在编译源代码时。

通用术语

  • 节点 -- 编译器正在计算的固体、边、区域、位置等。
  • XXX -- 替换为固体编号或其他唯一标识符。

一般错误

The system cannot find the file specified
如果没有要复制的BSP文件,或者目标不存在,则编译结束时的文件复制操作会输出此错误。这通常意味着VBSP在写入BSP文件之前就遇到了错误。检查VBSP输出是否有任何错误。
请确保键入的文件名正确,不包括任何破折号、句点等。如果问题仍然存在,请在保存文件时尝试键入文件扩展名。
如果你还没有运行为其制作地图的游戏,或者在你试图编译地图时,你试图放置最终BSP文件的目标路径不存在,则会由于 Hammer 缺乏创建文件夹的能力而出现此错误。这种情况发生在各种人身上,最常见的情况是收到错误的人最近在计算机崩溃、计算机损坏、病毒或其他可能导致计算机数据/内存丢失的原因后重新启动了计算机。如果发生这种情况,你所要做的就是运行你正在为其制作地图的游戏,或者简单地浏览到与你试图在文件浏览器中放置最终.BSP的文件目录最近的文件目录,并创建一个与所选输出文件夹名称相同的文件夹。
有关原因的更多信息,请点击此处(en)
Error opening mapname.bsp
编译器找不到地图的BSP文件,或者该文件已损坏。可能是由于错误,Vbsp(en)没有创建BSP。如果没有,请检查路径名。
SteamStartup() failed
SteamStartup(0xf,0x12eac4) failed with error 1: The registry is in use by another process, timeout expired
尝试重新编译地图或重新启动 Steam。
WARNING node with unbounded volume
当地图的某个部分接触到,或者在 Hammer 地图网格之外时,就会发生这种情况。远离网格的边缘,然后进行编译。
试图编译包含 func_instance 且内部启用了警戒线的地图也可能返回此错误。
无效的固体(en)也可能导致这种情况。

BSP (vbsp.exe)

**** leaked ****
你的地图中至少存在有一个泄露(en)。地图的内部没有正确地密封到外部的空隙中。在 Hammer 中加载pointfile(en)。从指定实体开始的红线将在某个点穿过泄漏口。在三维视图中跟着它,(用固体)密封泄漏口并重新编译。
有时,在复制和/或移动固体实体(en)后,它们的原点可能会泄漏到边界之外,导致看似不存在的实体泄漏。要解决这个问题,只需选择明显泄漏的实体,右键单击它并选择「Center Origins」。如果你不知道具体是哪个实体导致了泄漏,请尝试将原点集中在同一类的所有实体上(Map → Entity Report → Sort by class)。
Brush XXX
WARNING, microbrush
固体太小,无法编译(通常小于1个 Hammer 单位)。通过指定的编号搜索该固体(en)。删除该固体并创建一个更大的固体。
Brush XXX
FloatPlane: bad normal
固体在「平面」上有一个不必要的顶点。可能是使用顶点工具(en)的结果。通过指定的编号搜索该固体(en)。再次使用「顶点工具」(Vertex Tool)通过将不必要的顶点与另一个顶点重合来修复它。创建顶点过多的小型弯曲固体时也可能发生这种情况。
Can't find surfaceprop for material, using default
贴图中有一个纹理没有材质面属性(en)。可能你在世界固体上使用了「模型」的纹理。使用「替换纹理」对话框(en),在使用过的纹理中搜索「模型」,然后由其他纹理替换。如果使用自定义纹理,请确保它们具有 $surfaceprop 键值。
Error displacement found on a(n) (entityname) entity - not supported
你的地图中有一个绑定到置换表层(en)的固体实体。置换表层不可能是固体实体。搜索带有置换表层的固体实体,然后移除置换表层或将固体实体移回正常世界固体。
Error! To use model "filename.mdl" with static_prop, it must be compiled with $staticprop!
你的地图中有一个 prop_static(en) 使用了不正确的物理模型。该模型不会出现在游戏中。使用 prop_physics(en)prop_dynamic_override(en) 替代。
Error loading studio model ""!
你的地图中有一个 "prop_"(en) 模型没有使用模型或者使用了不正确的模型文件名。
Face List Count >= OVERLAY_BSP_FACE_COUNT
有一个面上有太多的 Overlay(en)s 或一个 Overlay 应用到了太多的面上。
也有可能是在带有多个 info_overlay 的大固体上将光照贴图比例设置更改为低值(1-8)。
material "" not found
面或 Overlay 不使用纹理或纹理文件名不正确。
Memory leak
mempool blocks left in memory:
一个不会影响地图的长期错误。忽略。
Too many t-junctions to fix up!
目前尚不清楚究竟是什么原因导致了这一问题的出现。已知与泄漏一起出现在近距离地图上。首先,密封泄漏,如果问题仍然存在,请减少你的 func_detail(en)func_brush(en) 实体的数量。
Bad planenum
编辑器没有正确保存文件-重新保存并编译。这也可能是由多个固体与另一个重叠造成的——通常是由糟糕的雕刻造成的。
Tried parent
编译中的节点没有父节点-这是非常罕见的,但很可能是由通过 Hammer 的安全保护的顶点操作错误引起的。想象一个盒子,但整个盒子只是一面。
XXX with splits
固体面已经被切割了,这是一个很大的禁忌。尝试和修复它的最佳方法是寻找微小的固体渗透,例如接触1 x 1 x 1固体侧面的尖端。
vbsp.exe 崩溃的潜在原因(无错误消息)
置换表层上使用了 Playerclip 纹理。
Note.png注意:要查找此错误,请取消选中除「Clip/player」之外的所有可见组。
1个单位高度的位移,不同侧的单位为4。
Multiple references for cubemap on texture ../path/stonefloor006a_3328_640_-640!!
你有至少一个env_cubemap(en)的面直接连接到其他多个 cubemap。你需要找到这两个面重叠的 cubemap,并重新分配面给错误的 cubemap。最后一个错误的数字是坐标,你可以使用 View->Go to Coordinates 来去到它们的坐标。
Material <name> is depending on itself through materialval $bottommaterial!
基本上,这个错误表明场景中的材质着色器参数 $bottommaterial 引用了它自己的一个 vmt!只要找到这些材料并将此值替换为你想要的另一个值,例如水就设置为:$bottommaterial" "dev/dev_waterbeneath2" 或其他你想要的。仔细检查材料名称,它可以是相同的名称,但前缀为「a」、「b」,你甚至不会注意到这一点!

VIS (vvis.exe)

loadportals
couldn't read filename.prt
Vvis找不到由vbsp创建的 Portal 文件。vbsp没有创建它是因为错误(泄露?),或者 vvis 使用了不正确的文件路径。(解决方法是确保地图名称没有大写字母或句点。)
或者:你创建了一些新的 Areaportal,但使用VBSP的「Only entities」(仅实体)模式进行编译。
或者:你不小心将 light_environment 实体放置/移动到了天空盒的边界之外。(这不会产生泄漏吗?)
Leaf (portal XXX) with too many portals.
有一个区域的几何形状太复杂了。尽量简化一些房间和走廊,并使用 func_detail(en) 制作小结构。

RAD (vrad.exe)

Texture axis perpendicular to face at (XXX, XXX, XXX)
在指定的坐标处,存在一个纹理值(en)不正确的面。试着找到这个面,并确保纹理「与世界对齐」(aligned to world)。
WARNING
Too many light styles on a face (XXX,XXX,XXX)
在指定的坐标处,有一个面被过多的「效果」灯光照亮。这包括具有名称(即编译了打开和关闭状态的灯光,以便你可以切换它们)或使用闪烁等效果的灯光。删除其中一些,禁用闪烁效果或确保它们没有名称。
Note.png注意:一个面最多只能由4个不同目标名(en)的灯光照亮。这意味着一个面可以被无限的不同灯光样式照亮,只要它们最多共享4个目标名。
<number> degenerate faces

退化面是计算为没有面积或面积为负的面。这可能会导致照明问题。

这也可能与纹理的透明度有关。
待完善: 具体来说,因为有多种方法可以制作透明材料。有确凿的证据就好了。
warning - face vectors parallel to face normal. bad lighting will be produced
使用「对齐到纹理」(Align to texture) (Alt + RMB 鼠标右键) 时可能会发生这种情况。要修复,找到引起它的笔刷(回溯最近的更改),将受影响的面与「世界」(World) 或「面」(Face) 对齐,然后手动应用纹理设置。

另请参阅

外部链接