跳转到内容

Trainz/KUIDs

来自Wikibooks,开放世界中的开放书籍
(重定向自 Trainz/KUIDS)
logo
Trainz初学者基础知识

Trainz资源维护与创建
TOC | 开始乐趣 | AM&C | 创建 | 书内参考文献 ORP参考文献:  • 索引 • 容器 • 种类 • 标签 | 附录  • 版本
 术语表
 HKeys-CM
 HKeys-DVR
 HKeys-SUR
 HKeys-WIN
 鼠标使用
 符号
editor screenshot
在Windows中使用Programmer's Notepad的多标签窗格来管理Trainz资源的数据。
 • 大块的逗号分隔的kuid在设置自定义路线构建的SPEED方面非常有用——Surveyor需要查阅的资源越少,所有热键和构建或装饰过程的速度就越快。
 • 这样的列表在不同版本之间的内容管理器中也占有一席之地,就像在这个例子中一样——像页面顶部(显示缺失资源)这样的列表可以转换为像页面底部列表那样的CSL块,适合在另一个Trainz安装中搜索(例如,在进入GUI驾驶或路线构建之前,查看所有依赖项或所需资源是否可用)。
思考点

各种资源名称和KUID,例如
内容管理器中可能给出的“全部复制”
Highland Valley SD38 No23, <kuid:62941:123>
Sub Station, <kuid:58973:27012>
GW Malt Sec5, <kuid2:97212:5200:1>
ken, <kuid:119692:840>
mack-truck, <kuid2:50567:15770:1>
fred2, <kuid:50567:15717>
Erie covered hopper Mfx2, <kuid:58422:1067>
Tanker MBLX (FUEL), <kuid2:64038:151024:1>
Tanker UTLX 950423(LARS), <kuid2:113556:61005:1>
Tanker ExxonMobil (FUEL), <kuid2:64038:151023:1>

仅供参考,Fred现在是用于列车尾部的红色发光仪器包,以前是车尾。现代的Fred包含RFID电路和GPS,并与驾驶室内的接收仪器通信数据——如今,甚至包括后视摄像头的画面——让工程师准确地知道他的列车尾部在路线上的位置。

KUID是在创建资源时分配给它的唯一标识符。TRS2006手册将它们称为源自Kool Things Unique Identifier Data的助记符,Trainz依靠它们来保持事物的清晰并组合正确的子资源来呈现3D虚拟世界。KUID的核心部分是作者的Trainz ID代码编号,它将是他创建的每个资源共有的。这是kuid在第一个分隔符——冒号“:”字符之后的第一个部分。没有kuid代码,就没有资源。Trainz将读取一个没有kuid的配置文件,并立即报告几个错误中的一个,最常见的是——"警告:无法读取位于'<文件夹名称>'"的资源的配置文件,而不是“资源没有有效的kuid”。

此KUID功能是在最初的Trainz 0.9 Beta原型中引入的,目的是将资源组件文件组织到单独的文件夹中,并便于对资源进行编目,因为最早版本的Trainz资源在线免费库(下载站)需要一个内置的数据结构来跟踪多个相似资源之间的差异,还需要一种可靠的方法来使用正确的指定资源——如果仅使用资源名称作为那个时代的硬盘数据基本组织中的文件夹名称,则太多名称可能会互相覆盖。解决方案是不依赖可能重叠的名称,而是通过使用kuid派生名称编码的文件夹(用空格替换冒号(':')字符)来组织文件文件夹,在早期的Trainz(甚至现在)中也是如此。请参阅您..\UserData\local\hashfolders目录中的文件夹。

Kuid(基本kuid)格式
<kuid  : 作者ID# : 基本Kuid索引 >    
Kuid2格式
<kuid2 : 作者ID# : 基本Kuid索引 : 版本后缀>

还需要一种方法让用户能够识别资源的不同版本——区分有效的版本和无效的版本。在早期开发中设想过废弃表,但在实践中,这些表存在某些缺点,因为它们的用法会永久“破坏”资源标识符代码。这种需求催生了扩展的kuid,也就是Kuid2格式,因为随着Trainz 1.0的一系列服务包的出现,追踪特定资源修订版的问题变得越来越重要。可以说,Trainz当时正在经历磨合期和成长烦恼,但发展迅速且日趋成熟。在UTC中,正如在其他地方提到的,它也可以被视为Trainz 1.0的第四个服务包,这两种方法都已到位,软件经过训练可以识别kuid2和kuid格式,以及废弃表的旧版本。

此外,还希望能够识别资源的原始作者,以及根据国际法谁拥有其版权,以便Auran能够保护其所有权。有两种版本:KUID和KUID2。Trainz的TRS2006之前的版本需要手动创建资源,因此必须手动分配KUID。在TRS2006及更高版本中,当您点击“新建资源”或“克隆资源”时,CMP会自动分配KUID。

原始格式的KUID如下所示
<KUID:123456:123456>.
  1. KUID的第一个数字元素是作者的用户ID。可以通过用户的Planet Auran个人资料访问用户ID。用户在注册Planet Auran时会获得一个用户ID,并且用户ID是按随机数字顺序分配的。大多数用户ID都有5位或6位数字,其中5位数字占主导地位。但一些早期的用户ID可能只有4位或更少的数字。还有一些用户ID只有一个数字的作者代码。
  2. KUID的第二个数字元素是作者设置的唯一编号,可以是任意位数,通常是六位左右,并且经常进行编码,以便前几位数字表示创建的数字资源的类别或类型(例如,10表示火车车厢[滚动库存],因此101的前缀为平板车,102为40' 箱车,103为参考等。一些CC将类型品牌扩展到转向架等部件,或者可能有一个用于此类部件类型的组。
  3. 如果使用CM/CMP创建或克隆资源,CMP会为每个用户安装1xxx范围内(默认情况下从开始)分配增量编号。例如,您创建的第一个内容很可能是对内置标准路线会话的更改,因此,如果您的用户标识符为“123456”,则kuid可能会创建为<KUID:123456:1001>,依此类推。

  4. TrainzUtil 可用于更改下一个生成的 KUID 起始值,然后 CM 会在为新的资源 KUID 代码分配时生成高于该值的下一个空闲数字。提示:在给定的情况下,由于路线始终具有默认会话,因此路线修改将生成以 1001 和 1002 结尾的两个连续的 KUID

对于 KUID,如果作者将资源上传到 DLS,其 KUID 为 <KUID:123456:100001>,并且他们希望更新它,则需要为更新后的资源分配一个新的 KUID,例如 <KUID:123456:100002>。要替换 DLS 上的资源编号 100001,必须在新资源的配置文件obsolete-table 部分中记录过时的资源的 KUID。(在其他地方讨论)。这可能会让人感到困惑,因此 KUID2 被设计为解决此问题。

KUID2 的格式与 KUID 略有不同。
<KUID2:123456:123456:1>,其中额外的字段是索引到零基的版本。

和以前一样,前两个数字元素是作者的用户 ID 和资源的唯一标识符。第三个数字是资源的版本号,可以高达“127”。KUID2 实际上是基于零的,因此 <KUID2:123456:123456:0><KUID:123456:123456> 相同——尽管 N3V 的程序员在何时承认等效性方面不一致,因此有效。[注释 1]

现在只需增加版本号即可更新资源。KUID2 的巧妙之处在于它们也可以应用于具有 KUID 的资源。例如,如果我们采用资源 <KUID:123456:100001> 并希望更新到 KUID2,只需将更新后的资源的KUID 标签更改为 <KUID2:123456:100001:1>,DLS 就会自动将原始资源标记为已过时(在CM 搜索窗格的术语中为“已过时”;CMDLS通信并跟踪是否有更新的资源可用)。[注释 2] 在本地,每个用户的 CM/CMP 安装都会检测此类更新,因此会通知所有拥有该资源已过时 KUID 版本的用户有更新版本可用。由于TS2009 CM 也以可视方式显示此信息,因此使用符号将其更新到 KUID2 版本。 

 

*在 trainzoptions.txt(TR04—TS12)中设置“freeintcam”开关参数或在 TANE 及更高版本中选中具有相同功能的复选框(释放内部摄像头),会将键盘箭头从旋转和倾斜功能更改为前后或左右滑动摄像头位置的功能。Freeintcam 模式使用户能够将许多摄像头完全移出驾驶室或移至更有利于观看(以及鼠标控制)的角度。

注释、脚注和参考文献

[编辑源代码]

Config.txt 文件在 Trainz 资源中是普遍存在的,因为没有资源可以在没有这种类型的计算机科学容器的情况下进行定义。在编辑或创建 Trainz 内容时,必须始终牢记关键字-键值对。在定义资源的 config.txt 文件中最常见的TrainzBaseSpec包含值和容器。 

注释

  1. 某些 N3V Trainz 版本会在 CM KUID 输入窗口中显示 <KUID2:123456:123456:0> 和 <KUID:123456:123456> 相同,而其他版本则对其进行不同处理,并在使用 KUID2 格式进行搜索时忽略数据库中的基本 KUID 格式。
     • 经故意测试,在配置文件中使用 KUID2 格式作为标识符值是完全可以接受的(在新资源和旧修改的资源中),并且所有版本的 N3V 软件都对其进行了正确归档。
     • 因此,许多人在创建资源时仅使用 KUID2 格式,如果手动维护 Trainz 之外的数据库(带有源文件的 OS 文件夹)存档,则使用格式“kuid2 xxxx yyyy n;v#-#; assetname”,因为当所有资源都编码为 KUID2 语法时,这使得创建基于 KUID 可搜索的存档文件夹变得更简单。(然后字母数字排序可以无故障地工作。)
     • 此类存档还允许搜索在需要修复或新资源时找到纹理;并且是初始化新 Trainz 版本或重建旧安装的资源。
  2. N3V 的 CM 版本将拒绝任何尝试打开文件进行编辑,然后仅通过重新提交它来升级它并更改 KUID。但是,可以使用两种方法来获得相同的效果。
     • 1) 更改配置文件的 KUID,然后将文件夹拖放到 CM 中,由于较旧的 KUID 被“标记”为“已打开以供编辑”,因此软件只需将文件夹和数据视为导入的资源。然后可以独立地重新编辑回原始 KUID 并提交,或者假设它没有故障,可以只键入CTRL+R恢复到原始的更改前版本。如果恢复一个已打开以供编辑的版本,在移动或删除其文件夹之前重新提交它似乎不是必需的,但可能是比不这样做更安全。
     • 2) 将文件夹复制到另一个目录,然后在那里更改 KUID,同时通过在原始 KUID 下提交更新的表单来测试改进。这有益于在添加更新的 KUID 版本之前,对提交进行全面测试。

 

脚注

 

参考文献


 

华夏公益教科书