跳轉到內容

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 版本之前,對提交進行全面測試。

 

腳註

 

參考文獻


 

華夏公益教科書