跳轉到內容

Trainz/容器

來自華夏公益教科書,開放的世界,開放的書籍
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 資料都由關鍵詞和值表示。容器唯一的列舉關鍵詞(識別符號)標識,對於容器,成對的花括號 '{' 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 程式設計師(他們負責管理 Trsinz Wiki)不希望使用更嚴格、更簡潔的寫作風格的地方,幫助人們理解。以下是我們迄今為止的容器頁面的目錄。在目錄下面,您將看到 TrainzBaseSpec 中一些關鍵基本材料的回顧

容器目錄

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


作為 TBS 一部分的容器

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

 

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

不屬於 TBS 的容器

[edit | edit source]

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

  • 附加樣條線容器 -- kind track 資產的可選平行樣條線定義,也就是說自 TS2009 資料模型釋出以來 Trainz 中任何完全更新的樣條線資產。
  • 轉向架容器 -- 在某些鐵路文化中也被稱為轉向架,Trainz 使用轉向架NN 符號來表示在車架上哪個車輪組在哪裡佈置,以及其他修飾符來調整車輪組的方向、滑動或旋轉。轉向架容器是火車車廂類資產的固有部分。
  • 流量大小容器 -- Enginespec
  • 交叉點頂點容器 -- 交叉點頂點容器
  • 佇列容器 -- 工業和互動式資產;此容器的定義用於裝載火車車廂,以及在工業中解除安裝或裝載商品。
  • 音量容器 -- Enginespec
  • 網格表格容器 -- 任何“顯現”資產的基礎,如果沒有網格,就沒有東西可以用紋理繪製,所以就沒有東西可以看。
  • 季節選擇器容器 -- 在樣條線資產中新增用於多季節紋理修改(自 TB v2.9/TS2009 資料模型 以來,所有資產都是 kind Track 的變體),TS12(TB V3.5)中的新功能。
  • 煙霧容器 -- 最古老的容器型別之一。從水龍頭噴出的水流到軌道旁牧場小屋煙囪上方的刺鼻松樹煙霧,火車場周圍到處都是煙霧和蒸汽;半透明的薄霧狀物體創造了許多幾乎神奇的效果。有人想要煙霧和鏡子來幫助可信度嗎?這種容器被用在各種資產中。不止一個獲得了 NN 號作為字尾,形成 smoke0、smoke1、smoke2、…、smokeNN,因為資產需要。煙霧也是互動式的,並與軟體具有各種介面,煙霧容器定義構成此類軟體連結的一部分。
  • 軌道 LOD 樹容器 -- 在 TS2009 資料模型更改中新增,軌道 LOD 樹容器用於呈現決定引數,用於在更高解析度和更低多邊形網格之間進行選擇。實際上,它經常被遞迴地使用,為渲染軟體提供在 LOD 系列中三個或更多網格之間進行選擇。因此,它的主要功能是在物件距離越來越遠時(無論是在近處、附近、更遠、中間或遠方)透過減少多邊形計算數量來保持遊戲幀速率高。

 


TBS 中的種類列表

[edit | edit source]

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

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


KIND 的種類

[edit | edit source]

所有 Trainz 定義的資料(內容)都有三個必需的元素:一個 config.txt 檔案 來組織資料,一個身份,即 kuid(僅使用者名稱對你無用,但合法資產可以在沒有名稱的情況下建立!),最後,一個合法定義的種類標籤。種類是負責的,是管絃樂隊的指揮,是排長或 CEO 指揮——設定在之後處理的所有事物的要求。簡而言之,種類的價值——一個小的、精選的、嚴格定義的會員制小組——告訴 Trainz 軟體在虛擬世界中渲染和顯示什麼,以及如何在虛擬世界中渲染和顯示(或在虛擬世界中在哪裡)找到在該 config.txt 檔案中連結在一起的資產的其他部分。
  下面的每個子類都被認為具有 TrainzBaseSpec 作為其資料的“父類”。[note 1] 下面列出的一些種類(帶下劃線的種類)是早於 TS2009 釋出時的 Trainz 資料模型 更改的傳統種類(即從 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' 並不經常直接出現,它只存在於選單和內容管理器列表中。

 

華夏公益教科書