编译错误

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



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) 对齐,然后手动应用纹理设置。

另请参阅

外部链接