跳轉到內容

Trainz/AM&C/處理資產錯誤

來自華夏公益教科書
logo
Trainz 資產維護和建立

Trainz 的內容管理器技能教程
TOC | 開始樂趣 | AM&C | 建立 | 書中參考文獻 ORP 參考文獻:  • 索引 • 容器 • 種類 • 標籤 | 附錄  • 版本
 詞彙表
 HKeys-CM
 HKeys-DVR
 HKeys-SUR
 HKeys-WIN
 滑鼠使用
 符號
貢獻作者:Fabartus

處理資產錯誤

[編輯 | 編輯原始碼]

'錯誤、故障、有缺陷的資產、不良內容、有缺陷的內容在 Trainz 中都是同義詞,指的是相同的情況:資產在分發時帶有格式錯誤的元件、缺少元件,或者儘管在更早的 Trainz 版本中可以正常工作,但已與更新的軟體版本不相容。這種後一種錯誤或故障發生在資產需要調整以符合更新級別的資產技術時,並且是最普遍的。缺少紋理(元件)的資產可以“修補”並使其工作,即使外觀與內容建立者使用的不完全相同。無論缺陷是什麼,它通常可以透過對檔案進行簡單的手動編輯來“修復”,最常見的是僅在資產定義資料夾(使用作業系統資料夾中的第三方工具開啟)中的資產 ini 文字檔案中進行編輯。

目前,這些頁面上關於錯誤修復的最佳建議可以在 Trainz/AM%26C/修復資產 中找到,其中以文字可搜尋的格式涵蓋了最常見的錯誤訊息,允許輸入錯誤訊息中的關鍵詞以瞭解如何修復它。

 

必要的工具

[編輯 | 編輯原始碼]
從 CM 到 CSL 的 kuids 的複合片段。

處理 Trainz 資產所需的第三方軟體實際上都可以作為 免費軟體 獲得。

  1. 一個好的文字編輯器是上帝的恩賜,雖然 Windows 提供了久負盛名的基本文字編輯器記事本,可用於簡單的編輯,但它缺乏許多有用的功能
    1. 建議改為使用 免費軟體 程式設計師編輯器 Notepad++,因為它在幾個方面非常有用,其中最重要的是能夠跨行尾邊界進行搜尋和替換 (SAR),從而可以輕鬆地將 CM 生成的資產列表轉換為 內容管理器 相容的逗號分隔列表 (CSL/CSV) 的 kuids。
    2. 程式設計師記事本 — 與 Notepad++ 程式設計師記事本和(下一個建議)Crimson 編輯器一樣,它們允許多檔案編輯,具有比 Windows 記事本更強大的搜尋和替換功能,並具有各自的優勢。
    3. Crimson 編輯器(著名 Ruby 編輯器的最新版本)
  2. OpenOffice 套件 — 與 Microsoft Office 不同,這款免費的開源軟體包不會讓你破產,與之完全相容,並且建議在此處使用它,因為它有兩個主要用途,涉及使用電子表格模組
    1. 電子表格是一個有用的平面檔案資料庫;不同的選項卡允許跟蹤不同的專案資產,例如將 CM 主螢幕 生成的選中列表作為 CSL 進行跟蹤。一個包含 kuids 的 CSL 具有許多組織優勢,其中最重要的是能夠使用不同的資產 kuids 重置一個或多個過濾器,以便在勘測員中使用。
    2. 將從 CM 主螢幕複製的資產列表貼上到電子表格中作為 CSV 列表,是截斷資產名稱和 kuids 的最快方法。該過程是:A) 從 CM 中複製資產組;B) ALT+Tab ↹ 到電子表格草稿工作表;C) 將複製的資產名稱及其 kuids 作為 CSV 匯入貼上,以逗號作為分隔符。D) 僅複製 kuids 列;E) ALT+Tab ↹ 到 Notepad++ 草稿工作表;F) 將列表貼上下來(電子表格的每一行都變成一行,其中包含一個 kuid);G) 在行尾從 '>\n<kuid' 開始執行 SAR,並用 '>,<kuid' 替換

假設讀者在繼續學習以下內容之前,已經通讀並瞭解了以下頁面中介紹的材料

  1. PEVtools - 如果你想快速修復資產而不會感到沮喪,則必須安裝 PEVtools。
  2. 內容管理器 - 操作內容管理器是資產下載、修復和升級的核心。
  3. 何時修復資產或何時升級它們 - 修復和升級資產是同一枚硬幣的兩面,但其中一面需要更多時間和更深入的知識。此條目解釋了何時只修復資產是一個獲勝策略,以及何時升級是更好的選擇。

本模組的目標

[編輯 | 編輯原始碼]

本模組將使讀者瞭解以下 Trainz 知識主題

  1. 我們將介紹一個基本的火車資料模型,Trainz 1.3 版本,並用它來介紹原始資料模型將內容放置的位置以及從那時起內容發生了哪些變化。
  2. 作為初始目標,我們將向您展示如何修復一個不太嚴重的資產錯誤
  3. 在將資產修復到 Trainz 針對 TB V2.3 的需求(TRS2004TRS2006 滿意)之後,您將學習最常見的修復步驟,以修復 DLS 上提供的多數較舊內容。簡而言之,它歸結為使用更新的資料模型結構(縮圖、網格表和轉向架容器)來調整原始 Trainz 實踐,這些結構(在大多數情況下)滿足由 N3V Games 開發的 TRSs 後時代的 Trainz 的需求,這些需求破壞了由 Greg Lane 和他的程式設計師安裝的相容性程式碼。(這就是為什麼這些資產在 TRS 和 TC 版本中可以正常工作的理由。)
編者按: 如果您要修補一個 V1.3 到 V1.5 的資產,使其在 TS09 及更高版本中同時支援驗證和提交,則通常需要新增一個 網格表容器縮圖容器,以及對於火車車廂,新增一個 轉向架容器。除了縮圖之外,這就是 V2.0 資產的烹飪手冊,縮圖是在 V2.5 (TRS2006-SP0) 中新增的。考慮到這一點,您不妨從計劃升級 trainz-build 開始!該資產肯定無法在 Trainz 1.3 中運行了!


  • 一些 Trainzer 會說“有什麼大不了的!現在你擁有了一個帶有紙質車輪的工作貨車的私有副本... 我會羞於使用它” 考慮給這個可憐的人送些花,或者至少給一根線索棒。她顯然不明白 廢棄表 的用途。在廢棄表中新增 100073 和 100074(以及其他幾個)。
obsolete-table {
  0                        <kuid:-1:100073> 
  1                        <kuid:-1:100074> 
}

新使用者應該注意,config.txt 檔案中的裸 KUID(100073,一個貨車轉向架或卡車)預設設定為 作者 #-1 ... 這是最初的 Auran 使用者身份。他們自那以後使用了許多其他身份,包括所有負面使用者身份值。

  • 再說一次,就像模型鐵路愛好者使用物理模型套件一樣,DLS 是一個巨大的“套件零件”來源,我們可以透過一些實驗和膽量來數字化“套件拼裝”新的模型。
編者按: 學習修復舊的資產使它們能夠在我們的想象工程可能需要它們的利基市場中使用,包括滿足昨日路線構建者/場景編寫者的想象工程,為你們開啟這些路線供你們利用。 學習如何使用扳手和調整旋鈕,建立自己專用資產的步驟變得更加小,而且遠沒有那麼陡峭。



評估舊模型

[edit | edit source]

我們在下面使用未修改的配置來為新的 Trainzer 提供資產正常功能的導覽

kuid                                    <kuid:55290:638>
origin                                  "USA"
engine                                  1
category-region-0                       "US"
category-era-0                          "1970s"
category-era-1                          "1980s"
category-era-2                          "1990s"
category-era-3                          "2000s"
category-class                          "AL"

running-numbers
{
}
name                                    "Loco CONRAIL QUALITY WEATHERED SD40-2 "
bogey                                   <kuid:-12:3535>
bogey-1                                 <kuid:-12:3535>
bogey-2                                 <kuid:58377:50012>
bogey-3                                 <kuid:58377:50013>
mass                                    135000
company                                 "CONRAIL RAILWAY"
kind                                    "traincar"
interior                                <kuid:-1:101475>
trainz-build                            1.3
fonts                                   0
smoke_shade                             1
smoke_random                            2.5
smoke_slowlife                          6
smoke_fastlife                          0.8
smoke_height                            1.7
smoke_fastspeed                         1.6
enginespec                              <kuid:58377:51022>
enginesound                             <kuid:-1:42003001>
hornsound                               <kuid:-1:42003101>

smoke0
{
  attachment                            "a.mainex0"
  mode                                  "time"
  color                                 40,40,40,120
  accel                                 0,0,0
  rate                                  20
  velocity                              3
  lifetime                              2.5
  minsize                               0.3
  maxsize                               2
}

smoke1
{
  attachment                            "a.mainex1"
  mode                                  "time"
  color                                 40,40,40,120
  accel                                 0,0,0
  rate                                  20
  velocity                              3
  lifetime                              3.5
  minsize                               0.3
  maxsize                               2
}

smoke2
{
  attachment                            "a.mainex2"
  mode                                  "time"
  color                                 40,40,40,120
  accel                                 0,0,0
  rate                                  20
  velocity                              3
  lifetime                              2.5
  minsize                               0.3
  maxsize                               2
}
description                             "CONRAIL QUALITY SD40-2. Model was created by Prjindigo, Roger Crouch and the paintwork was created by Sean Pope
"
asset-filename                          "CONRAILQwSD40-2"
username                                "CONRAIL QUALITY WEATHERED SD40-2 "
author                                  
organisation                            
contact-email                           
contact-website                         
license                                 

kuid-table
{
  0                                     <kuid:-12:3535>
  1                                     <kuid:58377:51022>
  2                                     <kuid:58377:50012>
  3                                     <kuid:58377:50013>
  4                                     <kuid:-1:101475>
  5                                     <kuid:-1:42003001>
  6                                     <kuid:-1:42003101>
}

什麼重要/什麼不重要

[edit | edit source]
TB 值鍵範圍 零售版或服務包版本等效 TB 值目標
  v1.3—v1.5
Trainz、Trainz 1.3,一直到 Trainz UTC
2.3-2.6
  v2.0—v2.4
TRS2004 及其 4 個服務包
2.4, 2.5-2.7
  v2.5—v2.6
TRS2006 及其 1 個服務包
2.6-2.9
  v2.7—v2.8 2.9-3.0
  v2.9—v3.3
TS2009 & TS2010 每個版本 + 4 個服務包
3.5-3.7

乍一看,許多機車火車車廂資產對於希望修復有故障資產的新 Trainzer 來說似乎非常複雜。trainz-build 值的重要性甚至許多參與 Trainz 的內容創作者都沒有很好地理解,從 Trainz 最初的版本開始就是如此。關鍵是要理解 Greg Lane 和最初的程式設計團隊在 2003-04 年期間對資產的關鍵更復雜的資料結構進行了演變,而且自那以後它們幾乎沒有變化,只是增加了額外的功能。

  1. 記住,“TB”表示 trainz-build,v#.# 是該 trainz-build 標籤的值,此外,N3V Games 選擇實施升級的倒退方式,內容管理器 (CM) 驗證程式生成的所有資產故障列表都取決於它們各自的 config.txt 檔案中分配給 trainz-build 標籤行的值。這意味著使資產在特定的最小閾值下無故障,應該會導致資產在所有更高版本中都能正常執行。事實上,該閾值通常非常低;符合 “理想”v2.0-v2.4 資料模型 定義通常會導致資產在 TS12-SP1(TBv3.7;這些資產應該與新的 TANE 資料模型一起使用)之前一直執行。將大多數其他資產修復到 v2.6 故障測試需求,應該會為少數孤獨的例外情況帶來類似的成功,儘管 N3V 管理層人為地將上傳所需的最小 TB 值上調了。(結果是,N3V 希望內容創作者自願無償地每隔幾年就不斷地更新數百個資產——沒有任何理由或必要!)
    1. 資料模型中的下一個重大變化是 N3V 首次涉足新的技術能力,這主要影響機車——某些配置標籤和以前使用的標籤被移動到不同的 KIND 混合中,或者被認為不需要定義而被刪除[註釋 1]
    2. 下一個重大變化是在 TS2009-TS2010 版本,當時程式設計師將舊的內容建立者指南準則正式化到 TrainzOnline Wiki 中,我們現在應該依靠它來獲得有關如何修復以及如何修復的技術指導。不幸的是,它很少更新,並且在需要之前不會提前宣佈更改,而 DLS 稽核軟體則會更新到 Windwalkr 當前的偏見,沒有任何通知。[註釋 2]
  2. 克服混亂的首要關鍵是要知道 CM 非常擅長提供故障訊息,這些訊息表明 config.txt 檔案需要細心呵護 (TLC),這意味著你基本上可以忽略它沒有抱怨的行。
  3. 緩解變化演變的第二件事是意識到你可以在修改檔案之前進行備份,我們強烈建議你將此練習養成習慣。
    1. 根據你使用什麼文字編輯器,這可能需要在開啟檔案之前完成,或者就在之後完成。
      1. 要在開啟之前進行備份,用 LMB 在其 Windows 資料夾中單擊該檔案,鍵入 CTRL+C,然後單擊資料夾中任何檔案或資料夾之外,然後使用 CTRL+V(貼上),Windows 將克隆原始檔案。然後,你可以根據後面介紹的替代方法對其進行重新命名。
      2. 更經濟的方式(假設我們正在開啟一個預設設定為 TB v1.3 的舊資產),我們更喜歡使用 Notepad++ 開啟檔案,鍵入 ⇧ Shift+ALT+Tab ↹(後退一個視窗)以將焦點返回到檔案資料夾(檔案將仍然被選中並突出顯示),然後是 F2(Windows 重新命名)並在結束的 '.txt' 副檔名之前插入字串 "v1-3.orgFlawed" 或僅 "v1-3.org"。當然,如果資產最初是 v2.1 或 v2.2,則相應地調整 .org. 名稱。
        1. 完成於 ALT+Tab ↹ (前進)回到 Notepad++,當它重新獲得 Windows 焦點時,會顯示一個 **彈出訊息框:** "檔案 config.txt 已被移動或刪除。是否保留編輯器中的檔案?" 我們建議您使用相應的滑鼠左鍵單擊 'YES' 回答。
        2. 這種技術可以讓你同時記錄已儲存檔案的狀態,並保留其原始歷史記錄(日期時間戳),這有時會很有用,同時允許你以一種提醒你現在為什麼要儲存該檔案的方式重新命名該檔案。當你寫出更改時,它也有一個同樣有效的日期時間戳。你可以立即點選 CTRL+S 儲存它,重建資料夾中的 config.txt 檔案,或者等到你改變了東西(我們建議你這樣做,畢竟你已經備份了!)
        3. 修復完資產後,使用它給定的 trainz-build 標籤 級別再加上一個提升(參見表格推薦的目標級別的右側列),我們將建議一個後續程式,因為我們逐漸將修復後的資產檔案集演變成一個完全升級的檔案集,使用類似的符號,如 'config.v2-3a.PRLM.txt'、'config.v2-3b.OK.txt'、'config.v2-6a.OK.txt'、...、config.v2-9.near.txt、...、config.txt. →(大概為 v3.7 或更高版本)。
  4. 關鍵點是,對於大多數資產來說,通常沒有必要將舊的資產修復和演變到 v2.0 之後,對於某些需要針對 TS09 和 TS10 進行特殊 TLC 的特殊情況,則需要演變到 v2.9–3.3 之後。
  5. 幫助新手瞭解另一個因素是認識到事物的順序(除了容器大括號內部,即使在裡面,很多東西也可以按需重新排序),根本不重要。資產 型別 需要有 Trainz 需要的所有宣告和定義,否則 Trainz 會報錯。
    1. 這意味著,如果你更喜歡以某種順序分析資產因素,可以隨意移動行。只是儘量不要丟失任何行,除非那是修復方法!
    2. 這種自由意味著你可以將相關資料分組在一起 [例如,所有包含 'ory-'(即 'category-')的三個標籤,或者所有引用行的 kuid(部件或元件,如轉向架),或者所有包含 'name' 的標籤等等],這可以幫助你更好地瞭解正在發生的事情,讓你感到舒適。
    3. 作為一般策略,在修復時,我更喜歡將所有常見的標籤(通常在提高 TBv 級別時進行更改或刪除)移動到文字描述塊附近,在那裡我新增一個更改記錄,記錄我做了什麼來改變作者的資產。你可能不需要,也不理解新增字尾的意義,就像我一樣 ['-a' 表示已更改,'-aR' 表示已修復,'-aRu' 表示已修復和升級,'-aRus' 表示添加了螢幕截圖。類似地,'-aS' 表示我添加了一個螢幕截圖,'aCmd' 表示我克隆了它並修改了它,使其適用於早期的 Trainz 版本]。記錄你做了什麼以及為什麼是一個 '優秀程式設計師' 的習慣,並且不要弄錯,這是一種我們正在維護的軟體形式。[注 3]
  6. 請隨意大膽嘗試。上面提到的 'config.v2-3a.PRLM.txt' 標誌著策略的一種哲學上的改變,它將迄今為止的修復複製到安全的地方,然後進行更加大膽的行動,使用新的容器和標籤將資產跳轉到比最初的目標 TBval 更高的級別。一旦你熟悉了 KIND 型別中常見且預期的標籤,你應該也這樣做。
  7. 待續

主題 5 及以上

[編輯 | 編輯原始碼]

 

*在 trainzoptions.txt(TR04—TS12)中設定 'freeintcam' 開關引數,或在 TANE 及更高版本中勾選具有相同功能的複選框(釋放內部攝像頭),會改變鍵盤箭頭鍵的功能,從旋轉和傾斜功能變為左右移動攝像頭位置。Freeintcam 模式允許使用者將許多攝像頭完全移動到駕駛室之外,或移動到更有利於觀看(和滑鼠控制)的角度。

註釋、腳註和參考文獻

[編輯原始碼]

Config.txt 檔案在 Trainz 資產中是普遍存在的,因為沒有資產可以在沒有這種型別的 計算機科學容器 的情況下定義。在編輯或建立 Trainz 內容時,必須始終牢記關鍵字-值的鍵對。 TrainzBaseSpec 包含在定義資產的 config.txt 檔案中最常見的屬性和容器。 

註釋

  1. 一個優秀的程式設計團隊會知道只需忽略這些標籤,就像它們是註釋行一樣,N3V 的 Windwalkr 選擇與之對抗(在 TS2009 的更改中更是如此,他甚至取消了註釋作為合法專案!),從而迫使數千名使用者修復實際上不需要修復的資產。僅僅是一個不再使用的標籤。
  2. 將 DLS 稽核升級到一個尚未可用的本地故障測試軟體(一個人的 CM)意味著受影響的不是 Windwalkr 的時間,而是許多使用者。好人啊,嗯。一位優秀的專業人士會編寫一個轉換過濾器,並在執行時修復必要的更改... 花幾個小時讓舊的實踐變得更現代,但嘿,這不會浪費他的時間!
  3. 不幸的是,我們能夠透過人工或甚至使用指令碼和 Asset-X 成功實現的大多數更改,都應該在資料模型需求發生變化時自動轉換。對於此後的每次重大更改(基本上是 V2.0),N3V 應該提供一個簡單的工具來將每個資料模型修改為下一個版本的需求。這些所謂的過濾器,一旦編寫,就會永遠有效,提供一個新的基本級別,以便在需要時在下一個版本中進行轉換,因此下一個平臺只需要那個過濾器,以及一些註釋掉以保留舊的公式。這樣的進展可以無限期地持續下去,並且在每個平臺上,CM 作為輸入的輸出將是一個 '當前 TBval 資產',其中包含程式設計師的任務或願望的一切,簡化並減少他們隔離資料型別問題所花費的時間和精力。這些問題將在預處理、轉換和驗證階段被捕獲,而不是在驗證和過時的後期轉換階段被捕獲!

 

腳註

 

參考文獻

華夏公益教科書