Trainz/AM&C/资产修复
词汇表 |
HKeys-CM |
HKeys-DVR |
HKeys-SUR |
HKeys-WIN |
鼠标使用 |
符号 |
操作说明:点击正文中的脚注([2])或注释标签([note 12])将引导您(定位页面)到该条目的确切文本。
• 然后:点击那里的?符号,将返回到您开始阅读的地方。 |
- 贡献作者:The Yesterdayz-Trainz小组
操作说明:点击正文中的脚注([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文件中安装更新的容器样式数据结构或调整文件文件夹内容(例如,V2.4之前的资源处理能够向上和向下查找主要纹理或网格(im)文件,该处理在TS2009及更高版本中已放弃)来轻松修复,方法是将相关文件复制到必要的文件夹中。
已经采用了各种技术,需要不同的数据,或者组织数据的方式不同。这些更改中的大多数在软件内部自动处理。当它们无法处理时,它们会生成错误,这是一件好事。资源中出现错误远比资源中的缺陷导致程序崩溃好——这在TRS2006的早期阶段非常常见,当时第一个基本的错误测试增强措施被构建到CMP软件及其Service Pack 1中。
随着T:ANE的引入,内容管理器中错误和警告的报告方式发生了变化。每个错误和警告现在都有一个VE编号。完整的编号列表在这里。每个错误或警告也有其自己的WIKI页面,可以通过从该页面选择项目,或通过右键单击“错误和警告”窗口中的编号错误或警告消息来访问。这些页面上的信息特定于T:ANE版本。但是,以下信息适用于T:ANE报告的大多数错误和警告。
PEV的工具将由社区在一个或另一个网站上维护,因为它们非常宝贵。Peter Villaume (PEV) 是一位非常有才华的程序员(实际上是工程师),他位于澳大利亚与N3V & Auran Holding在黄金海岸靠近布里斯班的小镇所在地相反的一侧(或悉尼),但在2013年中期停止在他自己的网站上托管他的工具,当时Trainz论坛大师Shane Turner接手了这项任务,他的帮助站点在这里。
|
- 在Shane的网站上找到PEVs工具及其附带的.pdf文件手册(如果提供)。
- 请参阅设置PEVtools,了解有关程序和放置位置的提示。
- 请参阅PEVtools,了解一些操作技巧、教程链接和本地安装中的高级设置。那里还可以找到节省时间的实用技巧。
- 虽然是错误修复新手,但在您的\UserData或\UserData\editing文件夹中设置一个“editing2_unchanged”文件夹,并在尝试任何更改之前定期将资源复制到该文件夹中。
- 这是一个安全网,以防事情看起来要崩溃……当一个错误惊人地变成30个错误列表时,可以重新开始的一种方法……
- 或者更好的是,您可以使用一个原始副本和一个已更改的副本Kdiff3进行比较,并让它显示您在哪里弄乱了嵌套的“}”或添加了额外的引号,或者进行了一些其他导致此类解析问题的拼写错误。
• (深呼吸,放松一下,那种错误列表并不真实,只是某个地方的标点符号需要修正。)
|
- 第二部分
- 花一些时间在论坛上“潜伏”和观察。使用谷歌的网站搜索功能查找关于您可能提出的任何主题或问题的条目。(site:forums.auran.com "问题文本关键词")。这在本站点上也适用!
- 一旦你学会了如何处理大约10到20个错误,并了解了它们的重复性,请在论坛上找到**Asset-X 常见问题解答**并订阅,然后开始逐渐学习,同时定期、稳定地修复遇到的任何其他有问题的资产。
- Asset-X 的许多使用方法都包含在产品内置的 Windows 风格帮助文件中。可以直接在文件夹中阅读,或者加载 Asset-X 并点击帮助。
- 在这么做之前,你必须了解Trainz 基本数据模型配置,并且使用 PEV 工具和专注的大脑以传统方式修复 20-30 个错误将为你提供足够的基础,了解 Trainz 演变后的数据模型的各种形式,也许还能让你掌握它们之间相互作用和差异的方式,从而能够熟练地使用 Asset-X 并发现问题所在。
- 此外,建立一个示例资产类型的侧边文件夹并用你需要编辑但已修复(甚至没有警告)的资产副本填充它,这是一个非常好的主意。可以将这些资产与同类其他资产进行比较,避免你陷入困境。这项练习将为你打下良好的基础知识,并建立信心,从而使未来的资产修补工作速度更快。最终,你将节省大量时间,并建立良好的故障修复方法基础知识。
内容创建者为在 Trainz 配置文件中使用而创建的标签通常不受任何特定大小写规则(大写或小写)的约束。通用标准是使用全小写,但对于许多名称,任何形式的大小写都是允许的。许多地方都使用了任意名称,包括文件名(图像、网格等)、网格中使用的名称(附件点、纹理)以及列表中使用的标签(例如,附加轨道容器中的轨道列表)。
某些名称或标签具有特定的大小写要求,例如网格容器中默认网格的“default”。这些标签应严格按照文档中的说明使用。在其他地方需要特定的大小写,例如“string-table”容器中使用的标签,必须全部小写。但许多其他标签,尤其是文件名,完全由内容创建者决定。但很难判断何时需要考虑大小写,何时不需要。其他看起来非常神秘的错误可能是由于名称不匹配导致的大小写差异(尤其是在提交资产更改某些标签的大小写时)。
一个好的规则是将所有内容都设为小写 - 完全避免使用任何大写字母。这与 Trainz 的通用标准一致,也减少了 Windows 资源管理器使用其自身规则调整文件名以显示目的而产生的问题。
如果你遇到 CM 提示某项内容不存在或已存在,而你又无法找到错误原因的错误,请仔细检查正在使用的大小写 - 这可能是需要考虑大小写的情况之一。
注意:脚本有自己的规则。特别是,对象和方法必须使用文档中记录的精确大小写,并且根据上下文,大小写不同的标签是不同的标签。
- 引擎规格 <kuid:35837:51002> 可以替换为 <kuid:44090:51016>
- 以及如何处理它们……
内容管理器在提交资产时会验证资产,并且还提供了一个选项,可以显示任何已安装资产的错误和警告。下面列出了一些 CM 在验证资产时会显示的错误消息,并附有简要说明。此列表基于 CM v3.7,但也包含一些仅由 N3V 上传验证过程生成的错误。
此列表中的 <text> 表示文本根据资产的详细信息而有所不同。
此资产中使用的一个或多个网格未包含在此资产中,但包含在从该资产引用的另一个资产中。这种引用称为别名,另一个资产称为别名资产。别名通常用于创建与现有资产仅在用于渲染模型的图像方面不同的新资产 - 这有时称为重新绘制资产的皮肤。它被广泛用于火车车厢,以及路标等资产,其中一个网格与许多不同的图像一起使用。它也用于通过以不同方式组合多个标准网格来创建资产,例如接触网。别名也被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。但是,这不会改变别名网格未经验证的事实 - 它只是阻止警告出现。最好保留资产的原样,以便警告出现。
- 如果显示此警告的资产未出现在游戏中,则别名资产是查找问题的第一选择。
应将标签添加到 config.txt 中,并赋予适当的值。
- 来自故意滥用的缩略图容器的示例
- 警告:必需标签“height”丢失,已设置为默认值。
- 警告:必需标签“width”丢失,已设置为默认值。
导致这些错误的源代码行(测试是否可以“全部放在一行”)
thumbnails { A { image "$screenshot (256).jpg" } }
(答案是“是”,但显示的空格是必要的。)
在某些情况下,此警告实际上是错误,因为默认值对标签无效。发生这种情况时,紧随警告之后会出现一条错误消息,指示该值无效。添加带有正确值的标签可以消除警告和错误。
警告:此资产使用已过时的 Trainz 内部版本号。不再支持低于 <build number> 的 Trainz 内部版本号
应用于资产的验证测试取决于资产的内部版本号。此消息表示资产被认为已过时,因此未应用最新的标准。
此消息为警告 - 资产仍将工作(除非存在错误)。可以通过更改内部版本号来消除警告,但这可能会产生新的错误,因为资产将根据较新的内部版本标准进行验证。仅当您准备进行所有其他更改以将资产更新到更高的内部版本号时,才应更改内部版本号以消除此错误。
该标签不再受支持,将被忽略。该标签在较低的内部版本号中可能相关,但在当前内部版本号中不再适用。
标签功能可能已被容器或其他标签替换,例如 'category-era-nn' 标签被更简单的 字符串数组 标签 'category-era' 替换,或者类似地,'category-region' 字符串数组 标签替换了多个 'category-region-NN' 标签。
查看 此处或 N3V Wiki 中的容器规范,以确定该标签是否有替换项。如果存在替换项,请选择与已弃用项中值对应的标签值。如果对应值不清楚,请接受默认值。在大多数情况下,可以简单地删除该标签。
当在容器内使用无效标签时,可能会发生此错误,并且验证系统假设标签值必须引用文件。例如,容器“sound”只能包含一个标签 - “soundfile” - 并且标签的值必须是文件名。如果包含了不同的标签,则验证过程不会报告无效标签错误,而是假设标签值引用文件,并创建此警告。解决方法是删除标签和值。
应在 config.txt 中添加 thumbnails 容器。
对于 3.5 版本及以后的 DLS 上传,这是一个错误,上传将被拒绝。请参阅错误列表中的对应项。
应为资源创建阴影网格并更新网格表。
3.8 版及更高版本不再需要阴影网格。但是,如果网格表中列出了阴影网格,则该网格必须存在,否则缺少的网格将被报告为错误。指定主网格作为阴影网格是有效的。
新资源不应使用单色纹理,但对于需要更改网格的旧资源,则应将纹理调整为 4x4,或至少将一个像素更改为不同的颜色(即使变化很小)。大型单色纹理会浪费资源:不要为了避免警告而调整图像颜色,同时也不要将其调整为合适的小尺寸 - 16x16 或更小。
据报道,如果图像小于 64x64,则不会生成此警告,但这在 Build 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”(假)或“1”(真)。使用任何其他整数值都会导致此错误消息。在某些旧资源中观察到 2 到 7 的整数值。可以合理地假设,除了 0 之外的任何值都表示“真”。
- 修复 根据资源的需要,将标签的值更改为 0 或 1。
- 请注意,在某些情况下,此消息实际上表示标签的定义错误 - 内容创建者遵循了正确的规则,但验证使用的是不同的规则。一个例子是 Trainz 的某些版本中的不透明度标签。在这种情况下,正确的类型是“值”(0.0 到 1.0 之间的浮点数),而不是“布尔值”。要消除错误,可以在 安装根目录\bin\TETData 文件夹中的 container.txt 文件中重新定义“不透明度”标签的类型。即使内容乍一看没有多大意义,仔细检查该文件的内容也应该表明所需的更改。
获取资产意味着在旧内容中经历一系列错误,这些错误通常可以通过一系列简单的编辑更改和PEVtools修复。这是一个执行此操作的指南,以及为什么会发生此类错误。AssetX 和 TARDIS 脚本可用于自动修复其中的许多错误。
- 请参阅 设置PEVtools 以了解一些有用的技巧和方法。
该资产的trainz-build标签 (TB,TBV) 值对于您的Content Manager版本来说过高。
- 如果您收到此消息,则可能表示您拥有多个Trainz许可副本,因为对于既没有旧版本也没有新版本的用户来说,这种情况不应该发生,并且您将无权访问高于与零售版本关联的最高TBV的内容。
|
几乎所有具有更高TBV的内容都可以通过降低构建编号以匹配您的版本来使用,除非使用了仅在更高版本中可用的功能(包括某些脚本功能)。对于我们这些运行多个Trainz版本的人来说,随着DLS软件并不总是正确的(并且可能根本没有在TS09、TS10和TS12中检查TBV——每个版本都下载了几个更高的3以及少量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手动下载资产,因此在使用这些站点时,可能需要格外小心,以确保仅下载并集成合适的版本到您的安装中。
- 唉,罗马人从未有过零!
正如仍然可能困扰最老练和经验丰富的资产修复人员一样……一个真正、真正、非常可能的首要原因,导致这一整组问题是缺少分隔符。
- 用简单的英语来说,您是否在某个地方缺少
'"'
或'}'
字符?
|
Asset 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 的 容器数据类型 也是如此,因此外部括号定义了值边界,可以这么说。类似地,当被视为字符串中保存的值数组时,例如 category-era、category-keyword 和 category-region,即使对我们人类来说是多值对象,也可以解释为单个配对值……只是软件期望包含多个子值的值,可以这么说。最终,这一切都取决于计算机如何解包和利用数据。配对术语,甚至分配了明确且不会与其他内容混淆的枚举关键字的复合术语,是构建需要快速运行和解释的收集整理数据的非常安全的方法,就像一辆 70 英里的火车穿过城市的后街一样![注释 5]
“看似相反地”,将资源降级到较早的 trainz-build 标签值会直接更改错误检查,因此也可能会显示此类消息。当然,你实际上可能正在将资源带到 Trainz 的早期版本,就像我们中的一些人做的那样,这将大大增加看到此类消息中引用的“新标签或容器名称”的可能性。以下两个错误是由将“新模型”[注释 6]轨道资源从原始的 V3.5 或 V3.6 带到 TBV 2.9 而分别生成的。
- 错误:标签“follows-spline-gradient”在类型为“track”的容器中不允许。[注释 7]
- 错误:标签“attached-splines”在类型为“track”的容器中不允许。实际上,attached-splines 容器 是一个聚合值“子类型”或修饰符,它将建模软件扩展到另一个子例程以解释其值。它很像 kind SceneryWithTrack 的 轨道容器(“附加轨道容器”),它包含允许两种“种类”混合特征的指令,允许工业、平交道和码头等资源具有其功能。
- 容器中所有可能出现在此类错误消息中的标签都是
- lateral-offset、use-same-direction、spline-kuid <...>、visual-only、follows-spline-gradient、start-gap 和 end gap},除了引用的 kuid 之外,所有这些都是布尔值参数,默认为 0(False)。
这些错误消息的底线是软件功能和 trainz-build 级别可能不同步。TBV 值标识何时将某些功能添加到种类和容器的调色板中。在早期版本中引用此类标签会导致此类消息。
以下实际错误消息:通常会“作为一组”重复大量使用别名标签引用外部网格的涂装棚标记的重制车辆。
- 此组源于直到 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容器中。将移动的剪切缓冲区(行)粘贴到 description 双引号内部的下方,进行复制编辑,保存并重新测试。
另一种使用string-table 容器的修复方法保留了传统方法的历史记录,前提是 Trainz 版本高于 V2.3——这只需将所有有问题的过时标签在连续的行上重新定位,添加标签 string-table 及其花括号“{”和“}”。这之所以有效,是因为 string-table 是每个有效'Kinds'中的合法容器。
- 在验证错误时保持在配置文件内是一个好习惯!
- 使用CTRL+S(在大多数编辑器中)保存更改,然后ALT+Tab ↹和/或⇧ Shift+ALT+Tab ↹恢复内容管理器窗口作为焦点应用程序。
- RMBh+drag查看错误和警告并重新测试资源。
- 通常,在某些其他错误(通常是路径修复)修复后,会出现其他错误。
- 注意:对于较旧(v2.6 之前的)资源,路径修复是迄今为止最常见的修复需求,因为在 trainz-build v2.9 之前,所有版本都能够根据asset-filename标签的指定值以及诸如 '_art'、'_body' 和 '_shadow' 之类的后缀,在原始数据模型文件夹中找到资源组件。从 v2.9 (TS2009-SP0) 开始,N3V 的程序员丢弃了使这些可预测链接自动生成的少量代码片段,从而迫使即使在简单的资源中也必须使用显式路径和容器。最常见的需求是缩略图、网格表和转向架容器;这导致了大量计算机处理程序代码产生的错误,以及其他可避免的错误生成消息。
- 强烈建议,如果您需要修复需要添加这些容器的错误,也请将trainz-build版本提升至 v2.6,并消除该 TBv 下的所有警告。此类修复在 TS12 中均有效。
情况一
- '错误:'engine' 类型容器内不允许使用'?'标签。'
- '错误:'bogey' 类型容器内不允许使用'?'标签。'
- 这条常见且经常出现在较旧内容中的神秘消息,并非由于'?'(?,搜索'?'在 config.txt 文件中不会找到任何内容!)。该错误是由gmax的遗留工件字符(通常在 config 的第二行上——不可打印字符(在大多数文本编辑器中由下划线(___)表示)插入,由作者保留(并被 Trainz 的早期版本忽略)导致的。
修复:请参考右侧图像中的文本:这可能是第 2 行上的两个不可打印字符,只需将其删除。
情况二:例如,它可能只是一个简单的拼写错误。
- '错误:'discription' 标签在...类型容器内不允许使用。'
因此,将拼写更正为'description'。
|
情况三,规范中不再存在的标签
- '错误:'origin' 标签在此容器内不允许使用。'
解释
- 该标签在较旧的版本中是正确的,但在当前版本中不允许使用。
修复:删除该行。(查阅此处维基教科书中记录的已弃用的 Config 标签列表。这些是最常见的情况(自 V2.8 (Trainz Classics 3) 以来,风景和路旁物体发生了许多变化:其他容器、KIND 和子容器的数据模型变化较少)。
- 此情况与上述情况相反:较旧版本中找不到的新标签!
错误是由于 Trainz 不同版本发布的验证规则不一致导致的。
例如
- 错误:'enginesound' 类型容器内不允许使用'engine-sound-ramp-up-durations' 标签。
- 错误:'enginesound' 类型容器内不允许使用'engine-sound-ramp-down-durations' 标签。
导入时,这些错误消息在 TS09、TS10 和 TS12 中都会出现。此错误的关键是仔细阅读并检查参考页面的历史记录。
- 这两个都是新的标签和参数,以前由一刀切的默认实现来满足,但“用户 Auran”(一个 Trainz ID 为“-25”,其粗心为 N3V 的 TS09-TS12 版本对资源进行了许多导致问题的升级。)没有更新trainz-build(在本例中,使 TB 默认值为 v1.3!)同时向资源添加了不合适的关键字(标签),而在 TS09-TS12(含)版本中内置的资源中缺少这些关键字(标签)。
- 因此,由于没有 trainz-build 标签,每个版本中都会出现此错误。
解决方案
- 通过添加 trainz-build 3.6 修复了 TS12 的配置。
- 通过添加 trainz-build 2.3 并将两行标签(包含逗号分隔浮点数的数组参数)移动到描述数据中...实际上是删除了这两行,从而修复了 TS09 和 TS10 的配置。
子容器识别错误。
某些子容器需要类型标识,并且类型指示哪些标签有效。一个例子是网格表中的 Effects 子容器。Effects 子容器的类型由'kind' 标签定义,可以是'animation'、'attachment'、'corona'、'name' 或'texture-replacement'。如果使用了错误的 kind,或者子容器中缺少 kind 标签,则子容器中原本有效的标签可能会被标记为“不允许使用”。此错误通常会为子容器创建一系列其他错误消息。修复方法是确保已指定正确的 kind,并且子容器中使用的标签适合该 kind。
另一个类似的例子是烟雾容器 - 烟雾容器的类型由'mode' 标签的值定义,并且该标签值决定了该容器需要或允许使用哪些其他标签。
- 实际示例
- 错误:'1' 中的 'image' 标签必须具有图像文件扩展名。
- 错误:'c' 中的 'image' 标签必须具有图像文件扩展名。
- 对于某些容器,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. 此错误可能是由于 config 文件中缺少关键信息导致的。例如,如果找不到“kuid”标签,则会报告此错误消息,即使实际错误应该是“无效的配置文件”。请检查是否包含所有必需的标签,并确保拼写正确。
- 每个 Trainz 项目都包含版本或“构建编号”,作为必填项,即资源的 config.txt 文件中的 trainz-build 标签。
|
- 原因
- 当您导入具有 trainz-build 标签值的资源时,如果该值高于构建编号(支持的数据模型或技术级别),Trainz 版本将不支持该资源,就会出现此错误。
作为必填数据字段,trainz-build 编号向游戏定义了创建资源的技术标准。它还定义了 内容管理器 在对资源进行验证和添加到本地数据库的操作时进行验证的标准。这使游戏能够根据适当的技术标准验证资源,并根据需要插入默认值或忽略功能。它是维护 Trainz 版本间兼容性的秘诀,也是(例如)Trainz 1.3 资源仍然可以在新路线和会话内容中使用的原因。
通常,可以通过调整构建编号将资源降级以使其在 Trainz 的早期版本中工作,但存在一些限制。脚本是构建之间发生重大变化的一个领域,如果构建编号降级,可能会导致问题。因此,将资源从(例如)3.3 调整到 2.9 可能需要删除或禁用脚本。此外,构建级别之间的技术标准存在一些不一致之处。例如,构建 3.5 允许在 Soundscript 容器中使用 Distance 标签的单个值(这是 2.9 之前的标准),但构建 3.3 要求包含两个值。这些更改通常很容易在资源中进行调整。
网格、纹理、kuid 引用和其他类似的资源基本元素通常可以在 2.9 及更高版本的所有构建中正常工作。对于 2.9 之前的构建,所需的调整会更加广泛。
- 现在仅由 kind track、地图和会话资源建模的样条线资源以及包含需要先前版本中不存在的脚本功能的脚本要求的资源,阻止将资源降级到 N3V 时代的数据模型(TS09 及更高版本)。大多数资源可以通过简单地将 trainz-build 更改为 CM 或更早版本的 trainz-build,并可能补偿(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 文件,请检查资源的 mesh-table 容器 中的文件夹/路径规范条目,并验证 PATH(许多旧资源都有一个 'asset-name'+'_body' 子文件夹,这是直到 TRS2006 中期版本的约定,因此可能存在于任何 v1.3-v2.4 资源中)和 文件名规范(包括扩展名)是否正确。
- 在这些较旧的资源中,如果路径规范正确,则可能没有安装 mesh-table。添加一个(至少在 v2.0 之后)将(不出所料,因为它是在 TRS2004 中引入的标准)被所有 Trainz 版本接受,并且 N3V 的 TS09-TS12 版本中较差的解析通常会要求这样做。
- 大多数将位于以 后缀 '_body' 结尾的子文件夹中。
实用节省时间的提示:在 ..\editing\asset-folder 中,单击一次子文件夹,然后按键盘序列 F2+CTRL-A+CTRL-C,(然后 ESC) 以捕获子文件夹名称的精确语法(并且不更改任何内容)。 - 然后将其粘贴为 mesh-table 路径前端:"subfolder-name_captured\mesh_filename.IM"。
- mesh-table 样板示例(调整 路径规范 和 文件名 以匹配您的文件夹内容)
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)。
此错误有多种可能的原因
- 附件点名称错误,因此网格和列出数据点的容器不匹配。
- 附件点名称已列出,并在其后添加了一个或多个空格。
- 附件点丢失,因此网格和列出数据的容器再次不匹配。
“Numeric-name” 的解释:网格中引用的 queues 容器 在子容器 passengers_off_0 中,第十九个名为“18”的附件点丢失。(“18”是 占位符参数 引用——充当名称或标记的数字……并且可以重命名为“xyz”、“glops”或任何不带空格的名称,只要它出现在容器(数据表)的第 19 行即可)。
• 作为占位符参数,数字被解释为字符串,没有权重或值,就像标签名称一样。
• 重要的是在{...} 对内有内容,其内部行中的每一行也期望关键字(或占位符)与值配对,这在 Trainz 中是普遍存在的。
• 请注意 成对的 { ... } 大括号 的内容与前面的 kind 或 容器名称 配对。
- 有三种可能的常见修复方法……
- 可以使用 PEVsoft 工具 Attachment Maker 将附件点添加到平台中,名称为“a.passoff_##'”,如果它确实丢失。(这在较旧的“乘客产品”资源中相当常见。)
- 但是,根据名称“a.passoff”,该行可能缺少数字后缀——没有人会浪费时间给火车站台上的通用附件点(可能数百个)一个花哨的名称——这些通常以数字作为后缀;因此,该消息可能是因为容器名称缺少其数字后缀而发出的,并且由于占位符序列为
00 → a.passoff01,
01 → a.passoff02,
02 → a.passoff03,…因此在条目##-1 → a.passoff##
X 中,添加正确的后缀“##+1'”,
因此,在给定的示例中,将 19 添加到 #18 占位符的行应该可以解决问题。 - 如果重命名失败,则可以简单地删除该行。如果是这样,产品 queues 容器 中的“size” 标记编号应递减,以正确初始化数组的大小并节省运行时内存。
|
config.txt 中引用了一个附件点,但它不存在于默认网格 <mesh name> 中。当 config.txt 从另一个资源复制而来,并且网格中已删除附件点时,通常会发生这种情况。例如,道口栏杆已从网格中删除了灯附件,但灯的日冕效果仍然引用了丢失的附件点。
示例(以及相关的伴随错误)
- 错误:网格中必须找到“133”中的附件点“a.lite121”。 ''.
- 错误:附件点“a.lite121”必须属于效果的父网格(网格=malt.IM)。
此错误也可能由于附件点命名错误(有时由于名称中存在尾随空格)而发生。
效果容器通常是一系列构成模型的类似项目,需要某种形式的单独处理。例如,建筑物中“背光”的窗户、火车车辆上的灯、站台上的乘客和“树组”中的树木。这些效果需要在父网格上有一个连接点,以便在模型中定位效果。
解决方案:如果问题是错别字,则更正效果容器中连接点的名称。如果找不到正确的连接点,或者效果不再与资产相关,则删除容器。
|
这通常与上一条消息一起出现。连接点不仅在网格中找不到,而且在效果所附着的父网格中也找不到。其原因与上一条消息相同。
容器(子容器)将位于mesh-table中。该消息表明容器缺少必需的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或其他支持文件(包括资产根目录上方的文件)。
- 但是,如果内容项使用相同的文件名但数据不同,则旧方法有时会产生细微问题的风险。
- 较新的Trainz不会以相同的方式查找内容,而是依赖于指定的pathspec,并且texture.txt文件用于确保明确指定了正确的pathspec/filenamespec。当子文件夹或资产根文件夹在filename.texture.txt文件中指定了一个文件时。这会产生衍生错误效果...在Trainz 1.3--TRS2006中很容易找到的文件突然断开了pathspec,导致资产损坏。
- 请注意,此错误和下面的错误(无法加载主纹理)通常会一起出现。
texture.txt 文件中引用的图像无法加载。它可能丢失,texture.txt 文件中名称可能拼写错误,图像文件格式可能错误(例如,压缩的 TGA),图像尺寸可能不是 2 的幂(在需要的地方),或者图像文件可能已损坏。
|
示例:错误:在验证网格“shadow.im”时,无法为纹理“shadow”加载图像文件“shadow.bmp”。
- 解决方案:阴影网格不需要任何图像文件。但是,许多阴影网格都是使用默认图像(通常为黑色)创建的,在某些情况下可能使用了多个图像。使用 PEV 的 QuickShadows 实用程序从现有的阴影网格重新创建阴影网格,并删除原始阴影网格使用的图像(texture.txt 和图像文件)(在确认它们不被其他网格需要后)。使用 QuickShadows 实用程序创建的网格不需要任何图像。
对于不是阴影的网格,请参阅以下内容。
- 请注意,此错误和前面的错误(无法加载图像文件)通常(如果不是总是)会一起出现……
texture.txt 文件中引用的主图像无法加载。它可能丢失,texture.txt 文件中名称可能拼写错误,图像文件格式可能错误(例如,压缩的 TGA),或者图像文件可能已损坏。
示例 1:错误:无法为纹理文件“shadow.texture.txt”加载主纹理“shadow.bmp”。
- 解决方案:使用了在修复资源时构建的文件夹 textures 库中存档的 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\billboardnight.im”缺少纹理“billboardnight/white flat.texture”或无法加载。
- 在这种 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 标签”已添加到 config 中,并且图像文件已从标签直接引用而不是通过 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 位,将 Alpha 通道添加到现有的 TGA 文件中。然后,TGA 文件名会在 texture.txt 文件的“主纹理”和“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)的图像文件,正如 2014 年 9 月 N3V Games 版本经理 James Moody 所强烈建议的那样。在脚注中详细引用的电子邮件中,J. Moody 强烈建议对所有图像格式文件(包括 *.jpg 240x180 缩略图屏幕截图)使用 texture.txt 文件[1]。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 版本简单地忽略无效的关键字,从而使许多结构实际上成为了注释)。如果它只是一条注释,则可以将其删除。
• 脚本使用的标签常常利用了 TRS 版本 简单忽略无效标签的事实——这种处理方式应该继续保持,因为它可以让计算机在眨眼间完成一项任务,并避免数千用户花费时间去“**修复程序员武断行为导致的资源损坏**”——这就是为什么需要创建此页面!
• 例如,一些脚本使用标签来提供运行编号范围(起始和结束合法值),这些标签通常作为配置文件中的顶级标签包含。这些“自定义标签”不再允许作为顶级标签 - 它们必须移动到“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 解决多个声音处理问题的预期方案来说是不必要的,然后在 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 文件。如果找不到该文件,则会记录错误。
当标签需要一个值列表时,列表中可能存在所需的最小或最大条目数。如果未提供正确的条目数,则会记录此错误。
- 案例一——声音脚本容器中的 repeat-delay 标签配对值
- 在较旧的声音效果资源(kind scenery 或其他)中很常见,因为早期的 Trainz 版本被编程为足够智能,可以将第二个值设为默认值。
- 实际示例——一个具有三个不同声音效果的资源
Slugsmasher 的 trainz-build V2-4——SS Log Dump 柴油机, <kuid2:86661:144048:2>,在升级到 V3-7 时,来自 V2-9-SP2(TS2009-SP2 消息)的错误。值得注意的是,TS12 没有报告相同的错误,在导入到 V3.1 之前没有报告任何错误和警告,尽管 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 中进行排序——并且主要用于传达人与人之间的分类通信而不会影响软件,现在用于定义轨道种类的许多样条子类型。)但是,TS2009和TS2010的验证存在不一致,无论轨道数量多少,都只允许偏移量和方向有两个值。TS12 要求两个列表中的项目数量正确。
桥梁资源类别类“TB”需要 trackoffsets 标签,该标签指定轨道距离样条曲线中心线的距离。标签值是一个CSL 列表,其中包含以米为单位的[注释 16]十进制数字,但所有桥梁类型(道路,[4]单轨桥,[5]或双轨,[6]甚至隧道,[7]在 TS2009 之前每个都有唯一的 KIND 声明)在 TS09 和 TS10 中存在一个编码错误,在 CM 验证过程中将所有桥梁解释为双轨,并且始终需要至少两个值。这伴随着样条曲线中类似的变化,将它们定义为轨道 KIND 子类型以及所有轨道轨道资源。
- 给定此错误消息的更新旧资源的正确方法取决于读取配置文件的 ContentManager 版本。Content Manager 2.0 到 Content Manager 3.3 将错误地给出此错误,这就是调整方法。此类更正需要在将资源移动到 TS12(TB V3.4 及更高版本)时重新调整。
- 理论
• 如果要更正错误,则在轨道资源中删除标签,则资源将没有任何“桥梁轨道
• 列表中的项目数(以及 trackdirections 标签列表中的值数)必须与TS12和之前 Trainz 到 TS09 的桥梁中样条曲线中的轨道数相匹配。
• 对于使用 CM 验证这些版本的错误的单轨或单样条曲线公路桥的更新,请使用两个非常小的偏移量,例如trackoffsets -0.001,0.001。[注释 17]
|
示例:错误:容器“14”中的十进制标签“object-size”不是有效的十进制值。
标签值不是有效的十进制数。例如,已输入“0,05”而不是“0.05”。编辑标签值,使其成为有效的十进制数。
在资源中未找到动画文件。
- 此错误在网格中没有动画的 mocrossing 种类中很常见。例如,道口可能具有闪烁的灯光,但没有栏杆或栅栏,或者资源可能是 mocrossing 种类,因为它出于动画之外的某些目的需要接近的火车触发的事件。即使 config.txt 中未引用,CM 也要求 mocrossing 种类的资源存在动画文件。在这种情况下,任何有效的 anim.kin 文件都可以添加到资源中以消除错误。可以在用户数据中搜索合适的文件——只需要一个有效的 .kin 文件即可满足 CM 的要求。
如果网格支持动画但没有动画文件,则修复它将很困难。如果资源是一系列类似道口的一部分,则来自该系列中另一个资源的 anim.kin 文件可能有效——这应该进行彻底测试。如果网格是动画的并且正确的 anim 文件不可用,仍然可以替换不同的文件,最坏的结果是动画不会发生。无法从网格信息创建正确的动画文件。如果替换动画文件,请确保使用 Loco 在轨道上对其进行测试,使其从远处逐渐靠近。如果动画没有触发,则资源至少可以使用。如果它确实触发了,那么您可以在决定是否进一步修复资源之前决定效果是否可以接受。
在某些情况下,这可能也是一个警告,即使它说“必需”。它指示资源类型需要特定容器,但该容器尚未包含在 cofig.txt 文件中。此问题的解决方法取决于容器(某些容器可以轻松创建,某些容器不能)和资源类型。
当容器中需要 kuid 时,它必须是适合该容器类型的 kuid。
- 案例 1,队列容器示例
- 错误:“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上传验证错误。
附加轨道容器包含一个或多个顶点子容器。子容器中列出的顶点对表示顶点之间的连接。一对顶点只能有一个连接。通过删除重复的顶点对之一来编辑顶点子容器。
此错误可能不再有效。请参阅以下两项。
已检测到资产过时历史存在问题。但是,错误消息中的描述不正确。问题在于该资产正在使已存在于资产过时历史中的项目过时。例如,资产<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++ 拥有执行 Trainz 中所有类型编辑所需的所有搜索和替换 (SAR) 功能。
- ↑ 请注意,此列表是在添加 thumbs 容器后生成的,因为描述块是在 thumbs 容器之后添加的。添加和缺少“某些内容”(分隔符或结束块字符)会极大地改变报告的错误消息。计算机只是在说,嘿,笨蛋,把它们配对!
- ↑ 标签“rgb”对我们人类来说,三个值分别代表红色、绿色和蓝色数字,范围为 0-255(十六进制 0-FF),但存储为单个计算机字(32 位可以容纳四个这样的字节值,这就是透明度“Alpha 通道”在许多常见图像文件格式中如何存储在图像像素的 32 位字中),因此在文件读取子例程保存时保持关键字-值配对关联。类似地,每个容器都有自己的处理子例程,它知道哪些关键字在其中是合法的,并且还可能进行边界测试(浮点数或整数或布尔逻辑值在某些情况下可能看起来相同,但内核系统中使用的变量和存储方法大不相同。
- ↑ 直到 2008 年发布 TS2009 之前,“除铁路样条线、道路、桥梁和隧道以外的其他种类”都是独立的种类(参见:此处在轨道下缩进来自参考,但它们都与添加了许多标签以控制或区分图形渲染的内容相结合。之后,桥梁、隧道和样条线对象(如栅栏、车站站台、电力线(电线杆和电线),实际上任何具有长度的资源)都使用轨道分类和方法。
- ↑ 对于好奇的人来说,“follows-spline-gradient”布尔标签是在 2012 年秋季的 TS12 更新期间添加的,以修复 TS12 中附加轨道容器的一些应用,如此编辑和一个月后的编辑之间记录的那样。在 TS09 和 TS10 中使用时,资源可以工作,但在 CM 中会显示错误。相关的轨道是 Auran 桥轨道:“Auran Track Bridge,<kuid:523:19721247>”
- ↑ Fabartus 说,这仍然是我在任何软件部门见过的最愚蠢的决定之一,他从 70 年代后期就开始编写代码。Windwalkr 和他的团队欠了每一位 Trainzer 许多工时来解决这个愚蠢的错误!FrankB 01:43, 2016 年 4 月 14 日 (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范围限制修复。
• 提醒新用户,有时必须参考作为Trainz Wiki附录提供的TC3内容创建指南PEV以查找正确的默认值……与往常一样:社区将感谢Trainz Wiki上任何页面和段落更新了此类深奥的信息,当偶然发现时,从而无私地为大众所用。 - ↑ 请参阅CCGTC“类型:双轨桥”在线资源以及请参阅CCGTC“类型:桥”(单轨)在线资源以及CCG/类型:轨道(道路)和CCG/类型:桥隧。
- ↑ 为什么该值不能取零值尚不清楚,但推测它在某些计算中用作除数。无论如何,较旧的CCG中会出现非零的非常小的数字作为所需值。“轨道偏移 -0.001,0.001”在TS10-SP2中针对单轨和道路元素进行了测试(修复后),并成功耦合到连接的道路上。
- ↑ .在一系列私人邮件、回复、异议、澄清和重申中,涉及到Yesterdayz-Trainz的约6名成员和James Moody,有人提议
- James Moody提出的始终使用texture.txt文件的电子邮件交换,除了DLS 240x180缩略图。
- N3V Games的版本管理器James Moody回复(截断)
我的建议是绝对100%肯定地引用一个.texture对于在驾驶员或勘测员中以任何方式出现在游戏中的内容。
如果Trainz遇到需要在游戏中渲染但不是.texture的内容,即使它是UI的一部分,它也必须在运行时将其转换为texture。这种texture不会像CM在提交时预先创建的texture一样好(或使用速度一样快)。
显然,对于旨在用于网络(例如DLS)的内容,例外情况是,您希望使用网络浏览器可以理解的内容。这就是为什么我们对DLS缩略图使用.jpg。
对于大多数资源,这“仅仅”是一个性能问题,导致每次遇到图像时都会进行磁盘访问(因此会出现短暂的卡顿)。但是,这里实际上还隐藏着一个更严重的问题。
如果一个资源被广泛使用,它很可能在未来游戏版本中作为内置内容集的一部分出现,或者可能作为DLC内容包的依赖项。这些资源以剥离源纹理的形式分发,以减小下载文件的大小。如果您有一个.texture.txt,并且仍然直接引用源图像(例如.tga),那么在这种情况下将完全失败。它不仅速度慢,而且根本不起作用。(斜体强调添加)您会得到一个空框 - 根据情况是100%黑色或100%白色,因为该文件确实不存在。
如果您想查看此错误在实际中的表现,请在TS12(或者TS2010)中使用内置的机车车辆创建一个列车编组。大多数列车编组没有列车编组预览图标——正是因为内容存在此错误。
—James Moody, 2014年9月16日12:24 EDST(波士顿)向Yesterdayz-Trainz的五名成员发送的电子邮件 - ↑ 在TS10中发现,V2.8资源配置.txt包括标题行: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 “类型:桥梁隧道”