跳轉到內容

Trainz/Kinds/kind 軌道

來自 Wikibooks,開放世界中的開放書籍
(重定向自 Trainz/KIND 軌道)
logo
Trainz 註釋引用
TOC | 開始有趣 | AM&C | 創作 | 書內引用 ORP 引用:  • 索引 • 容器 • Kinds • 標籤 | 附錄  • 版本

傳統軌道

[編輯 | 編輯原始碼]

Trainz 資料模型 可以說在從 Trainz 1.3TANE軌道和樣條線物件軟體處理中發生了最顯著的變化(這在連線點和指令碼問題方面增加了很大的複雜性,比如 聯鎖塔)。這種演變從所謂的 塊狀軌道 到最初的 TANE kind 程式化軌道,共有三到四個不同的層級。在 Trainz UTC 和 TRS2004 的塊狀軌道之間,橋樑和隧道被一組kind 軌道所取代—— 這些型別的新正式定義,其中包括這些型別(這裡顯示的連結指向它們的 CCG 引用頁面):一個關於 TRS/TC 時代 CCG 的公正表格將 [在此 URL 找到]:[1]

樣條線物件
  • Kind:_軌道 - 從農作物到道路的樣條線場景資產使用各種標籤來定義,這些標籤控制物件如何與世界互動。

這些方面有一些逐步改進,但 TS2009 向拼接軌道技術轉變

KIND 軌道

[編輯 | 編輯原始碼]

KIND 軌道Trainz-build 版本 2.9 及更高版本(軌道拼接處理成為預設渲染軟體之後)開始,為所有基於樣條線的資產提供唯一的資產 kind。與名稱相反,正如道路型別被定義為軌道資產一樣,這種 kind 的資產現在包括簡單軌道、多軌道、橋樑、隧道、樹籬、道路、牆壁、路堤、本地電力線、高壓電力線、架空線(和其他軌道旁的 '附著軌道容器容器' 樣條線)等等。

這種 kind 的資產使用一種以前被稱為“拼接軌道”的渲染技術。現在,所有其他的樣條線渲染都已過時,所有過去年的樣條線類別現在簡稱為“軌道”,並使用具有適當標籤設定的 kind 軌道 變體來實現數字模型。在 TANE 版本(v4.0 及更高版本)中,現在添加了一種替代軌道型別,kind_procedural-track,它包含了看到動畫連線點部分的新功能。本頁面不直接涉及 TANE 中的這種更新的技術。 

本頁面描述了 trainz-builds v2.9–v3.7;TANE 軌道是完全不同的情況,是一個主要的資料庫模型變更,目前,最好的資料來源是 Auran 論壇和 N3V Games Wiki 上的連結



KIND 層級結構

[編輯 | 編輯原始碼]

{S ... SPLINEST ... TRACK },也就是說 Category-class 樣條線型別的列表

SF     Fences
SR     Roads
SP     Platforms
SS     Structure
SV     Vegetation
TB     Bridge
TF     Fixed Track
TR     Rails
TT     Tunnel
  • Attached-track 是嵌入在行業資產中的資產,它從其末端頂點附著的軌道繼承軌道特性。

支援的標籤

[編輯 | 編輯原始碼]

樣條線物件 中定義 config.txt 檔案KIND 軌道 在由 KIND TrainzBaseSpec 定義時支援以下標籤。每個標籤在此處顯示其預設值。

      mesh-table    
      {    
      }    
      軌道容器    (子容器)
      {    
      }    
      endcap-prev    
      {    
      }    
      endcap-next    
      {    
      }    
      attached-splines    
      {    
      }    
      season-selector    
      {    
      }    
      carrate     0
      isroad     0
      isfreeway     0
      is_silent     0
      numlanes     0
      istrack     0
      istunnel     0
      surveyor-only     0
      visible-on-minimap (surveyor-only 的反義詞)    
      track-sound    
      {    
      }    
      traffic-speed     10.0
      tunnel-roof-height     0.0

mesh-table

[edit | edit source]

"mesh-table"_Container "mesh-table"_Container 提供有關構成此資產的軌道和端蓋網格的詳細資訊。目前大多數高階網格表選項不可用。重要的是要指定網格。具體而言,應使用 'mesh' 標籤指定 IM 檔案,並且 'mesh-asset' 標籤可用於指定網格的備用源資產。


track

[edit | edit source]

"track" 標籤是強制性的,它決定了如何從網格中形成樣條几何體。它被指定為 軌道零件容器


attached-splines

[edit | edit source]

attached-splines 容器[2] 提供了一種機制,用於使子樣條線附加,這些子樣條線在略微偏移的位置遵循該父樣條線的形狀。附加樣條線用於樣條線需要與具有不同渲染或功能行為的樣條線耦合的地方。例如,帶有附加軌道的橋樑(風景),或者帶有連線在它們之間的電線(剪下和拉伸以適應)的一組塔架(沒有拉伸或剪下)。附加樣條線可以是僅渲染樣條線,除了渲染行為之外,它們實際上不存在,也可以是完全功能的樣條線,它們唯一的特點是它們隨其父級移動和刪除。


endcap-prev & endcap-next

[edit | edit source]

"endcap-prev" 和 "endcap-next" 標籤以相同的方式指定,但不是強制性的。如果存在,這些端蓋將插入樣條線兩端的末端,除非樣條線流到另一個相同型別的樣條線上。這允許內容建立者“密封”樣條線幾何體,而不必在每個細分處引入低效的密封多邊形。端蓋服從正常的適應樣條線行為,只是它們在樣條線末端的瞬時方向上繼續筆直。端蓋從資產的 "track" 標籤繼承其預設設定,但任何單個值都可以根據需要覆蓋。


Season-selector

[edit | edit source]

"Season-selector"_container "Season-selector" 容器 允許選擇季節索引,該索引可由 "track-lod-tree"_container "track-lod-tree" 容器 使用。 

isroad

[edit | edit source]
型別:布林值(1 或 0)

如果設定(1),則此型別的樣條線被視為道路。道路支援 Carz 的生成。道路被 KIND MOCrossing 標記為阻塞,而過路口柵欄關閉。道路樣條線通常可以連線,即使它們是不同的資產。

如果沒有另外指定,設定了 'isroad' 標籤的資產是 "道路樣條線組" (<kuid:30501:100045>) 的成員(參見:KIND_Asset-group 中的已知資產組)。


carrate

[edit | edit source]

(僅適用於設定了 'isroad' 的樣條線。)

遊戲在這個路上生成 carz 之間等待 1x 到 3x 此十進位制值,所以數字越小,道路產生的交通量就越多。


isfreeway

[edit | edit source]

(僅適用於設定了 'isroad' 的樣條線。)

如果設定(1),此布林標籤將導致多車道道路充當高速公路。這允許 carz 隨意變道,並導致所有交通僅在樣條線的正向方向流動。在非高速公路上仍然允許超車。


is_silent

[edit | edit source]

(僅適用於設定了 'istrack' 的樣條線。)

如果設定(1),此布林標籤將停用在樣條線上行駛的車輛的每軸聲音的播放。


numlanes

[edit | edit source]

(僅適用於設定了 'isroad' 的樣條線。)

定義道路上的 carz 車道數量。每條車道被認為寬 1.7 米。如果道路是高速公路,所有交通都朝著同一個方向行駛。待定:對於非高速公路,這意味著什麼?


istrack

[edit | edit source]

如果設定(1),此布林標籤將導致樣條線被視為 "軌道",這意味著火車可以預期在樣條線上行駛。

這會影響樣條線在小地圖上的可見性,樣條線資產會在測量師選取器中顯示,測量師工具可以對資產進行操作,以及是否啟用自動連線放置。

軌道樣條線通常可以連線,即使它們是不同的資產。

如果沒有另外指定,設定了 'istrack' 標籤的資產是 "軌道樣條線組" <kuid:30501:100043> 的成員。


istunnel

[edit | edit source]

如果設定(1),此布林標籤將導致樣條線被視為 "像隧道一樣"。儘管有這個名字,但這並不直接與真正的隧道樣條線功能相關(有關詳細資訊,請參見 'tunnel-roof-height' 標籤)。

在隧道內,某些型別的脫軌會被停用,因為由此產生的使用者體驗會很差,因為火車車輛和玩家的攝像機會穿透隧道和地形。

當車輛的原點位於隧道樣條線上時,指令碼函式 Vehicle.IsInTunnel() 返回 'true'。

如果使用者處於 '外部' 或 '自動跟蹤' 攝像機模式,而攝像機目標位於隧道內,則攝像機將改為 "隧道外部" 模式。

當攝像機目標位於隧道內時,環境聲音的音量會降低到 50%。

當車輛位於隧道內時,某些型別的車輛粒子發射器將被停用。


surveyor-only

[edit | edit source]

如果設定(1),此布林值將導致資產在 Driver 中不可見且不可用。這通常用於提供編輯幫助的樣條線,例如模板、標記或尺子。


visible-on-minimap

[edit | edit source]

如果清除(0),則從 minimap 中隱藏此樣條線。具有非僅渲染子級的樣條線永遠不會顯示在 minimap 上。請注意,此標籤沒有固定的預設值,而是預設為 'surveyor-only' 標籤的反義詞。


track-sound

[edit | edit source]

(僅適用於設定了 'istrack' 的樣條線。)

一個可選的 "track-sound" container "track-sound" container,它有助於計算火車車輛在該軌道上時播放哪個聲音。


traffic-speed

[edit | edit source]

(僅適用於設定了 'isroad' 的樣條線。)

定義道路的汽車速度限制,單位為米/秒。目前,汽車行駛速度最高可達限速的 80%-110%(取決於汽車),但超車時除外。此標籤與火車無關。


隧道頂高

[編輯 | 編輯原始碼]

隧道使用此標籤來確定地形洞允許的頂高(以米為單位)。如果小於或等於零,則不會生成地形洞。如果大於零,則此樣條線被視為真正的隧道,它將在地形網格中生成洞,其對地形網格的接近角度將被鎖定為 45° 增量,並且端點將捕捉到 10 米的網格大小。

隧道旨在將樣條線執行在地形網格下方。

隧道樣條線試圖彎曲,使得樣條線以 45° 角增量結束。這有助於確保可以透過地形網格成功建立入口洞。

隧道樣條線在 Surveyor 中的編輯語義略有修改。頂點標記在不同的條件下可見。不允許在隧道周圍平滑地面。隧道樣條線始終遵循樣條線梯度,而不是對地面高度做出反應。

如果未另行指定,設定了 'istunnel' 標籤的資產是 "隧道樣條線組" 的成員 <kuid:30501:100044>


軌道資產通常包含多個網格。每個網格代表樣條線的一部分,該部分透過各種變換端對端重複以建立整個樣條線。多個網格允許 LOD、細節隨機化等等,"track-lod-tree" 容器 "track-lod-tree" 容器 定義了在樣條線上各個位置使用哪個網格。

網格應該使用法線貼圖和單個高解析度漫反射紋理。出於效能原因,應為所有網格使用單個材質(即單個紋理;請參見有關網格之間材質共享的說明),而不是為每個網格使用單獨的材質。材質可以使用 alpha 遮罩(1 位 alpha)或 alpha 混合,但是任何 alpha 混合都不會進行排序(既不會針對軌道本身中的其他多邊形,也不會針對場景中的其他 alpha 混合多邊形)。因此,alpha 混合應該只用於低至地面的位置,這樣從攝像機到網格的直線在到達地面之前不會穿過任何其他 alpha 混合物件。對於 alpha 混合和 alpha 遮罩網格,將應用正常的 z 緩衝行為。

組成軌道的各種網格部分是如此建模的,以至於任何型別都可以與其他任何型別完美銜接,沒有明顯的接縫。片段不需要嚴格對稱,因為它們永遠不會相對於前一個片段旋轉,但是需要注意的是,支援多向連線的樣條線會導致一個構造,其中一個樣條線迴圈回到自身,並以相反的方向連線到自身。

以下是一些近似的多邊形指南。建立者應避免使用超過他們需要用於準確描繪所討論物件的更多多邊形。

  • 極端細節網格 - 用於特寫鏡頭。每 2 米段 1000 個多邊形。
  • 高細節網格 - 用於近距離。每 2 米段 200 個多邊形。
  • 中等細節網格 - 用於中等距離。每 10 米段 100 個多邊形。
  • 低細節網格 - 用於遠距離。每 10 米段 6 個多邊形。軌道紋理化在壓載物上,而不是多邊形建模。
  • 初始端蓋 - 用於樣條線的起點。100 個多邊形。
  • 最終端蓋 - 用於樣條線的終點。100 個多邊形。

端蓋提供任何必要的多邊形來 "閉合" 樣條線,以便從正面看時它不會出現空洞。其他網格不包含任何此類多邊形。端蓋由遊戲自動應用在從一種軌道型別過渡到另一種軌道型別的地方,或者軌道突然開始或結束的地方。

每個網格的長度是獨立指定的。建議每個網格在分配的多邊形預算內儘可能長。

在對軌道樣條線建模時,應注意確保鋼軌頂端正好位於原點上方 0.3 米。這樣可以確保它與火車車輛的車輪無重疊且無間隙。

樣條線放置

[編輯 | 編輯原始碼]

可以指定網格儘可能緊密地跟隨其放置樣條線(以前:彎曲),或者保持直線但剪下以防止接縫。這在 "track-lod-tree" 容器 "track-lod-tree" 容器 中進行了詳細討論。

網格上的頂點可能屬於以下兩種高度類別之一

  • 地面 - 頂點位置基於地面高度。
  • 樣條線 - 頂點位置基於放置樣條線。

頂點的高度類別由其在網格中的相對高度決定 - 如果它小於或等於每個網格指定的接地高度,則它被認為是接地的。

實際效能將根據以下因素而異

  • 高細節 LOD 消失的距離。一般來說,這應該非常近。
  • 較低 LOD 中的多邊形數量。一般來說,這應該非常低。
  • 使用的材質數量。理想情況下,所有網格都使用單個材質,而不是每個網格使用一個或多個材質。
  • 每個網格的長度(越長越好)。
  • 的效率 "track-lod-tree" 容器 "track-lod-tree" 容器.
  • 使用者可自定義的細節設定。
  • 等等。


  • Media:TS2009-track.zip - Auran TS2009 示例軌道的 MAX 原始碼。僅出於教育目的從 TrainzDev 網站分發。未授予任何複製或重新分發包含的模型或紋理的許可。
  • Media:TS2012-tunnel.rar - 資產的 MAX 原始碼:雙軌隧道 <KUID:523:19721248>。僅出於教育目的從 TrainzDev 網站分發。未授予任何複製或重新分發包含的模型或紋理的許可。
  • Media:TS2012-bridge.rar - 資產的 MAX 原始碼:板式桁架橋 <KUID:523:19721136>。僅出於教育目的從 TrainzDev 網站分發。未授予任何複製或重新分發包含的模型或紋理的許可。


[編輯 | 編輯原始碼]

 

註釋、腳註和參考資料

[編輯 | 編輯原始碼]

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

註釋

  1. 此連結(帶有連字元的名稱)更正確,但截至此註釋日期,頁面 KIND_Procedural-track 不存在。

 

腳註

 

參考資料

華夏公益教科書