跳轉到內容

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. extensions 容器extensions
  2. kuid-table 容器
  3. member-of-groups 容器
  4. obsolete-table 容器
  5. privileges 容器
  6. script-include-table 容器
  7. thumbnails 容器thumbnails 容器

 

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

不屬於 TBS 的容器

[edit | edit source]

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

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

 


TBS 中的型別列表

[edit | edit source]

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

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


KIND 的型別

[編輯 | 編輯原始碼]

所有 Trainz 定義的資料(內容)都具有三個必需元素:一個 config.txt 檔案 用於組織資料,一個標識,即 kuid(僅使用者名稱對你沒有用,但可以建立合法資產,即使沒有名字!),最後,一個合法定義的 kind 標籤。kind 負責,是管絃樂隊的指揮,是排長或 CEO 指揮方向——為所有後續處理的內容設定要求。簡而言之,kind 的值,一個小型精選、嚴格定義的成員專屬組——告訴 Trainz 軟體在虛擬世界中要渲染和顯示什麼,以及如何(或在哪裡)找到其他部分,這些部分需要在該 config.txt 檔案中將資產的這些部分連結在一起。
  下面每個子類都被認為具有 TrainzBaseSpec 作為其資料的“父類”。[注 1] 下面列出的一些 kind,那些帶下劃線的 kind,是早於 Trainz 資料模型TS2009 版本(即從 2008 年底開始)釋出而進行的更改的遺留 kind,N3V 程式設計師自此只實施了逐步(增量)的更改。
  目前可以在 N3V Trainz Wiki 的 內容建立者指南 部分找到基於這些遺留 kind 的修復資產的詳細資訊 TrainzOnline 站點,其中包含啟發性的 遺留 KIND 示例。強烈建議所有 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”並不常見,它只存在於選單和內容管理器列表中。

 

華夏公益教科書