Trainz/容器
| |||
|
|||
|
术语表 |
HKeys-CM |
HKeys-DVR |
HKeys-SUR |
HKeys-WIN |
鼠标使用 |
符号 |
操作说明:点击正文中的脚注([2])或注释标签([note 12])将引导您(定位页面)到该条目的确切文本。 • 然后:点击那里的?符号,将使您返回到您开始阅读的地方。 |
- 有关 Trainz 容器的技术背景,请参见 Trainz/AM&C/containers.
此页面列出了此维基教科书涵盖的特定 Trainz 容器的“参考页面链接”,并在简要介绍了它们在 Trainz 数据模型 中的角色之后。
容器是 Trainz 对比单个参数(通常在标签中表示)更大数据的术语,但仍符合所有 Trainz 数据文件必须遵守的 ACS 文本格式。在此背景下,容器是包含多个元素 数据类型 的复杂 数据结构,从处理软件的角度来看,它们在正确定义时代表一个 R 值。对我们人类来说,它们是与 ACS 文本格式标准兼容的一组相关标签和值,而且更重要的是,它们代表了可重用的分组数据定义,这些定义有意定义为在多个 Trainz 种类 中重用。配置文件和 KIND 从抽象意义上讲,本身都是“合并容器”,但 KIND TBS 和 KIND 共同创造了一种独特的类型和容器类型。
从某种意义上说,Trainz 资源不过是通过适当的 枚举代码 组织起来的一组数据,这些容器(包括称为 种类 的父类容器)定义了资源的相互关系和配置,以及数字模型在 GUI 运行时软件(游戏引擎)中的行为。容器只是资源自我定义中的一个元素,由资源创建者初始化。
|
所有 Trainz 数据都由关键字和值表示。容器通过一个唯一的枚举关键字(标识符)来识别,对于容器来说,一对花括号 '{' and '}'
内的所有值从抽象意义上讲,都是容器关键字的值。在其中,所有元素再次是成对的值,通常再次是一个关键字和一个值。
在许多容器中(或者在实践中,是一个子容器 - 请参阅 缩略图 中的形式、格式和示例,了解一个常见的易于理解的表示和示例),关键字实际上是变量(未枚举和未声明,不受约束),通常按照惯例表示为简单的整数{X: 1, 2, 3, ..., nn}后面紧跟着空格和“值”,作为 config.txt 文件中的右侧列,它定义了数据值。
这些被称为“虚拟参数”或“虚拟关键字”,或“伪关键字”,内容创建者可能会很容易地使用{X: A, B, C, ..., xx}或者{X: throttle1, throttle2, throttle3, ..., tt}因为在这些情况下,实际上,在所有容器中,值被排序和组织以填充 KIND 相关的内存物理地址,通常是 数组 的一部分(请参阅 节流功率容器)或 列表(请参阅 缩略图容器 中的几个示例)。
Trainz 维基教科书和 N3V Games TrainzOnline wiki(或 Trainz Wiki)具有不同的重点和目的。TrainzOnline 页面旨在成为内容创建者的技术规范和参考,以及在运行时软件需要数据以使资源在 Trainz GUI 中正常运行的一种通信方式。它作为内容定义的简要指南。
在 Trainz 维基教科书中,我们的重点是提供从入门到中级,有时甚至是高级的知识,以帮助新的 Trainz 用户和老用户更详细地了解 Trainz 的来龙去脉。一个小企业努力维持生计的成本和人力资源限制了 Trainz Wiki,因此它必须具有权威性。我们在这里力求相同的准确性,但也力求更宏观的视野,因此一些在 Trainz 不断演变过程中引入的变化必然会有时间滞后。如果没有这样的变化,这款产品就不会生存下来,虽然这使得“追赶”变得很困难,但它也使 Trainz 体验不断改进。
当我们认为某个主题需要额外的阐述,并且缺乏基本知识的连贯构建时,我们会通过额外信息、解释、示例来扩展 TrainzOnline Wiki 的页面,并希望在 N3V 程序员(负责监督 Trainz Wiki)不喜欢更严格的简短写作的地方,帮助理解。以下是我们迄今为止的容器页面目录。在目录下方,您将看到 TrainzBaseSpec 中一些关键基本内容的回顾。
作为TBS一部分的容器
[edit | edit source]
- 上面列出的两个链接中,第一个链接到专门介绍容器类型的参考页面,第二个链接到 TrainzBaseSpec (TrainzBaseSpec) 中介绍容器关键字(名称)的部分。上面的大多数链接将导航到 TBS 的相应部分。
不属于TBS的容器
[edit | edit source]这些是 Trainz 配置容器,不属于 TrainzBaseSpec,但被多种 资产类型 使用。不属于 TrainzBaseSpec 的容器才是常态,因为容器被定义为多种数据的多功能子组,用于 自定义 多种 KINDs 资产或资产的部分。
- 附加样条线容器 -- 轨道 资产的可选平行样条线定义,也就是说,自 TS2009 数据模型推出以来,Trainz 中所有完全更新的样条线资产。
- 转向架容器 -- 在一些铁路文化中也称为转向架,Trainz 使用转向架NN 符号来表示车架上轮组的排列方式,以及其他修饰符来定位、滑动或旋转轮组。转向架容器是客车类资产的专属。
- 流量大小容器 -- 引擎规格
- 连接顶点容器 -- 连接顶点容器
- 队列容器 -- 工业和交互式资产;该容器的定义用于装载客车,以及将商品装卸到工业设施。
- 体积容器 -- 引擎规格
- 网格表格容器 -- 任何“显现”资产的基础,如果没有网格,就没有东西可以用纹理绘制,因此也就没有东西可看。
- 季节选择器容器 -- 为样条线资产中的多季节纹理变更添加,(自 TB v2.9/TS2009 数据模型 以来,所有样条线资产都是 轨道 的变体),TS12(TB V3.5)中的新功能。
- 烟雾容器 -- 最古老的容器类型之一。从水龙头喷出的水流到路边牧场小屋烟囱上的松木烟雾,火车场周围到处都是烟雾和蒸汽;半透明的薄雾状物体创造了许多几乎神奇的效果。有人喜欢烟雾和镜子来增强真实感吗?这种容器被用于各种资产。一个以上的容器会获得一个 NN 号作为后缀,形成烟雾0、烟雾1、烟雾2、...、烟雾NN,根据资产的需求。烟雾也是交互式的,并且与软件有各种接口,烟雾容器的定义构成这种软件链接的一部分。
- 轨道LOD树容器 -- TS2009 数据模型变更中的新功能,轨道LOD树容器用于提供决策参数,在高分辨率和低多边形网格之间进行选择。在实践中,它通常被递归使用,为渲染软件提供在三个或更多网格之间的 LOD 系列中进行选择的选项。因此,它的主要功能是通过减少物体在越来越远距离时的多边形计算量来保持游戏帧速率高——无论是近、远、远、中远,还是很远。
TBS中的KIND列表
[edit | edit source]TrainzBaseSpec (TrainzBaseSpec) 是所有 Trainz 数据模型 标签和容器的综合列表,这些标签和容器是 必需或可选 的,在所有 Trainz 资产中。下面摘录的部分列出了 Trainz 数据模型 中的 KINDs,链接与上面的 TOC 重复,或者链接到 N3V Wiki,以方便参考。
- KINDs 是一种特殊的容器,因为它们的 defines 还包括标签,这些标签会偷偷地潜入 config.txt 文件中隐藏的标签,因此看起来似乎根本没有被包含。定义 kind 标签 会让这种判断陷入危险——通过定义 kind,就好像程序员在高级语言中添加了一个包含文件一样。在这种情况下,需要手动添加,而不是读取真正的包含文件的文本。
- KIND 定义中的标签也是配置文件中的标签。理解这一点,你就成功了一半。
所有 Trainz 定义的数据(内容)都包含三个必备元素:一个用于组织数据的 config.txt 文件,一个代表身份的 kuid(只有用户名是不够的,一个合法资产可以不带名称创建!)以及最后一个,一个法律定义的种类标签。种类起着指挥家的作用,指挥着整个乐团,就像排长或 CEO 指挥一样,为处理后续的所有内容设定要求。简而言之,种类的价值,一个精选的小而紧密的成员专属组,告诉 Trainz 软件要渲染和显示我们在虚拟世界中创建的内容,以及如何(或在何处)找到在该 config.txt 文件中链接在一起的资产的其他部分。
下面的每个子类都被认为具有 TrainzBaseSpec 作为它们的“父类”数据。[注 1] 下面列出的一些种类,带下划线的那些,是早于 Trainz 数据模型 在 TS2009 版本(即 2008 年后期)中更改的遗留种类,N3V 程序员只在之后实施了逐渐(增量)的更改。
目前可以在 N3V Trainz Wiki 的 内容创作者指南 部分找到修复基于这些遗留种类的资产的详细信息 TrainzOnline 网站在这里,并提供有启发性的 遗留种类示例在这里。强烈建议 Trainz 下载站 的所有用户或任何考虑创建内容的人阅读 CCG。通过了解旧内容定义的背景历史,可以将其与当前 TrainzOnline 对相同数据类型的覆盖进行对比和比较,因为这种曾经与现在的对比通常可以为修复、修改和定制资产提供宝贵的见解。更重要的是,CCG 中的文字是由专业人员编写的,并且更加冗长,它经常会提供一些见解,例如,如果更改了这一点或那一点,将产生什么扩展效果,而 Trainz Wiki 则没有提供。TrainzOnline 上提供的 CCG 是 TC1&2/TC3 版本 - 最终出版的几本小册子,可以追溯到 1999 年的 Trainz;TC3 CCG 包含来自 TRS2004/TRS2006 的修改后的 Enginespecs 机车资产以及需要正确更新的 UTC 数据模型。