跳转到内容

Trainz/资产层次结构

来自 Wikibooks,开放世界的开放书籍
logo
Trainz 培训学员基础知识

Trainz 资产维护和创建
目录 | 开始乐趣 | AM&C | 创建 | 书内参考资料 ORP 参考资料:  • 索引 • 容器 • 种类 • 标签 | 附录  • 版本
 词汇表
 HKeys-CM
 HKeys-DVR
 HKeys-SUR
 HKeys-WIN
 鼠标使用
 符号

就像软件中经常出现的情况一样,魔鬼在细节中


当 N3V Games 在 2007 年接手 Trainz 系列软件的持续开发工作时,年轻程序员的思维方式是他们的便利性,而不是他们的更改将对数以万计的现有资产产生的影响。通过使用网格和转向架表、缩略图和扩展以及其他此类容器来明确指定资产元素的首选方法,Trainz UTC 时,这些方法大多已“到位”

给新手的说明

[编辑 | 编辑源代码]

Trainz 论坛 上,人们经常互换使用资产内容这两个词,因为除了上下文之外,它们是相同的。从严格的技术(计算机科学定义)意义上讲,一个“资产”需要在容器内才能成为“内容”,在最高层面上,这意味着它将是 路线(或地图)个人资料(或会话) 的依赖项。但这些资产并未报告所有所需的依赖项,因为它们只是列出了与引用 KUID 关联(链接或调用)的一系列其他上层 数据类型[注释 1]  对个人来说,最重要的容器是她的本地数据库(通过在 内容管理器 中使用“本地内容”过滤器(或选项卡)来选择),它列出了资产——最初只对我们所有人而言是路线和会话;但随后添加到 代码构建 的基础 数据柜 中的资产。某些项目是可选的。某些车辆部件仅适用于动力车辆。

资产组织

[编辑 | 编辑源代码]

Trainz 资产都以同一个文件夹中的数据开始,通常在编辑时,文件夹将以 用户名 命名,该用户名列在 TrainzBaseSpec 的强制部分中,位于 config.txt 文件 中——该文件是中心数据自定义的 INI 文件,用于设置每个资产。当一个人开始 修复有缺陷的内容 时,会发现有两个关键数据元素定义了此类 config.txt ini 文件中必须定义的其他内容:类别-类别标签,它(最初)仅松散地定义了某些枚举类型,这些类型描述了内容创建者希望资产的使用方式(例如,各种类型的车辆、风景、交互式轨道旁物品,如信号等)和 KIND 规范(标签和 容器 的混合,指定某些子元素,这些子元素是定义面向对象类的数据元素所必需的。在较新的数据模型中,特别是对于 样条对象 而言,类别-类别标签具有处理确定角色,并作为 种类轨道 定义的一部分进行交互,这是当前唯一允许的样条数据类别(再次面向对象思考),并且 DLS 上传过滤器现在不允许上传较旧的样条种类。

不幸的是,N3V 程序员没有理由提供翻译实用程序,许多较老的内容创建者,如令人敬畏的 PhilC(他的 World of Trainz 现在已关闭),已经停止制作新内容或更新旧作品。制作样条对象,如桥梁和隧道,对于 CC 来说是一项更困难的任务,尽管标准化的对象类简化了编程人员的任务;他们似乎认为用户社区为他们工作!
首先说明一下资产数据存储和有缺陷的内容
许多(如果不是大多数)下载内容中的内容错误都是由于 路径规范 不匹配造成的,也就是说,较新的数字模型并不总是与原始数据约定相连接。此类资产在较旧的 Trainz 版本中运行良好,但在 N3V Games Trainz 版本中,许多资产将无法运行,除非对资产进行调整以符合 N3V 程序员面向对象编程的数据组织理念。
文件文件夹
 通常与资产的 用户名 相同,除非该用户名重复
Config.txt 文件 + KIND
 将 TrainzBaseSpec 和 KIND 需要合并到一个 INI 文件中。配置文件还“包含”依赖项——具有已建立 KUID 的其他资产部件。
其他根文件
 —其他资产部件,尤其是常用的纹理文件,由资产的几个部件使用,通常还有资产的屏幕截图文件。
第一个子文件夹
 —此类文件夹的总数各不相同,由内容创建者 (CC) 组织,从无到有,某些种类有很多文件夹。其他种类,尤其是 种类风景(如建筑物或树木),通常根本没有子文件夹。
XXn 组件文件
 —通常是网格、纹理和 texture.txt 文件,但也包括动画文件。如果没有子文件夹,这些文件必须位于资产根文件夹中(无需指定公共部分,因为所有文件都在同一个 路径规范 中)。提示:请注意上面关于路径规范的内容!
第 i 个子文件夹
 —各不相同,根据约定,资产通常在大多数数字模型中都有三个子文件夹,尤其是车辆 火车车厢数字模型
第 i 个文件夹的组件文件
 —通常是网格、纹理和 texture.txt 文件,但也包括动画文件等。
第 NN 个子文件夹
 —各不相同,由内容创建者 (CC) 组织,从无到有,但根据约定,在 火车车厢数字模型 中通常有三个子文件夹。该约定基于 Trainz 1.0 中资产的组织方式。
第 NN 个文件夹的组件文件
 —通常是网格、纹理和 texture.txt 文件,但也包括动画文件。
常见的约定文件夹名称 _art、_body、night 或 nighmode、_shadow(带下划线的文件夹名称在车辆资产中非常常见)。


在 Trainz 中,所有此类子元素关联并不一定是独立的资产,但有些被称作 引用(表示一个子数据类型,一个具有特定属性和成员的结构——但与种类不同,它可以在各种种类中作为子元素使用,构成父-子关系),并且包含在各种 种类 中,其活动效果(后续处理)基于 类别-类别标签 和指定该子元素的种类。

对于熟悉面向对象编程的人来说,Trainz KINDS 是类结构,它们的子容器元素具有继承性,但这些多用途子元素(更原始的数据类)的各种强制性需求是基于 KIND,而不是 容器


驾驶员会话或场景

路线、地图或布局

[编辑 | 编辑源代码]

类别-类别标签是地图,手册、Trainz 菜单和勘测工具控制使用“路线”和路线构建以及路线构建工具,而模型铁路爱好者世界使用的是布局。在每种情况下,它都是指定义虚拟世界的那个数据集,在 Trainz 中,它从单个基础地图板开始。

以下资产附加到地图资产


地面纹理(地形绘制,F2 工具)


建筑物(除非是交互式产业,否则属于 风景类型。)


其他结构,例如动物、动态或静态人物、风车、灯塔等。


电力线杆 - 以前是样条线对象,现在归类为轨道。


植被 - 植物景观(树木、灌木、花卉、田间作物)


道路 - 以前是样条线对象,现在归类为轨道。


路标和路牌(特殊“树木”,带有文字和有时符号!)


车辆,静态道路类型 - 对新手来说有点混乱,这些有时也被 类别-类别标签 归类为建筑物或景观资产。以前,N3V 之前的 Trainz 有两个内置过滤器,影响 CMP 和 Surveyor 中的对象和组件搜索,类型区域 - 这两个过滤器在 CMP 中很有用,特别是在 Surveyor 搜索中,尽管 CC 定义的不太一致。这些标签现在在 v2.8 以上的 TB 中是非法的 (TC3)。


轨道 - 包括隧道和样条线工程(可扩展)桥梁。如上所述,所有样条线类型现在都被 DLS 上传筛选强制退休。


轨道旁物体 - 包括大量通用内容:(信号、速度板、龙门架、电气面板等)
工业(包括客运站)
产品

机车车辆

[编辑 | 编辑源代码]

机车车辆,例如机车(发动机)、客车(车厢)和货车(货车)放置在 Surveyor 编辑器模块的地图上,但实际上是在相关的 Trainz 会话模块 中连接,同时在 地图中的参考表(kuid 代码列表)中列出。

这些资产类型是机车车辆资产的组成部分
转向架(美式英语:卡车)
引擎规格
引擎声音
喇叭声音
内饰
受电弓

HTML、媒体和 TrainzScript 资产

[编辑 | 编辑源代码]

Trainz 中的媒体资产执行各种功能。

声音 - 声音文件类型用于创建背景噪音,例如小溪的轻柔低语、乌鸦的喧嚣鸣叫、远处教堂钟声的声音或喧闹繁忙的工业区有打桩机的声音。它们是必不可少的听觉景观项目,与设计精良的三维景观建筑(例如树种或豪华房屋)具有相同的功能。许多是附加的,是更动态对象的组成部分,并且仅在有特定动作时才触发(机械开关改变交叉点位置的噪音)。
HTML 资产 -
规则 - 规则是小型小程序(通常称为脚本小程序),用于 游戏脚本 资产,用于 驾驶员会话 内部。它们为 路线 (地图类型) 的数字模型功能提供“软件钩子”,并使会话的编码能够与游戏软件通信值。此类规则通常还涉及监控、存储和处理表格数据,例如对会话进行编码以让驾驶员加速一次,但不能两次而不会受到惩罚,或其他可能的评分互动想象。
驾驶员命令 - 是用户可修改的规则,可以在驾驶会话期间更改,或者作为 AI 驾驶员 任务命令逐个执行。
  • 允许的驾驶员命令由驾驶员命令规则控制,该规则将可选选择限制为我们在驾驶期间下拉驾驶员命令菜单中的选择。这意味着如果会话设计师不希望您通过轨迹标记导航,或允许自动耦合或解耦,则必须在 会话编辑器 中修改会话(将捆绑的路线和会话自动克隆到您的个人版本)以在新的修改后的会话中访问此类规则。
支持场景的文件
- 场景支持存在于所有版本 Trainz UTCTS12 中,但由于 TrainzScript 的未使用,它基本已经消亡。它在 TANE 中不受支持。
场景 TSO 文件 - 场景支持文件,Trainz 场景的主要程序
场景 GS 或 GSE 文件 - 场景支持 Trainz 脚本文件
..\libraries 和各种资产文件夹将继续使用 *.gs(开源)和 *.gse(加密)文件,这些文件也用于创建某些资产功能和规则、新的驾驶员命令等,所有这些都支持会话。


备注和脚注

[编辑 | 编辑源代码]
备注
  1. 其中,依赖资产被并入,因为它被独立资产使用,而独立资产本身就是一个资产(例如机车转向架)放置在容器中(机车数字模型,自定义资产)。引擎声音显然属于 KIND 引擎规格。
参考文献
华夏公益教科书