跳轉到內容

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/Fixing_Assets 中找到,它以可搜尋的文字格式涵蓋了最常出現的錯誤訊息,允許您輸入錯誤訊息中的關鍵詞以瞭解如何修復它。

 

必要的工具

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

處理 Trainz 資產有效的必要的第三方軟體幾乎都可以作為 免費軟體 獲得。

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

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

  1. PEVtools - 如果您要進行任何操作,但不能迅速地重做需要調整的資產,則必須安裝 PEVtools。
  2. 內容管理器 - 操作內容管理器是資產下載、修復和升級的核心。
  3. 何時修復資產或何時升級它們 - 修復和升級資產是硬幣的兩面,但其中一面需要更多時間和更深入的知識。這個條目解釋了何時僅僅修復資產是一種成功的策略,以及何時升級是一個更好的主意。

本模組的目標

[編輯 | 編輯原始碼]

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

  1. 我們將介紹一個基本的 Traincar 資料模型,老式 Trainz 1.3,並用它來介紹原始資料模型在哪裡放置事物,以及自那時以來事物發生了哪些變化。
  2. 作為初始目標,我們將向您展示如何修復一個不太損壞的資產
  3. 在將資產修復到 Trainz 對 TB V2.3 的需求(TRS2004TRS2006 令人滿意)後,您將學會修復 DLS 上大多數舊內容所需的步驟。簡而言之,它歸結為用新的資料模型結構(縮圖、網格表和轉向架容器)來適應原始的 Trainz 實踐,這些結構滿足了 (在大多數情況下) N3V Games 開發的 TRSs 時代之後的 Trainz 的需求,這些需求破壞了程式碼建立者 Greg Lane 及其程式設計師安裝的相容性程式碼。(這就是為什麼此類資產在 TRS&ndashTC 版本中可以正常工作。)
編輯注: 如果您要修補 V1.3 到 V1.5 的資產以使其在 TS09 及更高版本中同時支援驗證和提交,則通常需要進行的更改是新增一個 網格表容器縮圖容器,以及對於火車車廂,新增一個 轉向架容器。除了縮圖,這就是 V2.0 資產的食譜,縮圖是在 V2.5 (TRS2006-SP0) 中新增的。鑑於此,您不妨從計劃升級 trainz-build 開始!該資產肯定無法在 Trainz 1.3 中運行了!


  • 有些 Trainz 使用者會說“沒什麼大不了!你現在擁有一個帶紙輪的貨車的私人物品... 我會羞於使用它” 考慮給這個悲觀的人送花,或者至少送他一根提示棒。她顯然不理解 過時表 的用途。在過時表中新增 100073 和 100074(以及其他一些)。
obsolete-table {
  0                        <kuid:-1:100073> 
  1                        <kuid:-1:100074> 
}

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

  • 再者,就像一個擁有實體模型套件的模型鐵路愛好者一樣,所有 DLS 都是一個巨大的“套件零件” 來源,我們可以透過一些實驗和大膽地從中數字化“套件組合”出新的模型。
編輯注: 學習修復舊資產可以使它們在需要我們想象力工程的利基領域中變得可用,包括滿足昨日路線構建者/場景編寫者的想象工程,為他們開啟那些路線供您利用。 學習如何轉動扳手並進行調整,建立您自己的專用資產的步驟變得更小,而且遠沒有那麼陡峭。



評估舊模型

[編輯 | 編輯原始碼]

我們將在下面使用未更改的配置來向新 Trainz 使用者展示資產正常功能

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>
}

重要/不重要的內容

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

乍一看,許多機車火車車廂資產對於希望修復有缺陷資產的新 Trainz 使用者來說可能非常複雜。trainz-build 值的重要性很少被理解,甚至許多自 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. 要在開啟之前進行備份,請在 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 已被移動或刪除。是否保留檔案?",我們建議您使用滑鼠左鍵點選“是”。
        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 版本]。記錄您做了什麼以及為什麼是一個“優秀程式設計師”的習慣,毫無疑問,這是一種我們正在維護的軟體形式[note 3]
  6. 請隨意大膽嘗試和實驗。上面提到的 'config.v2-3a.PRLM.txt' 代表了這種策略的哲學轉變,它將迄今為止的修復複製到安全位置,然後執行更大膽的操作,以使用新的容器和標籤將資產提升到高於最初的目標 TBval 級別。一旦您對 KIND 型別常用且預期的標籤感到滿意,您也應該這樣做。
  7. 待續

主題 2

[edit | edit source]

主題 3

[edit | edit source]

主題 4

[edit | edit source]

主題 5 及以上

[edit | edit source]

 

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

備註、腳註和參考文獻

[edit source]

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

備註

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

 

腳註

 

參考文獻

華夏公益教科書