跳转到内容

Trainz/refs/TrainzBaseSpec

来自维基教科书,开放的书籍,开放的世界
(重定向自 Trainz/tags/username)
logo
Trainz 注释参考页面

Trainz 资产维护和创建
TOC | 开始趣味 | AM&C | 创建 | 书内参考文献 ORP 参考文献:  • 索引 • 容器 • KIND • 标签 | 附录  • 版本
[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) 以及其他需要广泛定义、适用性和范围的数据,例如string-table、obsolete-table、kuid-table 和缩略图图像都是偶然的。字符串值,甚至资源名称和描述在实践中通常是完全不必要的,并且可以完全省略。
  • 当声明一个种类时,该种类将成为父类,它要求并规定必须在该类中满足的必要数据对,除此之外还包括 TBS 中列出的数据对。
  • 某些参数可能在特定资源的种类的用例中未定义,尤其是针对旧的历史 Trainz 构建标签值以及内容管理器或Content Creator Plus (CCP) 实用程序将分配一个默认值,但在处理它时会列出警告消息。TrainzOnline 维基、这里或旧的 TC3 时代 Content Creator's Guide (CCG) 中的许多标签会提到一个默认值。
  • 从 TRS2006 和 Trainz Classics (TC1&2) 开始,每个版本的内容管理器模块都会越来越多地施加预先承诺的错误测试[注释 1],并且每个模块都变得越来越坚定地警告这样一个标签在期望这样的标签数据对时没有被定义。

在 TANE 之后的版本中,许多这些“昨天默认”的定义行今天反而会更频繁地产生故障,要求明确的值定义,而过去这些值在加载时是默认的。 [注释 2] 这是一种比旧时代好得多的烦恼,在旧时代,有缺陷的资源定义有时会导致臭名昭著的“蓝屏死机”,或者更常见的是将运行时软件崩溃回桌面,导致编辑丢失,甚至可能需要重建数据库。

所有 Trainz 定义的数据(内容)都有三个必需的元素:一个config.txt 文件 用于组织数据,一个标识,表示一个kuid(仅用户名是不行的,但是一个合法的资源可以在没有名称的情况下创建!)以及最后,一个合法定义的种类标签。种类负责,是管弦乐队的指挥,是排长或 CEO 指挥——为在之后处理的所有内容设置要求。简而言之,种类值——一个小的、精选的、严格定义的会员制团体——告诉 Trainz 软件在我们要创建的虚拟世界中渲染和显示什么,以及如何(或在何处)查找使这些资源部分在该 config.txt 文件中链接在一起的其他部分。
下面列出的每个子类都被认为是将TrainzBaseSpec 作为其数据“父类”。 [注释 3] 下面列出的几个种类,那些带下划线的,是遗留种类,早于TS2009 版本中对Trainz 数据模型 的更改(即 2008 年底以来),N3V 程序员只是逐渐(增量式)地施加了变化。
目前,有关基于这些遗留种类的资源修复的详细信息可以在 N3V Trainz 维基TrainzOnline 网站Content Creator's Guide 部分找到,其中包含遗留种类的示例。强烈建议所有Trainz 下载站 用户或任何考虑创建内容的人仔细阅读 CCG。从了解旧内容是如何定义的历史背景中获得的见解可以与 TrainzOnline 对相同数据类型的当前报道进行对比和比较,因为通常这种“过去与现在”的对比可以为修复、更改和自定义资源提供宝贵的见解。更重要的是,CCG 中的文字是专业制作的,并且更加赘述——它通常会让你了解如果这样或那样地更改会产生的扩展效果,而 Trainz 维基却没有提供这些信息。TrainzOnline 上发布的 CCG 是TC1&2/TC3 版本——这是几本印刷手册的最后一次出版,这些手册可以追溯到 1999 年的Trainz;TC3 CCG 包含来自 TRS2004/TRS2006 和UTC 数据模型的经过修改的 Enginespecs 机车资源,需要进行适当的更新。

TrainzBaseSpec 子类 KINDs(类型资源组)

 


表 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 (容器)
    {  非英语
    语言文本 }
 翻译字符串列表 匹配到 强制性的英语 string-table
 category-region 标签 枚举 代码  category-region "'字符串数组'"  
 category-class 标签  category-class "'枚举 字符串值'
 category-era 标签  category-era "'受限字符串数组'"  年代
 category-keyword "'字符串数组'" 最大长度为 64 字节    category-keyword 标签 自然语言搜索关键字
  (替换类型、地区)
 custom-category-list 
 "'字符串数组'"
 脚本接口功能
 must-have-product-rights 
 "'字符串值'"  
 DRM 字符串数组
 must-not-have-product-rights 
 "'字符串值'"  
 DRM 字符串数组
 privileges (容器)
    {
    }
 更多 DRM
 thumbnails (容器)
    {
    }
 缩略图容器
 script (文件名)    "'字符串值'"
 class (脚本资源类)    "'字符串值'", 必须与 script 规范类同步。
 script-include-table
    {
    }
 (列出库脚本的容器)
 extensions (容器)
    {
    }
 资源也使用的正式脚本扩展
 license "'字符串值'"  资源创建者的版权声明
 author    "身份 '字符串值'"
 organisation    "第三方组身份 '字符串值'"
 contact-email    "电子邮件地址 '字符串值'"
 contact-website    "作者/组的网站网址 '字符串值'"
 member-of-groups (容器)
    {
    }
 此资源所属的 KIND 资源组 资源列表。

 



支持的标签

[编辑 | 编辑源代码]

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

kind 标签

[编辑 | 编辑源代码]
类型: 字符串。
字段定义: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-build 代码 相匹配,CM Trainz-build 代码标识软件技术级别,但指示了以前的版本历史。
  • 在数据库中同时拥有这两个资源的情况下,具有更高后缀代码的资源(在 KUID2 中)会覆盖或替换旧的资源。拥有早期版本并非必要,但 CM 会将缺少的修订链列为缺少的依赖项,对于那些反感 CM 中该功能被污染的人来说,这是一个软件错误,或者说程序员保留了该功能,无论如何都会降低使用 CM 来识别用户缺少哪些内容的效用,并导致用户花费时间手动弄清楚什么是真正的什么。

 

trainz-build 标签

[编辑 | 编辑源代码]
主要内容: 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 的程序员团队看来,无论前台如何炒作营销名称 (比如 Trainz UTC,是最终的什么东西... 真的吗?。 come'on man!Seriously!!?),TRS2004 版本都是第二款 Trainz 产品。
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 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 版本号。相比之下,Content Creator 社区试图将此数字设置为尽可能低的数字,以便在下载时为新的资源提供尽可能广泛的受众/用户范围。优秀的资源创作者会在对应版本的裸机安装 (不添加任何内容) 上进行测试,并验证生成的 cdp 包含所有相关材料。
  • 某些资源种类在解析时会根据其trainz-build 版本标签而有显著差异。注意: trainz-build 标签 是强制性的。如果没有指定,Trainz 将根据 config.txt_file 的内容尝试以原始 Trainz 版本进行猜测,通常会解析为 1.3 的 TBV 值。

 

用户名标签

[编辑 | 编辑源代码]
类型: UTF-8 字符串,资源的用户名强制性规范。
字段定义: 此资源的英文人机可读名称。

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

创建资源时,强烈建议您在 CM 搜索中针对多个试验部分名称验证新的建议名称,并根据该知识采用与现有可用内容合理匹配的名称。
我们需要忍受多少个“house 2”或“road”资源才能让我们更加困惑? 好吧,实际上,我们都会搜索 house 然后从图像中进行选择,但能够指定一个唯一的名称并获得您期望的结果真的很棒!


 
 

username-XX 标签

[编辑 | 编辑源代码]
类型: UTF-8 字符串,用户名标签 的替代语言版本。
字段定义: (其中XX 被替换为适当的 本地化代码,用于表示该语言。) 此资源的本地化人机可读名称。此字段类似于用户名字段,只是表示非英语语言环境。资源中可能存在多个username-XX 标签,每个支持的语言环境一个。如果在给定最终用户系统上没有适当的“username-XX”标签来表示此资源,则使用英文用户名标签。

 

描述标签

[编辑 | 编辑源代码]
类型: UTF-8 多行字符串,提供资源的清晰语言描述。
字段定义: 此资源的英文人机可读描述性摘要。

该描述在内容管理器“资源详细信息”窗格中可见,用于阐明资源名称、提供规格,通常还包含一些历史信息。

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

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

description-XX 标签

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

 

string-table 容器

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

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

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

 

string-table-XX 容器

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

英语字符串表(无后缀)是强制性的,其他本地化语言是可选的,由资产作者决定。许多提交给 DLS 并在 Trainz 版本捆绑的路线中使用的资产通常会被翻译,并有一套完整的本地化翻译,用于 description-XX 和 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-table 中——具有自身依赖关系的子级或部件资产将在该子资产的验证和数据库提交中处理。
  • 循环依赖是非法的。
  • 如果某个资产也被标记为此资产的过时版本,则该资产不能列为依赖项。(Trainz 资产索引(历史上是 assets.tdx 文件)中只有一个替换 kuid 槽,这将创建一个需要自身旧版本的循环定义!)
  • 类似地,某个资产不能列为其自身的依赖项。[另一方面,这已经得到过验证(例如,在 TSxx CMs 中作为已成功提交的无故障资产被见证),在安装之间使用 GSARS 移植地图和会话以更改 kuids,以便重叠不会覆盖已经在目标安装中使用相同 kuids 的资产,而不会出现错误消息。] 至于它是否也起作用,需要比我更勇敢或更愚蠢的人来验证!——Fabartus,编。
格式(所有值均为<kuid:aaaaa.bbbbb>格式)
kuid-table {
 0            Kuid-1
 1            Kuid-2
 3            Kuid-3
 ...          kuid-ii
 N-1          Kuid-N
 }
大多数用户的第一个内容是自动克隆一个内置路线及其关联的会话。通常是因为人们想修改某些东西。检查路线或会话的 kuid-table 将使新手或老手 Trainzer 拥有路线中资产的可编辑列表。这些资产可以轻松地转换为样式表“过滤器”(一个拾取列表),使人们可以使用与原始作者相同的资产添加和修改路线... 或者在自己的扩展中复制他的样式。


  • 这些参数是虚拟参数这一事实的一个非常有用的利用方式是将复杂滚动库存资产中产品的 kuids 配对。一辆货车可能包含各种各样的产品... 获得许可将你的作者 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 中的过滤器(搜索条件)
类型:枚举字符串或字符串数组。
字段定义:一个由分号 (';') 分隔的双字符 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"(大多数第一世界国家)

 

category-class 标签

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


 

请注意,许多 category-class 代码仅与特定资产种类相关—不得将 category-class 代码应用于不合适的种类资产。

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

 

category-era 标签

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

 

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

 

缩略图容器

[编辑 | 编辑源代码]
用途:CM 和 Surveyor 中的过滤器(搜索条件)
类型:缩略图容器
字段定义:在整个游戏环境中(包括在游戏中、在 Content Manager 中以及在 Download Station 上)用于在 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"
	}
}

另一个常见的尺寸是 Railyard 和测量员资产选择 API 中使用的 128x64“图标”,它应该有一个 Alphamask 或非常浅的背景。许多较旧的没有使用 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 在线安全区 内的站点。目前,嵌入式浏览器接受三个域名
     auran.com
    ts2009.com
    ts2010.com 

此外,建议使用自定义 Trainz 短链接 格式,而不是直接链接到这些域名,以防备未来站点布局可能发生的更改。“短链接”是 Trainz 特定的 URL,通过允许内容创建者引用 N3V 网站上的特定页面而不依赖于特定的网页布局,从而帮助将内容的未来证明。短链接用于游戏内使用,例如信息 URL 链接,并且仅在嵌入式 Web 浏览器中有效,而不在任何外部 Web 浏览器中有效。在存在此标签的地方,游戏内按钮将允许用户在不离开游戏环境的情况下查看资产描述或帮助。

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

建议在任何情况下都使用通用组页面来表示整个类别的资产,只要这些资产提供类似的功能,但在外观上存在细微差异即可。这减少了创建、维护和本地化此类文档的时间成本。

 

必须拥有产品权限标签

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

 

不得拥有产品权限标签

[编辑 | 编辑源代码]
类型: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”扩展名,如果路径具有其他扩展名。

 

类标签

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

 

脚本包含表容器

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

脚本包含表容器 是 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 保留根据扩展创建者的指南在以后的日期为 扩展容器 中的特定条目添加验证的权利。

 


较新的和不太常见的

[编辑 | 编辑源代码]

以下关键词是比较新的发展,在旧资产中不会有类似物或存在。 

类别关键词标签

[编辑 | 编辑源代码]
类型:UTF-8 字符串。
字段定义:自然语言关键词的列表,以分号 (;) 分隔。字符串中不应存在其他字符(包括空格或不相关的标点符号)。这些关键词构成了资产关键词搜索的基础。资产的 用户名 无需在类别关键词列表中重复。
  • 各种 默认搜索关键词 是根据资产类型(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 container

custom-category-list

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

 

member-of-groups 容器

[编辑 | 编辑源代码]
最低版本: V3.5 及以上
类型: 成员组容器 成对的 占位符参数资产组 KUID。
字段定义: KIND_Asset-group 资产列表,该资产属于这些资产。有关如何以及何时使用此方法的详细信息,请参见 kind KIND Asset-group 文档。

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

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

可选的已弃用标签

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

 

类型: UTF-8 多行字符串。(被程序员法令弃用。)
字段定义: 许可证,描述资产创建者希望如何使用该资产。最常见的是许可声明,禁止在任何付费路线、依赖资产(例如,转向架、联轴器等火车零件)或换肤中使用版权资产,包括在任何收费运营的网站上分发资产。(从理论上讲,即使对于 DLS 也是如此。FCT 费用是为了更快地访问和无限次下载,而不是为了访问资产。)
许可标签的含义模棱两可,N3V 不建议使用它,但它的存在早于 N3V 的管理 6-7 年。
上传到 下载站 或用于包含到游戏中的内容可能受特定的重新分发合同或许可协议的约束,该协议取代此字段中的任何文本。许可字段不提供本地化支持。许可字段的文本未经 Auran 或 N3V 验证或强制执行,可能对最终用户具有法律约束力也可能没有法律约束力。
另一方面,Planet Auran 的历史表明,任何通过使用他人的内容作为自己的内容来侵犯版权的人,都可能被 Auran 网站迅速禁止,并永久屏蔽下载站的权限等。此外,社区将严厉打击其他用户侵犯他人版权的行为,并回避违规者,并忽略 DLS 上允许保留的任何资产。
总之,实验和修改资产是 Trainzer 尝试克服陡峭的内容创建学习曲线(每个人都希望有更多内容创建者!)的一种公认甚至默许的方式,但如果资产有依赖部件,尤其是网格、脚本、纹理,这些是知识产权——在上传您的作品之前,请获得使用属于他人的那些部分的许可。
KUID 引用 指定的资产部件并非此声明的范围——使用常见的联轴器、转向架或基本的火车车厢网格(Auran 铸造了一些标准类型,许多作者通过对网格进行 KUID 引用来默认使用,例如,检查货车的依赖关系(英国:覆盖货车或厢式货车)——很可能有一半以上使用的是 Auran 在 Trainz 1.0 中发布的 KUID 引用基本网格!)


 

作者标签

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

 

组织标签

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

 

联系电子邮件标签

[编辑 | 编辑源代码]
类型: 字符串,电子邮件地址。(被可更新的 Planet Auran 数据库 弃用。)
字段定义: 此资产创建者的联系电子邮件地址。不建议使用此字段,因为属性可以通过编程确定,并且联系信息可以针对创建者的 Auran 帐户 Planet Auran 帐户 注册,在那里可以根据需要限制或更新。

 

联系网站标签

[编辑 | 编辑源代码]
类型: URL 字符串。(被可更新的 Planet Auran 数据库 弃用。)
字段定义: 此资产创建者的联系网站。不建议使用此字段,因为属性可以通过编程确定,并且 [联系信息] 可以针对创建者的 Auran 帐户 Planet Auran 帐户 注册,在那里可以根据需要限制或更新。

 

已过时的标签

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


 

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

 

编辑注: 这些“TrainzBaseSpec 标签”在某些情况下已由程序员裁定在 TB V2.7 中过时主要是与机车 KIND 相关的那些),并且在所有情况下,从 TS2009-SP0 及其后的所有N3V Games 版本开始(尽管许多用户发现其中一些标签有用,但它们会给内容创作者带来时间损失,也没有办法在 预处理操作 中忽略那些不再有用的标签),如果资产被打开以编辑,并通过将 trainz-build 标签 提升到 V2.9 及更高版本的 数据模型 来进行部分升级,则会生成错误(错误消息):
  • 资产可以升级到 V2.8 以及之前版本,并且通常可以正常工作,即使在数据模型元素进行了多代改进之后,它们也能正常运行。这样,许多资产就可以使用 TRS2004 或 TRS2006 数据模型来运行,同时也能与 TS 版本的处理和渲染过程兼容。
  • 例如,大多数 TRS 时代之前的数据模型资产(v1.0–v2.3)可以通过添加一个网格表来在 TS 版本中工作,以取代从 TS 版本开始就被忽略的 'asset-filename' 的效果,以使用原始 Trainz 数据模型 的文件夹分组来定义路径,使用带有 '_art'、'_body' 和 '_shadow' 后缀的子文件夹和名称(其中由 asset-name 加上后缀定义的字符串设置了资产组件的路径)。
  • 相反,通常情况下,带有 TB 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

[edit | edit source]

Asset-name 是 Trainz 1.x--TRS2004 Trainz 时代资产的主要文件夹名称,并且通常是 CM 打开文件进行编辑时打开的文件夹的名称;在这样的早期数据模型资产中,人们通常会发现 asset-name 也被用于早期 Trainz 时代的数据子文件夹系统,给子文件夹命名为 '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 之前的 legacy kind track 标签。

 

name 和 name-XX 标签

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

 

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

根据惯例,子文件夹名称将具有以 username/asset-name 字段开头的 pathspec 名称,并使用 _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 关键字,该关键字是在地图配置中定义的,其用途相反——作为 kind region kuid 引用。因此,Region 在地图中是必需的,并且从 TS2012 开始,就像标签类型一样,在曾经出现过该标签的众多资产中是违法的,这些资产曾经将该标签用作 TRS 系列版本 Surveyor 工具窗口的“分组数据” “快速过滤器”。
  • 在 TRS2009 之后,任何 region 标签到文本字符串都是过时的,因为在程序员的思维中,他们用 Pick List 替换了 Surveyor 工具中 'type and region' 字符串值的粗略过滤分组选择器。这两个标签都有一些优点和缺点,它们都可追溯到 Trainz 0.9 Beta 版本。

 

shadows 标签

[编辑 | 编辑源代码]
参见上面的弯曲,已弃用/过时的预-TS2009 遗留轨道 资产模式控制标签。

 

缩略图标签

[编辑 | 编辑源代码]

缩略图标签是缩略图容器(上面也有简要介绍)的早期单视图实现。早期预-N3V 程序员版本的 Trainz 会在主资产根目录或资产名称_art 或资产名称_body 文件夹中查找一个 .jpg 文件(最好大小为 240x180 像素),并将其用于在 CMP 和 DLS 中显示资产(如果上传了)。该标签在 TRS2006 期间已弃用,因为缩略图容器是从 v2.0(TRS2004-SP0)开始引入的。在较旧的已修复资产中,如果TBV 保持在 v2.4 以下,只要缩略图在 _art 子文件夹中且资产名称与用户名匹配,缩略图通常仍然可以在较新的 CM 中正常工作。 

类型标签

[编辑 | 编辑源代码]
  • type — V1.3–v2.8 — 以前的一个过滤器修饰符,在历史上几乎所有资产中都存在,但在滚动库存、景观、脊椎、轨道类型(包括隧道和桥梁)和轨道旁资产中尤为普遍。
  • 类型标签与“区域标签”一样,在 Trainz 0.9—TC3 版本中作为“Surveyor 中的组过滤器”使用,它与区域结合在一起,提供了更小的资产选择(工具组)。自从TS2009 去除了这些本地可点击过滤器的功能和用途,转而采用了一种新的、更繁琐的过滤器。这使得工具选择变得快速而简单,而不是在工具选项卡之间切换时变得缓慢并暂停——如今的预-TANE 版本在工具选项卡之间来回切换时,往往会因为重新加载整个选择列表而显得不堪重负。
  • 类型和区域都默认设置为“全部”,与 TS09 及以后版本中工具提供的超级列表相同。
  • 在 TRS2006 的衍生版本(即 TC3)之后,所有类型标签都已过时,因为在程序员的眼中,他们在 Surveyor 工具中用TS09 选择列表 和过滤器取代了“类型和区域”的粗略过滤组选择器——而没有赋予用户保存多个选择列表或轻松加载在 CM 中定义和精炼的过滤器的能力。

 

  1. 资产提交(TANE 的提交)是将内容整合到数据库中并将其交叉引用到数据库索引中的过程和步骤,以便在运行时模块中访问它。
  2. 验证资产的一种方法是,除了这样的值之外,一切正常,将 TBV 降低到 2.5-3.7 范围,看看这些消息是否消失。您可能需要降低它,进行多次尝试,直到足够低,反之亦然,在较旧的 TBV 中无法识别的较新的关键字可能会给出不同的错误消息。不要失败尝试,即使失败,也会产生知识和经验,而且您不会破坏任何东西!如果是这样,您可以确信,仅提供一个值就是问题的解决方案。通常,一些现代需求只需要关键字对,因此在标签后面加一个空白行或在标签后面加一对空花括号(对于容器来说)就可以满足需求,而错误测试则过于严格。
  3. 注意:此列表在 N3V TrainzOnline Wiki 上已“维基化”,这意味着在“KIND”一词后面,首字母已大写,而 config.txt 文件中的实际数据标签名称是全小写文本。该维基还使用双引号来表示许多术语,这种做法我们将在本文中避免。
  4. “kind consist” 并不经常直接看到,它只存在于菜单和内容管理器列表中。
  5. 过时表必须谨慎使用,最常出现在 Auran 创作的资产中。该表用较新的版本替换了较旧的 KUID,大多数内容创建者正确地使用kuid 的 Kuid2 形式来取代较旧的版本。相比之下,N3V 过度使用过时表来更新新版本“升级”的内置资产,这会导致很多混乱,并且无法获得预期的结果。(例如,许多漂亮的“翻转树”在 TS10 和 TS12 中被淘汰,转而采用加速树,这影响了许多路线,因为路线创建者并不需要也不想要加速树。在不同的安装程序中,这也导致依赖项缺失,直到找到包含过时表的资产。 • 此外,Assets.tdx 数据库索引中每个 KUID 只支持一个过时条目,用 Kuid2 版本过时 KUID 会导致问题(即,您会看到哪个?)。 • 过时表的绝佳用途之一是使用特定部件升级一系列资产,尤其是转向架。添加一个混合的 KUID 集,用新的好的转向架替换它们,可以显著改善路线或会话的外观,只需进行一次编辑(前提是转向架,例如,兼容且尺寸合适!)。
  6. 最近将一个已过时的资产引入 TANE 的经验表明,至少有五个备用 KUID 过时了那个可怜的翻转树资产。似乎随着加速树的引入所带来的混乱,以及 TANE 在积极寻求最合适的更新资产方面所进行的全面改革,ContentManager 进程现在容忍多个不同 KUID 的资产来过时同一个 KUID。作为一个好的做法,只有在绝对必要时才使用过时表……例如,用您想上传到 DLS 或在网站上自行发布的依赖资产中不想要的付费资产来取代它。
  7. 关于类别时代的标签范围:安全游戏,已知有效。其他“未来十年”值应在依赖此类值之前进行测试。
  8. 许多容器在列表中使用虚拟/占位符名称。这些可以是描述性词语,只要它们不包含空格字符即可。在短语构造的名称中使用下划线或句点可以保持可读性,并显著提高清晰度。例如,一辆货运火车车厢可能运输 45 种合法产品类型。这些将在依赖项容器中列出。使用 Coal、granite、crushed_limestone 等可以使维护和更改表更加容易。Jes Sayin 作为程序员自 '76 年以来
  9. 在第二个缩略图容器示例中,有一个第二个 512x512 大小的图像,一个额外的图像。DLS 使用哪个图像尚不清楚。也可以包含更大的图像尺寸,通过电子邮件聊天,T:ANE 可能支持一个更大的图像尺寸,它将在预览操作或 DLS 列表中找到用途。N3V Games 通常不会透露此类信息。
  10. 早期的做法可以追溯到 Trainz 1.x,使用关键词/标签“thumb”,在引号中包含一个路径规范引用,指向用于运行时菜单的 240x180 缩略图图像。art 文件夹包含一个带有 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,作为未经修改的源页面,缺少此处找到的历史信息(标签);accessdate=2014 年夏季
  2. a b "Trainz-build" 标签 直接链接
  3. 根据 fabartus,2014 年夏季;可能是在添加此示例的同一天。
  4. Christoph Bergman,N3V Games 首席程序员,又名 'Windwalkr',KIND TrainzBaseSpec 历史 页面。



华夏公益教科书