跳轉到內容

Trainz/容器

來自華夏公益教科書,開放世界的開放書籍
logo
Trainz 培訓生基礎知識

Trainz 資料元素簡介-2 容器
目錄 | 開始趣味 | AM&C | 創作 | 書中參考資料 ORP 參考資料:  • 索引 • 容器 • 種類 • 標籤 | 附錄  • 版本
 術語表
 HKeys-CM
 HKeys-DVR
 HKeys-SUR
 HKeys-WIN
 滑鼠使用
 符號

 

關於容器

[編輯 | 編輯原始碼]
有關 Trainz 容器的技術背景,請參見 Trainz/AM&C/containers.
此頁面列出了此華夏公益教科書涵蓋的特定 Trainz 容器的“參考頁面連結”,並在簡要介紹了它們在 Trainz 資料模型 中的角色之後。


容器是 Trainz 對比單個引數(通常在標籤中表示)更大資料的術語,但仍符合所有 Trainz 資料檔案必須遵守的 ACS 文字格式。在此背景下,容器是包含多個元素 資料型別 的複雜 資料結構,從處理軟體的角度來看,它們在正確定義時代表一個 R 值。對我們人類來說,它們是與 ACS 文字格式標準相容的一組相關標籤和值,而且更重要的是,它們代表了可重用的分組資料定義,這些定義有意定義為在多個 Trainz 種類 中重用。配置檔案和 KIND 從抽象意義上講,本身都是“合併容器”,但 KIND TBS 和 KIND 共同創造了一種獨特的型別和容器型別。

從某種意義上說,Trainz 資源不過是透過適當的 列舉程式碼 組織起來的一組資料,這些容器(包括稱為 種類 的父類容器)定義了資源的相互關係和配置,以及數字模型在 GUI 執行時軟體(遊戲引擎)中的行為。容器只是資源自我定義中的一個元素,由資源建立者初始化。

回想一下初等數學

{X: A, B, C, ..., xx}表示為“合法值的集合 'X',它們是以下之一:有效資料值列表。”



資料組織

[編輯 | 編輯原始碼]

所有 Trainz 資料都由關鍵字和值表示。容器透過一個唯一的列舉關鍵字(識別符號)來識別,對於容器來說,一對花括號 '{' and '}' 內的所有值從抽象意義上講,都是容器關鍵字的值。在其中,所有元素再次是成對的值,通常再次是一個關鍵字和一個值。 

在許多容器中(或者在實踐中,是一個子容器 - 請參閱 縮圖 中的形式、格式和示例,瞭解一個常見的易於理解的表示和示例),關鍵字實際上是變數(未列舉和未宣告,不受約束),通常按照慣例表示為簡單的整數{X: 1, 2, 3, ..., nn}後面緊跟著空格和“值”,作為 config.txt 檔案中的右側列,它定義了資料值。 

這些被稱為“虛擬引數”“虛擬關鍵字”,或“偽關鍵字”,內容建立者可能會很容易地使用{X: A, B, C, ..., xx}或者{X: throttle1, throttle2, throttle3, ..., tt}因為在這些情況下,實際上,在所有容器中,值被排序和組織以填充 KIND 相關的記憶體物理地址,通常是 陣列 的一部分(請參閱 節流功率容器)或 列表(請參閱 縮圖容器 中的幾個示例)。

 

Trainz 華夏公益教科書容器

[編輯 | 編輯原始碼]

Trainz 華夏公益教科書和 N3V Games TrainzOnline wiki(或 Trainz Wiki)具有不同的重點和目的。TrainzOnline 頁面旨在成為內容建立者的技術規範和參考,以及在執行時軟體需要資料以使資源在 Trainz GUI 中正常執行的一種通訊方式。它作為內容定義的簡要指南。

在 Trainz 華夏公益教科書中,我們的重點是提供從入門到中級,有時甚至是高階的知識,以幫助新的 Trainz 使用者和老使用者更詳細地瞭解 Trainz 的來龍去脈。一個小企業努力維持生計的成本和人力資源限制了 Trainz Wiki,因此它必須具有權威性。我們在這裡力求相同的準確性,但也力求更宏觀的視野,因此一些在 Trainz 不斷演變過程中引入的變化必然會有時間滯後。如果沒有這樣的變化,這款產品就不會生存下來,雖然這使得“追趕”變得很困難,但它也使 Trainz 體驗不斷改進。 

當我們認為某個主題需要額外的闡述,並且缺乏基本知識的連貫構建時,我們會透過額外資訊、解釋、示例來擴充套件 TrainzOnline Wiki 的頁面,並希望在 N3V 程式設計師(負責監督 Trainz Wiki)不喜歡更嚴格的簡短寫作的地方,幫助理解。以下是我們迄今為止的容器頁面目錄。在目錄下方,您將看到 TrainzBaseSpec 中一些關鍵基本內容的回顧。

容器目錄

[編輯 | 編輯原始碼]
[e]
KIND(型別資源組)
容器


作為TBS一部分的容器

[edit | edit source]
  1. 擴充套件容器擴充套件
  2. kuid 表格容器
  3. 成員組容器
  4. 過時表格容器
  5. 許可權容器
  6. 指令碼包含表格容器
  7. 縮圖容器縮圖容器

 

  • 上面列出的兩個連結中,第一個連結到專門介紹容器型別的參考頁面,第二個連結到 TrainzBaseSpec (TrainzBaseSpec) 中介紹容器關鍵字(名稱)的部分。上面的大多數連結將導航到 TBS 的相應部分。

不屬於TBS的容器

[edit | edit source]

這些是 Trainz 配置容器,不屬於 TrainzBaseSpec,但被多種 資產型別 使用。不屬於 TrainzBaseSpec 的容器才是常態,因為容器被定義為多種資料的多功能子組,用於 自定義 多種 KINDs 資產或資產的部分。

  • 附加樣條線容器 -- 軌道 資產的可選平行樣條線定義,也就是說,自 TS2009 資料模型推出以來,Trainz 中所有完全更新的樣條線資產。
  • 轉向架容器 -- 在一些鐵路文化中也稱為轉向架,Trainz 使用轉向架NN 符號來表示車架上輪組的排列方式,以及其他修飾符來定位、滑動或旋轉輪組。轉向架容器是客車類資產的專屬。
  • 流量大小容器 -- 引擎規格
  • 連線頂點容器 -- 連線頂點容器
  • 佇列容器 -- 工業和互動式資產;該容器的定義用於裝載客車,以及將商品裝卸到工業設施。
  • 體積容器 -- 引擎規格
  • 網格表格容器 -- 任何“顯現”資產的基礎,如果沒有網格,就沒有東西可以用紋理繪製,因此也就沒有東西可看。
  • 季節選擇器容器 -- 為樣條線資產中的多季節紋理變更新增,(自 TB v2.9/TS2009 資料模型 以來,所有樣條線資產都是 軌道 的變體),TS12(TB V3.5)中的新功能。
  • 煙霧容器 -- 最古老的容器型別之一。從水龍頭噴出的水流到路邊牧場小屋煙囪上的松木煙霧,火車場周圍到處都是煙霧和蒸汽;半透明的薄霧狀物體創造了許多幾乎神奇的效果。有人喜歡煙霧和鏡子來增強真實感嗎?這種容器被用於各種資產。一個以上的容器會獲得一個 NN 號作為字尾,形成煙霧0、煙霧1、煙霧2、...、煙霧NN,根據資產的需求。煙霧也是互動式的,並且與軟體有各種介面,煙霧容器的定義構成這種軟體連結的一部分。
  • 軌道LOD樹容器 -- TS2009 資料模型變更中的新功能,軌道LOD樹容器用於提供決策引數,在高解析度和低多邊形網格之間進行選擇。在實踐中,它通常被遞迴使用,為渲染軟體提供在三個或更多網格之間的 LOD 系列中進行選擇的選項。因此,它的主要功能是透過減少物體在越來越遠距離時的多邊形計算量來保持遊戲幀速率高——無論是近、遠、遠、中遠,還是很遠

 


TBS中的KIND列表

[edit | edit source]

TrainzBaseSpec (TrainzBaseSpec) 是所有 Trainz 資料模型 標籤和容器的綜合列表,這些標籤和容器是 必需或可選 的,在所有 Trainz 資產中。下面摘錄的部分列出了 Trainz 資料模型 中的 KINDs,連結與上面的 TOC 重複,或者連結到 N3V Wiki,以方便參考。

  • KINDs 是一種特殊的容器,因為它們的 defines 還包括標籤,這些標籤會偷偷地潛入 config.txt 檔案中隱藏的標籤,因此看起來似乎根本沒有被包含。定義 kind 標籤 會讓這種判斷陷入危險——透過定義 kind,就好像程式設計師在高階語言中添加了一個包含檔案一樣。在這種情況下,需要手動新增,而不是讀取真正的包含檔案的文字。
  • KIND 定義中的標籤也是配置檔案中的標籤。理解這一點,你就成功了一半。


KINDs 的型別

[編輯 | 編輯原始碼]

所有 Trainz 定義的資料(內容)都包含三個必備元素:一個用於組織資料的 config.txt 檔案,一個代表身份的 kuid(只有使用者名稱是不夠的,一個合法資產可以不帶名稱建立!)以及最後一個,一個法律定義的種類標籤。種類起著指揮家的作用,指揮著整個樂團,就像排長或 CEO 指揮一樣,為處理後續的所有內容設定要求。簡而言之,種類的價值,一個精選的小而緊密的成員專屬組,告訴 Trainz 軟體要渲染和顯示我們在虛擬世界中建立的內容,以及如何(或在何處)找到在該 config.txt 檔案中連結在一起的資產的其他部分。
  下面的每個子類都被認為具有 TrainzBaseSpec 作為它們的“父類”資料。[注 1] 下面列出的一些種類,帶下劃線的那些,是早於 Trainz 資料模型TS2009 版本(即 2008 年後期)中更改的遺留種類,N3V 程式設計師只在之後實施了逐漸(增量)的更改。
  目前可以在 N3V Trainz Wiki 的 內容創作者指南 部分找到修復基於這些遺留種類的資產的詳細資訊 TrainzOnline 網站在這裡,並提供有啟發性的 遺留種類示例在這裡。強烈建議 Trainz 下載站 的所有使用者或任何考慮建立內容的人閱讀 CCG。通過了解舊內容定義的背景歷史,可以將其與當前 TrainzOnline 對相同資料型別的覆蓋進行對比和比較,因為這種曾經與現在的對比通常可以為修復、修改和定製資產提供寶貴的見解。更重要的是,CCG 中的文字是由專業人員編寫的,並且更加冗長,它經常會提供一些見解,例如,如果更改了這一點或那一點,將產生什麼擴充套件效果,而 Trainz Wiki 則沒有提供。TrainzOnline 上提供的 CCG 是 TC1&2/TC3 版本 - 最終出版的幾本小冊子,可以追溯到 1999 年的 Trainz;TC3 CCG 包含來自 TRS2004/TRS2006 的修改後的 Enginespecs 機車資產以及需要正確更新的 UTC 資料模型。

TrainzBaseSpec 子類 KINDs(型別資產組)

 

 

註釋和腳註

[編輯 | 編輯原始碼]
  1. 注: 此列表在 N3V TrainzOnline Wiki 上已“維基化”,這意味著在“KIND”一詞之後第一個字母已大寫,而 config.txt 檔案中的實際資料標籤名稱為全部小寫文字。該維基還使用雙引號表示許多術語,我們將在本文中避免使用這些術語。
  2. “kind consist”很少直接看到,它只是在選單和內容管理器列表中存在。

 

華夏公益教科書