跳转到内容

Trainz/refs/TrainzBaseSpec

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

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


KIND 层级结构简介

[edit | edit source]

KIND TrainzBaseSpec 为所有 Trainz 资源类型在所有 config.txt ini 文件 中提供基础定义。TBS 提供了一系列“标准标签”,这些标签对所有 Trainz 资源都适用(或至少可以在合法定义)。[1].

  • 其中一些是强制性的,因为它们决定了资源的进一步处理以及对 config.txt 文件及其文件夹中资源数据的解释。
  • 然而,大多数是可选的,并且在大多数子资源中可以省略使用该标签的定义行。

父类

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

在 TANE 之后的版本中,许多相同的“昨天默认”定义行今天将更常生成错误,要求明确定义值,而这些值在过去的加载中是默认的。[note 2] 这种令人讨厌的事情比过去的日子要好得多,在过去的日子里,错误的资源定义有时会导致臭名昭著的“蓝屏死机”,或者更常会导致运行时软件崩溃回桌面,从而导致编辑丢失,并可能需要重建数据库。

子类

[edit | edit source]

所有 Trainz 定义的数据(内容)都有三个必需的元素:一个config.txt 文件 来组织数据,一个身份,即kuid(仅用户名对你毫无用处,然而,一个合法的资源可以在没有名称的情况下创建!),最后,一个合法定义的类型标签。类型负责,是管弦乐队的指挥、排长或 CEO 指挥——为之后处理的每件事设置要求。简而言之,类型的价值,一小部分严格定义的会员专属组——告诉 Trainz 软件在虚拟世界中渲染和显示什么,以及如何(或在哪里)找到使该资源的这些部分在该 config.txt 文件中链接在一起的其他部分。
  下面的每个子类都被认为具有TrainzBaseSpec 作为其数据的“父类”。[note 3] 下面列出的一些类型,那些带下划线的类型,是早于 TS2009 发布的 Trainz 数据模型更改(即自 2008 年末以来)的遗留类型,N3V 编程人员只对它们进行逐步(增量)更改。
  目前可以在 N3V Trainz 维基 TrainzOnline 网站此处内容创建者指南 部分找到基于这些遗留类型的修复资源的详细信息,并提供 遗留类型的示例此处。强烈建议 Trainz 下载站 的任何用户或任何考虑创建内容的人仔细阅读 CCG。从了解较旧内容定义方式的背景历史中获得的见解,可以与 TrainzOnline 对相同数据类型的当前报道进行对比和比较,因为这种过去与现在的对比通常会为修复、修改和自定义资源提供宝贵的见解。更重要的是,CCG 中的写作是专业制作的,而且更具 tautological 性——它通常会让你了解如果更改这一点或那一点的扩展效果,而 Trainz 维基则没有提供这些信息。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    "作者/组的网页地址 '字符串值'"
 member-of-groups (容器)
    {
    }
 此资产所属的 KIND Asset-group 资产列表。

 



支持的标签

[edit | edit source]

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

kind 标签

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

 

kuid 标签

[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-table 中指定了一个依赖项列表,即软件套件的各个部分组装的其他组件资产,以在 kuid-table 容器 中构成一个可渲染和可用的资产。
  • 在许多资产的核心,特定的标签可以通过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-值)
类型: 一个小数点浮点数,由 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 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 版本,通常会解析为 TBV 的 1.3 值。

 

用户名标签

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

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

创建资产时,强烈建议在 CM 搜索中针对多个试用部分名称验证新提议的名称,并根据该知识采用一个与现有可用内容合理匹配的名称。
我们需要容忍多少个“house 2”或“road”资产来进一步混淆我们?好吧,实际上,我们都会搜索 house 并从图像中选择,但能够指定一个唯一的名称并获得你想要的东西真的很好!


 
 

username-XX 标签

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

 

描述标签

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

描述在 Content Manager 的“资产详细信息”窗格中可见,用于阐明资产名称、提供规格以及通常的简要历史信息。

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

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

description-XX 标签

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

 

字符串表容器

[编辑 | 编辑源代码]
类型: UTF-8 字符串列表容器,字符串表容器.
字段定义: 英语字符串的键值对列表。每个键都是一个有意义的脚本标识符,映射到二进制数据并由其引用。每个值都是一个英语字符串。一个英语字符串可以包含或引用一个非英语专有名词作为标识符。非英语母语的素材创作者仍然必须创建没有后缀的字符串表容器(如果需要)。软件只链接并引用没有后缀的字符串表容器中的名称和值,这无疑会让西班牙语、法语、德语、捷克语、荷兰语...日语的素材创作者感到沮丧。换句话说,带有后缀的字符串表只是为了翻译目的,这在用非英语编写地图时会产生问题——没有字符串表-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 容器

[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。大多数具有子组件的资产只有几个。
  • 其次,存在一个来自有时内部关键字是“自动定义”的这样一个事实而产生的惯例,仅仅列出为没有名称的数字,作为占位符参数,伪关键字可以是任何唯一的值(通常是零索引的顺序整数。[notes 1])它们可以根据用户或作者的偏好被赋予名称或不赋予名称。
  • 此表中的条目有两个目的
    首先:确保游戏系统了解依赖关系,以便安装和加载此资产将成功安装和加载所有依赖关系,以及
    其次:允许脚本查找相关的子资产。
  • kuid-table 中只应包含一级依赖关系,子资产或具有自身依赖关系的部件资产将在该子资产的验证和数据库提交过程中处理。
  • 循环依赖关系是非法的。
  • 如果资产也被标记为此资产的已废弃版本,则该资产不能被列为依赖关系。(Trainz 资产索引(历史上是 assets.tdx 文件)中的 kuid 中只有一个替换 kuid 槽位,这将创建一个循环定义,要求自身的一个旧版本!)
  • 同样,一个资产不能被列为其自身的依赖关系。[另一方面,这种情况已经发生过(即,在 TSxx CM 中作为成功提交的无故障资产被见证),在安装之间使用 GSARS 移植地图和会话,以更改 kuid,以便重叠不会覆盖已经在目标安装中使用相同 kuid 的资产,而不会看到错误消息。]它是否也起作用,需要比我更勇敢或更愚蠢的人!--Fabartus,ed.
格式(所有值都是 <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>
} ...

请注意将单词连接在一起的下划线……两个符号,键和值!我们让学生弄清楚将 kuid 添加到装载和允许的产品队列表条目中的位置。(欢迎你,但这正是更改名称的一个好理由!保持事情清晰几乎是制作资产的全部战斗!) 

obsolete-table 容器

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

 

类别 - 地区标签

[编辑 | 编辑源代码]
用途:在 CM 和 Surveyor 中进行筛选(搜索条件)
类型:枚举字符串或字符串数组。
字段定义:由分号 (;) 分隔的两个字符 类别 - 地区标签 代码列表。字符串中不应包含其他字符(包括空格等)。此资产被认为与每个指定区域相关 - 这对 火车车组类型移动信号类型 资产最为重要,但也可能针对任何资产提供。
示例
类别 - 地区 “CA;US”
类别 - 地区 “CA;MX;US” (北美国家,加拿大、墨西哥、美国)
类别 - 地区 “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 个字符的 类别 - 类别 代码,用于描述此内容项。类别 - 类别 标签用于提供超出资产类型隐含的附加人类子类别。每个 Trainz 资产的类别 - 类别标签有助于描述资产在游戏中的“意图”,而不是资产的内部结构。
内容创建者指南 (CCG)(针对 TRS2006 和 Trainz Classics)解释了这些类别代表了一种标准化的系统,用于引用各种类型的机车、滚动车厢、场景、样条线和工业资产。类别 - 类别分类代码对于所有 Trainz 用户在搜索和/或过滤合适的资产以制作成内容以进入会话或路线(布局)时变得很重要。


 

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

示例
    类别 - 类别 “XBG” 箱车 - 来自 PRR 60'
    类别 - 类别 “BR” 铁路(非功能性场景) - 可能是一栋建筑
    类别 - 类别 “BIN” 具有产品处理功能的工业资产

 

category-era tag

[编辑 | 编辑源代码]
用途:在 CM 和 Surveyor 中进行筛选(搜索条件)
类型:枚举格式字符串数组。
字段定义:分号 (';') 分隔的五个字符的 年代代码 列表。
  • 每个年代代码代表一个十年,由一个四位数整数组成,然后 必须以 ‘s’ 结尾 (例如 “1990s;2000s;2010s”), 因此创建一个枚举软件标记(值),该标记必须与指定合法 年代代码 完全匹配。
  • 字符串中不应包含其他字符(包括空格等),包括(尤其是在字符串末尾)在终止双引号字符之前的字符。
  • 允许的年份范围是 1800-2010s[注释 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 数据模型需求强制执行的三个子文件夹,名称为 ‘资产文件名后缀’(已淘汰的标签-<值> 对),如下所示[注释 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 能够适应未来可能的网站布局变化。 '短链接' 是 Trainz 特定的 URL,通过允许内容创建者引用 N3V 网站上的特定页面,而无需依赖于特定的网页布局,从而帮助保护内容。 短链接旨在用于游戏内使用,例如信息 URL 链接,仅在嵌入式网页浏览器中有效,而不在任何外部网页浏览器中有效。 在存在此标签的地方,会提供游戏内按钮,允许用户在不离开游戏环境的情况下查看资产描述或帮助。

这在驾驶员中可能是极其有价值的,用于访问路线地图、指南或会话说明或澄清。

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

 

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's Script_Include_Directive.

相关

扩展容器是一个自定义标签或子容器的列表,具有特定的命名约定。

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

 

extensions 容器

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

 


更新和不太常见

[编辑 | 编辑源代码]

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

category-keyword 标签

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

 

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

custom-category-list

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

 

member-of-groups 容器

[edit | edit source]
最小版本: 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 文件指定一些默认资产组。确切的行为可能会因模拟器的不同版本而异,但是当前逻辑在 这里 描述。 

可选的已弃用标记

[edit | edit source]
以下标记对于任何资产都不是必需的,许多资产都将其留空。
从历史上看,识别和许可标记始于 Trainz 0.9(Beta)。

 

许可证

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


 

作者标记

[edit | edit source]
类型: UTF-8 字符串。(已弃用,转而支持可更新的 Planet Auran 数据库。)
字段定义: 作者的姓名或标记。不建议使用此字段,因为属性可以通过编程方式确定。

 

组织标记

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

 

contact-email 标记

[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 中(主要是那些与机车 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 定义的字符串加上后缀设置了资产组件的路径)。
  • 相反,通常 TS 版本的资产,其 TB 版本为 v2.9 及以上,可以通过理解这些标签的作用和用法,以及进行一些明智的更改来消除 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,转而将所有样条对象统一到 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)的资产中,将 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 标签

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

[编辑 | 编辑源代码]
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 在 Maps 中是必需的,并且自 TS2012 以来,就像标签类型一样,在大量曾经作为 TRS 系列版本 Surveyor 工具窗口的 "分组数据" "快速筛选器" 出现的资产中是非法的。
  • 在 TRS2009 之后,任何对文本字符串的 region 标签都已过时,因为在程序员的眼中,他们用 Pick List 取代了 Surveyor 工具中的 "类型和区域" 字符串值的粗略筛选组选择器。这两个标签都有一些优缺点,并且都追溯到 Trainz 0.9 Beta 版本。

 

shadows 标签

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

 

thumbnail 标签

[编辑 | 编辑源代码]

缩略图标签是早期对缩略图容器(上面也简要说明了)的单视图实现。Trainz 的早期 N3V 编程人员版本会在主资源根文件夹或资源名称_art 或资源名称_body 文件夹中找到一个 .jpg 文件(最好尺寸为 240x180 像素),并用它来在 CMP 和 DLS 中显示资源(如果资源已上传)。该标签在 TRS2006 中被弃用,因为缩略图容器是在 v2.0(TRS2004-SP0)中引入的。在较旧的修复资产中,如果TBV 保持在 v2.4 以下,只要它在 _art 子文件夹中并且资源名称与用户名匹配,缩略图通常仍可以在较新的 CM 中工作。 

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 工具中 'type 和 region' 的粗略过滤组选择器 - 却没有给用户保存多个 Pick List 或轻松加载在 CM 中定义和细化的过滤器的功能。

 

  1. 资源提交(TANE 的提交)是将内容合并到数据库中并将其在 DB 索引中进行交叉引用的过程和步骤,以便在运行时模块中访问它。
  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 的资源。
     • 此外,Assets.tdx 数据库索引中仅支持每个 kuid 的一个 obsolete 条目,用 Kuid2 版本替换 kuid 会导致问题(即您会看到哪个?)。
     • obsolete-table 的一个很好的用法是使用特定部件(尤其是转向架)升级一系列资源。添加要被较新的优质转向架替换的 kuid 混合,可以通过一次编辑来显着改善路线或场景的外观(前提是转向架例如兼容且尺寸正确!)。
  6. 最近使用过时的资源导入 TANE 的经验表明,至少有五个备用 kuid 替换了那个可怜的 Flip-tree 资源。似乎由于 speedtrees 引入造成的混乱以及 TANE 的彻底改革(它积极地追求最合适的更新资源),现在 ContentManager 流程中允许使用多个不同 kuid 的资源来替换同一个 kuid。作为一个良好的实践,仅在绝对必要时使用 obsolete-table ... 例如,在您想要上传到 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 更有经验的软件人员永远不会以如此轻率的态度对待社区的宝贵时间。

参考文献

[编辑 | 编辑源代码]
  • 此页面主要内容取自 N3V TrainzOnline Wiki 的KIND_TrainzBaseSpec。增强信息由 Yesterdayz-Trainz 用户组成员添加。
  1. N3V 的KIND_TrainzBaseSpec,作为未经修改的源页面,缺少此处找到的历史信息(标签);访问日期=2014 年夏季
  2. a b "Trainz-build" 标签 直接链接
  3. 根据 fabartus,2014 年夏季;很可能是添加此示例的同一天。
  4. Christoph Bergman,N3V Games 首席程序员,又名 'Windwalkr',KIND TrainzBaseSpec 历史 页面。



华夏公益教科书