Trainz/AM&C/修复资产
词汇表 |
HKeys-CM |
HKeys-DVR |
HKeys-SUR |
HKeys-WIN |
鼠标使用 |
符号 |
操作说明:单击正文中的脚注([2])或注释标签([note 12])将导航您(定位页面)到该条目的确切文本。 • 然后:单击那里的?符号将使您返回到开始的地方继续阅读。 |
- 贡献作者:The Yesterdayz-Trainz group
操作说明:单击正文中的脚注([12])或注释标签([note 12])将导航您(定位页面)到该条目的确切文本。 • 然后:单击那里的 ↑ 符号将使您返回到开始的地方继续阅读。 |
如果你开始将 Trainz 作为构建工具进行探索,制作或修改路线,或者大胆地进入 DLS 并获取过去十年中上传的 2500 多条路线之一,你将不可避免地面对“修复资产”的学习曲线。如果你要着手修复资产,你需要了解在哪里查找信息。 资产层次结构 和 config.txt 文件 资产修复是一个有点用词不当的说法,除了极少数情况外,大多数广泛使用的资产需要通过更新到新的技术级别来修复,因为它们相对于游戏引擎数据需求的更新已经过时。 可悲的是,在可下载内容中确实存在一些错误,不仅来自 DLS,还来自其他信誉良好的第三方内容创建者,例如 TrainzProRoutes.com Mocrossing 包(zip 文件)包,其修复将在即将发布的教程中介绍。很多时候这些都是简单的笔误,有些是拼写错误(并非所有贡献者都以英语为母语,或将其作为第一语言),而 TS08 之前的错误检查要宽松得多……导致 Trainz 崩溃,甚至更糟,蓝屏死机 错误。
最后,也是最不常见的,是缺少纹理错误,以及在文件名中使用非法字符(非 ANSI 字符编码,主要来自非英语字母,如许多欧洲语言)的错误,这些字符在 Trainz 中是非法的。
- 这些错误通常可以通过提供缺少的纹理(使用 PEV 的网格查看器查看它们发生的位置并进行智能替换)或通过纹理剥离网格 (IM 文件) 使用 PEV 的 Images2TGA 在纹理剥离模式下进行修复。
|
少数“不良资产”可以(由于系统性清理 DLS 的努力,发生频率不断降低),并且当这些资产在路线中被发现时,它们的大部分问题也可以被修复。大多数可以被归类为关键字的误用,拼写错误,缺少引号等等。任何人都可以通过文本编辑器(如 记事本 或 Notepad++)修复这些小问题。偶尔会缺少一个组件的资产,要么是纹理,要么是网格(由纹理“装饰”的线框,以创建虚拟对象。一个是表面,另一个是底层形状的骨架)。到目前为止,大多数这类资产已经被证明可以通过调整文件路径规范,在 config.txt 文件中安装新的容器样式数据结构,或者调整文件文件夹内容(例如,在 TS2009 及更高版本中放弃了处理)来轻松修复,方法是将相关文件复制到必要的文件夹中。
已经采用了各种技术,需要不同的数据,或者需要改变数据组织方式。大多数这些更改在软件中自动处理。如果它们无法处理,就会产生错误,这是件好事。在资产中出现错误比在资产中存在缺陷导致程序崩溃好得多——这在 TRS2006 的早期很常见,当时第一个提高基本错误测试水平的措施被集成到 CMP 软件 中,以及它的 Service Pack 1。
T:ANE 中的 VE 消息
[edit | edit source]随着 T:ANE 的引入,内容管理器中错误和警告的报告方式发生了变化。每个错误和警告现在都有一个 VE 编号。完整的编号列表 在此。每个错误或警告也有自己的 WIKI 页面,可以通过从该页面选择该项目来访问,也可以通过右键单击“错误和警告”窗口中的编号错误或警告消息来访问。这些页面上的信息特定于 T:ANE 版本。但是,以下信息适用于大多数 T:ANE 报告的错误和警告。
获取和安装 PEV 工具
[edit | edit source]PEV 的工具将由社区在一个或另一个网站上维护,因为它们非常宝贵。Peter Villaume (PEV) 是一位非常有才华的程序员(工程师,实际上),他位于澳大利亚与 N3V & Auran Holding 在黄金海岸(布里斯班附近)的小镇位置相对(或悉尼)的一边,但在 2013 年中期停止在他自己的网站上托管他的工具,当时 Trainz 论坛大师 Shane Turner 在 他的帮助网站这里接管了这项任务。
|
- 在 Shane 的网站上找到 PEV 工具及其附带的 .pdf 文件 手册(如果有)。
- 查看 设置 PEV 工具,了解关于放置位置的步骤和提示。
- 查看 PEV 工具,了解一些操作技巧、教程链接以及本地安装中的高级设置。那里还会找到一些节省时间的有用技巧和窍门。
- 虽然你是错误修复新手,但在你的 \UserData 或 \UserData\editing 文件夹中设置一个“editing2_unchanged”文件夹,并在尝试任何更改之前定期将资产复制到该文件夹中。
- 这是一个安全网,以防事情似乎要爆炸……一种在单个错误变成令人警觉的 30 个错误列表时重新开始的方法……
- 或者更好的是,一种方法是让你可以将原始副本和更改后的副本用于 Kdiff3 进行比较,并让它显示你在哪里弄乱了嵌套的“}”或添加了额外的引号,或者犯了一些其他导致解析问题的错误。
• (深吸一口气,放松一下,那样的错误列表并不真实,只是某个地方的标点符号需要修复。)
|
- 第二部分
- 花一些时间潜伏在论坛上,观察一下。使用谷歌的网站搜索功能查找有关你可能提出的任何主题或问题的条目。(site:forums.auran.com “问题文本关键词”。)这个网站也同样适用!
- 在你学会处理 10-20 个错误并了解它们是多么重复出现之后,在论坛上找到 Asset-X FAQ 并订阅,并开始逐渐进行学习,同时定期、稳定地修复你遇到的任何其他故障资产。
- Asset-X 的大部分操作说明都包含在产品内置的 Windows 风格帮助文件中。可以直接在文件夹中阅读,也可以通过加载 Asset-X 并点击帮助来阅读。
- 在这样做之前,你必须了解 基本的 Trainz 数据模型 配置,并且通过 PEV 工具和专注的大脑修复 20-30 个错误将让你对 Trainz 演变数据模型的各种形式有足够的了解,并且可能足以掌握它们之间的相互作用和差异,从而能够使用 Asset-X 并能够发现错误。
- 另外,建立一个示例资源类型侧边文件夹并用需要编辑的内容副本填充它也是一个好主意,但修复了这些副本以便它们可以毫无警告地通过。这些可以与同类其他资源进行比较,避免你陷入困境。这项练习将为你打下良好的基础知识,并增强信心,使未来的资源修补速度更快。最终,你将在建立对如何修复故障的良好基础知识方面节省大量时间。
关于标签中大小写的说明
[edit | edit source]内容创建者为在 Trainz 配置文件中使用而创建的标签通常不受任何特定大小写(大写或小写)规则的约束。一般标准是使用全小写,但对于许多名称,任何形式的大小写都是允许的。在许多地方使用任意名称,包括文件名(图像、网格等)、网格中使用的名称(附件点、纹理)以及列表中使用的标签(例如,附加轨道容器中的轨道列表)。
某些名称或标签有特定的大小写要求,例如网格容器中默认网格的“default”。这些标签应严格按照文档使用。在其他地方,需要特定的大小写,例如在“string-table”容器中使用的标签,这些标签必须全部小写。但许多其他标签,尤其是文件名,完全由内容创建者决定。但很难判断何时大小写很重要,何时不重要。否则看起来很神秘的错误可能是由于大小写不同的名称不匹配造成的(尤其是在提交资源更改了某些标签的大小写时)。
一个好的规则是将所有内容都设为小写 - 避免使用任何大写字母。这与 Trainz 的一般标准一致,也减少了 Windows 资源管理器使用自己的规则调整文件名以供显示而产生的问题。
如果你遇到 CM 说某些内容不存在或已经存在而你找不到错误原因的错误,请仔细检查正在使用的大小写 - 它可能是大小写重要的那些情况之一。
注意:脚本有自己的规则。特别地,对象和方法必须使用文档中记录的确切大小写,并且,根据上下文,大小写不同的标签是不同的标签。
一对一替换列表
[edit | edit source]- 发动机规格 <kuid:35837:51002> 可以替换为 <kuid:44090:51016>
内容管理器警告信息
[edit | edit source]- 以及如何处理它们...
内容管理器在提交资源时会验证资源,还包括一个选项来显示任何已安装资源的错误和警告。以下是 CM 在验证资源时将显示的一些错误消息及其简要说明。此列表基于 CM v3.7,但也包括一些仅由 N3V 上传验证过程生成的错误。
此列表中的符号 <text> 表示该文本根据资源的详细信息而有所不同。
警告:Trainz 目前无法验证别名网格。
[edit | edit source]此资源中使用的一个或多个网格未包含在该资源中,但包含在从该资源引用的另一个资源中。这种引用被称为别名,另一个资源被称为别名资源。别名通常用于创建与现有资源仅在用于渲染模型的图像方面不同的新资源 - 这有时被称为为资源重新贴皮。它被广泛用于火车车厢,以及路标等资源,其中一个网格与许多不同的图像一起使用。它也用于通过以不同的方式组合几个标准网格来创建资源,例如与接触线。别名也被 Trainz UTC-TRS2004 时代的实用程序 Paintshed 使用。
对于 T:ANE 之前的版本,CM 在验证此资源的过程中不会验证别名资源,因此无法确认此资源没有错误。即使此资源被列为可用,它也可能在游戏中无法正常工作,因为包含所需网格的别名资源可能存在故障,或者该网格可能实际上并不存在于该资源中。在大多数情况下,资源是正常的:警告并不意味着使用资源会遇到问题。警告有时会被误解为错误,因为它经常出现在看起来没有错误但不会在游戏中显示的火车车厢中。
与网格相关的其他配置项,例如附件点,如果网格在别名资源中,也不会被验证。
从构建号 2.9 开始,一种替代的别名形式可用。从该构建号开始,可以在网格表容器中使用“mesh-asset”标签来引用另一个资源中的网格。在这种情况下,CM 也应该发出上述警告,但(对于 T:ANE 之前的版本)它并没有发出。因此,使用“mesh-asset”标签的资源可能在游戏中无法正常工作,因为别名资源存在故障或丢失,但 CM 中没有警告。
对于高于 3.8 的构建号,只支持“mesh-asset”类型的别名,而在 T:ANE CM 中,会验证别名网格,因此不会出现此警告。
- 修复
- 可以通过将网格表中的顶级“alias”标签更改为“mesh-asset”标签来抑制警告,注意使用相同的 kuid。但是,这并不会改变别名网格没有被验证的事实 - 它只是阻止警告出现。最好保持资源现状,这样警告就会出现。
- 如果显示此警告的资源未在游戏中出现,则别名资源是首先要查找问题的地方。
警告:缺少必需的标签“<tag name>”并已将其设置为默认值。
[edit | edit source]应将该标签添加到 config.txt 中,并使用适当的值。
- 来自故意滥用缩略图容器的示例
- 警告:缺少必需的标签“height”并已将其设置为默认值。
- 警告:缺少必需的标签“width”并已将其设置为默认值。
导致这些错误的源代码行(测试是否可以将其“全部放在一行”)
thumbnails { A { image "$screenshot (256).jpg" } }
(答案是“是”,但显示的空格是必要的。)
在某些情况下,此警告实际上是一个错误,因为默认值对于该标签无效。当这种情况发生时,会立即显示一条错误消息,指示该值无效。添加带有正确值的标签将消除警告和错误。
警告:此资源使用过时的 trainz 构建号。
[edit | edit source]警告:此资源使用过时的 trainz 构建号。低于 <build number> 的 trainz 构建号不再受支持
应用于资源的验证测试取决于资源的构建号。此消息表明资源被认为已过时,因此没有应用最新标准。
此消息是一个警告 - 资源仍然可以正常工作(除非存在错误)。可以通过更改构建号来消除警告,但这可能会在根据较新的构建标准验证资源时创建新的错误。只有在准备进行更新资源到更高构建号所需的所有其他更改时,才应更改构建号以消除此错误。
警告:容器“<container name>”中的标签“<tag name>”已过时。
[edit | edit source]该标签不再受支持,将被忽略。该标签可能在较低的构建号中相关,但在当前的构建号中不再适用。
标签功能可能已被容器或其他标签替换,例如 'category-era-nn' 标签被更简单的 字符串数组 标签 'category-era' 替换,类似地,'category-region' 字符串数组 标签替换了多个 'category-region-NN' 标签。
查看 容器规范 (在 N3V Wiki 中或此处)以确定标签是否已被替换。如果有可用的替换,请选择与废弃项中值对应的标签值。如果对应值不清楚,请接受默认值。在大多数情况下,标签可以简单地删除。
当容器中使用无效标签时,可能会发生此错误,并且验证系统假设标签值必须引用文件。例如,容器 'sound' 只能包含一个标签 - 'soundfile' - 并且标签的值必须是文件名。如果包含了不同的标签,则验证过程不会报告无效标签错误,而是假设标签值引用文件,并创建此警告。解决方法是删除标签和值。
应将缩略图容器添加到 config.txt 中。
对于从 3.5 版本开始的 DLS 上传,这是一个错误,上传将被拒绝。请参阅错误列表中的对应项目。
应为资产创建阴影网格并更新网格表。
在 3.8 版及以上版本中不再需要阴影网格。但是,如果网格表中列出了阴影网格,则网格必须存在,并且缺少的网格将被报告为错误。将主网格指定为阴影网格是有效的。
不应将统一纹理用于新资产,但对于需要更改网格的旧资产,应将纹理调整为 4x4,或至少将一个像素更改为不同的颜色(即使差异很小)。大的统一纹理会浪费资源:不要调整图像颜色以避免警告,而无需将其调整为合适的较小尺寸 - 16x16 或更小。
据报道,如果图像小于 64x64,则不会生成此警告,但这在 61388 版本中似乎并非如此。单个像素差异足以消除警告。
texture-kuid 标签被一些容器(例如,电晕效果容器)用于引用纹理名称。如果使用它,则应指定纹理名称。
此错误通常发生在纹理由脚本代码控制的资产中。在这种情况下,可以为标签指定任何纹理,因为脚本将在执行后立即更新它。
警告:Trainz 不再支持渐进网格。虽然这些网格可能在 Trainz 中起作用,但建议您切换到 LOD 网格。警告:Trainz 不再支持渐进网格。虽然这些网格可能在 Trainz 中起作用,但建议您切换到 IM 网格。(直到 2008 年发布 TC3 引入了 LOD 技术。)
可以使用 PEVtools 实用程序 PM2IM.exe 将渐进网格 (.pm) 转换为单个 索引网格 (.im)。
- 没有可用的工具可以将渐进网格文件转换为多 LOD .lm 文件 格式,该格式详细说明了多个网格如何基于距离视点缩放成视图。这种转换将通过手动复制模型并简化模型来创建多个版本来完成 - 通常是两个到四个网格,其多边形越来越少。对于修复的资产,无法进行此操作,因为没有可用的网格原始模型。
警告:从 trainz-build 3.8 开始,索引网格不再支持火车车厢。建议您将 <mesh-name.im> 升级到 LOD 网格。
对于构建级别为 3.8 或更高的 火车车厢,网格必须设置为 LOD 网格,否则将不被接受上传。LOD 网格在 Trainz TRS2004(于 2003 年首次发布)中引入,由多个索引网格组成,这些网格在物体查看距离增加时使用更少的多边形。这有助于减轻主 CPU 的处理负载,并将负载转移到 GPU (GPU) 上。此要求不适用于构建级别较低的 火车车厢,但对于构建级别为 2.9 及以上的任何资产,它都是一项推荐的升级。
如果资产是构建级别为 3.8(Trainz MAC-II 和 TANE)或更高的火车车厢,并且没有 LOD 网格,则此警告将成为错误。
- 示例
- "警告:'US ' 不是标签 'category-region' 的有效值。此标签现在为空,必须选择新的值。"
警告:'US '
和 删除标签值末尾的空格。这个额外的空格在一些编辑器中不可见,它解释了一些本来很神秘的错误。- 注意:任何字符串值字段中的尾随空格在 Trainz 中是非法的,并且通常会显示上面的消息。
标签被定义为需要布尔值,但提供了一些其他值。布尔值表示 '0'(false)或 '1'(true)。使用任何其他整数值会导致此错误消息。在一些较旧的资产中,已观察到 2 到 7 的整数值。可以合理地假设除 0 以外的任何值都表示 'true'。
- 修复 将标签的值更改为 0 或 1,具体取决于资产。
- 请注意,在某些情况下,此消息实际上表明标签的定义错误 - 内容创建者已遵循正确的规则,但验证使用的是不同的规则。一个例子是在 Trainz 的某些版本中的不透明度标签。在这种情况下,正确的类型是“值”(从 0.0 到 1.0 的浮点数),而不是“布尔值”。要消除错误,可以在 安装根目录\bin\TETData 文件夹中的 container.txt 文件中重新定义“不透明度”标签的类型。仔细检查该文件的内容应该表明所需的更改,即使内容乍看之下没有多大意义。
获取资产意味着在旧内容中经历一系列错误,这些错误通常可以通过一系列简单的编辑更改和 PEVtools 来修复。这是一份指南,教你如何做到这一点,以及为什么会出现这种或那种错误。 AssetX 和 TARDIS 脚本可用于自动修复其中许多错误。
- 请参阅 设置 PEVtools,了解一些有用的技巧和方法。
该资产的 Trainz 版本号标签 (TB、TBV) 值 对于您的 Content Manager 版本来说过高。
- 如果您收到此消息,则可能意味着您拥有 Trainz 的多个许可副本,因为如果没有同时拥有旧版本和新版本,这种情况不应该发生,并且您将无权访问高于与零售版本相关的最高 TBV 的内容。
|
几乎所有具有更高 TBV 的内容都可以通过将版本号降低以匹配您的版本来使用,除非使用了仅在更高版本中可用的功能(包括一些脚本功能)。对于我们这些运行多个 Trainz 版本的人来说,此消息变得越来越常见,因为 DLS 软件并不总是正确(并且可能根本没有在 TS09、TS10 和 TS12 中检查 TBV - 这些版本都获得了几个更高的三和一小部分 V4.0+ TBV 作为升级下载。[注释 1] DLS 绝对变得更加积极地将最新版本转发到请求资产的 CM。即使 CMP 也下载了 V3.7 资产,而我没有期望如此慷慨。)在解释下载到哪个版本时,尤其是在运行多个 CM 时进行交叉下载时。[注释 2]
当此类更新的资产或版本使用旧 Trainz 数据模型中找不到的标签或容器时,需要进一步调整以删除不支持的标签。
此类错误将由 CM 明确标记,通常包含多行错误,提及多个纹理和 texture.txt 文件。在许多情况下,修复方法是删除有问题的行,依靠默认值来使用。当使用 样条线对象(长资产)将版本号降低到低于 2.9 时,此过程会变得更加困难,因为许多标签在该版本中发生了更改。对于对象(类型风景 和相关类型)而言,在没有纹理问题的情况下,将 Trainz 版本值回滚到高于 v1.5 的任何值通常都很容易,因为用于这些对象和大多数 类型火车车厢 数据结构的数据模型在 TBV 1.5 和 v2.0(分别为 UTC 和 TR04)中变得稳定。
|
- 在许多情况下,降低版本号也会影响 texture.txt 文件,需要从这些文件中删除不支持的标签。
原因
发生这种情况是因为 PEV 的 Images2TGA 是在假设内容创建者或 Trainzer 正在尝试“升级资产”的情况下编写的。预期设计是,一个人正在尝试将资产转换为更高的 TBV。
- 由于 TRS 时代的 CMP 在遇到已编译的 纹理文件(例如,文件名类似于feature.texture 的 Trainz 压缩数据形式)时会报错,因此 Images2TGA 必须运行以提取可编辑的 texture.txt 文件 及其相关各种图形数据文件(例如 BMP、TGA、JPG 等)以供旧的 Trainz 版本使用。
TANE 仅以 .texture 文件形式打开要编辑的文件;因此,Images2TGA 是 PEV 自 2014 年底 TANE-CE 过早发布以来工具的第一次也是唯一的一次更新。如果要进行更改(例如修复),则只需获取文件的可编辑版本。
- 将资产向后移植到 TRS 时最常见的问题是 Images2TGA 输出的 texture.txt 文件中的AlphaHint= 'something' 行。
修复方法很简单,只需注释掉 AlphaHint= 'something' 行即可,方法是将该行变为注释前缀:在该行的开头添加'// '
(一个所谓的 Hack-hack 注释行分隔符),该行中之后的所有内容都会被忽略在许多软件文件中,包括 texture.txt 文件。
• 它曾经在 Trainz 的 config.txt 文件中也能使用,但程序员在 TS09 中变得懒惰,配置中的注释不再存在。
• 这可能会影响单个资产中的数十个 texture.txt 文件。例如,考虑一个“numberit”脚本化的机车 - 每位数字 0-9 都有四个 TGA 纹理,其中四分之一(或者可能是一半)会有 AlphaHint 标签!
- 通常,最简单的“修复”方法是删除资产并使用早期版本,如果可用,该版本具有合适的版本号。有些人认为,2015 年 8 月实施的 DLS 下载程序变更使得下载资产的特定版本变得更加容易,并且不太可能下载版本不合适的资产。对于 TANE 用户来说,这确实是事实,但此更改对旧 CM 的影响是,DLS 有时会提供比请求或需要的版本更高级的 kuid/cdp,因此我们看到了更多导致打开本节主题的错误。('错误:此资产的 Trainz 版本号未被此工具识别。')
- 此外,这些自动 DLS 控制不适用于第三方网站,也不适用于从 DLS 网页手动通过 FTP 下载资产,因此在使用这些网站时,可能需要格外注意以确保只下载了合适的版本并将其集成到您的安装中。
- 哎,罗马人从未有过零!
正如它仍然会困扰并困扰着最愤世嫉俗且经验丰富的资产修复者... 真的,真的,非常有可能的第一个原因,是缺少分隔符。
- 用简单的英语来说,您是否在某个地方缺少
'"'
或'}'
字符?
|
资产 config.txt 和 texture.txt 文件也是代码,并且语法不仅需要精确,而且需要强制执行。 我们称它们为错误。 事实上,它们几乎总是人为错误。 使用像 Notepad++ 这样的优秀的程序员编辑器,您可以在引号之间来回切换(F3 和 SHFT+F3,单手即可完成向下搜索或向上搜索!),以及突出显示配对括号、方括号和圆括号的功能,可以真正加快此类错误的查找速度。
现实世界的例子:(这些都是在我忘记添加的 缩略图容器 的内部“}”时看到的!)
- 错误:标签“author”在“thumbnails”类型的容器内不允许使用。
- 错误:标签“organisation”在“thumbnails”类型的容器内不允许使用。
- 错误:标签“contact-email”在“thumbnails”类型的容器内不允许使用。
- 错误:标签“contact-website”在“thumbnails”类型的容器内不允许使用。
- 错误:标签“license”在“thumbnails”类型的容器内不允许使用。[脚注 4]
如果标点符号和语法问题没有导致 CM 在尝试理解这些不平衡的分隔符时出现数据配对异常,那么这些错误通常是由以前有用但现在是非法标签引起的,这些标签包含在其他地方定义的值,或者作为要解释为文档或信息的行……以前合法的注释(见下文),现在应该删除或放入描述容器中。 或者,如果它们是带引号的字符串,则可以将它们保留为带引号的字符串对,但移动到 字符串表容器 中。 有时候情况正好相反,一个“未来标签”被带回 Trainz 的早期版本,其 Trainz-build(技术级别!)值低于来源。 第三种情况与第二种情况相反,但只是因为在每种情况下,某些东西都处于不合适的时间和地点(以及 TBV 级别)。 也就是说,如果高级数据标签被带入早期技术级别的错误检查,则可能会出现相同的引号。 容易看到。 将 Trainz-build 标签值降低至少 0.5,然后观察错误消息的变化。 如果您必须编辑内置资产,经常看到的一件事是,它们在生产期间被存档,并全局更改了 TBV,因此在打开标签多年后,它们会突然显示为非法。 有趣!哈哈! 将 TBV 降低到 2.3--2.5,并确保它具有 mesh_table 和缩略图容器,大多数较旧的资产可以正常转换,直到 TANE 的 V4.2 更新。
了解 Trainz 数据应该始终被视为标签(关键字)和配对值(数据)。 即使是 Trainz 的 容器数据类型 也是如此,因此外部大括号定义了值的边界,可以这么说。 同样,当被视为值的数组时,存储在像 类别-时代、类别-关键字 和 类别-地区 这样的字符串中的值,即使对我们人类来说是多个值的物体,也可以被解释为单个配对值……只是软件期望包含多个子值的那些值,可以这么说。 最后,这一切都取决于计算机如何解包和利用数据。 配对术语,即使是具有明确枚举关键字的复合术语,也不可能与其他事物混淆,这是一种构建收集的组织数据的非常安全的方式,这些数据必须作为一辆以每小时 70 英里的速度在城市后街行驶的火车迅速运行和解释![脚注 5]
“看似相反地”,将资产降级到早期 Trainz-build 标签值会直接更改错误检查,因此也可能会给出这样的消息。 当然,您实际上可能是将资产带到 Trainz 的早期版本(我们中有些人这样做),这将大大提高您看到此类消息中引用的“新标签或容器名称”的几率。 以下两个错误是通过将“新模型”[脚注 6] 轨道资产从原始的 V3.5 或 V3.6 降级到 TBV 2.9 时单独生成的。
- 错误:标签“follows-spline-gradient”在“track”类型的容器内不允许使用。[脚注 7]
- 错误:标签“attached-splines”在“track”类型的容器内不允许使用。 事实上,附加样条线容器 是一个聚合值“子类型”或修饰符,它将建模软件扩展到另一个子例程以解释其值。 它非常类似于 kind SceneryWithTrack 的 轨道容器(“附加轨道容器”),它包含允许两种“kind”混合特征的指令,使工业、平交道和码头等资产能够实现其功能。
- 容器中可能出现在此类错误消息中的所有标签都是
- lateral-offset、use-same-direction、spline-kuid <...>、visual-only、follows-spline-gradient、start-gap 和 end gap},除了引用的 KUID 之外,它们都是布尔值参数,默认值为 0(False)。
这些错误消息的底线是软件功能和 Trainz-build 级别可能不同步。 TBV 值标识了某些功能何时被添加到 kind 和容器的调色板中。 在早期版本中引用此类标签将导致此类消息。
以下实际错误消息:通常会“作为一组”重复出现,一大堆使用别名标签 来引用外部网格的 Paintshed 标记重新涂装汽车。
- 此组源于直到 TS09 版本及其更严格的错误测试[脚注 8] 之前盛行的松散数据定义和处理。 在那之前,任何以字母 字符 开头的行开头标记(可能合法地评估为可能的关键字)(例如 height-below、width-of-interior 等)都可以与带引号的字符串配对,如果标记不是关键字,则会被忽略。 此外,如果行以标点符号(“;”和“/”很常见)开头,则该行到行尾代码会被视为单个值,在这两种情况下,Trainz 也会忽略该行。 关键字“REM”来自 BASIC 语言,虽然从未正式使用,但被广泛用于对整个带引号的文本段落进行前缀。 因此,直到 TS09 之前,CC(作者)才能够嵌入自己的备选值以供测试,或者允许用户使用相同的网格将配置文件定制为完全不同的外观,或者在应用资产时嵌入指令,如果使用脚本,几乎总是需要类似的内容。
- “(容器类型“traincar”)”消息可能会或可能不会出现,具体取决于解析配置文件并验证内容错误的 Content Manager 版本。 这些示例故障消息来自TS2009-SP2 的 CM-2.0 验证测试。
- 错误:标签“capacity:”在此容器内不允许使用。(容器类型“traincar”)
- 错误:标签“height:”在此容器内不允许使用。(容器类型“traincar”)
- 错误:标签“length:”在此容器内不允许使用。(容器类型“traincar”)
- 错误:标签“weight:”在此容器内不允许使用。(容器类型“traincar”)
- 错误:标签“wheelbase:”在此容器内不允许使用。(容器类型“traincar”)
- 错误:标签“width:”在此容器内不允许使用。(容器类型“traincar”)
一般修复方法是确定问题的开始,搜索(SAR 或 FIND,通常在大多数编辑器中为 **CTRL+F,向下重复搜索使用 **F3)双引号( " ),并用单引号、空格或空替换。当最后一个错误消息行被传递后,选择并拖动以使用 **CTRL-X 突出显示所有内容,目的是将现在已去除的线条移至 **description** 容器中。将移动的剪切缓冲区(行)粘贴到描述的双引号内,进行复制编辑,保存并重新测试。
使用 **string-table 容器** 的另一种修复方法保留了传统方法的历史记录,前提是 Trainz 版本高于 V2.3 —这只需将所有有问题的过时标签一起重新定位到后续行上,添加标签 string-table 以及它的花括号“{”和“}”。这之所以有效是因为 string-table 是每个有效 **Kinds** 中的合法容器。
- 在验证错误时留在配置文件内是一个好习惯!
- 使用 **CTRL+S(在大多数编辑器中)保存更改,然后 **ALT+Tab ↹ 或 **⇧ Shift+ALT+Tab ↹ 将内容管理器窗口恢复为焦点应用程序。
- RMBh+drag 以 **查看错误和警告** 并重新测试资产。
- 通常,在修复了某些其他故障(通常是路径修复)后,会显示其他故障。
- 注意:路径修复是针对旧(v2.6 之前)资产最常见的修复需求,因为在 trainz 版本 v2.9 之前,所有版本都可以基于 **asset-filename** 标签的分配值,以及 '_art'、'_body' 和 '_shadow' 等后缀,正确地在原始数据模型文件夹中找到资产组件。N3V 的程序员从 v2.9(**TS2009-SP0**)及更高版本开始删除了使这些可预测链接自动生成的代码片段 — 强制在即使是简单的资产中也使用 显式路径 和容器。最常见的需要是 **thumbnails**、**mesh-table** 和 **bogeys container**;创建了许多计算机处理程序代码创建的故障,以及其他可预防的故障生成消息。
- 强烈建议,如果您要修复需要添加这些容器的故障,还应将trainz-build提升至v2.6并消除该TBv下的所有警告。此类修复在TS12中始终有效。
案例 I
- '错误:标签 '?' 不允许出现在类型为 'engine' 的容器内。'
- '错误:标签 '?' 不允许出现在类型为 'bogey' 的容器内。'
- 这条神秘的信息,常见于老旧内容,并非因为'?'(?,搜索'?' 在 config.txt 文件中不会找到任何内容!)而是因为gmax遗留的字符,通常出现在配置的第二行——不可打印字符(在大多数文本编辑器中用下划线(___)表示),由对文件的先前处理插入,作者保留(并被 Trainz 的早期版本忽略)。
修复:参考右侧图像的文本:这很可能是第二行上的两个不可打印字符,应将其删除。
案例 II:例如,它可能是一个简单的拼写错误
- '错误:标签 'discription' 不允许出现在类型为... 的容器内'
因此,将拼写更正为 'description'。
|
案例 III,不再在规范中的标签
- '错误:标签 'origin' 不允许出现在此容器内。'
说明
- 此标签在较旧的版本中是正确的,但在当前版本中不允许。
修复:删除该行。(请查阅《维基百科》中记录的已弃用配置标签列表此处。这些是最常见的情况(风景和路边物体发生了很多变化:其他容器、KIND 和子容器自 V2.8 以来(Trainz Classics 3)以来数据模型变化较少)。
- 这种情况与上述情况相反:新标签在旧版本中找不到!
此错误是不同版本 Trainz 发布的验证规则不一致的结果。
例如
- 错误:标签 'engine-sound-ramp-up-durations' 不允许出现在类型为 'enginesound' 的容器内。
- 错误:标签 'engine-sound-ramp-down-durations' 不允许出现在类型为 'enginesound' 的容器内。
这些错误信息在导入 TS09、TS10 和 TS12 中都会出现。 解决此问题的关键是仔细阅读,并查看参考页面的历史记录。
- 这两个都是新标签和参数,以前由一种通用的默认实现来满足,但“用户 Auran”(一个 Trainz ID 为“-25”,其粗心大意对 N3V 的 TS09-TS12 版本进行了许多导致资产出现问题的升级。)没有更新trainz-build(让 TB 默认值为 v1.3!),同时将不合适的关键字(标签)添加到 TS09-TS12 版本中内置功能中缺少的资产中。
- 因此,由于没有 trainz-build 标签,每个版本中都会出现此错误。
解决方案
- TS12 的配置通过添加 trainz-build 3.6 得以修复。
- TS09 和 TS10 的配置通过添加 trainz-build 2.3,并将两行标签(包含逗号分隔的浮点数的数组参数)移到描述数据中……实际上是删除了这两行。
子容器标识不正确。
某些子容器需要类型标识,而类型指示哪些标签有效。一个例子是网格表中的 Effects 子容器。Effects 子容器的类型由 'kind' 标签定义,可以是 'animation'、'attachment'、'corona'、'name' 或 'texture-replacement'。如果使用了错误的类型,或者子容器中缺少 'kind' 标签,那么原本在子容器中有效的标签可能会被标记为“不允许”。此错误通常会在子容器中创建一系列额外的错误信息。修复方法是确保已指定正确的类型,并且子容器中使用的标签适用于该类型。
另一个类似的例子是烟雾容器——烟雾容器的类型由 'mode' 标签的值定义,而该标签值决定了哪些其他标签是必需的,或者哪些标签对该容器有效。
- 真实示例
- 错误:'1' 中的标签 'image' 必须具有图像文件扩展名。
- 错误:'c' 中的标签 'image' 必须具有图像文件扩展名。
- 对于某些容器,图像标签必须具有可以解析为图像文件的值,而无需使用 texture.txt 文件提供引用。预期的图像文件可能是纹理文件,也可能是具有 bmp、tga 或 jpg 扩展名的图像文件。如果它是纹理文件,则应将纹理转换为图像并更新标签。
此错误可能是由简单的拼写错误或缺少文件名造成的。或者,该值可能是在 texture.txt 文件中引用而不是图像文件本身(无论是否需要图像,还是 texture.txt 文件是否可接受,取决于标签出现的容器)。
BAD image "filepathspec\filename.texture.txt" OK image "filepathspec\filename.texture" GOOD image "filepathspec\filename.tga"
请注意,此错误可能会与其他错误一起出现,这些错误与无法找到或加载图像文件有关。
- 错误
- 由于文件访问错误,无法提交对资源 <kuid:-25:6> 的更改
出现此错误的最可能原因是 Trainz 正在运行,并且正在编辑的资源在路线中“正在使用”。路线中使用的大多数资源在路线加载时加载一次。这些资源可以在游戏运行时编辑。但某些资源,例如某些脚本资源、声音和区域,会从数据库中重复访问。这些资源在游戏中路线“正在使用”时无法编辑。关闭 Trainz 并重复保存。
此错误也可能是由机器速度较慢或内存不足,以及大型下载造成的。曾经有一次,这种情况出现了六次,计算机是一台 10 年前的双核笔记本电脑,六条消息显示了要编辑的开放资源。在 CM 主视图中查看下载列表后,每个资源都成功验证并手动提交。
解决方案
- 关闭其他应用程序或停止任何 CPU 或内存密集型活动,然后重试。如果问题发生在多个资源上并且无法清除,则数据库可能已损坏。
- 示例:错误:文件名“$hirsch-tga_converted (512^2).jpg”包含非法字符
- 解决方案
- 通过编辑引用和文件名来删除有问题的“^”字符——此字符在文件名中不允许。请注意,即使文件名对您的操作系统有效,也可能被 Trainz 标记为无效——这是因为 Trainz 被设计为在多个平台上运行。
- 这三个错误经常一起出现
- 这些消息是在资源升级到 V2.9 及更高版本(TS09 Trainz 及其后续版本)后出现的.
- 错误:容器“scenery”中的标签“region”已过时。
- 错误:容器“scenery”中的标签“type”已过时。
- 错误:容器“scenery”中的标签“asset-filename”已过时。
如果 trainz-build 标签 小于 V2.9,则这三个已弃用标签将显示警告信息。可以通过从 config.txt 中删除标签来使资源符合规范。
当 CM 对正在编辑或未编辑的内容感到困惑时,可能会出现一条罕见的消息。可能是由于打开了 CM 的多个副本,或手动移动了编辑文件夹或子文件夹造成的。
- [[Trainz/Unable to read config file for asset at <location>|无法读取位于“<location>”的资源的配置文件]]
无法找到或读取 config.txt 文件。
1. 这可能表明资源已损坏,或不存在于预期位置。如果资源被删除,但缓存未更新,则可能会发生这种情况。应从备份源还原资源,或将其还原。
2. 此错误可能是由于配置文件中缺少关键信息造成的。例如,如果未找到“kuid”标签,则会报告此错误消息,即使实际错误应该是“配置文件无效”。请检查是否包含所有必需的标签,并确保拼写正确。
- 资源的版本或“版本号”作为必需的条目包含在每个 Trainz 项目中,作为资源 config.txt 文件 中的 trainz-build 标签。
|
- 原因
- 当您导入的资源的 trainz-build 标签的值高于 Trainz 版本支持的版本号(支持的数据模型或技术级别)时,会发生此错误。
作为必填数据字段,trainz-build 号码向游戏定义了创建资源的技术标准。它还定义了 Content Manager 在对本地数据库进行验证和添加操作时验证资源的标准。这使游戏能够根据适当的技术标准验证资源,并在需要时插入默认值或忽略功能。它是保持 Trainz 版本之间兼容性的秘密,也是(例如)Trainz 1.3 资源仍然可以在新路线和会话内容中使用的理由。
通常,可以通过调整版本号来降级资源使其在更早版本的 Trainz 中使用,但存在限制。脚本是版本之间变化很大的一个方面,如果版本号降低,可能会导致问题。因此,将资源从(例如)3.3 降级到 2.9 可能需要删除或禁用脚本。此外,构建级别之间的技术标准之间存在一些不一致。例如,版本 3.5 允许在 Soundscript 容器中使用单个值来表示 Distance 标签(如同 2.9 之前的标准),但版本 3.3 要求包含两个值。这些更改通常很容易在资源中进行调整。
网格、纹理、kuid 引用和其他类似的资源基本元素通常可以在 2.9 及其之后的所有版本中正常工作。对于 2.9 之前的版本,所需调整将更加广泛。
- 只有现在由 kind 轨道、地图和会话资源建模的基于样条线的资源,以及那些包含需要在先前版本中不存在的脚本功能的脚本要求的资源,会阻止将资源降级到 N3V 时代数据模型(TS09 及更高版本)。大多数资源可以通过简单地将 trainz-build 更改为 CM 或更早版本的版本号,以及可能补偿(TS09—TS12 到 TRS 的需要删除纹理文件行,以便他们可以使用默认模式,因为 TS09 及更高版本允许在他们的改进的图形处理过程中对这些模式进行更精细的控制。)texture.txt 文件 中任何次要命令更改来正常工作。
网格可能存在技术错误。 或者,TANE 在导入 cdp[注释 9] 文件时可能存在问题。
- 从技术上讲,它应该意味着:... 一个或多个顶点坐标不是数字,或者距离模型原点超过 5 公里。
- 当出现真实错误时,无法在没有访问网格源文件的情况下修复此问题,您必须联系资产的作者。 问题必须反馈给内容创作者。
- 块号提供了一个指示,表明错误发生在网格的哪个部分。
- 此错误在 TANE 中的一些使用大型网格的资产中出现,即使网格本身有效。 TANE 无法处理在 TS12 中可接受的网格大小。
无法加载网格文件。 可能在 config.txt 中拼写错误,可能丢失,可能格式错误,或者可能已损坏且无法读取。
|
- 修复这些问题的步骤
- 运行 PM2IM 并查看是否生成了一个 IM 文件,或者 Pevs Tool 生成了类似的错误。
这可以通过 Trainz 内容管理器中的 RMBh 菜单启动使用打开 PM2IM,或者通过在 \editing 文件夹中安装 PM2IM.BAT 的副本并将其拖放到 bat 文件上完成。- 如果是后者,请在论坛上寻求建议和帮助。
- 如果是前者,请手动编辑网格路径以使其正确,如下所示。
- 首先,确保您也检查并更新文件扩展名到 .IM!
- 如果生成了具有相同名称的 IM 文件,请检查资产的 网格表容器 中的文件夹/路径规格条目,并验证 PATH(许多旧的资产都有一个“asset-name” + '_body' 子文件夹,它是直到 TRS2006 中期版本才使用的约定,因此很可能出现在任何 v1.3-v2.4 资产中)和 文件名规格(包括扩展名)是否正确。
- 在这些旧的资产中,如果路径规格正确,则很可能没有安装网格表。 添加一个(至少在 v2.0 之后)将被所有 Trainz 接受(毫不奇怪,因为它是由 TRS2004 引入的标准),并且通常被 N3V 的 TS09-TS12 版本中的较差解析所要求。
- 大多数将位于一个子文件夹中,以 '_body' 结尾。
有用的省时小技巧:当您在 ..\editing\asset-folder 中时,单击 子文件夹,然后使用键盘序列F2+CTRL-A+CTRL-C,(然后 ESC) 来捕获子文件夹名称的精确语法(并且不要更改任何内容)。 - 然后将它粘贴到 网格表 路径的前端:"subfolder-name_captured\mesh_filename.IM"。
- 示例网格表样板(调整 路径规格 和 文件名 以匹配您的文件夹内容)
mesh-table { default { mesh "traincar-body.im" auto-create 1 } shadow { mesh "shadow.im" } } Alternatively, default { mesh "Subfoldername_body\traincar-body.im" ...
|
- 示例
错误:在 'queues\passengers_off_0\attachment-points' 中未找到附件点 18 (a.passoff)。 错误:在 'queues\passengers_on_1\attachment-points' 中未找到附件点 61 (a.passoff112)。
此错误可能有多种原因
- 附件点名称错误,因此网格和列出数据点的容器不匹配。
- 附件点名称后面包含一个或多个额外的尾随空格。
- 缺少附件点,因此网格和列出数据点的容器再次不匹配。
对“数字名称”的解释:网格中列出的第十九个附件点,名为“18”,队列容器 在子容器 passengers_off_0 中丢失。(“18”是 占位符参数 引用 - 一个用作名称或标签的数字……可以重命名为 'xyz', 'glops' 或者任何没有空格的名称,只要它出现在容器(数据表)的第 19 行上即可。)
• 作为占位符参数,数字被解释为字符串,没有权重或值,就像标签名称一样。
• 重要的是在{...} 对中存在某些内容,其内部行也期望关键字(或占位符)与值配对,正如 Trainz 中普遍存在的做法。
• 请考虑 配对的 { ... } 大括号 的内容与前面的 种类 或 容器名称 配对。
- 有三种可能的常见修复方法……
- 可以使用 PEVsoft 工具 Attachment Maker 向平台添加一个名为“a.passoff_##'”的附件点,如果它确实丢失了。(这在较旧的“乘客产品”资产中是一个相当普遍的情况。)
- 但是,根据名称“a.passoff”,这一行可能缺少数字后缀 - 没有人会浪费时间给火车站上的通用附件点(可能有数百个)一个花哨的名称 -这些通常以数字后缀命名;因此,该消息可能是因为容器名称缺少其数字后缀而发出的,并且由于占位符序列是
00 → a.passoff01,
01 → a.passoff02,
02 → a.passoff03, ...因此,在条目##-1 → a.passoff##
X,添加正确的后缀“##+1'”,
因此,在给定的示例中,将 19 添加到 #18 占位符的行应该可以解决问题。 - 如果重命名失败,则可以删除该行。如果是这样,产品 队列容器 中的“大小”标签数字应该递减,以正确初始化数组的大小并节省运行时内存。
|
在 config.txt 中引用了附件点,但它在默认网格 <mesh name> 中不存在。这通常发生在从其他资产复制 config.txt 时,并且从网格中删除了附件。例如,一个道口闸门从网格中删除了灯附件,但灯的电晕效果仍然引用了丢失的附件点。
示例(以及相关的伴随错误)
- 错误:附件点“a.lite121”在“133”中必须在网格中找到 ''.
- 错误:附件点“a.lite121”必须属于效果的父网格(网格=malt.IM)。
该错误也可能由于附件点的命名错误(有时由于名称末尾有空格)而发生。
效果容器通常是一系列类似的项目,这些项目构成模型并需要某种形式的单独处理。例如,建筑物中的“背光”窗户、火车车辆上的灯、站台上的乘客以及“树组”中的树。这些效果需要父网格上的附件点,以便在模型中定位效果。
解决方案:如果问题是打字错误,则更正效果容器中附件点的命名。如果找不到正确的附件点,或者效果不再与资产相关,则删除容器。
|
这通常与之前的消息一起发生。不仅在网格中找不到附件点,而且在效果附加到的父网格中也找不到它。它发生的原因与前一条消息相同。
容器(子容器)将在网格表中。该消息表明容器缺少所需的 att-parent 标签,以指示容器中引用的网格附加到的父网格。当父网格是别名时,就会发生这种情况——在这种情况下,CM 需要明确指定父网格。
- 解决方案
- 查看别名网格的 config.txt 文件,以确定网格之间的关系,并将“att-parent”标签和父网格名称添加到网格容器中。
示例: 错误:纹理文件“engine_black.texture.txt”包含非 ANSI 字符。纹理必须是 ANSI。
纹理名称应该只包含 ANSI 字符。此规则在过去并没有严格执行,因此,从 DLS 下载的一些资产的纹理文件名中可能包含非 ANSI 字符。如果随后编辑资产,这些字符会导致问题。非 ANSI 字符的示例包括 À 或 è。文件名也可能包含不可见的非显示字符。
1. 使用 AssetX 检查网格中的纹理名称。确保纹理文件名与网格中的纹理名称完全匹配。
2. 如果网格中的纹理名称包含非 ANSI 字符,则需要使用二进制文件编辑器编辑网格,例如将 è 更改为 e。然后调整纹理文件名以匹配。通常,需要在 texture.txt 文件内容和图像文件名中进行相同的更改。
网格文件中使用的纹理名称找不到,或者无法加载。应该创建具有适当关联图像文件的有效 texture.txt 文件。可以在用户数据文件夹中搜索相同名称的纹理,该纹理可能适合或可能不适合资产。也可以创建新的 texture.txt 文件和任意图像——这可能揭示图像需要是什么,或者可能揭示纹理无关紧要,任何图像都可以用来消除错误。
如果缺少的文件是“digit_xx.texture”,则可以使用任何图像来消除错误。这些文件实际上没有使用,因为它们被替换为运行编号创建的一部分中选定的数字图像。
请注意,如果网格使用包含非 ANSI 字符的纹理名称,则可能会发生此错误。在这种情况下,texture.txt 文件(及其关联的图像文件)可能在导入过程的某个阶段由于文件名无效而被删除。在这种情况下,需要编辑网格中的纹理名称以删除非 ANSI 字符,然后替换 texture.txt 文件(以及图像文件)。
示例:错误:纹理“column1.bmp”加载失败。
加载名为图像文件的图像时失败。该文件可能已损坏,在这种情况下,必须将其替换为有效的图像文件。它可能不在正确的格式中。例如,它可能是压缩的 TGA:将其加载到您喜欢的图像编辑程序中并另存为未压缩的 TGA。它的大小可能不正确——网格中使用的图像必须具有高度和宽度,这些高度和宽度是 2 的幂(即 2n,其中 n 是整数)像素。如果图像用作主图像文件和 alpha 通道文件,则它必须具有 alpha 通道:将其加载到您喜欢的图像编辑程序中并另存为 32 位/像素的未压缩 TGA。
(如果 MS Paint 或其他图形应用程序可以加载文件,则大小是最可能的原因。调整图像大小,使宽度和高度都是 2 的幂(例如,8x8、16x16、32x128、256x64)。)
- 形式
- 错误:无法为纹理文件“subfoldername/alphamaskfile.texture.txt”加载 alpha 纹理“subfoldername/alphamaskfile.bmp”。
示例
- 错误:无法为纹理文件“night/white-licht1.texture.txt”加载 alpha 纹理“night/licht1.bmp”。
- 错误:无法为纹理文件“night/white-lichta.texture.txt”加载 alpha 纹理“night/lichta.bmp”。
|
- 上述错误消息对出现在 v1.3 庭院塔式泛光灯资产中,其中仅使用三个灰度.bmp 文件中的一个来改变塔上每盏灯的亮度和特性,使它们具有个性和独特性。在庭院泛光灯资产中的其他聚光灯旁边,三个不同的阴影蒙版将逼真地复制原型中各个灯光灯的实际属性。
- 当图形文件完全丢失时,通常的解决方法是用能够完成工作的文件替换该文件。
- 在上述情况下,只有三个 AlphaMask 中的一个存在,因此对其进行了复制,并进行了修改以复制所需的个性并满足“texture.txt”包含文件。(参见上图和右图)
- 这种类型的其他故障通常是因为早期的 Trainz 会完全读取文件夹内容,并无差别地索引每个文件并将其放入内存块中 - 这使得能够在资产文件夹层次结构中的任何位置引用 .bmp 或其他支持文件(包括资产根目录以上的那些文件)。
错误:在验证网格“<网格文件名>”时,无法为纹理“<纹理文件名>”加载图像文件“<图像文件名>”。
[edit | edit source]- 请注意,此错误和以下错误(无法加载主纹理)通常一起出现。
texture.txt 文件中引用的图像无法加载。它可能丢失,texture.txt 文件中名称可能拼写错误,图像文件格式可能错误(例如,压缩的 TGA),图像大小可能不是 2 的幂(在需要的地方),或者图像文件可能已损坏。
|
示例:错误:无法为纹理“shadow”加载图像文件“shadow.bmp”,同时验证网格“shadow.im”。
- 解决方案:阴影网格不需要任何图像文件。但是,许多阴影网格是用默认图像(通常为黑色)创建的,在某些情况下可能用多个图像创建。使用 PEV 的 QuickShadows 工具从现有的阴影网格重新创建阴影网格,并删除原始阴影网格使用的图像(texture.txt 和图像文件)(在确认其他网格不需要这些图像之后)。使用 QuickShadows 工具创建的网格不需要任何图像。
对于不是阴影的网格,请参见以下内容。
错误:无法为纹理文件“<纹理文件名>”加载主纹理“<图像文件名>”。
[edit | edit source]- 请注意,此错误和前面的错误(无法加载图像文件)通常(如果不是总是的话)会同时出现......
texture.txt 文件中引用的主图像无法加载。它可能丢失,texture.txt 文件中名称可能拼写错误,图像文件格式可能错误(例如,压缩的 TGA),或者图像文件可能已损坏。
示例-1:错误:无法为纹理文件“shadow.texture.txt”加载主纹理“shadow.bmp”。
- 解决方案:使用了在修复资产时构建的文件夹纹理库中存档的 shadow.bmp。
- 替代方法:可以使用 black.tga,或者创建一个新的 4x4、8x8 或 16x16 的深色 tga 文件作为此阴影。
示例-2:错误:无法为纹理文件“greyhound_stop_1_nightwindows/bussstatin1.texture.txt”加载主纹理“greyhound_stop_1_nightwindows/bussstatin1.tga”。
- 解决方案:关键在于关注关键字“主纹理”(“/bussstatin1.tga”),但... 该文件位于资产文件夹的根目录中,需要将其复制到下方,而夜间模式 texture.txt 文件位于“..\greyhound_stop_1_nightwindows”文件夹中,位于根目录下方。它带有一个“greyhound_stop_1_nightwindows.tga”和“greyhound_stop_1_nightwindows.bmp”,实际上是用于照明窗户和标志的 AlphaMask 图像。
示例-3:错误:纹理“billboardnight/white flat.texture”丢失或无法为网格“billboardnight\billboardnight.im”加载。
- 在这种情况下,DLS v2.4 广告牌资产 (<kuid:262137:10118>) 的故障在于完全有效的TGA 文件具有“开启”的RLE 压缩(在许多图形应用程序中单击框选项)。TS09 及更高版本无法容忍预压缩的 TGA 文件(Trainz 自此会对其自己的压缩进行压缩,PEV 的 Images2TGA 会提取这些压缩文件)。
- 解决方案:使用免费软件GIMP或其他图像处理图形编辑器,这些编辑器可以控制 RLE 压缩,并使用“另存为”模式覆盖资产。
- (如有疑问,请另存为其他名称(添加后缀“-B”等),然后修改 texture.txt 文件以保存原始文件。
- 或者,在 Windows 中复制该文件,然后调整它 - 这样可以跳过对 texture.txt 文件的更改。
- 请注意,一旦可接受,N3V 的 Trainz(v2.7 及更高版本)发布(至少从 TS09 及更高版本开始)很可能会将额外的 texture.tga 标记为新的、不同的错误... 这可以通过更改后的消息让您知道您现在可以删除安全文件。
|
该资产包含一个texture.txt 文件,该文件引用了一个图像文件,但该图像文件是直接从 config.txt 中的标签引用的。
- 这通常适用于kind groundtexture 资产,其中纹理也被用作缩略图。缩略图引用指向图像文件,但纹理标签引用 texture.txt 文件。
- 此故障报告还出现在“normal-texture 标签”已添加到配置中,并且图像文件已直接从标签引用,而不是通过 texture.txt 文件。
- 当使用 texture.txt 和图像文件组合时,也会出现此问题,而只允许使用图像文件,例如产品中的“icon-texture”标签。
除缩略图和某些特定标签外,所有对图像文件的引用都应通过 texture.txt 文件。由于多个标签可以引用同一个 texture.txt 文件,因此最简单的修复方法是将标签值从图像文件更改为 texture.txt 文件。对于缩略图,引用可以是直接的,而不是通过 texture.txt 文件,前提是缩略图图像不用于任何其他目的。如果问题是使用了不允许的 texture.txt 文件,请将标签引用更改为图像文件并删除 texture.txt 文件。
注意:许多内置资产在资产详细信息窗格中不会显示缩略图图像。这是因为资产使用对 JPG 图像的直接引用作为缩略图。从 JA 文件获取的资产将缺少未从 texture.txt 文件引用的图像,因为这些图像未包含在 JA 中。这对用户来说并不重要,因为用户无法创建 JA 文件。
关于如何使用 texture.txt 和图像文件的详细讨论,请参见此处引用的脚注。
由于某种原因,无法处理 texture.txt 文件中引用的图像。请参见前面。
当使用除 TGA(如 BMP)以外的图像格式并需要透明度时,则必须提供两个图像——不透明图像和透明度蒙版。这两个图像在 texture.txt 文件中被称为主图像和 Alpha 图像。在这种情况下,这两个图像必须具有相同的大小。
如果出现以下情况,将报告错误:
- 使用了两个单独的图像,并且图像的大小不一致。
- 需要两个单独的图像,但只能加载一个图像。
可以通过以下方法解决问题:
- 1- 如果提供了两个单独的图像,但大小不一致,请调整其中一个或两个图像的大小,使其大小一致。编辑者注: 免费软件 IrfanView 和 Paint.net 都可以轻松地调整大小,GIMP 稍微复杂一些。大多数图形软件应用程序都具有调整图像大小的功能。
- 2- 如果提供了两个单独的图像,则此错误也可能是由 32 位 TGA 或 32 位 BMP 引起的。当提供两个单独的图像时,它们应为 24 位格式。
- 3- 如果需要透明度图像(例如,如果 texture.txt 文件包含标签“AlphaHint=masked”),则还必须指定“Alpha”文件。这可以是单独的文件,但最简单的配置是通过将文件格式从 24 位更改为 32 位,向现有 TGA 文件添加一个 alpha 通道。然后,TGA 文件名列在 texture.txt 文件的“Primary”和“Alpha”标签中。
- 错误以及说明无法加载纹理文件的故障消息也可能在纹理文件压缩时出现。这在使用 GIMP 时经常发生,在“另存为”模式对话框的选项菜单中隐藏了将文件保存为压缩/未压缩、24 位/32 位的选项。对于 Paint.Net 用户,这些选项显示为“另存为”对话框页面的部分。(对于 Irfanview,TGA 文件没有选项页面——默认格式为 32 位未压缩)。
选项 1 对于修复某些资产可能更简单,但 32 位 TGA 文件是迄今为止更好的选择。
- 示例情况 1
错误显示为出现在 art 子文件夹中
错误:无法为纹理文件“gondola4axlebn521555ant_art/gondola4axlebn521555ant_art_512.texture.txt”加载 alpha 纹理“gondola4axlebn521555ant_art/gondola4axlebn521555ant_512.tga”。
错误:'gondola4axlebn521555ant_art/gondola4axlebn521555ant_art_512.texture.txt' 的主纹理和 alpha 纹理大小不一致。
资产的 texture.txt 文件为
Primary=Gondola4axleBN521555ant_art_512.tga Alpha =Gondola4axleBN521555ant_512.tga Tile=st Hint=Dynamic
这是一个简单的文件输入错误。将其更改为
Primary=Gondola4axleBN521555ant_art_512.tga Alpha =Gondola4axleBN521555ant_art_512.tga Tile=st
(提示不是必需的。更改行的顺序无关紧要,但可以更轻松地检查输入)。错误实际上是由于无法找到 alpha(透明度蒙版)文件。
- 注意:修复“无法加载……”错误也删除了“……大小不一致”错误。
- 512x512 art 文件不再使用,因此可以删除 texture.txt 文件和图像文件,并删除匹配的缩略图表条目。
- 可以通过引用控制texture.txt 文件来使用 512x512 图像作为 240x180 缩略图,但仍应在缩略图容器标签中分别指定高度和宽度为 180 和 240。但是,这将创建一个失真的图像。首选方法是在图像编辑器中编辑 512x512 图像,并将其另存为正确大小的 JPG。
- 128x64 图标 art 文件仍在列表中使用(例如,火车场中火车车的列表或测量员的“火车车”标签列表)。它是可选的,另一个类似大小的图像将被缩放以适合,但结果通常不可接受。该图像应该是侧面视图,透视最小,背景透明,火车车位于图像的上半部分。
- 对于 512x512 图像(如果使用)和 128x64 图像,应使用 texture.txt 文件(但请注意,AssetX 不会这样做——必须手动编辑 config.txt)。缩略图表条目应仅针对 DLS 缩略图(240x180)直接引用图像文件,正如 N3V Games 版本经理 James Moody 在 2014 年 9 月强烈建议的那样。在脚注中详细引用的电子邮件中,J. Moody 强烈建议使用 texture.txt 文件[1] 为所有图像格式文件,包括 *.jpg 240x180 缩略图截图。James Moody 不再为 N3V 工作。
- 示例情况 2
- 错误:'kansascitysouthernsd40-2_body/reflectstrip1f-window-dark.texture.txt' 的主纹理和 alpha 纹理大小不一致。
在这种情况下,使用 AssetX(或任何图像编辑程序,如 Irfanview 或 GIMP)中的图像调整大小选项调整图像大小(以像素为单位),使其在高度和宽度上匹配,并且每个维度都是 2 的整数次方(4、8、16、32 等)。
- 1- 缩略图容器丢失或为空。添加一个带有合适缩略图的容器。
- 2- 图像文件位于子文件夹中,且文件夹路径格式错误。对于在缩略图容器中引用的图像,路径名必须使用“/”作为分隔符,而不是更常见的“\”。例如
image "Litchfield & Madison CT100_art/preview.jpg"
- 1- 该车厢不支持运行编号,但 'fonts' 标签的值大于零。删除 'fonts' 标签,或将 'fonts' 标签的值设置为零。
- 2- 该车厢支持字体,但 'fontspath' 标签丢失或为空。创建 'fontspath' 标签并插入正确的值。正确的值是字体所在的文件夹名称,直到但不包括文本“_alpha_numbers”。例如,如果字体位于文件夹“sd40-2_alpha_numbers”中,则 'fontspath' 标签的值为“sd40-2”。
|
示例
"错误: 标签 'thumbnail' 不允许在类型为 'scenery' 的容器中使用。"
该标签不被识别为此类型容器的有效标签,即kind scenery。
- 该标签可能是一个注释:早期的 CM 版本忽略了注释(注释可以用多种方式表达[注 12],最早的 Trainz 版本只是简单地忽略了无效关键字,使许多结构实际上成为了注释。如果它只是一个注释,那么它可以被删除。
• 脚本使用的标签通常利用了The TRS's 时代的版本简单地忽略了无效标签的事实——这本应一直延续下去,因为它只占用计算机眨眼的功夫,却给数千用户带来了巨大的时间压力,而这些用户被程序员的命令“修复损坏的资产”搞得焦头烂额!——这就是为什么这页页面变得必要!
• 例如,一些脚本使用的标签,用于提供运行编号范围(起始和结束合法值),通常被包含在配置文件中的顶层标签中。这些“自定义标签”不再允许作为顶层标签——它们必须移动到“extensions”容器中,并且脚本代码必须修改为在配置文件中找到它们的新的位置。或者,可以从配置文件中删除这些值,并将其硬编码到脚本文件中——具体细节取决于脚本。 - 它可能拼写错误,在这种情况下可以将其更改为正确的拼写。
- 它可能是一个对于不同构建号的容器有意义且有用的标签,但对于资产的当前构建号无效。
具有以下确切示例中所示错误的资产可能已经被更新了——因此,与任何需要修复的资产一样,请检查 DLS,看看是否有更新的版本,其中包含可以下载的修复程序。
版本冲突示例 [注 13]
- 错误: 标签'engine-sound-ramp-down-durations' 不允许在类型为 'enginesound' 的容器中使用。
- 错误: 标签'engine-sound-ramp-down-durations' 不允许在类型为 'enginesound' 的容器中使用。[2]
在这种情况下,... 这两个错误代表了内容创作者对 Trainz 0.9 的良好意图——TC3 被程序员在 TS09 和 TS10 中安装的故障测试所破坏... 也就是说,在上述两个错误中,这两个使用连字符的计算机术语原本是 Trainz 中的关键字,然后在 Trainz 2.9 版本的开发或调试过程中被添加,而这些关键字对于解决 Trainz 的几个声音处理问题的预期解决方案来说并不必要,然后在 Trainz 3.4 版本中被重新强制要求,并且一直延续到现在的版本!
- 请注意,上面显示的这两个错误代表了当将有效的旧版 TBV 引擎规格导入或下载到 TS09-TS10 中,或将更新的引擎资产的配置文件中报告的 TBV(TB v3.4-v3.6 或更高)“回溯”时出现的错误消息类型[注 14]
- 解决方案: - 不要删除这些行,只需将它们移动到描述字段中,以记录在以后的 TBV 版本中对它们的需要,并作为对自己的提醒——许多带有这些错误的资产将在TB 版本高于 v3.4中给出相反的“缺少必需值”错误,在这些版本中,N3V 的程序员开始将越来越多的数据元素设为强制要求[注 15],因为他们对 Trainz 数据模型和代码系统进行了大规模的修改,以适配Trainz Mac 和Trainz Mac2 的发布。也可能通过将构建号更改为支持该标签的版本来消除错误。但是,由于这将增加或减少 TB 值,它可能会引入其他需要修复的错误或警告,尽管在这种情况下,这不太可能,因为kind engine 是一种非常稳定的数据类型。这个错误是程序员典型的傲慢。[3]
标签的值与该标签的允许值之一不匹配。例如
错误: 'traincar' 中标签 'nightmode' 的选择缺失或无效。
对于这种情况,标签 'nightmode' 的允许值为 "home"、"lamp"、"constant" 或 "none"。许多其他标签也有类似的允许值列表。如果标签值不是允许值之一,则会报告此错误。
当标签引用一个文件而该文件无法找到时,就会出现此错误。
例如,缩略图容器中的命名子容器有一个 'image' 标签,它可以指向一个 texture.txt 文件或一个图像文件。如果图像文件未找到——可能是名称拼写错误,或者文件丢失——就会记录此消息。类似地,'maps' 容器中的 'info-page' 应该指向一个.htm 文件。如果文件未找到,则会记录此错误。
当标签需要一个值列表时,该列表中可能存在所需的最小或最大条目数。如果未提供正确的条目数,则会记录此错误。
- 案例一——sound-script 容器中的 repeat-delay 标签配对值
- 在较旧的音效资源中很常见(kind scenery 或杂项),因为早期的 Trainz 版本被编程得足够智能,可以默认第二个值。
- 实际示例——具有三种不同音效的资源
Slugsmasher's trainz-build V2-4 —SS Log Dump Diesel, <kuid2:86661:144048:2>,升级到 V3-7 时,从 V2-9-SP2(TS2009-SP2 消息)出现错误。值得注意的是,TS12 没有报告相同的错误,在导入到 V3.1 之前,给出了 0 个错误和 0 个警告,尽管 N3V Wiki 文档说该标签在 TB V3-4 以上是强制性的。
- 错误:标签“repeat-delay”的值数量不正确,预期为 2 个值,但找到 1 个。
- 错误:标签“repeat-delay”的值数量不正确,预期为 2 个值,但找到 1 个。
- 错误:标签“repeat-delay”的值数量不正确,预期为 2 个值,但找到 1 个。
- 修复:咨询 repeat-delay 容器——配对值是一个范围,如果不同,则该差异是添加到第一个值中的随机值的范围,然后在声音再次重复之前。默认值为 1,1。第三个容器是引擎,因此将值设置为 0,0。其他日志转储为 2,3(因此操作员操作的随机值为 1 秒)和“logdrop” 2,2(恒定延迟,它们只下降这么远),取原始的错误单值,并相应地进行调整。
- 案例二——乱七八糟(一团糟)
- 错误:标签“trackoffsets”的值数量不正确,预期为 2 个值,但找到 1 个。
类别类别“TB”(截至TS2009)控制图形渲染以及CM 验证用于轨道样条线。(这种对验证和渲染的影响是在所有Trainz 数据模型的历史中,一个怪事,关键字(标签)值——历史上一直专门用于 CM 中进行排序——主要用于在不影响软件的情况下传达人与人之间的分类信息,现在用于定义 kind track的许多样条线子类型。)但是,TS2009 和 TS2010 的验证存在不一致,无论轨道的数量如何,它只允许偏移和方向有 2 个值。TS12 要求两个列表中的项目数量正确。
桥梁资源类别类别“TB”需要 trackoffsets 标签,它指定轨道距样条线中心线的距离。标签值是一个CSL 列表,其中包含[注释 16]以米为单位的十进制数字,但所有桥梁类型(道路,[4]单轨桥,[5]或双轨,[6]甚至隧道,[7]每个在 TS2009 之前都有唯一的 KIND 声明)在 TS09 和 TS10 中都有一个编码错误,将所有桥梁解释为 CM 验证过程中的双轨,并且始终需要至少两个值。这伴随样条线中的类似更改,将它们定义为 Track KIND 子类型,以及所有轨道 Track 资源。
- 根据读取配置文件的 ContentManager 版本,更新出现此错误消息的旧资源的正确方法会有所不同。Content Manager 2.0 到 Content Manager 3.3 会错误地给出此错误,以下是如何调整它。将资源移动到 TS12(TB V3.4 及更高版本)时,需要重新调整此类更正。
- 理论
• 如果要更正错误,在轨道资源中删除标签,则该资源将没有任何 'bridgetrack
• 列表中的项目数量(以及标签 trackdirections 列表中的值数量)必须与TS12 及之前版本的 Trainz 到 TS09 的桥梁中的样条线中的轨道数量相匹配。
• 对于更新单轨或单样条线道路桥梁,使用 CM 验证这些版本的错误,使用两个非常小的偏移量,例如 trackoffsets -0.001,0.001。[注释 17]
|
示例:错误:容器 14 中的十进制标签“object-size”不是有效的十进制值。
标签值不是有效的十进制数。例如,输入了“0,05”而不是“0.05”。编辑标签值,使其成为有效的十进制数。
在资源中找不到动画文件。
- 此错误在 kind mocrossing 中很常见,其中网格中没有动画。例如,道口可能具有闪烁的灯光,但没有栏杆或闸门,或者该资源可能是 kind mocrossing,因为它需要迎面而来的火车触发的事件,而不是动画。即使它未在 config.txt 中引用,CM 要求 kind mocrossing 的资源存在动画文件。在这种情况下,可以将任何有效的 anim.kin 文件添加到资源中以消除错误。可以在 userdata 中搜索合适的文件——所需要的只是一个有效的 .kin 文件来满足 CM。
如果网格支持动画并且没有动画文件,那么修复它将很困难。如果该资源是一系列类似道口的其中一部分,那么来自该系列中另一资源的 anim.kin 文件可能有效——应彻底测试这一点。如果网格是动画的并且没有正确的 anim 文件,仍然可以使用不同的文件代替,最糟糕的结果是动画不会发生。无法从网格信息创建正确的动画文件。如果替换动画文件,请确保使用 Loco 在轨道上测试它,使其从远处逐渐靠近。如果动画没有触发,则该资源至少可以使用。如果它触发了,那么你可以决定效果是否可以接受,然后再决定是否进一步修复该资源。
在某些情况下,这可能也是警告,即使它说“必需”。它表明资源类型需要特定的容器,但该容器尚未包含在 cofig.txt 文件中。此问题的解决方法取决于容器(某些容器可以轻松创建,而另一些则不能)和资源类型。
当容器中需要 kuid 时,它必须是适合该容器类型的 kuid。
- 案例 1,Queues 容器示例
- 错误:“product-kuid”中指定的 kuid“<kuid:-3:10044>”类型不正确。
- 分析
- 当消息为:'错误:在“product-kuid”中指定的 kuid '<kuid:-3:10044>' 类型不正确。'
在这种情况下,在预期产品的情况下,在allowed-products容器中指定了产品类别。
该错误可能发生的原因是,一些看似是产品的资产实际上并非产品,而是KIND 产品类别。产品类别用于将一组产品分类为特定类型。类别可用于限制列为可用于添加到资产的可用产品的范围。这些 kuid 不是在需要产品的标签中有效的标签值,但通常会在那里错误地找到它们。
如果在allowed-categories容器中使用产品,也会发生类似的错误。 四种标准产品类别是:
Passenger,<kuid:-3:10091> Bulk Load,<kuid:-3:10040> Liquid Load,<kuid:-3:10044> Container,<kuid:-3:10042>
- 两种简单的解决方法
- 如果容器是产品容器,请将无效的产品类别替换为适当的产品。如果队列具有product-kuid标签,请使用该产品。
- 如果容器是产品类别容器,请将产品替换为适合车厢的产品类别。
KUID 格式错误。例如:'<kui2:287205:15361>'。确认 KUID 并更正格式。
这是一个常见的错误,可能发生在构建号小于约 2.9 的原始资产中,因为如果某些非关键 KUID 引用不正确,则会被简单地忽略。它也可能发生在脚本设置为替换纹理的资产中。在这种情况下,纹理资产由脚本提供,因此 KUID 可以保留为任何文本,例如“NULLKUID”。对于这些情况,可以插入任何通用纹理资产的 KUID - 它要么不在模型中使用,要么将由脚本替换。据报道,可以简单地删除带有丢失 KUID 的标签,但这可能取决于脚本如何使用此标签,因此不建议这样做。
无法加载声音文件。该文件可能丢失 - 可以在用户数据中搜索该文件并找到它。它可能已损坏或格式不正确。如果该文件已从资产中删除,因为它实际上不需要,那么任何声音文件都可以使用,至少可以安装资产,以便确定声音文件的功能并找到合适的替代文件。由于历史原因,此错误也可能出现在从较早构建号升级的资产中 - 该文件存在,config.txt 文件条目似乎与文件名匹配,但警告仍然存在。在这种情况下,请确保 config.txt 中的文件名用引号(“)括起来 - 在不使用引号的情况下,尾随空格或制表符可能会混淆 CM。
它也可能是“比特率”错误。使用 Audacity(免费软件)等程序检查,我的经验是声音文件比特率为 4400mhz,更改为 22050 以匹配现有的工作 .wav 文件,问题已解决。AssetX V3 及更高版本包含一个修复选项,可以解决声音文件的一些问题。
资产脚本试图使用不适合资产类型 (kind) 的类。一个极端的例子是试图将机车类用于场景资产。
- 请注意,与脚本相关的错误只有在资产提交后才能完全识别。因此,当其他错误修复并且提交成功时,错误可能消失。如果与该错误相关的问题并不明显,请将其保留到所有其他错误都修复后,提交资产,然后确认它是否仍然存在。
(当验证打开以进行修复的资产时,这种错误报告错误的情况并非该问题独有。“查看错误和警告”在用于打开以进行修复的资产时不可靠,不应依赖它。在 Trainz 的更高版本中,当资产打开时,它根本不起作用。始终在重新检查错误之前提交资产。)
修复此错误并保留脚本功能超出了本讨论的范围。
错误:在容器“attached-track”中,'<attachment point>' 和 '<attachment point>' 之间存在多个轨道段。轨道段必须是唯一的。
- 从 CM 版本 3.7 开始,这仅是 DLS 上传验证错误。
attached-track 容器包含一个或多个顶点子容器。子容器中列出的顶点对表示顶点之间的连接。一对顶点只能有一个连接。通过删除重复的顶点对之一来编辑顶点子容器。
此错误可能不再有效。请参阅以下两项。
检测到资产的过时历史记录存在问题。 但是,错误消息中的描述不正确。问题是资产正在过时一个已经在资产的过时历史记录中的项目。例如,资产 <kuid:12345:6789> 可能包含一个过时表 -
obsolete-table { 0 <kuid:12345:6000> }
表示它过时了一个旧版本。如果资产随后以新版本发布,它应该只使用 kuid <kuid2:12345:6789:1> 来表示以前的版本现在也已过时。该升级后的资产不应包含来自先前版本的过时表,因为这将在资产的过时历史记录中创建重复的过时引用。(但是,在版本增量方法不适用的其他情况下,需要过时表。)
- 为什么会出现上述错误…
- asset.tdx(数据库索引文件)只能包含对资产过时 KUID 的单个引用,因此双重条目会生成错误消息。虽然 CM 会“用假定的 KUID2 序列填充空白”当一个替代的 KUID2 跳过一个或多个版本后缀时,因此知道例如,使用“<KUID...:4> 来过时一个 KUID 或 <KUID...:1>;但是索引中的每个填充的数字只保留序列中的下一个替代 kuid。当考虑过时表作为替换查找表的职责时,这是有道理的。资产的kuid-table列出较旧的 kuid 将与列表进行比较,该列表指向其替换项。计算机无法用两件事替换一件东西,因此资产 .tdx 索引中的过时/替换表只能保存单个条目。
- 从 CM 版本 3.7 开始,这仅是 DLS 上传验证错误。
此错误也已在没有明显重复替代资产的情况下观察到,但序列中存在间隙
- <kuid:12345:67>
- <kuid2:12345:67:2>
- <kuid2:12345:67:3> - 被错误拒绝
从构建 3.5 开始,这仅是 DLS 上传错误。
两个资产不应该使同一个资产过时,除非它们都是同一个修订历史的一部分。这个资产包含一个过时的表格,其中包含一个条目,该条目包含一个已经被其他资产过时的资产,但这两个资产不属于同一个版本序列。过时表格应该进行调整。
注意:当两个资产都是同一个修订历史的一部分时,已经观察到此错误。此不正确的验证可能已被修复:请参阅“先前过时的 KUID <kuid> 缺少新的资产过时表”。
例如
<kuid:12345:66> 存在于 DLS 上。上传了一个更新的版本 <kuid:12345:67>,其中包含一个过时表
obsolete-table { 0 <kuid:12345:66> }
然后将资产 <kuid:12345:67> 升级到 <kuid2:12345:67:1> 并上传。如果过时表保留在这个版本中,那么资产 <kuid:12345:66> 现在就被这两个更新过时了:这应该允许,但在某些情况下,上传被拒绝。解决方法是删除过时表,并依赖 kuid 版本号来指示过时。
此错误消息可能是“过时的 KUID <kuid> 不属于此资产的过时历史记录”错误消息的替代。 但是,看来过时表验证规则的更改意味着此错误对于上述情况不再发生。
从构建 3.5 开始,这仅是 DLS 上传错误。
如果此资产使具有不同内容 ID 的资产过时,则该过时资产必须包含在此资产的过时表中。此消息表明 DLS 知道此资产使具有不同内容 ID 的资产过时,但该过时资产缺失于过时表中。DLS 可能知道该过时资产,因为它位于此资产过时的资产的过时表中。
例如,如果资产 <kuid:12345:67> 具有过时表
obsolete-table { 0 <kuid:12345:66> }
那么稍后的版本,例如 <kuid2:12345:67:2> 必须具有过时表
obsolete-table { 0 <kuid:12345:66> 1 <kuid:12345:67> 2 <kuid:12345:67:1> }
换句话说,资产的过时表必须包含该资产的完整过时历史记录。
请注意,此错误消息似乎与消息“错误:过时的 KUID <kuid> 已被 KUID <kuid> 在服务器上标记为过时”相矛盾,因此是过时表验证规则的更改。
用于资产的 kuid 无法解析为有效的 kuid。它可能是格式错误(例如,<kuid2:-1:110000:0>)或可能存在关于冲突的 kuid 号码的内部问题。检查 config.txt 中的 kuid 并确认其正确无误。
数据库中记录的资产 kuid 与 config.txt 文件中的 kuid 不一致。
当资产被打开以进行编辑时,资产的状态将记录在数据库中。当资产被提交时,资产将从编辑文件夹加载回数据库,并且状态将被更新。如果在将资产加载回数据库的过程中检测到资产 kuid 与数据库中记录的内容不同,则会发出此错误。
如果要更改资产 kuid,则必须通过“文件/导入内容”(至 TS12)或“文件/导入内容文件夹”(T:ANE)菜单选项加载资产,并且应恢复原始资产。
数据库修复错误。资产可能在 CM 中显示为错误图标,但没有错误消息可用。打开资产进行编辑然后重新提交可以清除错误。
- Trainz Classics 中一些过时的 数据模型 更改
这些故障和警告是在将一个成熟的 TB v2.6 机车引入 Classics 时生成的:
在 Trainz Classics 的“steam”容器中过时的标签。 |
---|
'boiler-to-piston-flow' |
'firebox-to-boiler-heat-flow' |
'firebox-to-boiler-heat-flow-idle' |
'firebox-volume' |
'main-reservoir-volume' |
'piston-to-atmosphere-flow' |
'westinghouse-volume' |
这些标签-值对在指示的容器中生成错误 |
错误:标签“epbrakes”在容器类型“steam-engine”中不允许 |
错误:标签“max-fire-coal-mass”在容器类型“steam”中不允许 |
- 解释和阐述
- ↑ 仅在过去周末就出现了超过五百个,写于 2019 年 5 月 6 日
- ↑ 这个编辑器曾在一个时间内让五个 CM 和三个测量员忙碌,同时与 skype 共享带宽并观察来自印第安纳州的共享桌面视图。
- ↑ 在这项工作中,我们回顾了四款可作为免费软件获得的编辑器:Notepad++、Programmer's Notepad、Crimson(以前称为“Ruby”)和 ConTEXT。我们明确不将 NOTEPAD 用于任何用途,只是暂时保存一个或两个剪切缓冲区。在这些编辑器中,只有 Notepad++ 具有执行 Trainz 中所需所有类型的编辑所需的所有搜索和替换 (SAR) 功能。
- ↑ 请注意,此列表是在添加 thumbs 容器后生成的,该容器是在描述块之后添加的。添加和丢失“某些东西”(分隔符或关闭块字符)' 可以大幅改变报告的故障消息。计算机只是在说嘿,笨蛋,把它配对!
- ↑ 标签“rgb”对我们人类来说有三个值,分别代表红色、绿色和蓝色数字,范围为 0-255(十六进制 0-FF),但存储为一个单独的计算机字(32 位适合四个这样的字节值,这就是许多常见图像文件格式中图像像素的透明度“Alpha 通道”在 32 位字中存储的方式),因此在文件读取子例程保存时保持关键字-值的配对关联。类似地,每个容器都有自己的处理子例程,它知道哪些关键字在其中是合法的,并且还可以进行边界测试(浮点数或整数或布尔逻辑值在某些情况下可能看起来一样,但内核系统中使用的变量和存储方法却大不相同。
- ↑ 在 2008 年发布 TS2009 之前,“非轨道样条的种类”、道路、桥梁和隧道都是独立的种类(请参阅:轨道下的 Here 缩进来自 引用,但它们都通过添加许多标签进行组合,以控制或区分图形渲染的内容。在此之后,桥梁、隧道和样条对象,如围栏、车站站台、电力线(电线杆和电线)、实际上任何具有长度的资产,都使用轨道分类和方法。
- ↑ 出于好奇,'follows-spline-gradient' 布尔标签是在 2012 年秋季 TS12 更新期间添加的,用于修复 TS12 中附加轨道容器的一些应用,如 此编辑 和一个月后的编辑所记录。在 TS09 和 TS10 中使用时,该资产可以正常工作,但在 CM 中会显示错误。有问题的轨道是 Auran 桥轨道:“Auran 轨道桥,<kuid:523:19721247>”。
- ↑ Fabartus 说,这仍然是我在任何软件部门见过的最愚蠢的决定之一,他在 70 年代后期就开始编写代码了。Windwalkr 和他的团队让每一个 Trainzer 为这个烂摊子付出了多少时间!FrankB 2016 年 4 月 14 日 01:43 (UTC)
- ↑ 此错误:--在 2016 年 1 月,系统地从 TS12-SP1 中复制北美机车数字模型并使用 cdp 导出导入到 TANE-SP1(版本 80330)中时,出现过几次。打开这些模型进行编辑,然后将编辑文件夹移动到 TS12,在那里可以使用本地批处理文件在文件夹上运行 PEV 的工具。
- ↑ AssetX 内置了 Windows 帮助文件,但对于不熟悉 Trainz 行为和多年来 Trainz 数据模型 演变的人来说,仍然很难掌握。有关更多信息,请参见论坛主题:[AssetX]。
- ↑ AssetX 解决方案在本页上受欢迎,但处于次要地位,因为要正确运行 AssetX,新的 Trainzer 必须建立资产知识才能有效地使用该程序。因此,PEVtool 和手动编辑方法是优先事项,而运行 AssetX 则需要增加一个额外的知识层次,这可能会妨碍操作。此外,对于大多数修复来说,升级资产不是必需的,AssetX 更适合将资产更新到特定 Trainz 版本的需要,而不是仅仅修复资产使其正常运行。
- ↑ Trainz 中曾经容忍的注释方法:
• 'Hack-Hack' 注释,其中该行以 '// ...' 开头,
• BASIC 语言和 DOS OS 批处理文件样式注释,其中引用的字符串以 REM 或 rem) 开头,以及
• 以分号开头的行,与 hack-hack 注释类似,该行分号后的所有内容都被忽略——这是一种编程语言“样式”的惯例,通常出现在 config.txt 文件中。 - ↑ Trainz 2009 和 Trainz 2010 共同经历了过渡期,前者侧重于基础 数据模型,后者侧重于模块之间的互连性,与外部世界的通信以及更充分、更现代的计算机技术(如更好的显卡和多核处理)的应用,其中过渡代码利用了最新 64 位 CPU 和 操作系统 的一些功能。TS09 和 TS10 的第四个也是最后一个服务包更新都包含并共享 Trainz 版本 3.3。它们还有一些共同的缺陷,这里提到的两个标签是 N3V 有时粗心编程的绝佳例子。
• 由于 Trainz MAC 项目需要将代码移植到不同的操作系统,因此需要在代码中对 IBM PC 及其 MSDOS 操作系统和 Intel X86 系列 CPU 芯片的后代所默认的某些假设做出明确说明,并不再默认。
• 其他软件演化变化表明,某些参数也应该被明确定义,以便 CC 社区能够使用长期要求的功能和选项。
• 这两项措施都导致 N3V 程序员需要更多(有时是不同的)显式关键字定义,这有时在 N3V Wiki 中有很好的记录,有时只是因为 DLS 上传软件过滤器现在会拒绝没有这些更改的资产。
• 值得注意的是,随着 DLS 上传审查流程的实施,该流程也开始更新以反映下一版(即将发布或未来的)Trainz 版本的开发需求,早在发布内容管理器可用之前。因此,上传到 DLS 有时会发现新的需求,这是由于对正在演化的 数据模型 进行更严格的测试造成的。 - ↑ 存在着一种张力,两种相互冲突的优先事项... 在 CC 将其安装的 CM 或 CCP 识别的最高 Trainz 版本值 与上传更改最少但对大多数用户可用的更新资产(因为它具有较低的 TB 编号)之间。
• TB 编号越低,在更多情况下,运行旧版本的人员可以在不进行调整的情况下使用该资产。
• 现在,更高的 TB 版本号是由管理层的命令驱动,而不是技术需求。N3V Games 在遭到大量争议和用户强烈反对的情况下,基本上劫持了 Trainz 版本代码的最初设计目的,并开始强制上传与实际技术规范和需求无关的 TB 值,具体时间是在 2014 年 9 月,或者等效地,在 2010 年 9 月,当时他们宣布并开始执行臭名昭著的 Trainz 生命周期策略,但没有首先建立统一清理内容的基线和长时间执行良好理解的标准。
• 这种政策管理不善已经并且持续产生两种影响:
A) 那些可能没有足够的资金购买新电脑和软件,并且通常是固定收入的老人退休人员,对学习新系统没有兴趣,现在不得不放弃 Trainz 的更新,并且实际上已经成为 Planet Auran 的二等公民。可以理解的是,对于那些习惯于购买优质产品并且对粗制滥造的产品的发布感到不安(这种产品需要不断更新,这是低质量产品、程序员缺乏专业精神以及企业管理者道德败坏的明确指标)的老人来说,这被视为一种背信弃义的行为。
B) 以及——一个稳定的过渡版本,其中许多(如果不是大多数)引擎规范已经演化并自那以后一直基本稳定为“标准”引擎规范)的资产;或者是否应该尝试将这样的资产倒退到更早的 Trainz 版本。 - ↑ 即使到了 2015 年 1 月,强制性数据元素也并不总是像 Trainz Wiki 中那样清晰明确地呈现。最重要的是,如果 安装 的 内容管理器 正在说 TB 值 需要这样的定义,则必须进行定义,或者将 TB 值降低到 CM 可以接受的值。
• 在这两种“修复”情况下,根据 Trainz Wiki,默认值很可能是要分配的正确值,但与往常一样,在修复和修改机车或其他动态资产时,应在勘测员 和 驾驶员 的尽可能多的适用安装中对其进行测试,以确保它是一个可行的通用修复,或者确定它只是一個 TB 范围限制 的修复。
• 提醒新用户,有时需要查阅 TC3 内容创建指南(PEV 作为 Trainz Wiki 附录提供)来确定正确的默认值... 一如既往:社区会感谢在 Trainz Wiki 上更新的任何页面和段落,这些页面和段落包含在偶然发现时发现的此类深奥信息,从而为更大的利益无私地照亮。 - ↑ 请参见 CCGTC “类型:双线桥”在线来源 和 请参见 CCGTC “类型:桥” (单线) 在线来源,以及 CCG/类型:轨道(道路) 和 CCG/类型:桥梁隧道。
- ↑ 为什么该值不能为零值尚不清楚,但推测它在某些计算中用作除数。无论如何,较旧的 CCG 中都包含作为必需值的非零很小的数字。'trackoffsets -0.001,0.001' 在 TS10-SP2 中进行了测试,与单线和道路元素相比,修复后成功地耦合到连接的道路上。
- ↑ . 在一系列涉及约 6 位 Yesterdayz-Trainz 成员和 James Moody 的私人电子邮件、回复、反对意见、澄清和重申中,有人提议
- 电子邮件交流中,James Moody 提出始终使用 texture.txt 文件,除了 DLS 240x180 缩略图。
- N3V Games 的版本管理器 James Moody 回复(已截断)
我建议绝对 100% 肯定地引用一个 .texture对于在驾驶员或测量员中在游戏中出现的任何东西。
如果 Trainz 遇到它需要在游戏中渲染但不是 .texture 的东西,即使它是 UI 的一部分,它也必须动态地将其破解成一个。这不会像 CM 在提交时提前完成的那样好(或使用起来快)。
显然,对于专门用于网络(例如 DLS)的东西来说,例外情况是,您需要网络浏览器能够理解的东西。这就是为什么我们对 DLS 缩略图使用 .jpg 的原因。
对于大多数资产来说,这“仅仅”是一个性能问题,会导致每次遇到图像时都会进行磁盘访问(因此会导致短暂的卡顿)。但是,这里实际上隐藏着一个更严重的问题。
如果某个资产被广泛使用,它很可能在未来的游戏版本中作为内置内容集的一部分出现,或者可能作为 DLC 内容包的依赖项出现。这些资产以剥离源纹理的形式分发,以减小下载文件大小。如果您有一个 .texture.txt,并且仍然直接引用源图像(例如 .tga),那么在这种情况下它将完全失败。它不仅速度慢,而且根本无法正常工作。(添加了斜体强调)您会得到一个空框 - 具体取决于情况,要么是 100% 黑色,要么是 100% 白色,因为该文件实际上丢失了。
如果您想在实践中看到此错误,请在 TS12(或 TS2010)中使用内置的机车组创建一个机车组。大多数机车组都没有机车组预览图标 - 恰恰是因为内容存在此错误。
—James Moody, 2014 年 9 月 16 日 12:24 EDST(波士顿)发送给 Yesterdayz-Trainz 的五位成员的电子邮件 - ↑ 在 V2.8 资产 config.txt 中的 TS10 中发现,包括标题行:kuid <kuid2:60238:53042:1> username "Green Goat GENSET Engine Sounds Startup" kind "enginesound" category-class "ZS" engine-sound-ramp-up-durations 0,2.396,2.317,2.267,2.701,2.626,2.374,2.175 engine-sound-ramp-down-durations 0,2.396,2.317,2.267,2.701,2.626,2.374,2.037 category-region "US" trainz-build 2.8 category-era "2000s;2010s"
- ↑ 当 Fabartus 在 2014 年 10 月左右的 T:ANE 开发期间通过电子邮件询问关于这个断断续续的“TAG-浮点数数组”对定义时,前N3V 版本经理James Moody 对当时在 TBV 3.4 及更高版本中显示为强制性的值是一个旧规范感到惊讶!我不清楚的是,他只是在开玩笑,或者只是不想回答关于这样一个尴尬失误的问题,或者只是直言不讳!Fabartus,2015-0917。
- ↑ 请参阅 CCGTC“类型:轨道(道路)”
- ↑ CCGTC“类型:桥梁”(单轨)
- ↑ 请参阅 CCGTC“类型:双轨桥梁”
- ↑ 请参阅 CCGTC“类型:桥梁隧道”