跳轉到內容

Trainz/AM&C/config.txt 檔案

來自華夏公益教科書,開放世界開放書籍
(重定向自 Trainz/AM&C/config)
logo
Trainz 資產維護與建立

Trainz 標註參考頁面
TOC | 開始樂趣 | AM&C | 建立 | 書內參考 ORP 參考:  • 索引 • 容器 • 型別 • 標籤 | 附錄  • 版本
 詞彙表
 HKeys-CM
 HKeys-DVR
 HKeys-SUR
 HKeys-WIN
 滑鼠使用
 符號
有關 config.txt 檔案的介紹性文章,請參見 Trainz/Config.txt 檔案。有關該主題的參考資訊,請參見 Trainz/references/config.txt 檔案

所有資產都必須有一個 config.txt 檔案才能放置在 Trainz 中,否則它們就不是資產。也稱為“配置檔案”或簡稱“配置檔案”,config.txt 檔案無論如何命名,都包含有關資產的基本資訊,最重要的是它的型別 = <值>,包括它的 使用者名稱kuid 號碼trainz-build類別-區域類別-時代區域 標籤等(及其 <值>)以及一些可選但非必要的歷史標籤(原型鐵路、公司)、作者、許可和所有權資訊標籤,如建立者、組織、聯絡電子郵件、第三方網站 等 - 所有允許資產資料夾成為自定義和自文件 Trainz 相容資產的“定義”。除了配置更改記錄或檢視連續更改的方法。  在上述內容中,我們多次封裝了標籤“<值>”,以強調兩個重要點。Trainz 中的所有資料都是透過關鍵字 - 合法值關係定義和操作的。在計算機科學中,<值>(或合法值)是受列舉資料型別成員資格限制的列表。
 • 例如型別 Binary(也常稱為“Boolean”)是一種列舉型別,它只有兩個合法值:{ binary: 0, 1 },該表示法“{”+ 術語 + “:”+ 值列表 + “}”讀作二進位制集”具有成員零和一。值列表也稱為列舉列表,在本例中長度為二,有兩個允許值。列表中沒有的任何內容都是非法的,將生成 Trainz 錯誤,以及相關的錯誤訊息,並阻止您將資產提交到資料庫。阻止將有缺陷的資產提交到資料庫是在與 TS10 和 TS09 的 TBV(以及功能)重疊的 trainz-build 中開始的。[註釋 1]

 • 瞭解什麼是以及如何做,何時合適以及何時不合適是本頁的主題 - 本頁致力於消除 N3V 維基中所有“定義”的奧秘,即使是有經驗的軟體專業人員也會感到困惑和畏懼,或者甚至可能會讓新手感到沮喪。讓我們幫助您踏上掌握 Trainz 基礎知識 (TBK) 的穩固道路。

在本頁中,我們將深入探討資產的一些具體細節,並幫助您輕鬆地學習,我們中的一些人花了數年時間才掌握的知識!真是太划算了!

 

關於 config.txt 檔案的一些一般要點

[編輯 | 編輯原始碼]

有缺陷的資產中出現的許多問題都是由其 config.txt 檔案中的簡單輸入、巢狀或拼寫錯誤造成的。當引號巢狀不正確時,這種型別會產生連鎖效應,通常是由於缺少或多餘的引號。當出現這種情況時,CM/CMP 在開啟檔案時將嘗試修復它找到的內容,並且當它嘗試將文字段落解析為關鍵字和值時,這會建立一系列錯誤的標籤名稱錯誤。這會產生一系列故障(載入!20 多個),通常會插入空格,並且結果文字被引用的程度更糟 - 文字看起來像是世界末日降臨在了頁面上。這通常發生在較大的文字塊內部,例如 許可證描述。幸運的是,這些“無益的幫助”可以在幾分鐘內手動編輯以進行更正。(這種“爆炸性自動修復”比 TRS2004 和更早的 Trainz 的操作更好 - 此類型別以下的所有內容都將消失!虛擬產品!)

使用搜索"在對大型文字欄位進行任何編輯時檢查引號巢狀是一個很好的軟體實踐,以避免這種小麻煩,而是擁有一個工作修復的資產。



其他故障,特別是在 V3.3 之後,是由於 資料模型定義 的更改以及從 V2.8 開始現在稱為 TrainzBaseSpec 的執行造成的 - 這些資料集始終初始化任何和所有 config.txt 檔案的主體,並建立自定義資產系統。基於某些 TBS 值,然後會新增其他資料來配置資產,包括對其他包含的資產 元件檔案 的引用,例如影像、指令碼檔案texture.txt 檔案 和細節級別 (LOD) *.LM 檔案。該自定義的起點是 TBS 的作用,而定義和引用資產中的所有元素是其 config.txt 檔案的作用。底線是,幾乎所有資產修復都需要更改 config.txt 檔案 - 這是一個罕見的錯誤,它不需要其他修復!

術語“紋理檔案”或 LOD 檔案在上下文中可能會混淆。如果程式設計師在論壇上提到其中一個,他們可能指的是一個壓縮的結果檔案。如果該術語被使用者或內容建立者使用,他們可能指的是一個影像檔案,或者它和相應的 texture.txt 檔案 - 它們一起是 CM 在提交資產時建立的二進位制 .texture 檔案 的未壓縮形式。這就是為什麼 config.txt 檔案對 texture.txt 檔案的引用中不能包含 .txt 副檔名 - 資料庫只能看到 .texture 檔案,並且檔案路徑引用需要正確引用它才能進行內部資料庫連結。
  • 類似地,LM 和 LOD 網格的網格引用將被組合並壓縮。 Ø



技巧和竅門

[編輯 | 編輯原始碼]
  1. 由於配置檔案是自定義資產的核心,因此在首次進行資產修復和更新時,或者作為良好的實踐,在 CM 中開啟資產進行編輯時
    1. 方法 1: (SHFT+CTRL+E 開啟資產,然後進入資料夾)
      1. 在編輯配置檔案之前,使用“另存為”複製它
      2. 或者先使用 Windows 複製(選擇,CTRL+C,選擇資料夾,CTRL+V)。使用F2 重新命名檔案 Config.org.txt... 或者保留檔名,在檔名中插入 Windows 插入的 (copy)。
      3. 只有在完成上述操作後才能開啟原始配置檔案進行編輯。
    2. 方法 2:(最快:可能取決於你的文字編輯器)
      從資料夾中開啟 config.txt 檔案,然後立即ALT+Tab ↹ 返回到資料夾。
      1. config.txt 檔案應該仍然被高亮顯示(選中),所以接下來按F2 並插入.org.v2-4 等在 .txt 副檔名之前。(Trainz 在驗證和提交資產時,無法容忍未知的資料檔案型別,因此只能使用合法的文字檔案型別,例如 .txt 副檔名或 .htm。)
      2. 完成操作後,ALT+Tab ↹ 返回到編輯器。
         • Notepad++ 會抱怨(通知你)檔案丟失,並詢問是否應該將檔案保留在記憶體中。選擇是。Windows 記事本不會注意到它丟失了。你的編輯器...???
  2. 建議使用具有多個選項卡,能夠開啟多個檔案,支援正則表示式搜尋和替換,在多個檔案中替換,以及比較檔案功能的程式設計師編輯器。 Notepad++Programmer's Notepad,和 Crimson Editor 都可以作為免費軟體使用(以及可用的時間,將在 本華夏公益教科書 中介紹),並且每個軟體都具有大多數這些有用的功能。
     • 至少,Notepad++ 可以跨行尾字元進行搜尋和替換,這對將多個 kuids 合併為 CM 可接受的逗號分隔列表 (CSV) 非常有用,將在許多 Trainz 螢幕截圖中出現。
  3. 有針對性地下載 並少量下載! 在 Trainz 體驗的早期,仔細選擇要下載的小組資產,不要超過兩屏內容。
    1. 下載後,在主檢視中檢視該組,複製所有內容,並將 CSV 列表轉移到像 Open Office Calc 這樣的電子表格中。如果標題中有逗號(使用者名稱),你可能需要清理一些單元格,但你將擁有兩列可排序的資料作為日誌檔案。
       • 養成一有資料就儲存的習慣,並在離開應用程式之前整理它。你可能會遇到斷電或者更糟的是忘記儲存!
    2. 如果你將它作為一個執行的日誌,在使用過程中不斷追加,並在另一列中新增一些型別資料,這將為 特殊選擇過濾器 提供一個方便的列表,用於根據下一段內容進行線路構建。
       • 當然,你無需將這些副本限制在下載的內容上,任何在主檢視中列出的專案都可以高亮顯示並新增!
    3. 複製僅包含 kuids 的列,將其貼上到 Notepad++ 中,然後從 '>' 到下一個 '<kuid' Search and Replace (SAR) 為 ">,<kuid",以快速獲取包含整個下載的 CSV。
    4. 但是,請注意,你的過濾器已經顯示了所有 kuids,從下載 + 顯示在主檢視中,所以將其儲存在“最近下載”中。
    5. 作為一種實用技巧的練習,在“就地”過濾器中新增第二個 kuid 搜尋欄位,並在兩個欄位之間用AND NOT 過濾器修飾符分隔。應用後,如果獲得了完整的列表,則列表應該顯示為空!
    6. 由於你已經儲存了它,現在你可以解決任何故障,並透過將它與Faulty 進行 AND 操作來保持相同的顯示順序,只有該列表中的故障專案才會出現
       • 其他不在列表中的故障將不會出現——這樣可以讓你專注於當前最重要的內容,如果你貪婪地下載了太多內容,突然間出現了很多故障內容。透過找到你最感興趣的線路+會話,並使用 AND 操作與其“組合依賴項”的 kuid CSV 進行比較,從而逐步解決這些問題。
       • 注意:使用已儲存的過濾器,包括 **AND**,**AND NOT**,以及**OR**,可以幫助你更好地縮小範圍、選擇性地檢視或組織你的資產管理任務。**
       • 多練習、多練習、多練習 - 一旦掌握了這種技巧,它將為你節省大量時間。
       • 所有能夠消除混亂的過濾技巧(例如在 DLS 上不顯示內容,這可能是最有用的),以及在選擇篩選條件方面的熟練程度,都將幫助你更有效地搜尋你所需要或正在尋找的東西,從而節省時間。
       • 另一個有用的技巧是反轉你的選擇... 假設你有一條路線中有 30 個資產顯示為已過時。突出顯示該組,**RMBh** 並選擇 **顯示資產版本**,顯示屏將只顯示你高亮顯示的資產及其相關資產。現在,**RMBh** 並選擇 **反轉選擇**,瞧!——所有更新都已突出顯示,你可以將它們全部拖放到下載助手中的一個塊中(或者... **RMBh** 並選擇 **下載**——它將為你新增它們並立即開始下載!**
  4. 待續

 

文字編輯器

[編輯 | 編輯原始碼]

config.txt 檔案是 純文字 (ASCII) 檔案,儘管最舊的資產的第一行可能包含一個 BOM(位元組順序標記)程式碼。它們應該使用非格式化程式進行編輯,例如 Windows 記事本、ConTEXT、Notepad++、程式設計師記事本或其他非文字處理器的 文字編輯器——其中許多也稱為程式設計師編輯器。

警告:  config.txt 檔案 不能 使用文字處理程式進行編輯,例如微軟的 Works、Word、Wordpad、Magic Pencil 或 Open Office 的 Writer——任何 WYSIWYG 編輯器!
為什麼? 它們都會在檔案中嵌入額外的非列印字元作為控制程式碼,從而導致資產 出現故障!。有關命名方面的見解和規則,請參見 ACS 文字格式規範 中的連結 部分



其中一個文字程式是 ConTEXT,它在與 Wulf/Wulf9 的 TPR 語法檔案帖子 語法檔案一起使用時,可以提供語法高亮顯示。你需要在上面的連結(TrainzProRoutes)上註冊才能下載語法檔案。ConTEXT 還會顯示匹配的括號,這在進行故障排除時非常有用,並且值得注意的是,N3V Games 在一些 TrainzOnline wiki 文章中提到了這個文字編輯器。

本書中的許多示例將使用 免費軟體 Notepad++ 程式設計師編輯器,它具有多個選項卡(檔案處理)、搜尋和替換 (SAR) 功能,可以在檔案和開啟的檔案中進行搜尋和替換,還可以進行正則表示式 (REGEX) 搜尋和 SAR 處理,並在跨行斷點(換行符或換行符)進行 SAR 搜尋和處理。這些功能在克服 內容管理器 的錯誤輸出或在 修復錯誤內容 時發揮了重要作用。

示例 1A
2014-0417-1 List of 982 DAVESNOW assets crossloaded new TS12 to old F~TS12

Anhaen,<kuid2:95148:10182:1>
AnhaengerLeer,<kuid2:68787:25265:9>
Anhaen 1,<kuid2:95148:10183:1>
Appliances Industry Corp,<kuid:58223:26098>
Arcon Mk V,<kuid:225064:4010965>
ATLS CONTROLLER,<kuid2:76656:500010:8>

Notepad++ 可以將以上內容(或類似的 890 行內容)在不到 2 分鐘 30 秒的時間內轉化為 CSV KUID 列表,方法是使用 REGEX SARS 練習。

示例 1B

<kuid2:95148:10182:1>,<kuid2:68787:25265:9>,<kuid2:95148:10183:1>,<kuid:58223:26098>,<kuid:225064:4010965>,<kuid2:76656:500010:8>

示例 2

可以使用一個開啟的電子表格和一個臨時檔案(**CTRL+N** 在 Notepad++ 中)在 30-60 秒內獲得相同的 CSV。另一個 Notepad++ 選項卡可以用來儲存這類組的執行列表,以便將來進行過濾使用。
 • (你的 Trainz 文件儲存位置集中在一個主目錄中——幾個月後尋找某樣東西會非常令人惱火!)
 • 一個 kuid 欄位實際上可以容納數千個 CSV kuid,因此如果以標題儲存,此類捆綁包將具有很大的價值。 建議 'ZZZ-nn' 下載描述,在 9-12 個月內仍有意義 加上 - YYYY-MMDD,這樣 **CTRL+F+ZZZ- 可以導航儲存以向上或向下儲存!  

拼寫正確是一個精確的需求

[編輯 | 編輯原始碼]

標籤關鍵詞必須拼寫正確,並且在指定每個 標籤容器 值的引數時必須使用正確的語法。由於計算機程式將解釋內容,因此需要精確的準確性。

  • 請注意,一些術語對北美英語使用者來說似乎拼寫奇怪,而另一些術語對那些受過前大英帝國衍生社會教育的人來說則顯得奇怪。澳大利亞鐵路文化同時借鑑了這兩個國家,從這兩個國家引進了裝置和培訓師,他們帶來了各自的傳統,因此鐵路術語略帶混合,因此一些術語的拼寫方式也略有不同。



 

花括號規則

[編輯 | 編輯原始碼]

花括號 {} 用於指定那些需要多行的標籤對或相關資料對組的內容的開始和結束點。這些被稱為 容器,一種特殊的容器型別,即 KIND,在很大程度上決定了如何處理 config.txt 檔案中的資料(以及如果指定錯誤將出現哪些錯誤)。每個開花括號都必須有一個對應的閉花括號,並且 所有 '開花括號' 必須始終空格空格Tab ↹ 為字首)。某些標籤可以巢狀,在這種情況下,允許使用 { { } } 等結構,前提是前面有空格。

 

Kuids 和 Kuid2s

[編輯 | 編輯原始碼]

kuid 必須使用以下格式之一指定

  • <kuid:nnnn:nnnn>
  • <kuid2:nnnn:nnnn:nn>(其中數字位數可能不同)
請注意,根據定義,<kuid:nnnn:nnnn> 等效於 <kuid2:nnnn:nnnn:0>

kuid 或 config.txt 檔案中幾乎所有未用雙引號引用的規範,都可以選擇用一對雙引號括起來,例如:"<kuid:nnnn:nnnn>",trainz-build “2.9”

 

標籤、種類和容器名稱

[編輯 | 編輯原始碼]
Trainz 中的每個值都是資料對的一部分 - 稱為 標籤引用 名稱的鍵碼和資料
  1. 容器 包含多個定義,包括資料型別混合,如十進位制數、整數和字串,但這些定義彼此相關。
  2. 種類是特定型別資產獨有的容器,而容器是多個 KIND 型別需要的相關資料元素的集合。

以下標籤是強制性的

  • kind
  • kuid
  • username
  • category-class
  • category-era
  • category-region


config.txt 檔案中的一些常見錯誤

[編輯 | 編輯原始碼]
  • 花括號不匹配。
  • 任何非空格字元緊跟一個開花括號。
  • 任何非空格字元緊跟一個開尖括號,除了在允許使用它的 HTML 中。

對於下表中的專案,只有在該專案用作關鍵字時才會發生錯誤。在文字字串中,如描述,可以使用任何拼寫、空格和標點符號。

不正確 正確
behaviour behavior
colour color
discription description —Jcitron 最喜歡的愚蠢錯誤
independent independant (即澳式英語!與正確的美國英語拼寫相反)
kuid { kuid-table {
kuid{ kuid-table {
kuid<kuid:... kuid <kuid:...
kuid table kuid-table
kuidtable kuid-table
對於 任何 帶連字元的 關鍵字 keyword-table {
obsolete obsolete-table {
obsolete{ obsolete-table {
obsolete table obsolete-table
obsoletetable obsolete-table
table{ table {
trainz-build "utc" trainz-build 1.5
trainz-build "1.5"

TRS 2004 和 TRS 2006

[編輯 | 編輯原始碼]
特殊情況...

在 TRS2004 和更早版本的 Trainz 中,編輯 config.txt 檔案後,需要刪除 Cache\world_cache_Dispatcher.chump 檔案,否則 Trainz 將使用該檔案的舊版本。這僅在修改的 config.txt 檔案位於 World\Dispacher\ 層次結構中時才需要。如果您正在編輯 World\Custom\ 層次結構中的檔案,則不需要刪除 .chump 檔案。

對於 TRS2004 使用者,可以將免費的第三方實用程式 Trainz Objectz 用於掃描已安裝的資產,以查詢其 config.txt 檔案 中的常見錯誤,並且可以選擇自動更正其中的一些錯誤。這啟發了 內容管理器 的開發。

對於 TRS2006-SP1 和 TC 使用者,CMP 提供了良好的錯誤檢查,但要小心,弄亂括號,您可能會發現其後的任何內容都消失了。因此,建議在編輯之前備份。

在較新的版本中,更多 PEVtools(約 2010 年)應該在 TR 中不起作用,但將安裝程式放置在 ..\bin\...\Openwith 中的批處理檔案副本放在較新的版本中,允許它們正常執行。與 TS09 及更高版本不同,它們不能從 CMP 內部啟動。
  • 可能需要對一些 texture.txt 檔案 進行額外更正,以便使用 hack-hack(“//”)樣式的行首註釋註釋掉任何 'AlphaHint' 行(如果存在)。
  • 執行 PM2IM 和 Images2TGA PEVtools 後,對於較舊的資產,請將 [[Trainz/refs/TrainzBaseSpec#

trainz-build| trainz-build]] 更新到 v2.5 或更高版本,甚至 PEV 的 Mesh Viewer 2 實用程式也會正常執行,並允許您探索紋理的應用位置(如果缺少紋理,這很有用!),拍攝螢幕截圖等)。



 

  1. N3V Games,當時與 Auran 關係密切的初級合作伙伴,接管了 Auran Holdings 和 Auran Development 的 Trainz 管理和開發工作。Auran Holdings 和 Auran Development 在利用其擁有的專有 JET I 和 JET II 遊戲引擎開發另一種型別的電腦遊戲時過度擴張,遭受了巨大的財務損失,Auran 尋求法院的保護,而 N3VRFail(現為 N3V Games)達成了一項協議,投資拯救了運營,代價是在法院監督下接管了許多業務職能的控制權。
    N3V 立即採取行動,釋出了 Trainz TCC 合集包(Trainz: The Complete Collection),然後重新燃起了 TRS2004/TRS2006 技術的開發熱情,並對其進行了改進,這得益於三個外觀華麗但內容單薄的 Trainz Classics 版本(TC1-TC3(TBV 的 2.7 和 2.8))的乏善可陳的釋出和銷售,這些版本僅僅是功能加強(換膚)的 TRS2006-SP1,捆綁的內容太少,無法吸引許多買家。
    但在 TCs 中,N3V Games 也開始在載入或上傳時增加錯誤檢測,並由此開始了日益嚴格的強制更嚴格的資料模型符合定義的趨勢——這些列舉型別的資料極大地簡化了對合法值的測試。自從 Trainz 1.3 和 UTC 時代以來,REM(類似於 BASIC 計算機語言關鍵字)等實踐和非官方標籤已成為錯誤生成器,儘管它們得到了普遍使用。一些 程式碼構建版本(在 V3.3 中)開始阻止在開啟以檢查和故障排除後重新提交資產,如果該資產仍然存在故障。(但是,該資產可以恢復,因此使用者可以獲取該資產的副本以進行播放和試驗。)

    具有諷刺意味的是,到 TS10-SP2 時,Trainz 社群已經意識到,即使是 Auran 自己的資產在 開啟以進行編輯後,也存在著同樣的缺陷——許多 Trainz 使用者在開啟 Auran 模型以將好的資料集定義與生成錯誤訊息的定義進行比較時,都因此而吃了虧。

 

 

參考文獻

[編輯 | 編輯原始碼]

 

華夏公益教科書