跳转到内容

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) 以及其他具有广泛可变的定义需求、适用性和范围的数据,例如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] 下面列出的几个种类,那些带下划线的种类,是遗留的种类,早于 TS2009 版本(即 2008 年后期)中对 Trainz 数据模型 的更改,N3V 程序员只是从那时起才逐步(增量式地)施加了更改。
  目前,可以在 N3V Trainz Wiki TrainzOnline 网站内容创建者指南 部分找到修复基于这些遗留种类的资源的详细信息,其中包含对 遗留种类的示例 的说明。强烈建议所有 Trainz 下载站 用户或任何考虑创建内容的人都仔细阅读 CCG。通过了解旧内容是如何定义的,可以将其与当前 TrainzOnline 对相同数据类型的覆盖范围进行对比,因为这种“当时与现在”的对比往往会提供修复、更改和定制资源的有价值的见解。更重要的是,CCG 中的写作是专业制作的,而且更具有自明性——它通常会让你了解如果改变这一点或那一点的扩展效应,而 Trainz Wiki 却没有提供这些信息。TrainzOnline 上发布的 CCG 是TC1&2/TC3 版本——几个印刷手册的最后一个出版版本,可以追溯到 1999 年的Trainz;TC3 CCG 包含需要正确更新的 TRS2004/TRS2006 和UTC 数据模型中更改的 Enginespecs 机车资源。

TrainzBaseSpec 子类 KIND(类型资源组)

 


表格 I,TBS 标准定义

[edit | edit source]

TBS 标准定义

[edit source]

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

  • 容器是'键' 和 '键值' 对的集合 以及 TBS 中的 '上层容器'(与子容器(例如缩略图容器中的子容器)相反)通常以 '-table' 结尾。
 kind    "'字符串值'"
 trainz-build 'float', 1 位小数
 kuid  <Kuid 编码值>
 username    username "'字符串值'"
 username-XX    username-XX "'字符串值'"
 description    description "'字符串值'"
 description-XX    description-XX "'字符串值'"
 kuid-table (容器)

  { 依赖项列表
  按 kuids }

 列出所有此资源依赖的资源的键值表。
 obsolete-table (容器)
    {
    }
 kuids 列出此资源替换的资源(使其过时)
 通常没有(为空)[注释 5]
 string-table (容器)
    {
    }
 资源中使用的字符串和消息的键值列表
通常为空,在路线和会话中很大。
 string-table (容器[s])
    {  非英语
    语言文本 }
 翻译字符串列表 匹配到 强制性英语 string-table
 category-region tag 枚举 代码  category-region "'字符串数组'"  
 category-class tag  category-class "'枚举 字符串值'
 category-era tag  category-era "'受约束的字符串数组'"  年代
 category-keyword "'字符串数组'" 最大长度为 64 字节    category-keyword tag 自然语言搜索关键字
  (替换类型,区域)
 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    "作者/组网站 URL '字符串值'"
 member-of-groups (容器)
    {
    }
 此资源所属的 KIND 资源组 资源列表。

 



支持的标签

[edit | edit source]

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

kind tag

[edit | edit source]
类型: 字符串。
字段定义:config.txt 文件 代表的资源类型。查看索引 种类 和列表:这里(上面)

 

kuid tag

[edit | edit source]
类型: KUID(简短),主:KUIDs
字段定义: 引用此资源的唯一资源 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-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 的程序员团队的脑海中,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 无服务包)到现在的版本递增 0.1(v3.7 = TS12-SP1、v3.8 = Mac2、3.9=TANE-CE、4.0—4.3 等等?从 2016 年 3 月起,4.3 及更高版本是 TANE SP,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”并从图像中选择,但能够指定一个唯一的名称并获得你期望的东西真是太棒了!


 
 

用户名-XX 标签

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

 

描述标签

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

描述在内容管理器“资产详细信息”窗格中可见,用于澄清资产名称,提供规格,以及通常的一点历史。

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

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

description-XX 标签

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

 

string-table 容器

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

  其他语言通过类似的 string-table(例如 string-table-XX)得到支持,这些 string-table 具有与 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,从而在需要驾驶员或会话创建者可变性时使一切协同工作。
  • 相反,如果没有系统软件知道索引中命名的项目的 location,则对象的脚本可能没有触发、条件检查或更新能力。这是 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-table 中只应包含第一级依赖关系——具有自身依赖关系的子资产或零件资产将在该子资产的验证和数据库提交过程中进行处理。
  • 循环依赖关系是非法的。
  • 如果一个资产被标记为另一个资产的过时版本,则它不能被列为依赖项。(Trainz 资产索引(历史上的 assets.tdx 文件)中的 kuid 只有一个替换 kuid 插槽,这将创建一个循环定义,要求使用自身较旧的版本!)
  • 同样,一个资产不能被列为其自身的依赖项。[另一方面,这在将地图和场景移植到安装之间时,使用 GSARS 更改 kuid 以防止重叠,并确保不会在目标安装上覆盖已使用相同 kuid 的资产而导致错误消息的情况下,已经经历过(即见证为成功提交到 TSxx CM 中的无故障资产)。] 是否也能正常运行需要比我更勇敢或更愚蠢的人! --Fabartus,编辑。
格式 (所有值均为 <kuid:aaaaa.bbbbb> 格式)
kuid-table {
 0            Kuid-1
 1            Kuid-2
 3            Kuid-3
 ...          kuid-ii
 N-1          Kuid-N
 }
大多数用户的第一批内容将是自动克隆内置路线及其关联场景。通常是因为想要修改某些东西。检查路线或场景的 kuid-table 将允许新老 Trainz 用户获得路线中资产的可编辑列表。这些可以很容易地转换成样式表“过滤器”(选择列表),允许用户使用与原始作者相同的资产添加和更改路线... 或者在自己的扩展中复制他的样式。


  • 对这些虚拟参数进行实际利用的一个非常有用的方法是将复杂滚动库存资产中产品对应的 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 中的过滤器(搜索条件)
类型:枚举字符串或字符串数组。
字段定义:一个由分号(';')分隔的双字符类别-区域标签代码列表。字符串中不应该包含任何其他字符(包括空格等)。此资源被认为与每个指定的区域相关——这对于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 tag

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


 

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

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

 

category-era tag

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

 

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

 

缩略图容器

[编辑 | 编辑源代码]
用途:CM 和 Surveyor 中的过滤器(搜索条件)
类型:缩略图容器
字段定义:用于在整个游戏环境中(包括在游戏中,在内容管理器下载站中)以二维预览框、列表和图标形式表示此资源的缩略图。每个数据集都包含在一个子容器中(通常)使用占位符参数作为键名或标签。[注释 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”(过时的标签 -<value> 对),如下所示[注释 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 在线安全区域中的网站。目前,嵌入式浏览器接受三个域
     auran.com
    ts2009.com
    ts2010.com 

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

这在司机中可能非常有价值,可以访问路线地图、指南或场景说明或澄清。

建议在所有资源提供类似功能但外观略有不同的情况下使用通用组页面来表示整类资源。这减少了创建、维护和本地化此类文档的时间成本。

 

must-have-product-rights 标签

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

 

must-not-have-product-rights 标签

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

 

privileges 容器

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

  上面的容器使用默认值设置,这意味着

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

允许

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

 

script 标签

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

 

class 标签

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

 

script-include-table 容器

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

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

相关

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

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

[编辑 | 编辑源代码]

此容器是脚本资源名称及其 kuid 的简单键值表,在编译资源的脚本文件时,将搜索这些脚本资源以进行脚本包含。键或标签名称当前未使用(即为占位符参数)进行搜索;该值指示要包含的资源的 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 容器

自定义类别列表

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

 

成员组容器

[编辑 | 编辑源代码]
最小版本: V3.5 及更高版本
类型: 成员组容器,它将 占位符参数资产组 kuids 配对在一起。
字段定义: KIND_Asset-group 资产列表,该资产属于这些资产。有关如何使用以及何时使用此资产的详细信息,请参阅 kind KIND Asset-group 文档。

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

如果未为给定的“成员组”容器指定任何条目,或者如果资产省略了“成员组”容器,那么模拟器软件可能会根据资产的 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 数据库。)
字段定义: 负责创建此资产的组织的名称或标识。不推荐使用此字段,因为归属可以以编程方式确定。

 

联系电子邮件标签

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

 

contact-website 标签

[edit | edit source]
类型: URL 字符串。 (已弃用,建议使用可更新的 Planet Auran 数据库。)
字段定义: 此资产创建者的联系网站。 不建议使用此字段,因为归属可以通过编程方式确定,并且 [联系方式] 可以注册到创建者的 Auran 帐户 Planet Auran 帐户 ,在那里可以根据需要限制或更新。

 

已过时标签

[edit | edit source]
以下“标签列表”是“事实上的”,因为它们的“使用约定”早于上述 TBS 标签的正式汇编,但不早于使用它们的规范,实际上也早于 TrainzBaseSpec 术语的创造(在 2008-2009 年的 TrainzOnline Wiki 中引入),或它在 N3V Wiki 页面 11:32, 2009 年 5 月 12 日的正式定义[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” 的名称(其中由 asset-name 定义的字符串加上后缀设置了资产组件的路径。
  • 反之,通常带有 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

[edit | edit source]

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

bendy 标签

[edit | edit source]
范围:轨道或桥梁资产 中找到,早于 v2.9 标准,当时样条线对象经历了重大变化,成为统一的数据模型定义,放弃了混合中的一些先前类型,而所有样条线对象都统一在 kind track 下。

 

casts-shadow 标签

[edit | edit source]
参见上面的 bendy,已弃用/过时的前 TS2009 遗留 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)资产中将 name 和 name-XX 替换为 username 和 username-XX,或者如果 username(s) 存在,则直接删除。
    • 如果资产具有 trainz-build v2.7 及更高版本,则 name-XX 会导致错误。 有趣的是,即使在 TS12 这样的晚期版本中,name-XX 标签也会在 Surveyor 工具的搜索列表中显示为资产名称,如果不存在,则会显示 TrainzBaseSpec

 

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

根据约定,子文件夹名称将具有以 username/asset-name 字段开头的 pathspec 名称,并使用 _art、_body 和 _shadow 后缀作为正常命名约定的部分。 这可能是 3ds Maxgmax 约定延续到 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 的放置和选择工具中验证资产。 在 TS09 中被废弃,TS09 使用较短的 category-era 标签 字符串数组 在单行中,而不是使用多个带“-nn”后缀的标签-值对。
  • 字符串数组中的空格会导致错误;所有值必须以“s”结尾,并包含四位数字,例如 1880s;1950s;2010s(这可能非常适合某些类型的女性服装,这些服装会流行起来然后又过时!)。遗憾的是,目前无法定义范围,但用户社区已经提出了此要求。
  • 替换为字符串数组类型的 category-era tag,日期代码之间不包含空格和分号;这些代码以完整的四位数年代数字后缀为“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 在 Map 中是必需的,并且自 TS2012 以来,就像标签类型一样,在大量曾经作为 TRS 系列版本 Surveyor 工具窗口中的“分组数据”和“快速过滤器”出现的资产中是非法的。
  • 在 TRS2009 之后,任何 region 标签到文本字符串都已过时,因为在程序员看来,他们用 Pick List 替换了 Surveyor 工具中“类型和区域”字符串值的 粗略过滤 组选择器。这两个标签都有一些优点和缺点,并且都可追溯到 Trainz 0.9 Beta 版本。

 

shadows 标签

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

 

thumbnail 标签

[编辑 | 编辑源代码]

thumbnail 标签是 thumbnails container 的早期单视图实现(在上面也简要介绍了)。Trainz 的早期 N3V 之前版本会找到一个 .jpg 文件,最好是大小为 240x180 像素,位于主资产根文件夹或 asset-name_art 或 asset-name_body 文件夹中,并将其用于在 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 标签都已过时,因为在程序员看来,他们用 TS09 Pick List 和过滤器替换了 Surveyor 工具中“类型和区域”的 粗略过滤 组选择器,而没有为用户提供保存多个 Pick List 或轻松加载在 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 用于新版本“升级”的内置资产,这会导致很多混乱,并且无法获得预期看到的内容。(例如,许多不错的 'Flip-trees' 在 TS10 和 TS12 中被 Speedtrees 取代,这影响了许多路线,而 Speedtrees 在这些路线中是创建者不想要的或不想要的。在安装过程中,这也会导致缺少依赖项,直到找到包含 obsolete-table 的资产。
     • 此外,Assets.tdx 数据库索引中只支持每个 kuid 的一个 obsolete 条目,用 Kuid2 版本替换 kuid 会导致问题(即您会看到哪个?)。
     • obsolete-table 的一个很好的用途是升级使用特定部件(尤其是转向架)的一系列资产。添加一组要替换为较新良好转向架的 kuid 可以通过一次编辑来显著改善路线或场景的外观(前提是转向架例如是兼容的,并且大小合适!)。
  6. 最近将一个过时的资源导入 TANE 的经验表明,至少有五个替代 kuids 替代了那个糟糕的 Flip-tree 资源。随着 Speedtrees 引入带来的混乱以及 TANE 通过积极追求最新合适的资源进行的大改, ContentManager 现在容忍了多个不同 kuids 的资源替代同一个 kuid。作为良好实践,仅在绝对必要时才使用过时表格... 例如,在您要上传到 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 的缩略图图像。艺术文件夹包含一个 512x512 的带有 alpha 遮罩的 tga(通常是 bmp 文件,但格式正确的 tga 可以用作自遮罩)以及 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 历史记录 页面。



华夏公益教科书