跳转到内容

Trainz/refs/TrainzBaseSpec

来自维基教科书,开放世界开放书籍
logo
Trainz 注释参考页

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


KIND 层次结构简介

[编辑 | 编辑源代码]

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

  • 其中一些是强制性的,因为它们决定了资产的进一步处理以及 config.txt 文件和其文件夹中资产数据的解释。
  • 但是,大多数是可选的,在大多数子资产中,可以使用标签定义的行可以省略。
  • 没有,对于所有由实际父容器定义的内容(所有 Trainz 数字模型所需的 config.txt 文件)有效且大部分必要。KIND TrainzBaseSpec (TBS) 是其他 Trainz 资产类派生的根类
  • 之所以说它们是派生的,是因为它们继承了由其中列出的参数定义的处理属性(指令)和值,其中最关键的是 kind 标签的值。该枚举词决定了资产的特定种类声明和要求,这些声明和要求将添加到该资产配置文件中的 TBS 定义中。其他关键的 TBS 定义数据具有明显的意义和实用性,例如资产名称、Kuid 标识符和版本、Trainz 构建值 (TBV) 以及其他具有广泛可变定义需求、适用性和范围的数据,例如字符串表、过时表、kuid 表和缩略图图像都是情景化的。即使是资产名称和描述等字符串值,在实践中最常完全没有必要,并且完全可以省略。
  • 当声明一种类型时,该类型将成为父类,要求并规定必须在该类中满足的必要数据对,除了 TBS 中列出的那些数据。
  • 某些参数可能在资产类型的某个案例中保持未定义,这尤其适用于较旧的 Trainz 构建标签值的常见做法,对于这些标签,内容管理器或Content Creator Plus (CCP) 实用程序将分配一个默认值,但在处理它时会列出警告消息。TrainzOnline wiki、此处或较旧的 TC3 时代 Content Creator's Guide (CCG 将会提及一个默认值。
  • 从 TRS2006 和 Trainz Classics (TC1&2) 开始,每个版本的 Content Manager 模块都会施加越来越多的预先承诺错误测试[note 1],并且每个模块都越来越坚定地警告这样的标签在它期望这样的标签数据对时没有被定义。

在 TANE 之后的版本中,许多在昨天“默认”的定义行,今天更常会生成错误,要求明确的值定义,而这些值在过去的加载中是默认的[note 2]。与过去那种错误的资产定义有时会引起臭名昭著的“蓝屏死机”或更常见的是将运行时软件崩溃回桌面,导致编辑丢失,甚至可能需要重建数据库相比,这是一个更令人愉快的烦恼。

所有 Trainz 定义的数据(内容)都包含三个必需的元素:一个config.txt 文件 用于组织数据,一个身份,也就是一个kuid(仅用户名不起作用,但是,即使没有名称,也可以创建合法的资产!)最后,一个合法定义的类型标签。类型是负责人,指挥家,排长或 CEO,给出指示——为在处理之后发生的所有事情设置要求。简而言之,类型的价值,一个紧密定义的成员专用小组,告诉 Trainz 软件在虚拟世界中要渲染和显示什么,以及如何(或在何处)查找将这些资产部分链接在一起的 config.txt 文件中所需的其余部分。
  下面的每个子类都被认为具有TrainzBaseSpec 作为其数据“父类”。[note 3] 下面列出的几种类型,那些带有下划线的类型,是过时的类型,早于 TS2009 版本(即 2008 年后期)中对 Trainz 数据模型 的更改,N3V 程序员只施加了渐进的(增量的)更改。
  目前可以在 N3V Trainz Wiki 的 Content Creator's Guide 部分找到基于这些过时类型的资产修复的详细信息,并提供具有启发性的 TrainzOnline 网站上的内容 过时类型的示例。建议 Trainz 下载站 的任何用户或任何考虑创建内容的人仔细阅读 CCG。从了解旧内容如何定义的背景历史中获得的见解,可以与 TrainzOnline 对相同数据类型的当前覆盖范围进行对比和比较,因为通常这种过去与现在的对比提供了修复、修改和自定义资产的宝贵见解。更重要的是,CCG 在 TrainzOnline 上发布的内容是 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 表 (容器)

  { 依赖项列表
  按 kuids 划分 }

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

 



支持的标签

[编辑 | 编辑源代码]

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

类型标签

[编辑 | 编辑源代码]
_类型:_ 字符串。
_字段定义:_ 此 config.txt 文件 所代表的资产类型。 请参阅索引 类型 和列表:这里(上面)

 

kuid 标签

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



  • 大多数 Trainz 资源在其kuid 表中指定了依赖项列表,这些依赖项是软件套件的各个部分组装起来的其他组件资源,用于在一个kuid 表容器中构成可渲染和可使用的资源。
  • 在许多资源的核心,特定的标签可以通过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 值)
类型: 由 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)开始递增 0.1 到当前版本(v3.7 = TS12-SP1,v3.8 = Mac2,3.9=TANE-CE,4.0—4.3 以及之后?从 2016 年 3 月起,4.3 及以上是 TANE SPs TBDL)。
  • 从 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 版本号。相反,内容创建者社区试图将此编号设置为尽可能低,以便在下载时为新资源提供尽可能广泛的受众/用户范围。更好的内容创建者会在裸机安装(没有添加内容)的相应版本上进行测试,并验证生成的 cdp 包含所有相关材料。
  • 某些资源类型会根据其trainz-build 版本标签以显著不同的方式进行解析。注意:trainz-build 标签 是强制性的。如果没有指定,Trainz 将尝试根据config.txt 文件 的内容猜测旧版 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 标签

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

 

string-table 容器

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

  其他语言通过类似的 string-table(例如 string-table-XX)支持,带有与 description 和 username 关键字/标签的国际化后缀匹配的本地化代码后缀 (XX),但这些语言键的 string-table 容器将始终在左侧条目中具有相同的键值。 

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

 

string-table-XX 容器

[编辑 | 编辑源代码]
类型:UTF-8 字符串列表容器,本地化的 string-table,每个后缀对应于英语以外的语言。
字段定义:(其中XX 被替换为表示所代表语言的适当 本地化代码。)此字段类似于string-table 字段,只是表示非英语区域设置。

英文 string-table(没有后缀)是强制性的,其他本地化语言是资产作者可选择提供的。许多提交给 DLS 的资产,以及后来捆绑在 Trainz 版本中的路线,通常会被翻译,并有一套完整的本地化翻译,用于 description-XX 和 string-table。特别是,与版本捆绑在一起的路线和会话在每次零售版本中都会被专业翻译成多种语言。

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

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

kuid-table 容器

[编辑 | 编辑源代码]

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 表中包含一级依赖项 - 具有自身依赖关系的子资源或部件资源将在该子资源的验证和数据库提交中处理。
  • 循环依赖是非法的。
  • 如果资源也被标记为此资源的旧版本,则不能将其列为依赖项。(Trainz 资源索引(历史上是 assets.tdx 文件)中的 kuid 只有一个替换 kuid 槽位,这将创建一个循环定义,需要其自身的一个旧版本!)
  • 类似地,资源不能被列为其自身的依赖项。[另一方面,这在 TSxx CM 中已被体验过(即,见证为在安装之间使用 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 表将允许新老 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>
} ...

注意连接单词的下划线...两个符号,键和值!我们让学生弄清楚在哪里将 kuid 添加到装载和允许的产品队列表条目中。(不用谢,但这确实是一个更改名称的好理由!保持事情井井有条几乎是创建资源的全部战斗!)  

obsolete-table 容器

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

 

category-region 标签

[编辑 | 编辑源代码]
目的:CM 和 Surveyor 中的过滤器(搜索条件)
类型:枚举字符串或字符串数组。
字段定义:一个由分号 (';') 分隔的双字符category-region 标签 代码列表。字符串中不应存在其他字符(包括空格等)。此资源被认为与每个指定的区域相关 - 这对于kind traincarkind 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 字符category-class 代码,用于描述此内容项。category-class 标签用于提供超出资源种类隐含的额外人类子分类。每个 Trainz 资源的 category-class 标签有助于描述资源在游戏中的“意图”,而不是资源的内部结构。
TRS2006 的内容创建者指南 (CCG) 和 Trainz Classics 的 CCG 解释了这些类别代表一个标准化系统,用于引用各种类型的机车、滚动库存、风景、样条线和工业资源。Category-class 分类代码对于所有 Trainzer 来说都变得很重要,因为他们需要搜索和/或过滤合适的资源,以便将其制作成会话或路线(布局)中的内容。


 

请注意,许多 category-class 代码只与特定的资源种类相关 - category-class 代码不能应用于不适当种类的资源。

示例
    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 数据模型需求规定的三个子文件夹,名为 “asset-filename_suffix”(过时的标签 - 对),如下所示[注释 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 的一个热修程序中被放弃,因为用户社区的许多投诉。
 • 如果缺少缩略图容器的资产(即使有过时的拇指标签)后来在新的内置路线或会话中被选中,该资产通常将作为没有图像的项目进行分发——如果未被 texture.txt 或 config.txt 缩略图容器正确引用,它们将被剥离。[注释 11]  

软件链接

[编辑 | 编辑源代码]

info-url 标签

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

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

这在驾驶员中可能非常有用,可以访问路线地图、指南或会话说明或澄清。

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

 

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。

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

相关

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

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

[编辑 | 编辑源代码]

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

S-I-T 容器验证

[edit | edit source]

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

S-I-T 容器示例

[edit | edit source]
script-include-table {
                       a-key        <kuid:nnnn:nnnnn>
                       enginespec   <kuid2:www:xxxxx:yy>
                       anim-doors   <kuid:tttt:uuuuuu>
                     }

 

extensions 容器

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

 


较新且不太常见

[edit | edit source]

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

category-keyword 标签

[edit | edit source]
类型: UTF-8 字符串。
字段定义: 用分号 (;) 分隔的自然语言关键词列表。字符串中不应包含其他字符(包括空格或无关的标点符号)。这些关键词构成了资产关键词搜索的基础。资产的 用户名 不需要在 category-keyword 列表中重复。
  • 基于资产类型 (KIND+category-class),将自动提供各种 默认搜索关键词,因此不需要,可能也不应该重复。 Ø
  • 标签可能不会作为空字符串 ("") 或标签后的空白存在——这些条件会导致错误。
  • 明显的用途:公司,如 ATSF、Santa Fe 和 AT&SF、B&O、Chessie、CSX、NS、PRR 或 NYC 等,而基本类型,如平板车、盒式货车、料斗车应为自动。桥接键,如凹陷、井车和侧倾 (换句话说,是修饰符) 应可能用于增强自动关键词生成的有限智能。自动生成的术语的重复不应引起关注。

 

{{anchor|custom-category-list container|Custom-category-list 容器|custom-category-list tag|Custom-category-list 标签|custom-category-list string|Custom-category-list 字符串|Custom-category-list 容器|custom-category-list 容器

custom-category-list

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

 

member-of-groups 容器

[edit | edit source]
最小版本: V3.5 及更高版本
类型: Member-of-groups 容器 配对的 占位符参数资产组 KUID。
字段定义: KIND_Asset-group 资产列表,此资产属于这些资产。有关如何以及何时使用此功能的详细信息,请参阅 kind KIND Asset-group 文档。

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

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

可选的已弃用标签

[edit | edit source]
以下标签对于任何资产都不强制性,许多资产将其留空。
从历史上看,识别和许可标签从 Trainz 0.9 (Beta) 开始。

 

license

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


 

author 标签

[edit | edit source]
类型: 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 时代数据模型资产(v1.0–v2.3)可以通过添加一个 mesh-table 来与 TS 版本一起使用,该表格替换了从 TS 版本开始就被忽略的“asset-filename”的旧效果,以便使用原始 Trainz 数据模型 的子文件夹和带有后缀“_art”、“_body”和“_shadow”的名称来定义路径(其中由资产名称加后缀定义的字符串设置了资产组件的路径。
  • 相反,通常带有 TBs v2.9 及更高版本的 TS 版本资产可以通过了解这些标签的效果和用法,以及进行一些明智的修改来删除 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

[编辑 | 编辑源代码]

Asset-name 是 Trainz 1.x--TRS2004 Trainz 时代资产的主要文件夹名称,并且通常是 CM 在打开文件进行编辑时打开的文件夹的名称;在当今此类早期数据模型资产中,通常会发现 asset-name 也用于早期 Trainz 时代的子文件夹系统,在火车车厢资产中提供子文件夹名称“asset-name_art”、“asset-name_body”、“asset-name_shadow”。 在修复此类资产时,通常可以使用资源文件中的样板代码复制和粘贴的 SAR 替换该值。 此替换通常会正确定义和链接资产的子文件夹(用于车身、阴影和艺术作品),因为该早期方案中的文件名基于 asset-name 标签。 

bendy 标签

[编辑 | 编辑源代码]
范围:轨道或桥梁资产 中找到,早于 v2.9 标准,当时样条对象发生了很大的变化,转变为统一的数据模型定义,放弃了混合中的一些先前种类,转而支持所有样条对象统一在 kind track 下。

 

casts-shadow 标签

[编辑 | 编辑源代码]
参见上面的 bendy,已弃用/过时的 TS2009 之前的 kind track 标签。

 

name 和 name-XX 标签

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

 

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

根据惯例,子文件夹名称将以用户名/资产名称字段开头,并使用后缀 _art、_body 和 _shadow 作为常规命名约定的一部分。这可能是 3ds Maxgmax 的约定,沿袭到 Trainz 中,Trainz 与这些图形开发软件有着历史渊源。(Gmax 与 Trainz V0.9—v2.4 版本捆绑在一起。)


 

category-era-nn 标签

[编辑 | 编辑源代码]
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 行上[注 12]。虽然在 Surveyor 中无法直接访问,但在 TR06 和 CMP 之后,可以定义一个过滤器来选择一个日期范围,并在 Surveyor 中使用该过滤器以及区域和类型来验证 Surveyor 的放置和选择工具中可列出的资产。在 TS09 及之后版本中已过时,TS09 使用更短的 category-era 标签 字符串数组,在一行中代替使用多个带有 '-nn' 后缀的标签-值对。
  • 字符串数组中的空格会导致错误;所有值必须以 's' 结尾,并具有四位数字,s.a. 1880s;1950s;2010s(这对于某些类型的女士服装来说可能完全合适,这些服装流行和过时是周期性的!)。目前无法定义范围,但用户社区已提出请求。
  • 用字符串数组类型的 category-era 标签 代替,标签中没有空格,日期代码之间用分号隔开;这些代码以完整四位数的年代数字后缀 's'(小写英文字母 s)表示。

 

category-region-nn 标签

[编辑 | 编辑源代码]
category-region 标签 取代
  • 类型 category-region-nn — V1.3–v2.8 — 历史上几乎所有与地区相关的资产中都使用这些标签。这些标签已被 category-region 标签中 由两个字母组成的枚举 ISO 国家代码的 '字符串数组' 取代。
  • 用字符串数组类型的 category-region 标签代替,标签中没有空格,两个字符的国家代码之间用分号隔开,但在最后一段代码前的结束引号之前没有分号。这些代码由完整的两个大写字母组成,这些字母构成 枚举 代码,代码之间用分号分隔,但在最后一段代码前的结束引号之前没有分号。
  • 字符串数组中的任何 空格 都会导致读取错误和故障消息,包括结尾引号前的空格。

 

  • region — TBS V1.3–v2.8 中有效的内置过滤器和地图资产自定义本地化标识符(kuid);现在,唯一合法的标签使用是在 kind map(布局)资产中。
作为一个以前的过滤器修饰符,该标签在历史上几乎所有资产中都有使用,但它特别普遍出现在机车车辆、风景、样条线资产、轨道类型(包括隧道和桥梁)以及具有某种程度本地化的轨道旁资产中。
  • 地图资产仍然保留着关键字 Region,该关键字在 Map 配置文件中被定义,但使用方式相反——成为一个 kind region kuid 引用。因此,Region 在 Maps 中是必需的,并且自 TS2012 以来,与标签类型一样,它在大量资产中都是非法的,这些资产曾经作为 TRS 系列版本 Surveyor 工具窗口的 '分组数据' '快速过滤器' 出现。
  • 在 TRS2009 之后,任何 region 标签到文本字符串都已过时,因为在程序员看来,他们用 Pick List 取代了 Surveyor 工具中 '类型和区域' 字符串值的 粗略过滤 分组选择器。这两个标签都有一些优点和缺点,它们都可追溯到 Trainz 0.9 Beta 版本。

 

shadows 标签

[编辑 | 编辑源代码]
参见上面的 bendy,已弃用/过时的 TS2009 之前的 kind track 资产模式控制标签。

 

thumbnail 标签

[编辑 | 编辑源代码]

thumbnail 标签是 thumbnails container 的早期单视图实现(上面简要介绍了它)。Trainz 的早期 N3V 之前的程序员版本将在主资产根文件夹或资产名称_art 或资产名称_body 文件夹中找到一个 .jpg 文件,该文件最好大小为 240x180 像素,并使用它在 CMP 和 DLS 中显示资产,如果资产被上传。自 TRS2006 开始,该标签已弃用,因为 thumbnails container 是从 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 标签都已过时,因为在程序员看来,他们用 TS09Pick List 和过滤器取代了 Surveyor 工具中 '类型和区域' 的 粗略过滤 分组选择器——而没有赋予用户保存多个选择列表或轻松加载在 CM 中定义和完善的过滤器的功能。

 

  1. 资产 Committing(TANE 的提交)是将内容纳入数据库并将内容交叉引用到数据库索引中的过程和步骤,以便在运行时模块中访问这些内容。
  2. 验证资产的一种方法是除了这些值之外,还将 TBV 降低到 2.5-3.7 范围,看看这些消息是否消失。你可能需要尝试几次才能降低到足够低的范围,反之亦然,较旧的 TBV 无法识别较新的关键字,可能会显示不同的错误消息。但不要害怕尝试,即使在这种情况下失败也能带来知识和经验,而且你不会破坏任何东西!如果是这样,你可以确信,仅仅提供一个值就是解决问题的方案。通常,一些现代需求仅仅需要关键字对,因此在标签后面添加一个空行或在标签后面添加一组空的括号,就可以满足需求,在这种情况中,错误测试会过于严格。
  3. 注: 此列表在 N3V TrainzOnline Wiki 中被 '维基化',这意味着在 'KIND' 这个词之后第一个字母被大写,而 config.txt 文件中的实际数据标签名称是 全部小写 文本。该维基在很多术语中也使用双引号,我们将在本文中避免使用双引号。
  4. 'kind consist' 并不经常直接看到,它只存在于菜单和内容管理器列表中。
  5. 必须谨慎使用 obsolete-table,它最常出现在 Auran 创作的资产中。该表格用更新的版本替换了旧的 kuid,大多数内容创作者正确地使用 kuid 的 Kuid2 形式来取代旧版本。相比之下,N3V 滥用 obsolete-table 来更新新发布的 '升级' 内置资产,这会导致很多混乱,而且无法获得预期看到的资产。(例如,许多漂亮的 'Flip-trees' 在 TS10 和 TS12 中被 Speedtrees 取代,这影响了许多路线,在这些路线中,创作者并不希望也不需要 Speedtrees。在不同的安装过程中,这也会导致丢失的依赖项,直到找到包含 obsolete-table 的资产。
  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缩略图图像。艺术文件夹包含一个带有Alpha蒙版的512x512 tga(通常是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 历史 页面。



华夏公益教科书