跳转到内容

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/Fixing_Assets 中找到,它以可搜索的文本格式涵盖了最常出现的错误消息,允许您输入错误消息中的关键词以了解如何修复它。

 

必要的工具

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

处理 Trainz 资产有效的必要的第三方软件几乎都可以作为 免费软件 获得。

  1. 一个好的文本编辑器是天赐之物,虽然 Windows 提供了基本的文本编辑器记事本,可用于简单的编辑,但它缺乏许多有用的功能
    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) 跨行尾边界将 '>\n<kuid' 替换为 '>,<kuid'

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

  1. PEVtools - 如果您要进行任何操作,但不能迅速地重做需要调整的资产,则必须安装 PEVtools。
  2. 内容管理器 - 操作内容管理器是资产下载、修复和升级的核心。
  3. 何时修复资产或何时升级它们 - 修复和升级资产是硬币的两面,但其中一面需要更多时间和更深入的知识。这个条目解释了何时仅仅修复资产是一种成功的策略,以及何时升级是一个更好的主意。

本模块的目标

[编辑 | 编辑源代码]

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

  1. 我们将介绍一个基本的 Traincar 数据模型,老式 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 中运行了!


  • 有些 Trainz 用户会说“没什么大不了!你现在拥有一个带纸轮的货车的私人物品... 我会羞于使用它” 考虑给这个悲观的人送花,或者至少送他一根提示棒。她显然不理解 过时表 的用途。在过时表中添加 100073 和 100074(以及其他一些)。
obsolete-table {
  0                        <kuid:-1:100073> 
  1                        <kuid:-1:100074> 
}

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

  • 再者,就像一个拥有实体模型套件的模型铁路爱好者一样,所有 DLS 都是一个巨大的“套件零件” 来源,我们可以通过一些实验和大胆地从中数字化“套件组合”出新的模型。
编辑注: 学习修复旧资产可以使它们在需要我们想象力工程的利基领域中变得可用,包括满足昨日路线构建者/场景编写者的想象工程,为他们打开那些路线供您利用。 学习如何转动扳手并进行调整,创建您自己的专用资产的步骤变得更小,而且远没有那么陡峭。



评估旧模型

[编辑 | 编辑源代码]

我们将在下面使用未更改的配置来向新 Trainz 用户展示资产正常功能

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>
}

重要/不重要的内容

[编辑 | 编辑源代码]
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

乍一看,许多机车火车车厢资产对于希望修复有缺陷资产的新 Trainz 用户来说可能非常复杂。trainz-build 值的重要性很少被理解,甚至许多自 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. 要在打开之前进行备份,请在 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 资源”,包含程序员的指令或愿望,简化并简化他们隔离数据类型问题所造成的故障的能力和时间。这些将在预处理、翻译和验证阶段被捕获,而不是在验证和过时的翻译之后!

 

脚注

 

参考文献

华夏公益教科书