跳转到内容

Trainz/AM&C/处理资产错误

来自维基教科书,开放世界中的开放书籍
logo
Trainz 资产维护和创建

Trainz 的内容管理器技能教程
TOC | 开始乐趣 | AM&C | 创建 | 书中参考文献 ORP 参考文献:  • 索引 • 容器 • 种类 • 标签 | 附录  • 版本
 词汇表
 HKeys-CM
 HKeys-DVR
 HKeys-SUR
 HKeys-WIN
 鼠标使用
 符号
贡献作者:Fabartus

处理资产错误

[编辑 | 编辑源代码]

'错误、故障、有缺陷的资产、不良内容、有缺陷的内容在 Trainz 中都是同义词,指的是相同的情况:资产在分发时带有格式错误的组件、缺少组件,或者尽管在更早的 Trainz 版本中可以正常工作,但已与更新的软件版本不兼容。这种后一种错误或故障发生在资产需要调整以符合更新级别的资产技术时,并且是最普遍的。缺少纹理(组件)的资产可以“修补”并使其工作,即使外观与内容创建者使用的不完全相同。无论缺陷是什么,它通常可以通过对文件进行简单的手动编辑来“修复”,最常见的是仅在资产定义文件夹(使用操作系统文件夹中的第三方工具打开)中的资产 ini 文本文件中进行编辑。

目前,这些页面上关于错误修复的最佳建议可以在 Trainz/AM%26C/修复资产 中找到,其中以文本可搜索的格式涵盖了最常见的错误消息,允许输入错误消息中的关键词以了解如何修复它。

 

必要的工具

[编辑 | 编辑源代码]
从 CM 到 CSL 的 kuids 的复合片段。

处理 Trainz 资产所需的第三方软件实际上都可以作为 免费软件 获得。

  1. 一个好的文本编辑器是上帝的恩赐,虽然 Windows 提供了久负盛名的基本文本编辑器记事本,可用于简单的编辑,但它缺乏许多有用的功能
    1. 建议改为使用 免费软件 程序员编辑器 Notepad++,因为它在几个方面非常有用,其中最重要的是能够跨行尾边界进行搜索和替换 (SAR),从而可以轻松地将 CM 生成的资产列表转换为 内容管理器 兼容的逗号分隔列表 (CSL/CSV) 的 kuids。
    2. 程序员记事本 — 与 Notepad++ 程序员记事本和(下一个建议)Crimson 编辑器一样,它们允许多文件编辑,具有比 Windows 记事本更强大的搜索和替换功能,并具有各自的优势。
    3. Crimson 编辑器(著名 Ruby 编辑器的最新版本)
  2. OpenOffice 套件 — 与 Microsoft Office 不同,这款免费的开源软件包不会让你破产,与之完全兼容,并且建议在此处使用它,因为它有两个主要用途,涉及使用电子表格模块
    1. 电子表格是一个有用的平面文件数据库;不同的选项卡允许跟踪不同的项目资产,例如将 CM 主屏幕 生成的选中列表作为 CSL 进行跟踪。一个包含 kuids 的 CSL 具有许多组织优势,其中最重要的是能够使用不同的资产 kuids 重置一个或多个过滤器,以便在勘测员中使用。
    2. 将从 CM 主屏幕复制的资产列表粘贴到电子表格中作为 CSV 列表,是截断资产名称和 kuids 的最快方法。该过程是:A) 从 CM 中复制资产组;B) ALT+Tab ↹ 到电子表格草稿工作表;C) 将复制的资产名称及其 kuids 作为 CSV 导入粘贴,以逗号作为分隔符。D) 仅复制 kuids 列;E) ALT+Tab ↹ 到 Notepad++ 草稿工作表;F) 将列表粘贴下来(电子表格的每一行都变成一行,其中包含一个 kuid);G) 在行尾从 '>\n<kuid' 开始执行 SAR,并用 '>,<kuid' 替换

假设读者在继续学习以下内容之前,已经通读并了解了以下页面中介绍的材料

  1. PEVtools - 如果你想快速修复资产而不会感到沮丧,则必须安装 PEVtools。
  2. 内容管理器 - 操作内容管理器是资产下载、修复和升级的核心。
  3. 何时修复资产或何时升级它们 - 修复和升级资产是同一枚硬币的两面,但其中一面需要更多时间和更深入的知识。此条目解释了何时只修复资产是一个获胜策略,以及何时升级是更好的选择。

本模块的目标

[编辑 | 编辑源代码]

本模块将使读者了解以下 Trainz 知识主题

  1. 我们将介绍一个基本的火车数据模型,Trainz 1.3 版本,并用它来介绍原始数据模型将内容放置的位置以及从那时起内容发生了哪些变化。
  2. 作为初始目标,我们将向您展示如何修复一个不太严重的资产错误
  3. 在将资产修复到 Trainz 针对 TB V2.3 的需求(TRS2004TRS2006 满意)之后,您将学习最常见的修复步骤,以修复 DLS 上提供的多数较旧内容。简而言之,它归结为使用更新的数据模型结构(缩略图、网格表和转向架容器)来调整原始 Trainz 实践,这些结构(在大多数情况下)满足由 N3V Games 开发的 TRSs 后时代的 Trainz 的需求,这些需求破坏了由 Greg Lane 和他的程序员安装的兼容性代码。(这就是为什么这些资产在 TRS 和 TC 版本中可以正常工作的理由。)
编者按: 如果您要修补一个 V1.3 到 V1.5 的资产,使其在 TS09 及更高版本中同时支持验证和提交,则通常需要添加一个 网格表容器缩略图容器,以及对于火车车厢,添加一个 转向架容器。除了缩略图之外,这就是 V2.0 资产的烹饪手册,缩略图是在 V2.5 (TRS2006-SP0) 中添加的。考虑到这一点,您不妨从计划升级 trainz-build 开始!该资产肯定无法在 Trainz 1.3 中运行了!


  • 一些 Trainzer 会说“有什么大不了的!现在你拥有了一个带有纸质车轮的工作货车的私有副本... 我会羞于使用它” 考虑给这个可怜的人送些花,或者至少给一根线索棒。她显然不明白 废弃表 的用途。在废弃表中添加 100073 和 100074(以及其他几个)。
obsolete-table {
  0                        <kuid:-1:100073> 
  1                        <kuid:-1:100074> 
}

新用户应该注意,config.txt 文件中的裸 KUID(100073,一个货车转向架或卡车)默认设置为 作者 #-1 ... 这是最初的 Auran 用户身份。他们自那以后使用了许多其他身份,包括所有负面用户身份值。

  • 再说一次,就像模型铁路爱好者使用物理模型套件一样,DLS 是一个巨大的“套件零件”来源,我们可以通过一些实验和胆量来数字化“套件拼装”新的模型。
编者按: 学习修复旧的资产使它们能够在我们的想象工程可能需要它们的利基市场中使用,包括满足昨日路线构建者/场景编写者的想象工程,为你们打开这些路线供你们利用。 学习如何使用扳手和调整旋钮,创建自己专用资产的步骤变得更加小,而且远没有那么陡峭。



评估旧模型

[edit | edit source]

我们在下面使用未修改的配置来为新的 Trainzer 提供资产正常功能的导览

kuid                                    <kuid:55290:638>
origin                                  "USA"
engine                                  1
category-region-0                       "US"
category-era-0                          "1970s"
category-era-1                          "1980s"
category-era-2                          "1990s"
category-era-3                          "2000s"
category-class                          "AL"

running-numbers
{
}
name                                    "Loco CONRAIL QUALITY WEATHERED SD40-2 "
bogey                                   <kuid:-12:3535>
bogey-1                                 <kuid:-12:3535>
bogey-2                                 <kuid:58377:50012>
bogey-3                                 <kuid:58377:50013>
mass                                    135000
company                                 "CONRAIL RAILWAY"
kind                                    "traincar"
interior                                <kuid:-1:101475>
trainz-build                            1.3
fonts                                   0
smoke_shade                             1
smoke_random                            2.5
smoke_slowlife                          6
smoke_fastlife                          0.8
smoke_height                            1.7
smoke_fastspeed                         1.6
enginespec                              <kuid:58377:51022>
enginesound                             <kuid:-1:42003001>
hornsound                               <kuid:-1:42003101>

smoke0
{
  attachment                            "a.mainex0"
  mode                                  "time"
  color                                 40,40,40,120
  accel                                 0,0,0
  rate                                  20
  velocity                              3
  lifetime                              2.5
  minsize                               0.3
  maxsize                               2
}

smoke1
{
  attachment                            "a.mainex1"
  mode                                  "time"
  color                                 40,40,40,120
  accel                                 0,0,0
  rate                                  20
  velocity                              3
  lifetime                              3.5
  minsize                               0.3
  maxsize                               2
}

smoke2
{
  attachment                            "a.mainex2"
  mode                                  "time"
  color                                 40,40,40,120
  accel                                 0,0,0
  rate                                  20
  velocity                              3
  lifetime                              2.5
  minsize                               0.3
  maxsize                               2
}
description                             "CONRAIL QUALITY SD40-2. Model was created by Prjindigo, Roger Crouch and the paintwork was created by Sean Pope
"
asset-filename                          "CONRAILQwSD40-2"
username                                "CONRAIL QUALITY WEATHERED SD40-2 "
author                                  
organisation                            
contact-email                           
contact-website                         
license                                 

kuid-table
{
  0                                     <kuid:-12:3535>
  1                                     <kuid:58377:51022>
  2                                     <kuid:58377:50012>
  3                                     <kuid:58377:50013>
  4                                     <kuid:-1:101475>
  5                                     <kuid:-1:42003001>
  6                                     <kuid:-1:42003101>
}

什么重要/什么不重要

[edit | edit source]
TB 值键范围 零售版或服务包版本等效 TB 值目标
  v1.3—v1.5
Trainz、Trainz 1.3,一直到 Trainz UTC
2.3-2.6
  v2.0—v2.4
TRS2004 及其 4 个服务包
2.4, 2.5-2.7
  v2.5—v2.6
TRS2006 及其 1 个服务包
2.6-2.9
  v2.7—v2.8 2.9-3.0
  v2.9—v3.3
TS2009 & TS2010 每个版本 + 4 个服务包
3.5-3.7

乍一看,许多机车火车车厢资产对于希望修复有故障资产的新 Trainzer 来说似乎非常复杂。trainz-build 值的重要性甚至许多参与 Trainz 的内容创作者都没有很好地理解,从 Trainz 最初的版本开始就是如此。关键是要理解 Greg Lane 和最初的编程团队在 2003-04 年期间对资产的关键更复杂的数据结构进行了演变,而且自那以后它们几乎没有变化,只是增加了额外的功能。

  1. 记住,“TB”表示 trainz-build,v#.# 是该 trainz-build 标签的值,此外,N3V Games 选择实施升级的倒退方式,内容管理器 (CM) 验证程序生成的所有资产故障列表都取决于它们各自的 config.txt 文件中分配给 trainz-build 标签行的值。这意味着使资产在特定的最小阈值下无故障,应该会导致资产在所有更高版本中都能正常运行。事实上,该阈值通常非常低;符合 “理想”v2.0-v2.4 数据模型 定义通常会导致资产在 TS12-SP1(TBv3.7;这些资产应该与新的 TANE 数据模型一起使用)之前一直运行。将大多数其他资产修复到 v2.6 故障测试需求,应该会为少数孤独的例外情况带来类似的成功,尽管 N3V 管理层人为地将上传所需的最小 TB 值上调了。(结果是,N3V 希望内容创作者自愿无偿地每隔几年就不断地更新数百个资产——没有任何理由或必要!)
    1. 数据模型中的下一个重大变化是 N3V 首次涉足新的技术能力,这主要影响机车——某些配置标签和以前使用的标签被移动到不同的 KIND 混合中,或者被认为不需要定义而被删除[注释 1]
    2. 下一个重大变化是在 TS2009-TS2010 版本,当时程序员将旧的内容创建者指南准则正式化到 TrainzOnline Wiki 中,我们现在应该依靠它来获得有关如何修复以及如何修复的技术指导。不幸的是,它很少更新,并且在需要之前不会提前宣布更改,而 DLS 审核软件则会更新到 Windwalkr 当前的偏见,没有任何通知。[注释 2]
  2. 克服混乱的首要关键是要知道 CM 非常擅长提供故障消息,这些消息表明 config.txt 文件需要细心呵护 (TLC),这意味着你基本上可以忽略它没有抱怨的行。
  3. 缓解变化演变的第二件事是意识到你可以在修改文件之前进行备份,我们强烈建议你将此练习养成习惯。
    1. 根据你使用什么文本编辑器,这可能需要在打开文件之前完成,或者就在之后完成。
      1. 要在打开之前进行备份,用 LMB 在其 Windows 文件夹中单击该文件,键入 CTRL+C,然后单击文件夹中任何文件或文件夹之外,然后使用 CTRL+V(粘贴),Windows 将克隆原始文件。然后,你可以根据后面介绍的替代方法对其进行重命名。
      2. 更经济的方式(假设我们正在打开一个默认设置为 TB v1.3 的旧资产),我们更喜欢使用 Notepad++ 打开文件,键入 ⇧ Shift+ALT+Tab ↹(后退一个窗口)以将焦点返回到文件文件夹(文件将仍然被选中并突出显示),然后是 F2(Windows 重命名)并在结束的 '.txt' 扩展名之前插入字符串 "v1-3.orgFlawed" 或仅 "v1-3.org"。当然,如果资产最初是 v2.1 或 v2.2,则相应地调整 .org. 名称。
        1. 完成于 ALT+Tab ↹ (前进)回到 Notepad++,当它重新获得 Windows 焦点时,会显示一个 **弹出消息框:** "文件 config.txt 已被移动或删除。是否保留编辑器中的文件?" 我们建议您使用相应的鼠标左键单击 'YES' 回答。
        2. 这种技术可以让你同时记录已保存文件的狀態,并保留其原始历史记录(日期时间戳),这有时会很有用,同时允许你以一种提醒你现在为什么要保存该文件的方式重命名该文件。当你写出更改时,它也有一个同样有效的日期时间戳。你可以立即点击 CTRL+S 保存它,重建文件夹中的 config.txt 文件,或者等到你改变了东西(我们建议你这样做,毕竟你已经备份了!)
        3. 修复完资产后,使用它给定的 trainz-build 标签 级别再加上一个提升(参见表格推荐的目标级别的右侧列),我们将建议一个后续程序,因为我们逐渐将修复后的资产文件集演变成一个完全升级的文件集,使用类似的符号,如 'config.v2-3a.PRLM.txt'、'config.v2-3b.OK.txt'、'config.v2-6a.OK.txt'、...、config.v2-9.near.txt、...、config.txt. →(大概为 v3.7 或更高版本)。
  4. 关键点是,对于大多数资产来说,通常没有必要将旧的资产修复和演变到 v2.0 之后,对于某些需要针对 TS09 和 TS10 进行特殊 TLC 的特殊情况,则需要演变到 v2.9–3.3 之后。
  5. 帮助新手了解另一个因素是认识到事物的顺序(除了容器大括号内部,即使在里面,很多东西也可以按需重新排序),根本不重要。资产 类型 需要有 Trainz 需要的所有声明和定义,否则 Trainz 会报错。
    1. 这意味着,如果你更喜欢以某种顺序分析资产因素,可以随意移动行。只是尽量不要丢失任何行,除非那是修复方法!
    2. 这种自由意味着你可以将相关数据分组在一起 [例如,所有包含 'ory-'(即 'category-')的三个标签,或者所有引用行的 kuid(部件或组件,如转向架),或者所有包含 'name' 的标签等等],这可以帮助你更好地了解正在发生的事情,让你感到舒适。
    3. 作为一般策略,在修复时,我更喜欢将所有常见的标签(通常在提高 TBv 级别时进行更改或删除)移动到文本描述块附近,在那里我添加一个更改记录,记录我做了什么来改变作者的资产。你可能不需要,也不理解添加后缀的意义,就像我一样 ['-a' 表示已更改,'-aR' 表示已修复,'-aRu' 表示已修复和升级,'-aRus' 表示添加了屏幕截图。类似地,'-aS' 表示我添加了一个屏幕截图,'aCmd' 表示我克隆了它并修改了它,使其适用于早期的 Trainz 版本]。记录你做了什么以及为什么是一个 '优秀程序员' 的习惯,并且不要弄错,这是一种我们正在维护的软件形式。[注 3]
  6. 请随意大胆尝试。上面提到的 'config.v2-3a.PRLM.txt' 标志着策略的一种哲学上的改变,它将迄今为止的修复复制到安全的地方,然后进行更加大胆的行动,使用新的容器和标签将资产跳转到比最初的目标 TBval 更高的级别。一旦你熟悉了 KIND 类型中常见且预期的标签,你应该也这样做。
  7. 待续

主题 5 及以上

[编辑 | 编辑源代码]

 

*在 trainzoptions.txt(TR04—TS12)中设置 'freeintcam' 开关参数,或在 TANE 及更高版本中勾选具有相同功能的复选框(释放内部摄像头),会改变键盘箭头键的功能,从旋转和倾斜功能变为左右移动摄像头位置。Freeintcam 模式允许用户将许多摄像头完全移动到驾驶室之外,或移动到更有利于观看(和鼠标控制)的角度。

注释、脚注和参考文献

[编辑源代码]

Config.txt 文件在 Trainz 资产中是普遍存在的,因为没有资产可以在没有这种类型的 计算机科学容器 的情况下定义。在编辑或创建 Trainz 内容时,必须始终牢记关键字-值的键对。 TrainzBaseSpec 包含在定义资产的 config.txt 文件中最常见的属性和容器。 

注释

  1. 一个优秀的编程团队会知道只需忽略这些标签,就像它们是注释行一样,N3V 的 Windwalkr 选择与之对抗(在 TS2009 的更改中更是如此,他甚至取消了注释作为合法项目!),从而迫使数千名用户修复实际上不需要修复的资产。仅仅是一个不再使用的标签。
  2. 将 DLS 审核升级到一个尚未可用的本地故障测试软件(一个人的 CM)意味着受影响的不是 Windwalkr 的时间,而是许多用户。好人啊,嗯。一位优秀的专业人士会编写一个转换过滤器,并在运行时修复必要的更改... 花几个小时让旧的实践变得更现代,但嘿,这不会浪费他的时间!
  3. 不幸的是,我们能够通过人工或甚至使用脚本和 Asset-X 成功实现的大多数更改,都应该在数据模型需求发生变化时自动转换。对于此后的每次重大更改(基本上是 V2.0),N3V 应该提供一个简单的工具来将每个数据模型修改为下一个版本的需求。这些所谓的过滤器,一旦编写,就会永远有效,提供一个新的基本级别,以便在需要时在下一个版本中进行转换,因此下一个平台只需要那个过滤器,以及一些注释掉以保留旧的公式。这样的进展可以无限期地持续下去,并且在每个平台上,CM 作为输入的输出将是一个 '当前 TBval 资产',其中包含程序员的任务或愿望的一切,简化并减少他们隔离数据类型问题所花费的时间和精力。这些问题将在预处理、转换和验证阶段被捕获,而不是在验证和过时的后期转换阶段被捕获!

 

脚注

 

参考文献

华夏公益教科书