Common L4D Mapping Problems
< Zh
Jump to navigation
Jump to search

This page has not been fully translated.
You can help by finishing the translation.
If this page cannot be translated for some reason, or is left untranslated for an extended period of time after this notice is posted, the page should be requested to be deleted.
Also, please make sure the article complies with the alternate languages guide.
This notice is put here by LanguageBar template and if you want to remove it after updating the translation you can do so on this page.
You can help by finishing the translation.
If this page cannot be translated for some reason, or is left untranslated for an extended period of time after this notice is posted, the page should be requested to be deleted.
Also, please make sure the article complies with the alternate languages guide.
This notice is put here by LanguageBar template and if you want to remove it after updating the translation you can do so on this page.
本页面是基于原英文页面而翻译的,一些翻译内容和原文章的意思有一些不同,但解决方法上基本意思一致,也欢迎各位进行补充。
这篇文章为讨论与发布求生之路系列中常见的地图问题提供了非常便利的场所. 你可以随意编辑文章,并在本文章留下你发现的新问题与解决办法!
待完善: 需要添加分类.
- Hammer 似乎没有完全配置好并且每次我启动Hammer时我都要再配置一遍. 这是我第一次安装求生之路开发者工具(L4D Authoring Tools).它缺少BSP, VIS, RAD等程序的路径, 以及编译后地图的路径. 作为一名初学者这让人感到恼火,我该咋整?
GameConfig.txt 需要包含以下内容:
"Configs" { "Games" { "l4d2" { "GameDir" "..\left4dead2" "Hammer" { "GameData0" ".\left4dead2.fgd" "TextureFormat" "5" "MapFormat" "4" "DefaultTextureScale" "0.250000" "DefaultLightmapScale" "16" "GameExe" "..\left4dead2.exe" "DefaultSolidEntity" "func_brush" "DefaultPointEntity" "prop_static" "BSP" ".\vbsp.exe" "Vis" ".\vvis.exe" "Light" ".\vrad.exe" "GameExeDir" "..\" "MapDir" "..\sdk_content\mapsrc" "BSPDir" "..\left4dead2\maps" "CordonTexture" "BLACK" "MaterialExcludeCount" "0" } } } "SDKVersion" "5" }
- GameConfig.txt 文件是位于你的Hammer路径 (*\Left 4 Dead 2\bin) 中的配置文件. 这是由于工具更新或系统更新导致的主要问题. Hammer 实际上应该从一开始就进行全面配置. 真希望在未来的更新中可以恢复此配置文件,以减少新人与制作工具之间的摩擦.
- 怎么让感染者生成?
大多数情况下, 这是没有导航网格造成的. 导航网格在求生之路系列中至关重要. 你的地图也必须拥有启用的 导演 , 同样,如果你在会话期间使用过“director_stop”命令,那你应该再输入一次“director_start”. 为了让游荡的小丧尸会在你加载地图后生成, 导演必须计算出一条从起点到终点的路径. 请参阅 导航网格 以及官方求生之路地图制作文档来得到更多信息
待完善: 描述的并不全面. 用最新游戏版本进行测试.
- 为啥生还者机器人不会移动?
- 大多数情况下, 你需要生成一系列导航网格. 请参阅 导航网格 . 如果导航网格已经生成而问题依旧存在, 请仔细检查你的导航网格和地图. 其中一个原因,是整个导航网格都被 "阻挡" 因为 sky_camera 实体映射的远景整个穿过了它.
- 为什么燃烧瓶的火焰例子 / Smoker的烟雾粒子在游戏中不可见?
这通常是因为缺少
env_fog_controller
实体. 此外,确保你地图编译过程中没有报错.
- 为什么我的救援小房间(Rescue_closet)没用?
- 在导航网格存在错误 ( "NAV ERRORS - Map is unplayable!" 的信息显示在屏幕上)时,救援小房间是无法正常运作的.你得确保你的导航网格没有任何问题. 待完善: 在最新的游戏版本进行测试来保证准确性
- 同时也确保你放置的是“info_survivor_rescue”而不是“info_survivor_position”.你可以通过控制台来获得调试功能. rescue_show 指令会高亮 info_survivor_rescue 的位置. rescue_update_nav 会添加/移除任何有效/无效的救援房间区域.
- 我该怎么在对抗模式和生还者模式下运行我的地图?
要让你在对抗和生还者中运行你的地图, 先将 控制台变量 "mp_gamemode" 更改为 "versus"(对抗) 或 "survival"(生还者) (分别地), 然后用“map”指令加载你的地图. 所以如果你想在生还者模式下 运行"warehouse.bsp"地图, 你得在控制台输入 (当在游戏主界面时) "mp_gamemode survival; map warehouse". 类似地, 如果你想切换回战役模式,输入 "mp_gamemode coop; map warehouse". (笔记 1: "coop"和 "campaign" 在使用 mp_gamemode 命令时是同义词) (笔记 2: 如果你已经在一个本地运行的游戏中, 你可以使用 "mp_gamemode" 指令来改变游戏类型, 然后输入 "changelevel" 指令.)
使用控制台指令
map <地图名称> 游戏模式 (survival, coop, versus, 或者 scavenge)
. 当客户端是第一次被启动时,map <地图名称>
游戏会默认以战役模式启动,除非之后用其它模式启动.
- 为什么当我用开发者工具中的Tools Mode启动游戏时不会加载我的自定义地图?
当加载求生之路1的Tools Mode时, 按 F10 转换到游戏模式, 然后打开控制台并输入 sv_lan 1.
待完善: 这还需要确认同上,控制台在窗口左下角可以拉出来. 同样输入 sv_lan 1.
- 为什么下雨掉在地面/物件上时的粒子效果几乎看不见 / 非常透明?
- 你必须在编译地图前开启编译HDR来让下雨粒子可见.
- 为什么游戏无法辨认/播放我放在声音目录中的自定义声音即使它们格式是正确的?
sound cache (sound.cache)文件需要先用
snd_buildsoundcachefordirectory
指令生成一次. 对于求生之路系列, sound.cache 可以是独立的 sound 目录.
sound cache (sound.cache)文件需要先用
snd_buildsoundcachefordirectory
指令生成一次, 无论它是官方声音目录还是add-on(mod). add-on的声音子目录同样必须包含更新过的 sound.cache 来让它有效果.测试声音的有效性可以通过控制台 (无论有没有地图加载都可以) 或游戏中来进行. 请参阅 L4D2 Custom Sound and Music Tutorial .
- 在我为了测试一些小改动而没有编译vrad启动地图后, 地图变得全亮了, 但现在即使我编译了vrad,我的地图仍然是全亮的.
当一个没有编译vrad的地图被加载时游戏引擎会自动设置 mat_fullbright 1 . 然而, 求生之路在加载这类地图时不会自动关闭此指令. 如果你在完成vrad编译后重新加载地图时, 你必须手动将此指令设置为“0”. 在设置 mat_fullbright 为 "0"后, 你需要重新加载地图来让地图光照恢复正常.
- 为什么求生之路忽略了我放置的 info_survivor_position ? 只能使用 info_player_start?
- logic_auto实体的 onmapspawn 输入有bug,info_directors的 forcesurvivor输入不允许它在地图生成为战役模式时触发. 相反,你应该为info_director设置一个名字,然后在info_director的输出中, 让它自己触发一次0秒延迟的强制生还者位置, 然后再以0.1秒的延迟释放生还者. 待完善: 在两个游戏的最新版本中进行测试.
- 我该如何获取并播放像官方求生之路战役那样的音乐?
求生之路1以特有的“音乐导演”(Music director)而闻名. 音乐导演会基于当前战役遭遇的“事件”来播放特定的音乐.你可以学习如何为你的地图添加基本的音乐, 以及根据指南自定义你的音乐: 自定义音乐教程
你可以通过先把地图 Music Post-Fix String 切换为官图然后根据你的喜好做一个自定义地图.请注意有些音乐只会在你地图导航网格具备特定属性时才会播放! 你也可以使用组合后的地图音效脚本,并根据 L4D2 Custom Sound and Music Tutorial 制作你喜欢的音乐.
- 为什么在编译和运行我的地图时,草地的纹理会有错位/浮动的纹理细节?
- 这是常规细节类型相关的一个Bug.就目前而言, 你可以使用乡村相关的细节贴图来替代. 要使用它们, 先在Hammer打开你的地图, 转到顶部菜单的map, 然后选择Map Properties. 在这里面, 找到 Detail Material File 条目并将 detail/detailsprites 改成 detail/ruraldetailsprites ,然后你就可以编译看看效果了.
- 为什么当我的地图以VPK文件运行时会随机地闪退?
- 这一般有两个原因. 一个是你VPK文件里制作了自定义内容相关的东西但是那个自定义内容没有包含在VPK文件里,或是单纯路径不对. 一个例子,你的VPK文件在引用你的自定义内容时发现缺失一个自定义贴图,这就导致游戏会崩溃. 另一个原因是你的地图包含自定义模型. 有个bug是有时候自定义模型会在 PVS (被引擎绘制) 内时,在shader.dll内出错导致游戏崩溃. Valve 也在处理这个问题, 但在此期间一种变通的方法是自己把模型整合到BSP文件里, 而不是把它留在APK里.
- 当所有玩家死亡后,新的一局他们会直接生成在结束安全屋, 有啥解决办法吗?
- 只要你的info_landmark命名正确,且对应的info_changelevel被正确使用,这个原因通常是那张你导航网格有PLAYER_START属性的地图 不是 你战役的第一张地图, 此外,你的地图还必须标记至少2个 CHECKPOINT (除了救援地图)区域在你当前地图的起始区域和安全区域. 即使你的初始地图网格标记有 PLAYER_START 区域, 也必须同时标记为CHECKPOINT.问题的关键在于, 当你只有终点区域标记了CHECKPOINT时, 导演在重新加载地图时会寻找距离 info_player_start 最近的 CHECKPOINT 区域并将生还者传送到那里,这就是为什么重开后玩家会直接出现在终点安全屋, 因此务必确保将有 info_player_start 的区域也标记为 CHECKPOINT .
- Cubemaps - 我在游戏中放置并创建了反射球 (buildcubemaps). 在编辑并编译地图的时候看起来挺好的,但是当我重新加载地图时又变得闪闪发光了.
在你构建了反射球后, 在控制台输入 "disconnect". 然后,你会回到主界面,控制台也一直开着, 输入 "mat_reloadallmaterials" 和 "mat_reloadtextures". 这些做完后, 输入 "map 你的地图名字". 这应该能修复奇怪的反射问题. 不然你也可以在构建完反射球后重启客户端, 但这有点浪费时间.
- 我的一些贴图在编译完光照后很黑/完全是黑的. VRAD对我的地图搞了什么幺蛾子? 我该怎么搞? 或者就是一些本不应该出现阴影的地方会突然出现阴影.
导致贴图很黑的一个可能是贴图错位或者拉伸. 它可能是你在旋转贴图时连带着一个实体转导致的.先隐藏所有实体, realigned textures back to normal, then re-compile. 现在一切应该恢复正常了.
- 社区也提到了其它可能的原因. 他们并没有测试过,不过应该有帮助:
- 影响 VRAD 的一些固实体 (比如 func_detail 之类的) 偏离了其默认原点的位置
- 笔刷 (世界固体或固实体) 似乎没有体积(?(原文为volume). 一名制图师发现笔刷被可疑地贴上了 toolswhite 贴图,然而在他的记忆中没有用过这种贴图. 如果没有表面编辑模式,用不寻常的贴图标记它,并在各种视窗里查看它是否可见.
- 我的求生之路1地图在求生之路2启动/保存过一次后就没法在Hammer里打开了.搞什么飞机?
- VMF文件有一丁点不一样. VMF文件可以作为文本文档被编辑 (像 Notepad++之类的). 用逗号来替换掉转义符 (0x1B).
- Half-Life Model Viewer (HLMV) 无法访问官方VPK中的模型.我无法用这个软件打开或查看任何模型.
在外部模型文件夹 (..\left4dead2\models) 中, 添加一个你想用于在HLMV查看模型的同名的空文件夹. 文件夹创建后你应该可以马上访问了.
- 当生还者离其它生还者较远或没有其他生还者时的尖叫/呐喊/对话/呼喊语音会一直存在. 例如, Nick 经常大声发 "Hellooooo???" 在做导航网格听他们乱叫真的烦死人了.
让生还者闭嘴的一个方法是在控制台输入
ai_talk_idle_enabled 0
- 生还者机器人不会主动走到电梯,车或 func_tracktrain 上(渡轮,缆车,船等等). 我该怎样让它们像官图那样自动走上去?
- 对于电梯, 请参阅 为电梯制作导航网格 . func_tracktrain对于机器人必须是可触碰到的并且逃脱路线(Escape_route)必须通过导航网格链接到终点的path_track. 所以举个例子,一个动态的模型被设置为 func_tracktrain 的子实体(parent设置为func_tracktrain)必须高到足够与机器人发生接触, 但不能高到影响路线连通(说白了就是别弄太高,其实还有个办法是关掉动态模型的碰撞体积,仅靠func_tracktrain来支撑玩家,但要保证它与你的动态模型形状大体一致).
- 我在和其他人一起测试的add-on已经被报告缺失模型和纹理. 我该如何让测试人员快速且精准的报告这些缺失?
当游戏加载时控制台不会报告缺失的贴图和模型. 让测试人员用 开发者模式 进入游戏并看看控制台输出了哪些缺失的贴图和模型.要么获取此输出的日志,要么请求获得相关的副本.
- 我的贴图在游戏中看起来很低劣/质量低/模糊/糟糕/很丑/模糊不清,尽管它们在 Hammer 中看起来还好. 这是咋回事,我该怎么修复?
- 检查一下你客户端的视频设置. 它们应该设置的高一些来获得质量更高的贴图. 设置较低可能会影响纹理清晰度.
常见的错误文本以及它们什么意思
一般错误
- ***VPK: FindFile Attempting to use full path with VPK file!
- N/A, 此错误可以被安全地忽略掉
- WARN: CL4DBasePanel::UpdateProgressBar called outside of level loading, discarded!
- [待完善]
- Engine Error: 81/ - weapon_ammo_spawn: UTIL_SetModel: not precached: models/props_unique/spawn_apartment/coffeeammo.mdl
- 可以通过放置一个命名为模型名称的prop_dynamic来解决或者通过 .LST 文件列出模型列表. 贴图也是一样的道理!
- Steam Validation Rejected
- 确保你启动游戏时的附加项里有 "+sv_lan 1"。
- Engine Error: CModelLoader::FindModel: NULL name
- 这可能是由于使用版本过低的FGD编译地图导致的. 老版本的 FGDs 没有为
env_fog
和light_environment
实体新的值, 而你编译的BSP文件包含相关的内容.有些人 (也就是我) 也遇到过这种崩溃. 例如, 军用大炮手柄模型的崩溃报告 (models/props_vehicles/m119howitzer_01_handle.mdl). 当 Default Animation 填写了一个有效的动画 (比如: idle), 游戏也会崩溃,同时还带有这个崩溃报告.
- Assert, File: U:\dev\terror\src\tier0\memstd.cpp, Line: 1623, Assert: ***: OUT OF MEMORY! attempted allocation size: 536873088 ****
- 如果游戏崩溃了一次,你可以尝试重新启动求生之路并再次加载地图. 它应该会在几秒钟后加载完. 你也可以尝试关掉多核渲染, 如果你开着的话.
注意:如果你没有用官方的SDK, 下面的两个问题可能是BSP文件缺少 "stringtable_dictionary.dct" 文件. 关于如何修复这个, 参阅 "为什么新编译的地图在求生之路会闪退? " .
与导航网格相关的错误
以下的网格错误都会导致 "NAV ERRORS - Map is unplayable!" 在地图加载时出现在屏幕上 .
另见 Sorting out navigation flow .
- The nav file was built for an older compile.
- 这错误文本意味着一个地图的 ".nav" 文件比".bsp" 文件本身的版本还要老. 这一般不是什么问题,除非地图的布局在".nav" 文件被创建之后发生改变. .bsp文件在被更改后可以输入
nav_analyze
来纠正这种情况.
- Missing nav file .
- 确保你地图相对应的nav文件与地图bsp文件在同一路径下
- Missing Battlefield check found N areas
- [待完善]
- GetGoalArea
- Cannot find SPAWN_RESCUE_CLOSET area in FINALE, thus cannot guarantee reachability of goal area.
- 关于救援房间; 要让它有效需要2个关键步骤. 放置3个 Info survivor position 实体在房间或橱柜里然后在游戏里输入
mark RESCUE_CLOSET
控制台指令来确定营救区域的房间/橱柜. 这个方法在 导航网格 里有解释. 标记了“checkpoint”,“player_start”的网格同样很重要.
- GetGoalArea: Cannot find end area - no checkpoint or finale located.
- 这个错误是由于拥有以下的其中一个问题:
- 缺少 Prop door rotating checkpoint 实体.
- 没有被标记为
mark CHECKPOINT
的网格. - 没有被标记为
mark FINALE
的网格. - 没有正确使用 trigger_changelevel 以及其正确的 info_landmark 又或是压根就没有这俩玩意.
- ComputeFlowDistances: ERROR - Cannot compute flow.
- 地图中的“导航流”(Flow)指AI从出生点移动到指定安全区域或终局区域的能力. 如果这两区域没法连接起来 (网格没法通过
nav_connect
或nav_splice
进行连接), 那么求生之路就没法计算出网格的完整路径. 地图对于游戏而言必须是可游玩的才可以生成“导航流”. 这意味着有效的出生点和安全区域是必不可少的.注意:
Nav_generate
会覆盖掉你当前连接过的网格从而重新生成新的网格, 所有你有些时候得手动连接.注意:移除 "NAV ERRORS - Map is unplayable!" 错误文本是完全可能的. 一个已知的方法是确保你的地图拥有
info_player_start
,info_director
, 和导航网格,然后跟随接下来的教程"安全屋和关卡转换" 和 "构建导航网格" 于 你的第一张求生之路地图 .
- 为什么当我在控制台输入nav_delete时游戏会崩溃?
- 先输入 director_stop 然后输入 nb_delete_all 以确保你在编辑导航网格时生还者机器人和感染者都被移除掉.