跳轉到內容

Trainz/容器

來自華夏公益教科書
(重定向自 Trainz/Container)
logo
Trainz 培訓生的基礎知識

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

 

關於容器

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


容器是 Trainz 中對資料的一種稱呼,這些資料比通常在標籤中表示的單個引數更大,但仍然符合所有 Trainz 資料檔案都必須遵循的 ACS 文字格式。從這個背景來看,容器是包含多個元素 資料型別 的複雜 資料結構,這些資料型別表示一個 R 值(如果定義正確),從處理軟體的角度來看。對我們人類來說,它們是一種務實的方式,每一組相關的標籤和值也符合 ACS 文字格式標準,此外,它們還表示可重用的分組資料定義,這些定義專門用於在 Trainz 的多個 種類 中重複使用。配置檔案和 KIND 在抽象意義上都是容器,但 KIND TBS 和 KIND 共同建立了一種獨特的容器型別。

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

回想一下初等數學

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



資料組織

[編輯 | 編輯原始碼]

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

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

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

 

Trainz 華夏公益教科書容器

[編輯 | 編輯原始碼]

Trainz 華夏公益教科書和 N3V Games TrainzOnline 維基(或 Trainz 維基)側重點和目的不同。TrainzOnline 頁面旨在作為內容建立者的技術規範和參考,以及用於傳遞執行時軟體所需資料的工具,以便資源在 Trainz GUI 內正確執行。它作為內容定義的簡潔指南。

在 Trainz 華夏公益教科書中,我們的重點是提供從初級到中級,有時還包括高階知識的介紹性資料,幫助新老 Trainz 使用者更詳細地瞭解 Trainz 的內幕。一家小公司為維持運營而付出的成本和人力資源限制了 Trainz 維基,因此它必須具有權威性。我們在這裡努力達到相同的準確度,但也要努力呈現更宏觀的視角,並且不可避免地會有一些在 Trainz 不斷發展過程中引入的變化滯後。如果沒有這種變化,這款產品就不會生存下來,雖然這使得'追趕'變得困難,但也讓 Trainz 體驗不斷改進。 

當我們認為某個主題需要額外的說明,並且缺乏基礎知識的連貫構建時,我們會用額外的資訊、解釋、示例來擴充 TrainzOnline 維基頁面,並希望在 N3V 程式設計師(負責 Trainz 維基)不希望使用更嚴格、更簡潔的寫作方式的情況下,幫助人們理解。以下是截至目前我們容器頁面的目錄。在目錄下方,您將看到 TrainzBaseSpec 中一些關鍵基礎材料的回顧。

容器目錄

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


屬於 TBS 的容器

[edit | edit source]
  1. extensions container, extensions
  2. kuid-table container
  3. member-of-groups container
  4. obsolete-table container
  5. privileges container
  6. script-include-table container
  7. thumbnails container, thumbnails container

 

  • 上面列出的兩個連結中,第一個連結到有關容器型別的專用參考頁面,第二個連結到 TrainzBaseSpec (TrainzBaseSpec) 中涵蓋容器關鍵字(名稱)的部分。上面的大多數連結將導航到 TBS 的正確部分。

不屬於 TBS 的容器

[edit | edit source]

這些是 Trainz 配置容器,不屬於 TrainzBaseSpec,但被多種 資產型別 使用。不屬於 TrainzBaseSpec 的容器是常態,而不是例外,因為容器被定義為多用途的子資料組,用於自定義多種型別的 KIND 資產或資產的一部分。

  • attached-splines container -- kind track 資產的可選平行樣條線定義,也就是說 Trainz 中自 TS2009 資料模型出現以來所有完全更新的樣條線資產。
  • bogeys container -- 在一些鐵路文化中也稱為 trucks,Trainz 使用 bogeyNN 符號來表示車輪組在車架上的排列方式,以及其他修飾符來調整、滑動或旋轉車輪組。bogeys 容器是火車車廂型別資產的固有部分。
  • flowsize container -- Enginespec
  • junction-vertices container -- junction-vertices 容器
  • queues container -- 工業和互動資產;該容器的定義用於裝載火車車廂,以及將貨物裝卸到工業區。
  • volume container -- Enginespec
  • mesh-table container -- 任何“表現”資產的基礎,沒有網格,就沒有用紋理繪製的東西,所以也就沒有東西可以看。
  • season-selector container -- 在 TS12 (TB V3.5) 中新增的樣條線資產多季節紋理變化功能,自 TB v2.9/TS2009 資料模型 以來,所有樣條線資產都是 kind Track 的變體。
  • smoke container -- 最早的容器型別之一。從水龍頭噴出的水流到軌道邊牧場小屋煙囪上的刺鼻松樹煙霧,火車場周圍充滿了煙霧和蒸汽;半透明的薄紗狀物體創造了許多近乎神奇的效果。有人想用煙霧和鏡子來提高真實感嗎?這種容器會在各種資產中找到自己的位置。不止一個會獲得一個 NN 號作為字尾,形成 smoke0、smoke1、smoke2、...、smokeNN,具體取決於資產的需要。煙霧也是互動式的,並與軟體有各種介面,煙霧容器定義是此類軟體連結的一部分。
  • track-lod-tree container -- 在 TS2009 資料模型更改中新增,track-lod-tree 容器用於為選擇高解析度和低多邊形網格之間提供決策引數。實際上,它經常被遞迴使用,為渲染軟體提供三個或更多網格在 LOD 系列中的選擇。因此,它的主要功能是透過減少物件在距離越來越遠時所需的三角形計算次數來保持遊戲幀速率高 — 無論是近距離、附近、更遠、中間距離還是遠距離

 


TBS 中的 KIND 列表

[edit | edit source]

TrainzBaseSpec (TrainzBaseSpec) 是所有 Trainz 資料模型 標籤和容器的綜合列表,這些標籤和容器是必須或可選任何和所有 Trainz 資產中。下面回顧的部分列出了 Trainz 資料模型 中的 KIND,並提供了與上面 TOC 相同的連結,或連結到 N3V Wiki,方便參考。

  • KIND 是一種特殊的容器,因為它們的 defines 還包括潛藏在 config.txt 檔案中標籤的標籤,因此看起來根本沒有包含。定義 kind 標籤 會使這種判斷處於危險之中 — 透過定義 kind,就好像程式設計師在高階語言中添加了一個包含檔案。在這個例子中,需要手動新增,而不是讀取真正的包含檔案中的文字。
  • KIND 定義中的標籤也是配置檔案中的標籤。理解這一點,你就能贏得半場勝利。


KIND 的種類

[edit | edit source]

所有 Trainz 定義的資料(內容)都有三個必需元素:一個 config.txt 檔案 來組織資料,一個身份,即 kuid(僅使用者名稱是不夠的,但合法的資產可以不包含名稱建立!)最後,一個合法定義的 kind 標籤。kind 負責管理,是樂隊的指揮,是排長或 CEO 指揮 — 為 config.txt 檔案中處理的所有內容設定要求。簡而言之,kinds 的值,一個由少數幾個嚴格定義的成員組成的小組 — 告訴 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 和 UTC 資料模型的已更改的 Enginespecs 機車資產,需要進行適當的更新。

TrainzBaseSpec 子類 KIND(型別資產組)

 

 

註釋和腳註

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

 

華夏公益教科書