跳转到内容

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

来自 Wikibooks,开放世界中的开放书籍
(重定向自 Trainz/错误修复)
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 有久负盛名的基本文本编辑器 Notepad 可用于简单编辑,但它缺少许多有用的功能
    1. 相反,建议使用 免费软件 程序员编辑器 Notepad++,因为它在几个方面非常有用,最重要的是能够跨行结束符搜索和替换 (SAR),这使得将 CM 生成的资产列表轻松转换为 内容管理器 兼容的逗号分隔列表 (CSL/CSV) kuids。
    2. 程序员记事本 - 像 Notepad++ 程序员记事本和 (接下来推荐的) Crimson 编辑器 允许多文件编辑,具有超过 Windows 记事本的有用扩展搜索和替换功能,并且各自有自己的优势。
    3. Crimson 编辑器 (著名 Ruby 编辑器的新版本)
  2. Open Office 套件 - 与 Microsoft Office 不同,这个免费的开源软件包不会打破你的存钱罐,完全兼容,并且在这里推荐有两个主要用途,涉及电子表格模块的使用
    1. 电子表格可以作为有用的平面文件数据库;不同的选项卡允许跟踪不同的项目资产,将 CM 主屏幕 生成的选定列表转换为 CSL。一个 CSL kuids 有许多组织优势,最重要的是能够使用不同的资产 kuids 重置一个或多个过滤器,以便在测量员中使用。
    2. 将从 CM 主屏幕复制的资产列表粘贴到电子表格中作为 CSV 列表,是截断资产名称和 kuids 的最快方法。流程是:A) 从 CM 复制资产组;B) ALT+Tab ↹ 到电子表格草稿纸;C) 将复制的资产名称和它们的 kuids 作为带有逗号作为分隔符的 CSV 导入粘贴下来。D) 仅复制 kuids 列;E) ALT+Tab ↹ 到 Notepad++ 草稿纸选项卡;F) 将列表粘贴下来 (电子表格的每一行都变成带有单个 kuid 的一行);G) 在行结束符之间执行 SAR,将 '>\n<kuid' 替换为 '>,<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&ndashTC 版本中运行良好的原因。
编辑注: 如果您要修补 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 个 SP
2.4, 2.5-2.7
  v2.5—v2.6
TRS2006 及其 1 个 SP
2.6-2.9
  v2.7—v2.8 2.9-3.0
  v2.9—v3.3
TS2009 & TS2010 每个 + 4 个 SP
3.5-3.7

乍一看,许多机车和火车车厢资产对于希望修复有故障资产的新 Trainzer 来说似乎非常复杂。trainz-build 值的意义鲜为人知,即使是自 Trainz 最初版本以来就参与其中的许多内容创作者也是如此。关键是要理解 Greg Lane 和原始编程团队在 2003 年至 2004 年期间开发了资产的更复杂数据结构,并且它们从那时起变化不大,只是增加了额外的功能。

  1. 请记住,“TB”表示 trainz-build,而 v#.# 是 trainz-build 标签的值,此外,N3V 游戏选择实施升级的倒退方式,您的内容管理器 (CM) 验证程序生成的所有资产故障列表都依赖于其各自 config.txt 文件中分配给 trainz-build 标签行的值。这意味着在特定最小阈值下使资产无故障,应该会使资产在所有后续版本中正常工作。事实上,该阈值通常很低;符合 “理想” v2.0-v2.4 数据模型 定义通常会导致资产在直至 TS12-SP1 (TBv3.7;这些资产应该与新的 TANE 数据模型一起工作)的版本中正常工作。将大多数其他资产修复为 v2.6 故障测试需求,会为少数孤独的例外情况带来类似的成功,尽管事实上 N3V 管理层人为地将上传所需的最小 TB 值向上推。 (结果是 P.O.'d 内容创作者,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 已被移动或删除。保留文件在编辑器中?" 我们建议您使用左键单击“是”。
        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 版本修改了它]。记录你做了什么以及为什么是一个“好的程序员”的做法,毫无疑问,这是一种我们正在维护的软件形式[note 3]
  6. 请随意大胆尝试和实验。上面提到的“config.v2-3a.PRLM.txt”表示一种这种哲学上的策略变化,它将到目前为止的修复复制到安全的地方,然后进行更大胆的操作,使用新的容器和标签将资产跳跃到高于最初目标的 TBval。一旦你对 KIND 类型常用和预期的标签感到熟悉,你应该做同样的事情。
  7. 待续

主题 2

[edit | edit source]

主题 3

[edit | edit source]

主题 4

[edit | edit source]

主题 5 及以上

[edit | edit source]

 

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

注释、脚注和参考文献

[edit source]

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

注释

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

 

脚注

 

参考文献

华夏公益教科书