跳转到内容

Trainz/refs/TrainzBaseSpec

来自 Wikibooks,开放世界的开放书籍
logo
Trainz 注释参考页面

Trainz 资产维护和创建
TOC | 开始乐趣 | AM&C | 创建 | 书内参考 ORP 参考:  • 索引 • 容器 • 种类 • 标签 | 附录  • 版本
[e]
KIND(类型资产组)
容器


KIND 继承体系简介

[编辑 | 编辑源代码]

KIND TrainzBaseSpec 提供了所有 Trainz 资产类型在所有 config.txt ini 文件 中的基本定义。TBS 为所有 Trainz 资产提供了许多“标准标签”,这些标签对所有 Trainz 资产(或至少,可以合法定义)都是通用的[1]

  • 其中一些是强制性的,因为它们决定了资产的进一步处理以及对 config.txt 文件及其文件夹中资产数据的解释。
  • 但是,大多数是可选的,大多数子资产可能省略使用该标签的定义行。
  • 没有,对于所有由事实上的父容器定义的内容(即所有 Trainz 数字模型所需的 config.txt 文件)来说,都是有效的并且大部分都是必要的。KIND TrainzBaseSpec (TBS) 是一个根类,其他 Trainz 资产类都派生自它。
  • 据说它们是派生的,因为它们继承了参数中定义的处理属性(指令)和值,其中最重要的是 kind 标签的值。这个枚举的词决定了资产的具体种类声明和要求,这些声明和要求被添加到该资产配置文件中 TBS 的定义中。其他重要的 TBS 定义数据也很重要和实用,例如资产的名称、Kuid 标识符和版本、Trainz 构建值 (TBV) 以及其他具有广泛可变定义需求、适用性和范围的数据,例如string-table、obsolete-table、kuid-table 和缩略图图像都是偶然的。在实践中,字符串值,甚至资产名称和描述,通常是完全不必要的,并且可以完全省略。
  • 当声明一个种类时,该种类将成为父类,要求并规定该类中必须满足的必要数据对,除了 TBS 中列出的那些数据之外。
  • 在某些情况下,资产种类的某些参数可能没有定义,特别是对于旧的历史 Trainz 构建标签值,对于这些值,内容管理器或内容创建者 Plus (CCP) 工具将分配一个默认值,但在处理它时会显示警告消息。TrainzOnline 维基、此处或旧版TC3 时代内容创建者指南 (CCG 将提到一个默认值。
  • 每个版本的內容管理器模块,从 TRS2006 和 Trainz Classics (TC1&2) 开始,都对预提交错误测试[注释 1]施加了越来越多的限制,并且每个版本都变得越来越坚定地警告这样一个标签没有被定义,因为它期望这样的标签-数据对。

在 TANE 之后的版本中,许多相同的“昨天默认”定义行今天将更有可能产生故障,要求明确的数值定义,而这些数值在过去加载时是默认的。 [注释 2]与过去的日子相比,这是一种更令人愉快的困扰,那时有缺陷的资产定义有时会导致臭名昭著的“蓝屏死机”或更常见的情况是,将运行时软件崩溃到桌面,导致编辑丢失,并且可能需要重建数据库。

所有 Trainz 定义数据(内容)都包含三个必备元素:一个config.txt 文件 用于组织数据、一个身份(即kuid,用户名本身对你没有用,但是可以创建一个合法资产,它没有名称!)、最后是一个合法定义的 kind 标签。kind 负责指挥,是乐队的指挥家、排长或 CEO 给出指示——为处理之后的所有内容设置要求。简而言之,kind 的值,一个小的、紧密定义的、仅限成员的组——告诉 Trainz 软件在虚拟世界中要渲染和显示什么内容,以及如何(或在哪里)找到在该 config.txt 文件中将资产的这些部分链接在一起所需的其他部分。
  下面的每个子类都被认为是具有TrainzBaseSpec 作为其数据“父类”。[注释 3]下面列出的几个 kind,那些带下划线的 kind,是早于Trainz 数据模型TS2009 发布(即 2008 年后期)中更改的遗留 kind,并且自 N3V 程序员实施了这些更改以来,这些更改只是逐步(增量)实施的。
  目前可以在 N3V Trainz Wiki TrainzOnline 网站此处内容创建者指南 部分中找到修复基于这些遗留 kind 的资产的详细信息,并提供了遗留 kind 的示例此处。强烈建议所有Trainz 下载站的用户或任何考虑创建内容的用户仔细阅读 CCG。通过了解旧内容是如何定义的背景历史,然后可以将这些信息与当前 TrainzOnline 对相同数据类型的覆盖进行对比和比较,因为通常这种“那时与现在”的比较可以为修复、更改和定制资产提供有价值的见解。更重要的是,CCG 中的文字是由专业人员撰写的,而且更加赘述——它经常会让你了解如果改变了这个或那个内容会产生哪些扩展效果,而 Trainz Wiki 就没有提供这些信息。在 TrainzOnline 上发布的 CCG 是TC1&2/TC3 版本——这是几个小册子中最后一个公开的版本,这些小册子可以追溯到 1999 年的Trainz;TC3 CCG 包含来自 TRS2004/TRS2006 和UTC 数据模型的已修改的 Enginespecs 机车资产,需要进行适当的更新。

TrainzBaseSpec 子类 KIND(类型资产组)

 


表格 I,TBS 标准定义

[编辑 | 编辑源代码]

TBS 标准定义

[编辑源代码]

这些标签和容器是标准定义,几乎所有资源中都有。某些标签是可选的,内容创建者可以选择是否定义。标签是关键词,并具有单个分配的键-值或容器,例如字符串数组'{' ... '}'边界封闭标签-值对或子容器。(Trainz 配置文件中声明的所有内容都是成对的,即使 '{' ... '}' 也被认为是一个 '键-值'.

  • 容器是'键' 和 '键-值' 对的集合,以及TBS 中的 '上层容器'(与缩略图容器中的子容器相反),通常以 '-table' 结尾。
 种类    "'字符串值'"
 trainz-build '浮点数', 1 位小数
 kuid  <Kuid 编码值>
 用户名    用户名 "'字符串值'"
 用户名-XX    用户名-XX "'字符串值'"
 描述    描述 "'字符串值'"
 描述-XX    描述-XX "'字符串值'"
 kuid-table (容器)

  { 依赖项列表
  按 kuids 分组 }

 一个键-值表,列出此资源所依赖的所有资源。
 obsolete-table (容器)
    {
    }
 kuids 列出此资源所替换的(使之过时的)资源
 通常为空(空)[注释 5]
 string-table (容器)
    {
    }
 资源中使用的字符串和消息的键值列表
通常为空,在路线和场景中很大。
 string-table (容器[s])
    {  非英语
    语言文本 }
 翻译后的字符串列表,匹配到强制的英语 string-table
 类别-区域标签 枚举 代码  类别-区域 "'字符串数组'"  
 类别-类别标签  类别-类别 "'枚举 字符串值'
 类别-年代标签  类别-年代 "'受限字符串数组'"  年代
 类别-关键词 "'字符串数组'" 最大长度为 64 字节    类别-关键词标签 自然语言搜索关键词
  (替换类型、区域)
 自定义类别列表 
 "'字符串数组'"
 脚本接口功能
 必须拥有产品权利 
 "'字符串值'"  
 DRM 字符串数组
 不得拥有产品权利 
 "'字符串值'"  
 DRM 字符串数组
 权限 (容器)
    {
    }
 更多 DRM
 缩略图 (容器)
    {
    }
 缩略图容器
 脚本 (文件名)    "'字符串值'"
  (脚本资源类)    "'字符串值'", 必须与 脚本 规范类同步。
 script-include-table
    {
    }
 (列出库脚本的容器)
 扩展 (容器)
    {
    }
 资源也使用的正式脚本扩展
 许可证 "'字符串值'"  资源创建者的版权声明
 作者    "身份 '字符串值'"
 组织    "第三方组身份 '字符串值'"
 联系电子邮件    "电子邮件地址 '字符串值'"
 联系网站    "作者/组的网站 URL '字符串值'"
 所属组 (容器)
    {
    }
 此资源所属的 KIND 资源组 资源列表。

 



支持的标签

[编辑 | 编辑源代码]

TrainzBaseSpecconfig.txt 文件 中支持以下标签。 :  

种类标签

[编辑 | 编辑源代码]
类型: 字符串。
字段定义:config.txt 文件 所代表的资源类型。请参见索引 种类 和列表: 此处(以上)

 

kuid 标签

[编辑 | 编辑源代码]
类型: KUID (简写),主要: KUIDs
字段定义: 引用此资源的唯一资源 ID。
KUID
'Koolthingz Unique IDentifier'. Trainz 系统软件对资源的唯一数据库参考号,也扩展到在 KUID2 形式中跟踪多个版本。Trainz 可升级性和资源模块化设计的核心,因为每个资源都有自己的唯一 kuid 代码,因此可以从另一个资源中指定一个组件(转向架)或整个火车车厢,并有选择地在新的资源中替换它们(重新贴皮或修改转向架)。
  • 基本 KUID 格式: '<kuid:wwwwww:xxxxxx>',其中 wwwwww 是作者的'唯一 Trainz 身份',xxxxxx 代表作者分配的模型标识代码
编辑者注: 请注意,虽然许多在线网站需要使用单独的数据字段(作者和序列)进行搜索,但内容管理器需要使用三个或四个冒号分隔的数据字段,但不强制使用括号,但搜索 API 窗口中需要使用逗号作为多个 kuids 的分隔符。将数据聚合在完整的 kuid 标签结束括号中通常更容易,并且通常更容易阅读。对于剪切和粘贴一个巨大的列表,缓冲区大小限制可能会中断列表的末尾,在这种情况下,在文本编辑器中修剪掉两个结束括号可能允许将整个列表放入 API 中。



  • 大多数 Trainz 资源在其 kuid-table 中指定了依赖项列表,即软件套件的各个部分组装的其他组件资源,以构成可渲染和可使用的一个 kuid-table 容器 中的资源。
  • 在许多资产的核心,可以通过kuid 引用并使用引用的资产作为一部分来定义特定标签。事实上,这就是重新蒙皮的实现方式,并且可以在资产中使用网格,尽管更现代的做法建议将这种引用引用到网格库资产。
KUID2
KUID 格式的更新和更新跟踪修改版本,它允许指定版本号。<kuid:xxx:yyy> 等同于 <kuid2:xxx:yyy:0>(零修订或版本零,表示原始
  • 这允许数据项(Trainz 资产)为资产携带固有的版本代码。这通常不会与 CM Trainz 构建代码 相匹配,该代码标识软件技术级别,但指示以前的版本历史记录。
  • 在数据库中,具有更高后缀代码的 KUID2 资产将覆盖或替换旧的资产。拥有早期版本并非必要,但CM 会将缺少的修订链列为缺少的依赖项,对于那些厌恶 CM 中该功能的污染或程序员保留的“功能”的人来说,这是一个软件错误,无论如何,这都降低了使用 CM 来识别用户缺少什么内容的实用性,并导致用户花费时间手动找出什么是真正的什么。

 

trainz-build 标签

[edit | edit source]
主要内容:trainz-build 标签,缩写:TB & TBV (TB-value)
类型:由 N3V [2] 枚举的一个小数点浮点数,用于跟踪和识别与演进软件的技术水平相对应的数据类型。
范围:1.0–4.3 直接对应(映射onto3rd’ Trainz 1.0—TANE-SP1+hf2;预期此值将随着每次新的主要软件升级而递增 0.1。

每个合法值必须与发布的 Trainz 版本号 完全匹配,但有以下例外情况

  • 分配给 V1.4 的 TBV 或版本值为 Auran 的 Paintshed 版本,这是一个适用于 Microsoft Trainz Simulator (MSTS) 的重新蒙皮工具,也作为 TRS2004 辅助软件模块的构建值出现;具体来说是其 ContentManager.exe 实用程序。
  • 1.7 和 2.0 之间的差距要么是外语版本,要么正如经过数小时挖掘和研究后似乎更可能的那样,Auran 没有使用它,因为在构建该原始 Trainz 的程序员团队的脑海中,TRS2004 版本是第二款 Trainz 产品,无论前台如何宣传营销名称(比如 Trainz UTC,究竟是终极的什么...... 真的吗?。 拜托! 真的!!?)
Trainz 版本和相应的 Trainz-build 标签 值系列为 Trainz 1.0=v1.0,Trainz 1+SP1 ⇒ V1.1,Trainz 1.0+SP2 ⇒ V1.2,Trainz 1+SP3 ⇒ V1.3,等等(但跳过 1.4 和 1.7–1.9),因此 TRS2004-SP0 = v2.0 然后递增,其中每个版本从 2.0(TRS2004 无 Service Pack)到当前版本(v3.7 = TS12-SP1,v3.8 = Mac2,3.9=TANE-CE,4.0—4.3,从此以后?从 2016 年 3 月起,4.3 及更高版本为 TANE SP,待定。)递增 0.1。
  • 从 v2.0 (TRS2004) 开始,Trainz-build 标签编号值已经增加了 23 个步骤,这些步骤虽然是非单调的,但却是连续的,因为 Trainz TS09-sp3—TS09-sp4 共享一些 Trainz-build[2] 值;也就是说,在 TS2009 和 TS2010 的联合开发时代和版本中,有一些 TBV 共享。
  • 此外,N3V 进军 Macintosh 计算机打断了基于 Windows 的 Trainz 版本 TBV 3.4、3.5、3.6、3.7 和 3.8 在 Windows 和 Mac 基于的操作系统之间的平稳递增。
    注意:修补程序不会更改版本号。
字段定义:此资产构建(和存档)到的文件格式版本,不一定与资产使用的技术级别有关,但与在 Content Creator Plus 中创建资产时分配的资产级别相对应,这与在 CM 的标题栏中找到的值相同。
  • 程序员建议此数字通常应设置为创建和测试资产的 Trainz 安装的 Trainz 版本号。相比之下,Content Creator 社区试图将该数字设置得尽可能低,以便在下载时为新资产提供最广泛的受众/用户范围。优秀的素材创作者将在相应的版本上进行裸机安装(没有添加内容)测试,并验证生成的 cdp 是否包含所有相关素材。
  • 某些资产类型根据其trainz-build 版本标签的解析方式会有很大不同。注意:trainz-build 标签是强制性的。如果没有指定,Trainz 将根据 config.txt_file 的内容尝试通过遗留 Trainz 版本进行猜测,这通常会解析为 1.3 作为 TBV。

 

用户名标签

[edit | edit source]
类型:UTF-8 字符串,资产的用户名必须指定。
字段定义:此资产的英文人眼可见名称。

在 TC1&2 之后的 trainz-build 版本(v2.7)中,当编辑资产时,用户名也成为操作系统文件夹名称,并且忽略资产文件名,而它在 v2-6 配置文件中占优先地位。根据 N3V games 的 TBS 标准,此字段绝不能包含非英语文本,除非资产名称是专有名词(例如,地名),并且没有英文本地化变体。此值为每个人通常搜索和记住的数据,因此建议保留清晰的名称。

在创建资产时,强烈建议对几个试用部分名称进行 CM 搜索,并根据这些知识采用与现有可用内容合理匹配的名称。
我们需要容忍多少个“house 2”或“road”资产才能进一步迷惑我们?好吧,实际上,我们都会搜索 house 并从图像中进行选择,但能够指定唯一的名称并获得预期内容真是太棒了!


 
 

username-XX 标签

[edit | edit source]
类型:UTF-8 字符串,用户名标签 的替代语言版本。
字段定义:(其中XX 被替换为要表示的语言的适当 本地化代码。)此资产的本地化人眼可见名称。此字段类似于用户名字段,但表示非英文区域设置。资产中可能存在多个username-XX 标签,每个支持的区域设置一个。如果适当的“username-XX”标签不存在以在给定最终用户系统上表示此资产,则使用英文用户名标签。

 

描述标签

[edit | edit source]
类型:UTF-8 多行字符串,提供对资产的清晰语言描述。
字段定义:此资产的英文人眼可见描述性摘要。

描述在内容管理器“资产详细信息”窗格中可见,用于阐明资产名称、提供规格,以及通常的简短历史记录。

N3V 的 Chris Bergmann 已经声明此字段应保留为简短(1-2 段)的描述资产的文字,并且应通过info-url 页面提供扩展的详细信息,但可以容忍相当长的文本块。有些人使用块的底部作为版本更改记录。

此字段必须包含英文描述性文本,尽管文本可能会引用非英文专有名词,如其他地方所解释的那样。其他语言翻译或源文本应放置在许多可能的替代语言本地化标签之一中(参见 description-xx 标签)。  

description-XX 标签

[edit | edit source]
类型:UTF-8 多行字符串,描述标签.
字段定义:(其中XX 被替换为要表示的语言的适当 本地化代码。)此资产的本地化人眼可见描述性摘要。此字段类似于描述字段,但表示非英文区域设置。资产中可能存在多个description-XX 标签,每个支持的区域设置一个。如果适当的“description-XX”标签不存在以在给定最终用户系统上表示此资产,则使用英文描述标签。

 

字符串表容器

[edit | edit source]
类型:UTF-8 字符串列表容器,字符串表容器(s).
字段定义:一个键值对列表,包含英文字符串。每个键是与二进制数据映射并引用的有意义的脚本标识符。每个值都是一个英文字符串。英文字符串可能包含或引用非英文专有名词作为标识符。非英语母语的作者如果需要,仍然需要创建一个没有后缀的字符串表容器。软件只链接并引用字符串表容器中没有后缀的名称和值,这会让西班牙语、法语、德语、捷克语、荷兰语...日语作者感到非常困扰。换句话说,带后缀的字符串表仅仅是为了翻译目的而存在的,这在非英语语言编写地图时会造成问题,因为没有“string-table-en”来提供反向翻译的表格。同样,username-en和description-en也是如此。这三者的缺失都体现了一种过时而傲慢的态度,以及对世界动态的漠不关心。

  其他语言由类似的字符串表(例如 string-table-XX)支持,带有与国际化后缀(XX)匹配的本地化代码后缀,用于描述和用户名关键字/标签,但这些语言键控字符串表容器的左侧条目始终具有相同的键值。 

  • 这些左侧键或标签既充当“本地索引关键字”,也充当“不同语言之间的等价表”
  • 左侧列始终包含内容创建者赋予“特殊”名称的对象,例如信号、轨迹标记和行业、连接点等的名称,这些名称可能会被引用,并且会出现在“驾驶员和测量员”模块的“查找实用程序” (CTRL+F ) 函数小程序。
  • 另一方面,索引侧也不会列出默认的场所名称,例如在构建路线图时由随机数自动索引的无数个连接点(即毫无意义的杂乱。如果重要,路线构建 CC 会为其命名!),但会自动包含潜在的临时资源,例如火车车的默认名称。如果重命名,这些名称将取代其对应的默认名称。
  • 其主要用途是用于那些旨在与脚本引用交互并采用可变属性的对象,例如火车站或行业所需的或准备装运的产品数量,或由交互式火车车(滚动行业到脚本)和其他可配置资源(如通用广告牌式标志)携带,这些标志只需稍微调整高度和角度扭矩即可放置在库存建筑或行业的正面,以便在建筑上放置不同的企业名称。换句话说,这是一种可配置的场景。
  • 总的来说,在路线地图或布局中,这些 LHS 名称对应于地图资源上的命名对象,这就是大多数字符串表出现的地方(从字面上看,由大型路线kind map中的数千个条目填充)。
  • 在某些资源中,该默认名称连接到软件脚本,因此字符串表变得特别重要,而不是枯燥无味。(见下文)
  • 在每种类型的资源中使用字符串表类型始终是合法的,就像描述标签、trainz-build 和 kind 标签一样。与这些不同,它不需要存在或定义,而且在任何情况下都不是强制性的。除非代码期望它们被绑定在一起,否则封装在字符串表容器中的值没有任何功能或效果。
  • 在其他资源中,再次以假设的可编程商业标志为例,如果字符串表要与软件交互,则必须为其指定一个默认名称。所有地图可放置资源都可以命名或重命名,但“特殊名称”必须与脚本和字符串表索引值匹配。大多数可配置资源定义一个接口变量,用于替换默认名称作为脚本引用的索引或查找表,以及资源的二进制数据。其他变量也可能在可编程资源中定义。这些变量中的每一个都可以被脚本引用,但正是索引值使其进入地图或会话字符串表,使一切在驾驶员或会话创建者需要可变性时协同工作。
  • 相反,如果没有系统软件知道索引中命名的项目的位置,则对象的脚本可能没有触发、条件检查或更新的能力。这是 2000 年代 Trainz 1.0 中对象的特征,而不是 2003 年发布的 TRS2004 之后的现代 Trainz 铁路模拟器。(从那时起,我们已经走了很长一段路!)
  • 有一些资源只能作为一组一起工作。在这种情况下,在映射或会话层中对每个资源进行命名使它们能够协同工作。例如,考虑一个有五个轨道的公路平交道,其中两个轨道位于连接点之外,并与贯穿轨道形成所谓的 '菱形交叉点'。如何设置信号,以便任何铁路交通都关闭公路大门,或者使用菱形交叉点禁止其他列车通过正在穿越交叉点的列车?道路和铁路信号、道岔和大门都必须协同工作。某些“ATLS 系统”资源及其脚本与字符串表绑定在一起,可以使这个复杂的系统正常工作。
  • 有关更多信息,请参阅 string-table-XX。

 

string-table-XX 容器

[edit | edit source]
类型:UTF-8 字符串列表容器,本地化字符串表,每个后缀对应除英语以外的语言。
字段定义:(其中XX被替换为代表的语言的适当本地化代码。)此字段类似于string-table字段,但代表非英语语言环境。

英文字符串表(无后缀)是强制性的,其他本地化语言是可选的,由资源作者决定。许多提交给 DLS 并在 Trainz 版本附带的路线中使用的资源通常会翻译成多种语言,并具有完整的本地化翻译,用于 description-XX 和字符串表。特别是,与版本捆绑在一起的路线和会话在每个零售版本中都会被专业翻译成多种语言。

请注意,字符串表的左侧列是相同的,因为它是一个映射符号表,并索引到二进制数据中,例如网格、会话或路线文件。只有使用名称,即两个元素中的右侧或数据元素才是本地化的,并由运行时本地化软件替换。如果需要,即使在英文字符串表中,也可以手动编辑这些名称以获得更友好的名称。索引或左侧引用列的语法在任何方面都不得更改,因此在更改数据列中的名称时,请注意全局 SAR 规范。

一个资源中可能存在多个string-table-XX标签,每个支持的语言一个。每个标签都应该包含一个字符串列表,该列表具有与string-table列表中相同的键,但具有不同的值。如果不存在适当的“string-table-XX”标签来代表给定最终用户系统上的此资源,或者该列表中缺少相应的字符串,则会引用英文string-table容器。 

kuid-table 容器

[edit | edit source]

kuid-table   {
 numberit_library                      <kuid2:75134:99003:7>
 0                                     <kuid:-3:10164>
 1                                     <kuid:-1:42004201>
 2                                     <kuid2:50567:11155:1>
 3                                     <kuid2:58422:50120:1>
 4                                     <kuid:-3:10003>
 5                                     <kuid2:30671:94407101:1>
 6                                     <kuid2:87907:94407101:1>
 7                                     <kuid2:87907:94407103:1>
 8                                     <kuid2:87907:94407105:1>
 9                                     <kuid2:30671:9870190:1>
 10                                    <kuid2:30671:94407100:1>
 11                                    <kuid2:87907:94407100:1>
 12                                    <kuid2:87907:94407102:1>
 13                                    <kuid2:87907:94407104:1>
 14                                    <kuid:-3:10013>
 15                                    <kuid2:60318:10008:1>
 16                                    <kuid2:60318:10010:2>
 17                                    <kuid2:189041:301:1>
 18                                    <kuid2:50567:11121:1>
 19                                    <kuid2:30671:9840820:1>
 20                                    <kuid2:30671:9870899:1>
 21                                    <kuid2:50567:12646:3>
 22                                    <kuid2:124017:30000:2>
 23                                    <kuid2:124017:30001:2>
 24                                    <kuid2:124017:30002:2>
 25                                    <kuid2:124017:30003:2>
 lodi_icon                             <kuid2:124017:35000:1>
 lodi_lib                              <kuid2:124017:40000:1>
 26                                    <kuid2:30671:69006:1>
 27                                    <kuid2:124017:35000:1>
 28                                    <kuid2:30671:90810901:1>
 29                                    <kuid2:30671:9081290:1>
 30                                    <kuid2:60318:10009:1>
}
类型:KUID 列表容器,与已过时表格容器(在下文)的格式相同。一个虚拟参数 + 一个(依赖项)kuid
字段定义:列出此资源依赖的资源的键值对。

 

一般来说
只有具有子组件或备选选择(货物)的资源才会具有长度可观的 kuid-table。大多数具有子组件的资源只有几个。
  • 其次,由于内部关键字有时是“自动定义”的,因此只列出一个没有名称的数字,作为占位符参数,伪关键字可以是任何唯一值(通常是零索引的连续整数。[注释 1])。用户或作者可以根据需要为它们命名。
  • 此表中的条目有两个目的
    首先:确保游戏系统了解依赖项,以便安装和加载此资源将成功安装和加载任何依赖项,以及
    其次:允许脚本定位相关的子资源。
  • kuid-table 中只包含一级依赖项——具有自身依赖项的子资源或部件资源将在该子资源的验证和数据库提交过程中进行处理。
  • 循环依赖关系是非法的。
  • 如果一个资源也被标记为此资源的过时版本,则不能将其列为依赖项。(在 Trainz 资源索引(历史上的 assets.tdx 文件)中的 kuid 中只有一个替换 kuid 槽,这将创建一个循环定义,要求使用它本身的旧版本!)
  • 同样,一个资源不能将其自身列为其自身的依赖项。[另一方面,这已经体验过(即在 TSxx CMs 中作为成功无故障提交的资源被见证过),在安装之间使用 GSARS 移植地图和会话,以更改 kuid,以便重叠不会覆盖已经在目标安装中使用相同 kuid 的资源,而不会看到错误消息。]它是否也起作用,需要比我更勇敢或更愚蠢的人!--Fabartus,编辑。
格式 (所有值都为 <kuid:aaaaa.bbbbb> 格式)
kuid-table {
 0            Kuid-1
 1            Kuid-2
 3            Kuid-3
 ...          kuid-ii
 N-1          Kuid-N
 }
大多数用户首先会自动克隆一个内置路线及其关联的会话。通常是因为人们想要修改某些东西。检查路线或会话的 kuid-table 将使新或老手 Trainzer 拥有路线中资源的可编辑列表。这些可以轻松地转换为样式表“过滤器”(选择列表),允许人们使用与原始作者相同的资源来添加和更改路线...或者在自己的扩展中复制他的样式。


  • 利用这些是虚拟参数这一事实的一个非常有用的方法是将复杂滚动库存资源中的产品 kuid 成对。一辆货车可能包含各种各样的产品...获得许可将你的作者 ID 分配给你自己的系列,并使用不同的装载设置,这可能是你第一个创建重要内容!考虑一辆货车,允许的产品容器和 kuid 列表可能包含以下条目
...  {
Animal_chickens <kuid:-25:230>
Animal_Horses <kuid:-25:236>
Animal_Cows <kuid:-25:239>
Animal_Piggies <kuid:-25:238>
Animal_Sheep_Flock <kuid:-25:240>
} ...

注意连接单词的下划线... 两个符号,键和值!我们让学生弄清楚在哪里将 kuids 添加到加载和允许的产品队列表条目中。(欢迎你,但这确实是一个改变名称的好理由!保持思路清晰几乎是制作资产的全部战斗!)  

obsolete-table 容器

[编辑 | 编辑源代码]
类型: KUID 列表容器,与 Kuid-table 容器 格式相同。
字段定义:一个由“占位符键-键-值”组成的资产列表,这些资产被该资产标记为已过时。任何尝试加载此列表中的任何资产都将导致加载该资产
  • 此外:两个资产都将第三个资产标记为已过时是非法的,除非这两个资产中有一个也标记另一个为已过时。[注释 6]
  • 循环过时引用是非法的。
  • 该资产的所有低编号 KUID2 版本都被暗示为已过时,无需包含在此列表中。同时,一个更高 Kuid2 的更新改进资产及其一个前身永远不应该将同一个前身(如原始版本!)列入“中间”中间前身 - 因为这些值用作 替代条目表,并且只有一个资产可以替代早期版本。(数组只保存一个值,不能用两个值替换一个值!)
  • 将该资产的更高编号 KUID2 版本标记为已过时是非法的,因为这会创建一个隐式的循环引用。
  • 此列表中引用的资产必须与该资产具有相同的创建者,才能通过 DLS 上传过程进行审核和接受,此限制不适用于您的本地版本,例如,可以用来用一个图形效果更好、更新的资产来替换大型火车车组上的所有旧纸质车轮 kuids。

 

category-region 标签

[编辑 | 编辑源代码]
目的:CM 和 Surveyor 中的过滤器(搜索条件)
类型:枚举字符串或字符串数组。
字段定义:一个由分号 (;) 分隔的双字符 类别区域标签 代码列表。字符串中不应出现其他字符(包括空格等)。此资产被认为与每个指定的区域相关 - 这与 火车车组mosignal 资产最相关,但可以提供任何资产。
示例
category-region "CA;US"
category-region "CA;MX;US"(北美国家,加拿大,墨西哥,美国)
category-region "CA;CS;DE;MX;US;VE;AU;FR;IN;IT;JP;KR;ES;AR;AT;BE;CH;DK;IE;EE;NL; NO;NZ;PA;PL;PR;PT;RO;RU;SE;SK;UA;UK"(大多数第一世界国家)

 

类别-类别标签

[编辑 | 编辑源代码]
目的:CM 和 Surveyor 中的过滤器(搜索条件);根据 KIND 声明确定 CM 软件如何处理资产,以及 Surveyor 在哪里列出它。
类型:枚举字符串。
字段定义:一个单一的 2-3 字符 类别类别 代码,用于描述此内容项。类别类别标签用于提供超出资产类别隐含含义的额外人类子类别划分。每个 Trainz 资产的类别类别标签有助于描述资产在游戏中的“意图”,而不是资产的内部结构。
内容创建者指南 (CCG) for TRS2006 & CCG for Trainz Classics 解释了这些类别代表了一种标准化的系统,用于引用各种类型的机车、滚动库存、风景、样条线和工业资产。当搜索和/或筛选合适的资产以在会话或路线(布局)中制作成内容时,类别分类代码对于所有 Trainzers 变得很重要。


 

请注意,许多类别类别代码只与特定资产类别相关 - 必须不要将类别类别代码应用于不适当类别的资产。

示例
    category-class "XBG" 箱形车 - 来自 PRR 60'
    category-class "BR" 铁路(风景非功能性) - 可能是一座建筑
    category-class "BIN" 具有产品处理功能的工业资产

 

类别-年代标签

[编辑 | 编辑源代码]
目的:CM 和 Surveyor 中的过滤器(搜索条件)
类型:枚举格式字符串数组。
字段定义:一个由 分号 (';') 分隔的五字符 年代代码 列表。
  • 每个年代代码代表一个十年,由一个四位数的整数组成,然后 必须以 's' 结尾 (例如“1990s;2000s;2010s”), 从而创建一个枚举软件标记(值),该标记必须与指定的合法 年代代码 完全匹配。
  • 字符串中不应出现其他字符(包括空格等),包括(尤其是在字符串末尾)在终止双引号字符之前的字符。
  • 允许的年份范围是 1800-2010s[注释 7]
  • 该资产的唯一含义是针对其他人,即该资产在指定的年代范围内被认为是有效的且适当相关的,并且 内容管理器 将接受指定适用年份的搜索过滤器。

 

示例
category-era              "1920s;1930s;1940s;1950s"

 

缩略图容器

[编辑 | 编辑源代码]
目的:CM 和 Surveyor 中的过滤器(搜索条件)
类型:缩略图容器
字段定义:在整个游戏环境中(包括在游戏中、在 内容管理器 中以及在 下载站 上)用于在 2D 预览框、列表和图标形式中表示此资产的缩略图。每个数据集都包含在一个子容器中(一般来说)使用一个 占位符参数 作为键名或标签。[注释 8] 惯例使这些数字为 0 索引整数,但值可以是任何非空文本值,可以评估为 字符串。(参见下面的第二个示例)
实际示例
(来自资产修复编辑[3]
thumbnails {
	0 {
		width					240
		height					180
		image					"$Screenshot (240)(kuid 68787 25222).jpg"
	}
	1 {
		width					512
		height					512
		image					"$Screenshot (512)(kuid 68787 25222).jpg"
	}
}

另一个常用大小是 铁路场 和测量员资产选择 API 中使用的 128x64 '图标',它应该具有 Alpha 遮罩 或非常浅的背景。许多较旧的版本没有使用 jpg 文件,而是在 '_art' 子文件夹中列出了 .tga 文件(Targa True Color)(Trainz 1.0—TC3 惯例:_art、_body 和 _shadow 是由早期 Trainz 数据模型要求命名的三个子文件夹,名为“资产文件名后缀”(过时的标签-<值> 对),看起来如下[注释 9]

thumbnails
{
  Icons
  {
    width 128
    height 64
    image "40ft_boxcar_art\40ft_boxcar_art_icon.texture"
  }
 CM
 {
   width 240
   height 180
   image "$screenshot PRR 40ft_boxcar (240).jpg"
 }
 DLS1
 {
   width 512
   height 512
   image "40ft_boxcar_art\40ft_boxcar_art_512.texture"
 }
 DLS2
 {
   width 512
   height 512
   image "$screenshot PRR 40ft_boxcar (512).jpg"
 }
}

在 TS2009 和 TS2010 的早期版本中,没有适当缩略图容器的上传资产将标记为有缺陷的资产,这些资产没有缩略图容器。补丁后来将这些标记为警告。[注释 10] 在用户社区中出现大量投诉后,TS12 修补程序放弃了这种做法。
 • 如果缺少缩略图容器的资产(即使使用过时的 thumb 标签)后来在新的内置路线或会话中被选中,该资产通常将被分发为没有图像的项目 - 如果 texture.txt 或 config.txt 缩略图容器没有正确引用,它们将被剥离出去。[注释 11].  

软件链接

[编辑 | 编辑源代码]

info-url 标签

[编辑 | 编辑源代码]
类型:URL 字符串。
字段定义:指向 TrainzOnline wiki 上的资产在线描述、资产说明(帮助)或其他帮助页面的链接,旨在从嵌入式专用 N3V 浏览器中使用。URL 必须解析到 Trainz Online 安全区域 中的站点。目前,嵌入式浏览器接受三个域
     auran.com
    ts2009.com
    ts2010.com 

此外,建议使用自定义 Trainz 短链接 格式,而不是直接链接到这些域,以防将来网站布局发生变化。'短链接' 是 Trainz 特定的 URL,通过允许内容创建者引用 N3V 网站上的特定页面,而无需依赖于特定的网页布局,从而帮助将来保护内容。短链接旨在用于游戏内使用,例如 info-url 链接,并且仅在嵌入式 Web 浏览器中有效,而不能在任何外部 Web 浏览器中使用。如果此标记存在,游戏中会提供按钮,允许用户在不离开游戏环境的情况下查看资产描述或帮助。

这在 Driver 中非常有价值,可以访问路线图、指南或会话说明或澄清。

建议在任何情况下,对于提供类似功能但外观略有不同的资产类别,都使用通用组页面。这减少了创建、维护和本地化此类文档的时间成本。

 

must-have-product-rights 标签

[编辑 | 编辑源代码]
类型:ascii 字符串。
字段定义:由分号 (;) 分隔的必需产品权限列表。如果本地安装没有必需的产品权限,则某些游戏系统可能无法加载资产。

 

must-not-have-product-rights 标签

[编辑 | 编辑源代码]
类型:ascii 字符串。
字段定义:由分号 (;) 分隔的冲突产品权限列表。如果本地安装具有其中一个列出的产品权限,则某些游戏系统可能无法加载资产。

 

权限容器

[编辑 | 编辑源代码]
类型:权限容器 是某些作者使用的 DRM、版权保护实现,也可以称为权限 DRM 容器。DRM 代表数字版权管理,这就是它的实现方式。如果定义了,某些参数将阻止查看资产的config.txt 文件
字段定义:资产创建者设置的一组权限,用于控制如何操作此资产。
privileges {
  is-payware-content 0 
  permit-listing 1
  permit-edit 1
  permit-commit 1
}

  上面的容器使用默认值设置,表示

0) 这不是付费软件,因此其他字段具有相关性 [当付费软件编辑和提交为零时,但列出可能允许];

允许

1) 查看资产的config.txt 文件
2) 编辑资产,包括查看其主文件夹中组件文件的内容,
3) 重新保存对资产的任何更改(提交(提交)重新验证的资产到数据库)。

 

脚本标签

[编辑 | 编辑源代码]
类型:字符串文件名。
字段定义:指示此资产的主脚本文件的路径,如果有。此路径应始终以 ".gs" 扩展名结尾 - 运行时将尝试添加或替换具有替代扩展名的路径的 ".gs" 扩展名。

 

类标签

[编辑 | 编辑源代码]
类型: 字符串。
字段定义:指示要加载的脚本类名称作为此资产的主类,如果有。此类从此资产的主脚本文件加载。

 

script-include-table 容器

[编辑 | 编辑源代码]
类型:kuid 参数及其对应名称作为键的列表。
字段定义:脚本化资产的键值表,在编译此资产的脚本文件时,会搜索这些脚本化资产以查找脚本包含。键(变量,所以不是标签)当前未使用,但必须唯一;值指示要包含的资产的 KUID。

The script-include-table 容器 是任何从 KIND TrainzBaseSpec 派生的资产(简而言之,所有资产)可用的顶级config.txt 文件 条目。此容器允许资产使用 包含另一个资产的脚本 来自父资产的脚本文件,使用 N3V TrainzScript 的 Script_Include_Directive.

相关

扩展容器是使用特定命名约定的自定义标签或子容器的列表。

S-I-T 容器支持的标签

[编辑 | 编辑源代码]

此容器是脚本化资产的名称及其 kuids 的简单键值表,这些脚本化资产在编译资产的脚本文件时会搜索以查找脚本包含。键或标签名称目前未使用(即为占位符参数)用于搜索;值指示要包含的资产的 KUID。能够搜索和识别键名是内容创建者请求的功能,因此建议使用脚本文件名而不是数字虚拟标签名作为最佳实践,因为它比 kuid 引用传达的信息更多。

S-I-T 容器验证

[编辑 | 编辑源代码]

通常最好将此类引用限制为KIND 库 资产,但这并非强制性,可以引用任何资产。

S-I-T 容器示例

[编辑 | 编辑源代码]
script-include-table {
                       a-key        <kuid:nnnn:nnnnn>
                       enginespec   <kuid2:www:xxxxx:yy>
                       anim-doors   <kuid:tttt:uuuuuu>
                     }

 

扩展容器

[编辑 | 编辑源代码]
类型:扩展容器
字段定义:一组扩展属性,它们为脚本提供了超出为该资产类型定义的Config.txt 文件 规范的附加信息。在创建新的扩展时,应注意遵守扩展命名指南,并在为现有扩展提供数据时,应遵守扩展创建者的指南。Auran 保留根据扩展创建者的指南,在以后日期添加对扩展容器 中特定条目的验证的权利。

 


更新且不太常见

[编辑 | 编辑源代码]

以下关键字是相对较新的发展,在较旧的资产中没有类似物或存在。 

category-keyword 标签

[编辑 | 编辑源代码]
类型:UTF-8 字符串。
字段定义:由分号 (;) 分隔的自然语言关键字列表。字符串中不应包含其他字符(包括空格或不相关的标点符号)。这些关键字构成了资产关键字搜索的基础。资产的用户名 不需要在category-keyword 列表中重复。
  • 各种默认搜索关键字会根据资产类型(KIND+类别-类)自动提供,因此无需重复,甚至可能不应该重复。Ø
  • 该标签不能作为空字符串 ("") 或在标签后为空 - 这些情况会生成错误。
  • 明显的用途:公司,如 ATSF、Santa Fe 和 AT&SF、B&O、Chessie、CSX、NS、PRR 或 NYC 等,而基本类型,如平板车、盒式货车、漏斗车应该自动生成。桥接键,如凹陷式、井车和侧翻式(换句话说,修饰符)应该用于增强自动关键字生成的有限智能。重复自动生成的术语不应令人担忧。

 

{{anchor|custom-category-list container|自定义类别列表容器|custom-category-list tag|自定义类别列表标签|custom-category-list string|自定义类别列表字符串|自定义类别列表容器|custom-category-list container

custom-category-list

[编辑 | 编辑源代码]
类型:ASCII 字符串数组容器。
字段定义:自定义类别标识符列表,用分号 (;) 分隔。每个自定义类别标识符应该是一个短的(例如 3-6 个字符)字母数字标记。字符串中不应包含其他字符(包括空格)。
  • 这些自定义类别用于使脚本能够快速定位特定类别的资产。强烈建议谨慎引入新的自定义类别标识符。
  • custom-category-list 标签值总共不应超过 64 个字符。除非有现有的特定脚本要求只能通过自定义类别列表方法来满足,否则此标签应保留为空。

 

member-of-groups 容器

[编辑 | 编辑源代码]
最小构建版本:V3.5 及更高版本
类型:Member-of-groups 容器 配对列表占位符参数asset-group KUID。
字段定义:KIND_Asset-group 此资产所属的资产列表。有关如何使用和何时使用它的详细信息,请参阅kind KIND Asset-group 文档。

容器包含 KIND Asset-group KUID 的常规列表。此包含是一个声明,表明此后,特别是在搜索操作(包括脚本接口和 TrainzUtil)中,此资产将被视为每个列出的资产组的成员。

如果给定的“member-of-groups”容器中没有指定任何条目,或者资产省略了“member-of-groups”容器,则模拟器软件可能会根据资产的 Config.txt 文件指定一些默认资产组。确切的行为可能在模拟器的不同版本之间有所不同,但是当前的逻辑在这里 描述。 

可选的已弃用标签

[编辑 | 编辑源代码]
以下标签对于任何资产都不是强制性的,并且许多资产将它们保留为空。
从历史上看,识别和许可标签从 Trainz 0.9(测试版)开始。

 

类型:UTF-8 多行字符串。(被程序员法令弃用。)
字段定义:许可证,描述资产创建者希望如何使用此资产。最常看到的是许可证声明,禁止在任何付费路线、依赖资产(例如转向架、联轴器等火车部件)或重绘中使用受版权保护的资产,包括在任何付费运营的网站上分发资产。(从理论上讲,即使对于 DLS 也是正确的。FCT 费用用于更快的访问和无限下载,而不是用于访问资产。)
license 标签的含义不明确,N3V 不建议使用它,但它的存在早于 N3V 管理 6-7 年。
上传到下载站 或提供用于包含在游戏中的内容可能受特定再发行合同或许可协议的约束,该协议取代了此字段中的任何文本。许可字段不提供本地化支持。许可字段的文本未经 Auran 或 N3V 验证或执行,可能对最终用户具有法律约束力也可能没有法律约束力。
另一方面,Planet Auran 的历史表明,有人通过将他人的内容作为自己的内容来侵犯版权,可能会导致其从 Auran 网站被迅速封禁,并失去下载站权限等,从而被永久封禁。此外,社区将严厉打击其他用户侵犯他人的版权行为,并对侵权者进行谴责,并忽略任何允许保留在 DLS 上的资产。
总而言之,实验和修改资产是 Trainzer 尝试克服陡峭的内容创作学习曲线的一种可接受的甚至被认可的生活方式(每个人都希望有更多内容创建者!),但如果资产有依赖部分,尤其是网格、脚本、纹理,这些是知识产权——在上传你的作品之前,请获得使用属于他人的部分的许可。
通过kuid 引用指定的资产部分不应包含在本声明中——使用通用联轴器、转向架或基本火车车厢网格(Auran 发行了几种标准类型,许多作者默认情况下使用它们,通过对网格进行 kuid 引用,例如检查 Boxcars 的依赖项(英国:Covered Wagons 或 Vans)——超过一半可能使用对 Auran 在 Trainz 1.0 中发布的基本网格的 kuid 引用!)


 

author 标签

[编辑 | 编辑源代码]
类型:UTF-8 字符串。(被可更新的Planet Auran 数据库 弃用。)
字段定义:作者的姓名或标记。不建议使用此字段,因为可以通过编程方式确定归属。

 

organisation 标签

[编辑 | 编辑源代码]
注意英国拼写,北美拼写“organization”也适用!
类型:UTF-8 字符串。(被可更新的Planet Auran 数据库 弃用。)
字段定义:负责创建此资产的组织的名称或标记。不建议使用此字段,因为可以通过编程方式确定归属。

 

contact-email 标签

[编辑 | 编辑源代码]
类型:字符串,电子邮件地址。(被可更新的Planet Auran 数据库 弃用。)
字段定义:此资产创建者的联系电子邮件地址。不建议使用此字段,因为可以通过编程方式确定归属,并且可以针对创建者的Auran 账户 Planet Auran 账户 注册联系方式,以便在必要时对其进行限制或更新。

 

contact-website 标签

[编辑 | 编辑源代码]
类型:URL 字符串。(被可更新的Planet Auran 数据库 弃用。)
字段定义:此资产创建者的联系网站。不建议使用此字段,因为可以通过编程方式确定归属,并且可以针对创建者的Auran 账户 Planet Auran 账户 注册[联系方式],以便在必要时对其进行限制或更新。

 

已废弃的标签

[编辑 | 编辑源代码]
以下“标签列表”是“事实上的”,因为它们的“使用惯例”早于上述列出的 TBS 标签的正式汇编,但并非早于使用它们的规范,实际上,也早于 TrainzBaseSpec 术语的创造(于 2008-2009 年在 TrainzOnline Wiki 中引入),或其在 N3V Wiki 页面 中的正式定义,2009 年 5 月 12 日 11:32[4]


 

  • 在初始编译之后,一些在数据模型的旧版本中常见的但现在已过时的标签已添加到下面,例如 bendy 及其在下面 中的许多桥梁资产。

 

编者注: 这些“TrainzBaseSpec 标签”在某些情况下因程序员命令而过时,在 TB V2.7 中(主要是与机车类型相关的标签),并且在所有情况下,在 TS2009-SP0 以及之后的所有N3V Games 版本中也是如此(尽管许多用户发现其中一些标签很有用,但这会给内容创作者带来时间惩罚,或者可以忽略那些在 预处理操作 中不再有用的标签)并且如果资产被打开进行编辑并通过将 trainz-build 标签 提升到 V2.9 及更高版本 数据模型 而部分升级,将会生成错误(错误消息):
  • 资产可以本地升级到 V2.8 及之前版本,并且通常可以正常工作,即使在给定了几代数据模型元素改进之后,也会正常运行。这样,许多资产可以设置为使用 TRS2004 或 TRS2006 数据建模,但仍符合 TS 版本的处理和渲染。
  • 例如,大多数 TRS 时代之前的 data model 资产 (v1.0–v2.3) 可以通过添加一个 mesh-table 来在 TS 版本中正常工作,以替换自 TS 版本以来被忽略的 'asset-filename' 的前者效果,使用原始 Trainz data model 的文件夹分组定义路径,使用带有后缀 '_art'、'_body' 和 '_shadow' 的子文件夹和名称(其中由资产名称加后缀定义的字符串设置了资产组件的路径。
  • 反过来,带有 TBs v2.9 及更高版本的 TS 版本资产通常可以通过了解这些标签的效果和用途以及对 texture.txt 修改器行进行一些明智的修改来进行反向改装,以便在早期版本中使用,以消除 texture.txt 修改器行(例如,AlphaHint 需要注释掉,等等)。


  • asset-namenamename-XX — V1.3–v2.8 —历史上存在于几乎所有 v1.3-v2.0 资产中。而 'asset-name' 在 v2.8 之前一直被保留,没有引起任何抱怨,但在 v2.5 之后已不再被鼓励;因此,在 v1.5 之后,资产的 config.txt 文件中唯一需要、想要或认可的名称是 username-XX 变体。

 

Asset-name

[edit | edit source]

Asset-name 是 Trainz 1.x--TRS2004 Trainz 时代的主要文件夹名称,并且通常是 CM 打开文件进行编辑时打开的文件夹的名称;在这些早期的 data model 资产中,通常会发现 asset-name 也被用于早期 Trainz 时代的 data 子文件夹系统,在火车车厢资产中给出子文件夹名称 'asset-name_art'、'asset-name_body'、'asset-name_shadow'。在修复这些资产时,通常可以使用从资源文件复制和粘贴下来的样板文件中的 SAR 替换该值。此替换通常会正确定义和链接资产的子文件夹(用于主体、阴影和艺术作品),因为早期方案中的文件名基于 asset-name 标签。 

bendy 标签

[edit | edit source]
范围:存在于 v2.9 标准之前的 轨道或桥梁资产 中,当时样条对象经历了重大更改,以统一数据模型定义,放弃了混合中的几个先前的 KIND,而有利于将所有样条对象统一到 kind track 下。

 

casts-shadow 标签

[edit | edit source]
参见上面的 bendy,已弃用/过时的 TS2009 之前遗留的 kind track 标签。

 

name 和 name-XX 标签

[edit | edit source]
  • 'name' 和 'name-XX' 是早期 data model 形式的更长的 usernameusername-XX 标签,XX 代表英文 'name tag'(或今天的 'username' 标签)的非英语语言翻译的 ISO 双字母后缀;'XX' 形式与 description-XX 一样,是“本地化”支持其他语言的用户友好值的组成部分。
  • 在最古老的 Trainz 时代 (v1.0-v2.4) 资产中将 name 和 name-XX 替换为 username 和 username-XX,或者如果存在 username,则直接删除。
    • 如果资产的 trainz-build 版本为 v2.7 或更高,则 name-XX 会导致错误。有趣的是,即使在 TS12 中,name-XX 标签也会在 Surveyor 工具的搜索列表中显示为资产名称,如果不存在,则会显示 TrainzBaseSpec

 

注意:Username(英文)是 DLS 上的官方资产名称,永远不应该使用外语;在 TB v2.5 (TRS2006-SP0 之后,它也取代和替换了 CM 打开文件夹进行编辑时的 'asset-name'。

按照惯例,子文件夹名称将以 username/asset-name 字段开头,并使用 _art、_body 和 _shadow 作为后缀作为正常命名约定的一部分。这可能是 3ds Maxgmax 的约定,延续到 Trainz 中,Trainz 与该图形开发软件有历史联系。(Gmax 与 Trainz 版本 V0.9—v2.4 捆绑在一起)


 

category-era-nn 标签

[edit | edit source]
category-era 标签 取代
  • category-era-nn — V1.3–v2.8 s.a. {tag: category-era-0, category-era-1, category-era-2, ...} —以前带数字后缀的日期系统—历史上存在于几乎所有值得日期的资产中,直到 TBV 2.0 (甚至在 TBV 2.8 构建的资产中!),当时引入了当前的 category-era 字符串数组,将它们组合到一条 config.txt 行上[note 12]。虽然在 Surveyor 中无法直接访问,但在 TR06 和 CMP 之后,可以定义一个过滤器来选择一个日期范围,并使用该过滤器以及区域和类型在 Surveyor 中验证 Surveyor 的放置和选择工具中可列出的资产。在 TS09 中被废弃,TS09 使用较短的 category-era 标签 字符串数组 放在一行中,而不是使用多个带 '-nn' 后缀的标签-值对。
  • 字符串数组中的空格会导致错误;所有值必须以 's' 结尾,并包含四个数字,例如 1880s;1950s;2010s(这可能完全适用于某种类型的女性服装,这种服装会流行起来和过时!)。定义一个范围目前还不可行,但已被用户社区要求。
  • 用字符串数组类型的 category-era 标签 替换,没有空格,日期代码之间用分号分隔;这些代码以完整的四位数年代数字加 's'(小写字母 s)后缀的形式给出。

 

category-region-nn 标签

[edit | edit source]
category-region 标签 取代
  • 类型 category-region-nn — V1.3–v2.8 —历史上存在于几乎所有值得本地化的资产中。它们已被 category-region 标签中的由两个字母组成的枚举 ISO 国家代码的“字符串数组” 取代。
  • 用字符串数组类型的 category-region 替换,没有空格,枚举的两位大写字母国家代码之间用分号分隔,但在最后一个代码之前不使用分号,直到末尾引号之前。
  • 字符串数组中的任何 空格 都会导致读取错误和错误消息,包括末尾引号之前的空格。

 

  • region —作为 TBS V1.3–v2.8 的有效部分,作为内置过滤器和地图资产自定义本地化标识符(kuid);现在唯一合法的标签使用是在 kind map(布局)资产中。
作为以前的过滤器修饰符,该标签历史上存在于几乎所有资产中,但它在滚动库存、场景、样条资产、轨道类型(包括隧道和桥梁)以及具有某种程度本地化的轨道旁资产中尤为普遍。
  • 地图资源仍然保留了在“地图配置”中定义的关键字“Region”,但其使用方式却与之相反——它是一个区域类型kuid 引用。因此,地图中需要“Region”,而自TS2012开始,就像标签类型一样,“Region”在大量的资源中被禁止使用,这些资源曾经将其用作TRS系列版本Surveyor工具窗口中的“分组数据”和“快速筛选”功能。
  • 在TRS2009之后,任何将“region”标签与文本字符串关联的行为都已过时,因为在程序员看来,他们用选择列表取代了Surveyor工具中“类型和区域”字符串值的粗略筛选组选择器。这两个标签都有一些优缺点,它们都可以追溯到Trainz 0.9 Beta版本。

 

shadows 标签

[编辑 | 编辑源代码]
参见上面的弯道,在TS2009之前已过时/废弃的传统轨道类型资源模式控制标签。

 

thumbnail 标签

[编辑 | 编辑源代码]

“thumbnail”标签是缩略图容器的早期单视图实现(在上面也有简要说明)。Trainz 的早期版本(在N3V程序员之前)会在资源主根文件夹或“资源名称_art”或“资源名称_body”文件夹中找到一个.jpg文件,并将其大小设置为240x180像素,用于在CMP和DLS中显示资源(如果上传的话)。自TRS2006开始,“thumbnail”标签已过时,因为缩略图容器在v2.0(TRS2004-SP0)中引入。在旧的修复后的资源中,如果TBV保持在v2.4以下,则缩略图通常仍然可以在较新的CM中工作,前提是它位于“_art”子文件夹中,并且资源名称与用户名匹配。 

type 标签

[编辑 | 编辑源代码]
  • type — V1.3–v2.8 —以前的一种筛选修饰符,在历史上几乎所有资源中都存在,但特别是在滚动库存、景观、脊梁、轨道类型(包括隧道和桥梁)以及轨道旁资源中非常普遍。
  • “type”标签与“region”标签一样,在Trainz 0.9—TC3版本中用作“Surveyor中的组筛选器”,它与“region”结合,提供了较小的资源选择(工具组)。自TS2009开始,取消了这些本地可点击筛选器的功能和使用,转而采用了一种新的更繁琐的筛选器。这使得工具的选择变得快速简便,而不是在工具选项卡之间切换时缓慢暂停——如今的TANE之前的版本在工具选项卡之间来回切换时,往往会因重新加载整个选择列表而感到不堪重负。
  • “type”和“region”都默认设置为“All”,提供与TS09及更高版本中工具提供的相同的大型列表。
  • 自TRS2006分支版本(即TC3)开始,所有“type”标签都已过时,因为在程序员看来,他们用TS09选择列表和筛选器取代了Surveyor工具中粗略筛选的“类型和区域”组选择器——却没有赋予用户保存多个选择列表或轻松加载在CM中定义和细化的筛选器的能力。

 

  1. 资源提交(TANE的提交)是将内容纳入数据库并将其在DB索引中交叉引用以使其可以在运行时模块中访问的过程和程序。
  2. 验证资源的一种方法是,除了这些值之外,其他方法都正常,将TBV降低到2.5-3.7范围内,看看这些消息是否消失。您可能需要降低几次尝试,直到足够低,反之亦然,在较旧的TBV中无法识别的较新关键字可能会给出不同的错误消息。不要害怕尝试,即使尝试失败也会产生知识和经验,而且您不会破坏任何东西!如果是这样,您可以确信只需提供一个值就是问题的解决方案。通常,一些现代需求只需要关键字对,因此在标签后面添加一个空行或在标签后面添加一个空的花括号集合就可以满足需求,而错误测试则过于严格。
  3. 注意:此列表在N3V TrainzOnline Wiki上进行了“wiki化”,这意味着在“KIND”一词之后首字母已大写,而config.txt文件中实际的数据标签名称全部为小写文本。该wiki还在许多术语中使用了双引号,这种做法我们将在此省略。
  4. “kind consist”并不经常直接看到,它只存在于菜单和内容管理器列表中。
  5. “obsolete-table”必须谨慎使用,最常在Auran制作的资源中看到。该表用较新的版本替换了较旧的kuid,大多数内容创建者正确地使用kuid的Kuid2形式来取代旧版本。相比之下,N3V过度使用“obsolete-table”来进行新版本“升级”的内置资源,这会导致很多混乱,以及无法获得预期看到的内容。(例如,许多漂亮的“翻转树”在TS10和TS12中被“Speedtrees”取代,这影响了许多路线,而创建者在这些路线中并不想要或需要Speedtrees。在跨安装过程中,这也会导致依赖项缺失,直到找到包含“obsolete-table”的资源。 • 此外,在Assets.tdx数据库索引中,每个kuid只支持一个过时条目,而用Kuid2版本取代kuid会导致问题(例如,您会看到哪个?) • “obsolete-table”的一个很好的用法是使用特定零件(尤其是转向架)升级一系列资源。添加一系列kuid,并用较新的好的转向架来替换它们,可以显著改善路线或会话的外观(前提是转向架(例如)兼容并且尺寸合适!)
  6. 最近使用一个过时的资源导入TANE的经验表明,有五种不同的kuid来取代那个可怜的“翻转树资源”。随着Speedtrees的引入以及TANE的大修(积极追求最适合更新的资源),在ContentManager进程中,现在容忍了多个不同kuid的资源来取代同一个kuid,这似乎造成了混乱。作为最佳实践,只在绝对必要时使用“obsolete-table”...例如,用您想要上传到DLS或在网站上自发布的依赖资源中,取代一个不想要的付费资源。
  7. 关于类别时代标签范围:安全播放,已知有效。其他“未来十年”值应在依赖于此之前进行测试。
  8. 许多容器在列表中使用虚拟/占位符名称。这些可以是描述性词语,只要它们不包含空格字符。在短语构造的名称中使用下划线或句点可以保留可读性并显著增强清晰度。例如,一个货运车厢可能装载45种合法产品类型。这些将在依赖项容器中列出。使用Coal、granite、crushed_limestone等可以使维护和更改表变得更容易。Jes Sayin' 是一位自1976年开始的程序员。
  9. 在第二个缩略图容器示例中,还有一个512x512大小的图像,一个额外的图像。DLS将使用哪个图像尚不清楚。也可以包含更大的图像尺寸,通过电子邮件聊天,T:ANE可能支持一个更大的图像尺寸,该尺寸将在预览操作或DLS列表中使用。N3V Games通常不会透露此类信息。
  10. 早期的做法可以追溯到Trainz 1.x,当时使用关键字/标签“thumb”,并在引号中使用路径规范引用240x180的缩略图图像,用于运行时菜单。art文件夹包含一个512x512的tga,带有alpha蒙版(通常为bmp文件,但格式正确的tga可以用作自alpha蒙版),以及64x128的菜单图标图像及其控制的texture.txt文件。
  11. 在2014-2015年冬天与前版本经理James Moody进行的私人电子邮件交流中,关于此主题,DLS上传验证软件可能已经更改,以强制执行正确的缩略图容器。
  12. 关于类别-时代-nn 与类别-时代标签值: TRS 接受类别-时代数据两种形式; 但 TS2009-SP0 及其以上版本会因以前合法关键词-值对而产生错误,并试图强迫内容创作者更改所有程序员故意破坏的资产。 后来,DLS 上传软件强制执行了转换,但这要好得多,因为第一个操作让许多人因修复浪费了大量时间,而这些修复是不必要的,应该在审核较旧的 Trainz 构建资产时,在软件预过滤器过程中自动实施。 这些操作实际上保证了较旧的资产下载将存在错误。 这是 N3V 程序员所做过的最愚蠢、最傲慢的事情之一,而 Auran 经验更丰富的软件人员永远不会如此轻率地对待社区的时间成本。

参考资料

[edit | edit source]
  • 本页面主体内容摘自 N3V TrainzOnline Wiki,来自 KIND_TrainzBaseSpec。 增强信息由 Yesterdayz-Trainz 用户组成员添加。

脚注

[edit | edit source]
  1. N3V 的 KIND_TrainzBaseSpec,作为未经修订的原始页面,缺少历史信息(标签),可在以下位置找到; 访问日期:2014 年夏季
  2. a b "Trainz-build" 标签 直接链接
  3. 据 fabartus 说,2014 年夏季; 可能是添加此示例的同一天。
  4. Christoph Bergman,N3V Games 首席程序员,又名 'Windwalkr',KIND TrainzBaseSpec 历史 页面。



华夏公益教科书