Zh/Compile Errors: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
m (Nesciuse moved page Compile Errors/zh to Zh/Compile Errors over redirect: Language prefixes)
m (-Using L template for links)
Line 2: Line 2:
{{:User:1416006136/Signature|time=Oct 6, 2023}}
{{:User:1416006136/Signature|time=Oct 6, 2023}}
__TOC__
__TOC__
{{note|本文指的是在 [[Hammer]] 中编译地图,而不是在编译源代码时。}}
{{note|本文指的是在 {{L|Hammer}} 中编译地图,而不是在编译源代码时。}}
== 通用术语 ==
== 通用术语 ==
* '''节点''' -- 编译器正在计算的固体、边、区域、位置等。
* '''节点''' -- 编译器正在计算的固体、边、区域、位置等。
Line 15: Line 15:
:如果你还没有运行为其制作地图的游戏,或者在你试图编译地图时,你试图放置最终BSP文件的目标路径不存在,则会由于 Hammer 缺乏创建文件夹的能力而出现此错误。这种情况发生在各种人身上,最常见的情况是收到错误的人最近在计算机崩溃、计算机损坏、病毒或其他可能导致计算机数据/内存丢失的原因后重新启动了计算机。如果发生这种情况,你所要做的就是运行你正在为其制作地图的游戏,或者简单地浏览到与你试图在文件浏览器中放置最终.BSP的文件目录最近的文件目录,并创建一个与所选输出文件夹名称相同的文件夹。
:如果你还没有运行为其制作地图的游戏,或者在你试图编译地图时,你试图放置最终BSP文件的目标路径不存在,则会由于 Hammer 缺乏创建文件夹的能力而出现此错误。这种情况发生在各种人身上,最常见的情况是收到错误的人最近在计算机崩溃、计算机损坏、病毒或其他可能导致计算机数据/内存丢失的原因后重新启动了计算机。如果发生这种情况,你所要做的就是运行你正在为其制作地图的游戏,或者简单地浏览到与你试图在文件浏览器中放置最终.BSP的文件目录最近的文件目录,并创建一个与所选输出文件夹名称相同的文件夹。


:有关原因的更多信息,请点击[[The system cannot find the file specified|此处]]
:有关原因的更多信息,请点击{{L|The system cannot find the file specified|此处}}


;Error opening mapname.bsp
;Error opening mapname.bsp
:编译器找不到地图的BSP文件,或者该文件已损坏。可能是由于错误,[[Vbsp]]没有创建BSP。如果没有,请检查路径名。
:编译器找不到地图的BSP文件,或者该文件已损坏。可能是由于错误,{{L|Vbsp}}没有创建BSP。如果没有,请检查路径名。


;SteamStartup() failed: SteamStartup(0xf,0x12eac4) failed with error 1: The registry is in use by another process, timeout expired
;SteamStartup() failed: SteamStartup(0xf,0x12eac4) failed with error 1: The registry is in use by another process, timeout expired
Line 26: Line 26:
:当地图的某个部分接触到,或者在 Hammer 地图网格之外时,就会发生这种情况。远离网格的边缘,然后进行编译。
:当地图的某个部分接触到,或者在 Hammer 地图网格之外时,就会发生这种情况。远离网格的边缘,然后进行编译。
:试图编译包含 func_instance 且内部启用了警戒线的地图也可能返回此错误。
:试图编译包含 func_instance 且内部启用了警戒线的地图也可能返回此错误。
:[[Invalid brush|无效的固体]]也可能导致这种情况。
:{{L|Invalid brush|无效的固体}}也可能导致这种情况。


== BSP (vbsp.exe) ==
== BSP (vbsp.exe) ==
; **** leaked ****
; **** leaked ****
:你的地图中至少存在有一个[[leak|泄露]]。地图的内部没有正确地密封到外部的空隙中。在 Hammer 中加载[[pointfile]]。从指定实体开始的红线将在某个点穿过泄漏口。在三维视图中跟着它,(用固体)密封泄漏口并重新编译。
:你的地图中至少存在有一个{{L|leak|泄露}}。地图的内部没有正确地密封到外部的空隙中。在 Hammer 中加载{{L|pointfile}}。从指定实体开始的红线将在某个点穿过泄漏口。在三维视图中跟着它,(用固体)密封泄漏口并重新编译。
:有时,在复制和/或移动[[Brush entities|固体实体]]后,它们的原点''可能''会泄漏到边界之外,导致看似不存在的实体泄漏。要解决这个问题,只需选择明显泄漏的实体,右键单击它并选择「Center Origins」。如果你不知道具体是哪个实体导致了泄漏,请尝试将原点集中在同一类的所有实体上(Map → Entity Report → Sort by class)。
:有时,在复制和/或移动{{L|Brush entities|固体实体}}后,它们的原点''可能''会泄漏到边界之外,导致看似不存在的实体泄漏。要解决这个问题,只需选择明显泄漏的实体,右键单击它并选择「Center Origins」。如果你不知道具体是哪个实体导致了泄漏,请尝试将原点集中在同一类的所有实体上(Map → Entity Report → Sort by class)。


;Brush XXX: WARNING, microbrush
;Brush XXX: WARNING, microbrush
:固体太小,无法编译(通常小于1个 Hammer 单位)。通过指定的编号[[Hammer Go To Brush Dialog|搜索该固体]]。删除该固体并创建一个更大的固体。
:固体太小,无法编译(通常小于1个 Hammer 单位)。通过指定的编号{{L|Hammer Go To Brush Dialog|搜索该固体}}。删除该固体并创建一个更大的固体。


;Brush XXX: FloatPlane: bad normal
;Brush XXX: FloatPlane: bad normal
:固体在「平面」上有一个不必要的顶点。可能是使用[[Vertex Tool|顶点工具]]的结果。通过指定的编号[[Hammer Go To Brush Dialog|搜索该固体]]。再次使用「顶点工具」(Vertex Tool)通过将不必要的顶点与另一个顶点重合来修复它。创建顶点过多的小型弯曲固体时也可能发生这种情况。
:固体在「平面」上有一个不必要的顶点。可能是使用{{L|Vertex Tool|顶点工具}}的结果。通过指定的编号{{L|Hammer Go To Brush Dialog|搜索该固体}}。再次使用「顶点工具」(Vertex Tool)通过将不必要的顶点与另一个顶点重合来修复它。创建顶点过多的小型弯曲固体时也可能发生这种情况。


;Can't find surfaceprop for material, using default
;Can't find surfaceprop for material, using default
:贴图中有一个纹理没有[[Material surface properties|材质面属性]]。可能你在世界固体上使用了「模型」的纹理。使用[[Hammer Replace Textures Dialog|「替换纹理」对话框]],在使用过的纹理中搜索「模型」,然后由其他纹理替换。如果使用自定义纹理,请确保它们具有 {{Ent|$surfaceprop}} 键值。
:贴图中有一个纹理没有{{L|Material surface properties|材质面属性}}。可能你在世界固体上使用了「模型」的纹理。使用{{L|Hammer Replace Textures Dialog|「替换纹理」对话框}},在使用过的纹理中搜索「模型」,然后由其他纹理替换。如果使用自定义纹理,请确保它们具有 {{Ent|$surfaceprop}} 键值。


;Error displacement found on a(n) (entityname) entity - not supported
;Error displacement found on a(n) (entityname) entity - not supported
:你的地图中有一个绑定到[[Hammer Face Edit Disps|置换表层]]的固体实体。置换表层不可能是固体实体。搜索带有置换表层的固体实体,然后移除置换表层或将固体实体移回正常世界固体。
:你的地图中有一个绑定到{{L|Hammer Face Edit Disps|置换表层}}的固体实体。置换表层不可能是固体实体。搜索带有置换表层的固体实体,然后移除置换表层或将固体实体移回正常世界固体。


;Error! To use model "filename.mdl" with static_prop, it must be compiled with $staticprop!
;Error! To use model "filename.mdl" with static_prop, it must be compiled with $staticprop!
:你的地图中有一个 [[prop_static]] 使用了不正确的物理模型。该模型不会出现在游戏中。使用 [[prop_physics]] [[prop_dynamic_override]] 替代。
:你的地图中有一个 {{L|prop_static}} 使用了不正确的物理模型。该模型不会出现在游戏中。使用 {{L|prop_physics}} {{L|prop_dynamic_override}} 替代。


;Error loading studio model ""!
;Error loading studio model ""!
:你的地图中有一个 [[Prop Types Overview|"prop_"]] 模型没有使用模型或者使用了不正确的模型文件名。
:你的地图中有一个 {{L|Prop Types Overview|"prop_"}} 模型没有使用模型或者使用了不正确的模型文件名。


;Face List Count >= OVERLAY_BSP_FACE_COUNT
;Face List Count >= OVERLAY_BSP_FACE_COUNT
:有一个面上有太多的 [[Hammer Overlay Tool|Overlay]]s 或一个 Overlay 应用到了太多的面上。
:有一个面上有太多的 {{L|Hammer Overlay Tool|Overlay}}s 或一个 Overlay 应用到了太多的面上。
:也有可能是在带有多个 info_overlay 的大固体上将光照贴图比例设置更改为低值(1-8)。
:也有可能是在带有多个 info_overlay 的大固体上将光照贴图比例设置更改为低值(1-8)。


Line 62: Line 62:


;Too many t-junctions to fix up!
;Too many t-junctions to fix up!
:目前尚不清楚究竟是什么原因导致了这一问题的出现。已知与泄漏一起出现在近距离地图上。首先,密封泄漏,如果问题仍然存在,请减少你的 [[func_detail]] [[func_brush]] 实体的数量。
:目前尚不清楚究竟是什么原因导致了这一问题的出现。已知与泄漏一起出现在近距离地图上。首先,密封泄漏,如果问题仍然存在,请减少你的 {{L|func_detail}} {{L|func_brush}} 实体的数量。


;Bad planenum
;Bad planenum
Line 79: Line 79:


;Multiple references for cubemap on texture ../path/stonefloor006a_3328_640_-640!!
;Multiple references for cubemap on texture ../path/stonefloor006a_3328_640_-640!!
:你有至少一个[[env_cubemap|env_cubemap]]的面直接连接到其他多个 cubemap。你需要找到这两个面重叠的 cubemap,并重新分配面给错误的 cubemap。最后一个错误的数字是坐标,你可以使用 ''View->Go to Coordinates'' 来去到它们的坐标。
:你有至少一个{{L|env_cubemap}}的面直接连接到其他多个 cubemap。你需要找到这两个面重叠的 cubemap,并重新分配面给错误的 cubemap。最后一个错误的数字是坐标,你可以使用 ''View->Go to Coordinates'' 来去到它们的坐标。


;Material <name> is depending on itself through materialval $bottommaterial!
;Material <name> is depending on itself through materialval $bottommaterial!
Line 91: Line 91:


;Leaf (portal XXX) with too many portals.
;Leaf (portal XXX) with too many portals.
:有一个区域的几何形状太复杂了。尽量简化一些房间和走廊,并使用 [[func_detail]] 制作小结构。
:有一个区域的几何形状太复杂了。尽量简化一些房间和走廊,并使用 {{L|func_detail}} 制作小结构。


== RAD (vrad.exe) ==
== RAD (vrad.exe) ==
;Texture axis perpendicular to face at (XXX, XXX, XXX)
;Texture axis perpendicular to face at (XXX, XXX, XXX)
:在指定的坐标处,存在一个[[Hammer Face Edit Dialog|纹理值]]不正确的面。试着找到这个面,并确保纹理「与世界对齐」(aligned to world)。
:在指定的坐标处,存在一个{{L|Hammer Face Edit Dialog|纹理值}}不正确的面。试着找到这个面,并确保纹理「与世界对齐」(aligned to world)。


;WARNING: Too many light styles on a face (XXX,XXX,XXX)
;WARNING: Too many light styles on a face (XXX,XXX,XXX)
:在指定的坐标处,有一个面被过多的「效果」[[List of entities#Light_Entities|灯光]]照亮。这包括具有名称(即编译了打开和关闭状态的灯光,以便你可以切换它们)或使用闪烁等效果的灯光。删除其中一些,禁用闪烁效果或确保它们没有名称。
:在指定的坐标处,有一个面被过多的「效果」[[List of entities#Light_Entities|灯光]]照亮。这包括具有名称(即编译了打开和关闭状态的灯光,以便你可以切换它们)或使用闪烁等效果的灯光。删除其中一些,禁用闪烁效果或确保它们没有名称。
{{note|一个面最多只能由4个不同[[targetname|目标名]]的灯光照亮。这意味着一个面可以被无限的不同灯光样式照亮,只要它们最多共享4个目标名。}}
{{note|一个面最多只能由4个不同{{L|targetname|目标名}}的灯光照亮。这意味着一个面可以被无限的不同灯光样式照亮,只要它们最多共享4个目标名。}}


;<number> degenerate faces
;<number> degenerate faces
Line 110: Line 110:


== 另请参阅 ==
== 另请参阅 ==
* [[Map Compiling Theory|地图编译理论]]
* {{L|Map Compiling Theory|地图编译理论}}


== 外部链接 ==
== 外部链接 ==

Revision as of 09:44, 11 July 2024

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

另请参阅

外部链接