跳至主要内容

openBVE 架設

· 閱讀時間約 5 分鐘

前言

昨天在搭六家線回新竹的時候,覺得不懂為什麼火車開這麼慢,於是就自己來架設了!要知道蓋火車不容易,然後說真的在電腦也沒這麼容易

csv 系統

架設的系統居然是 .csv 有點好笑,但是難度很高

語法筆記

Version 1.0



With Structure
.Rail(1) ../object/HC/Tracks/Rail_01.x
.Rail(2) ../object/HC/Tracks/Rail_02.x
.FreeObj(1) ../object/HC/Tracks/Rail_01.x
.FreeObj(2) ../object/HC/Tracks/Rail_02.x
.FreeObj(3) ../object/HC/Tracks/Rail_03.x

.FreeObj(10) ../object/HC/Station/Platform/PF_L_01.x
.FreeObj(11) ../object/HC/Station/HomeDoor/FormDoorL(openBVE).animated
.FreeObj(12) ../object/HC/Station/Platform/PF_R_01.x
.FreeObj(13) ../object/HC/Station/HomeDoor/FormDoorR(openBVE).animated

with Structure

各位我剛剛打上面的標題時,快笑瘋,我還是不會拼 Structure

首先第一句

.Rail(1) ../object/HC/Tracks/Rail_01.x

.Rail(1) 的意思是宣告這個 Rail 物件的第一條軌道為: Rail_01.x 的檔案

.FreeObj(10) ../object/HC/Station/Platform/PF_L_01.x
.FreeObj(11) ../object/HC/Station/HomeDoor/FormDoorL(openBVE).animated
.FreeObj(12) ../object/HC/Station/Platform/PF_R_01.x
.FreeObj(13) ../object/HC/Station/HomeDoor/FormDoorR(openBVE).animated

接著是 其他物件 (非軌道) 就會使用 FreeObj

  • PF_L_01.x : 月台地板
  • FormDoorL : 左邊月台門
  • FormDoorR : 右邊月台門

因為這邊作者做的素材有設定動畫,所以就要加一些參數在後面

我知道台鐵沒錢 沒空加月台門但是這..還是很重要啦

with track

With Track
0, .RailType 1
0, .Rail 1; 3.7; 0; 0

0, .Station 新莊; 20.0030; 20.0100; 0; -1
80, .Stop 0


0, .FreeObj 0;1;0;0, .FreeObj 1;2;0;0, .FreeObj 0;10;-0.25;0, .FreeObj 0;11;-0.25;0
5, .FreeObj 0;1;0;0, .FreeObj 1;2;0;0, .FreeObj 0;10;-0.25;0, .FreeObj 0;11;-0.25;0
10, .FreeObj 0;1;0;0, .FreeObj 1;2;0;0, .FreeObj 0;10;-0.25;0, .FreeObj 0;11;-0.25;0
15, .FreeObj 0;1;0;0, .FreeObj 1;2;0;0, .FreeObj 0;10;-0.25;0, .FreeObj 0;11;-0.25;0

補充:; 是分隔的一種,也可以當作註解

宣告軌道類型

0, .RailType 1 ; 這裡宣告軌道類型(對應你設定的 Rail_01.x)

這裡有點複雜:

  • 0 是代表我們駕駛的火車跑的軌道
  • .RailType 1 是對應我們上面的 .Rail(1)

宣告隔壁軌道

0, .Rail 1; 3.7; 0; 0

有時候對面可能會有回車的軌道,因此這邊建立 (宣告) 一個新的軌道:

  • 0 代表:O公尺開始
  • .Rail 1:宣告隔壁 1 號軌道
  • 3.7:與主軌道的 水平偏移
  • 0:與主軌道的 垂直偏移
  • 0 : 使用 .Rail(1) 的軌道樣式

設立站點

0, .Station 新莊; 20.0030; 20.0100; 0; -1
80, .Stop 0

這一段是建立新站:新莊

  • 0 : 在 0公尺處建立此車站
  • .Station 新莊 :建立新莊這一站點
  • 20.0030 : 這裡代表列車預計在 20 點 00 分 30 秒 到達新莊站。
  • 20.0100 : 這裡代表列車預計在 20 點 01 分 00 秒 從新莊站發車,也就是要在這站停靠 30 秒)。
  • 0:通過或停靠設定。

0 代表**「普通車(停靠)」**。 如果是 1 則代表「快速/急行(通過)」。

  • -1:開門方向控制(關鍵!)

-1 代表**「開啟左側車門」**(火車前進方向的左邊)。 如果是 1 代表開啟右側車門。 如果是 0 則代表兩邊都不開。

  • 80, .Stop 0 (定義停車位置)
    這一行是在告訴遊戲:「司機員必須把火車的車頭停在 80 公尺(80m) 的位置。」
    • 80,:這個停止點設在路線的 80m 處。

    • .Stop:宣告一個「停車位置(Stop Board)」。

    • 0:適用列車編組長度。

    • 在 OpenBVE 中,0 代表 所有編組長度的列車都必須停在這裡

    • 如果路線有分「4輛編成停這裡、8輛編成停後面」,就可以透過這個數字來區分(例如 80, .Stop 8 代表 8 輛編組的車停在 80m)。這裡設 0 就是不管你開幾節車廂的列車,通通都要對齊 80m。

台鐵就很常讓我不知道在哪裡上下車哈哈哈哈哈哈

設立 FreeObj

0, .FreeObj 0;1;0;0,

這裡就是建立 物件擺放了,挺麻煩的是:得用程式完成 首先最前面的 0 意思是在 0 公尺處要放什麼,也就是說 我上面的設計是 每五公尺 設計物件

  1. 第一個數字 0(軌道通道編號)
  • 代表:這個物件要對齊(綁定)哪一條軌道。
  • 意思: 0 代表玩家開車的 0 號主線。如果這裡寫 1,就是對齊你另外鋪設的 1 號軌道(例如對向軌道)。
  1. 第二個數字 1(物件索引編號 / ID)
  • 代表:你要放哪一個 3D 模型物件。
  • 意思: 電腦會去最上方的 With Structure 區塊尋找 .FreeObj(1) 後面對應的檔案路徑。在你的檔案中,編號 1 對應的就是 Rail_01.x(主線軌道模型)。
  1. 第三個數字 0(X 軸水平偏移量,單位:公尺)
  • 代表:物件距離軌道中心線左右偏移多少。
  • 意思: 0 代表完全不偏移,模型剛好放在軌道正中間。
  • 如果設為正數(如 1.5),物件會往右偏移 1.5 公尺。
  • 如果設為負數(如 -1.25),物件會往左偏移 1.25 公尺(例如你的月台位置)。
  1. 第四個數字 0(Y 軸垂直偏移量,單位:公尺)
  • 代表:物件距離軌道面的高度偏移多少。
  • 意思: 0 代表高度不偏移,物件底部剛好貼齊軌道面。
  • 如果設為正數(如 0.5),物件會向上飄浮 0.5 公尺。
  • 如果設為負數(如 -1.45),物件會向下沉入地底 1.45 公尺(通常用來調整月台的高度,避免月台太高撞到車門)。

今天先這樣,明天繼續