跳转至内容

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资源数据。
 • 大块的逗号分隔的kuids在设置自定义路线构建的SPEED方面非常有用——越少的资源需要Surveyor查询,所有热键和构建或装饰过程的速度就越快。
 • 这样的列表在内容管理器的不同版本之间也有其位置,以及在本例中——像页面顶部(显示缺少的资源)这样的列表可以转换为像页面底部列表一样的CSL块,适合在另一个Trainz安装中使用搜索(例如,在进入GUI驾驶或路线构建之前查看所有依赖项或所需资源是否可用)。
思考点

各种资源名称和KUIDs,例如
内容管理器中复制所有内容可能会给您
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原型中引入的,目的是将资源组件文件组织到单独的文件夹中,并为了方便对资源进行编目,因为最早版本的后来成为下载站(在线免费资源库)的资源需要一个内置的数据结构来跟踪几个类似资源之间的差异,以及一种可靠的方法来使用正确的指定资源——因为如果仅将资源名称用作那个时代硬盘数据原始组织中的文件夹名称,则太多名称可能会相互覆盖。解决方案是不依赖可能重叠的名称,而是通过使用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的第二个数字元素是由作者设置的唯一编号,可以是任意位数,通常为6位左右,并且通常编码,以便前几位数字表示创建的数字资源的类别或类型(例如,10表示火车车厢[滚动车辆],因此101的前缀为平板车,102为40' 箱车,103为refer等。一些CCs将类型品牌扩展到转向架等部件,或者可能为这种部件类型设置一个组。
  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内容时,必须始终牢记关键字-值对。 TrainzBaseSpec包含在定义资产的config.txt文件中最为常见的数值和容器。 

注释

  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版本之前,对提交进行全面测试。

 

脚注

 

参考文献


 

华夏公益教科书