1 頁 (共 1 頁)

openBVE 幕門測試

文章發表於 : 2009-03-25, 00:48
efilm
正話我拎左 kirisame 的幕門 object 來試 animated object。下面個 youtube 片就係正話 capture 的:

大家唔洗理影片入面 d object 係乜樣,因為呢 d 全部都係臨時的野,日後就會整過晒,唔會咁樣衰。



睇來關門時間係 fix 死左係同關門果個聲音檔播放時間一樣,無得再較快 d。

而家整到幕門開關會睇下架車係咪響個站度。如果唔係的話,架車開門時全條線所有幕門都會跟住開,關門都係。

而家整到個門開緊果時 / 關緊果時時識閃燈,但我係想整關緊門時識閃。而家係爭 1 個 condition,就係 check 而家 rightdoors 的 value 係咪細過正話的 rightdoors value。如果真係的話,咁就意味著係關緊門咁解。不過我試過 value 呢個變量,發覺佢好似唔係 return 正話 rightdoors 個數。唔知係用邊個 variable 來整? :oops:

Re: openBVE 幕門測試

文章發表於 : 2009-03-25, 01:22
大大師兄
架車個車頭好似旅遊巴個車頭咁。 :P

Re: openBVE 幕門測試

文章發表於 : 2009-03-25, 10:23
efilm
大大師兄 寫:架車個車頭好似旅遊巴個車頭咁。 :P

唔需要理會架車同個幕門係乜樣 :oops:
果個模係好耐以前 Ds6791 整的,我果時拎左來試 exterior object。

Re: openBVE 幕門測試

文章發表於 : 2009-03-25, 13:04
kirisame
efilm:係kirisame啦=.=冇用個舊名好耐
1)個texture真係好樣衰咩=.=
呢個用lu ped相wo
2)最近個門唔關ge?另外閃燈用咩script咁........未研究到

Re: openBVE 幕門測試

文章發表於 : 2009-03-25, 13:21
efilm
剛才終於整好左有加速,唔再係 constant velocity。


度門用左呢條式來令佢郁:
6.png

個 curve 就可以令剛開始郁時郁得慢 d,開到中段時就郁返快返,就來郁完時又郁得慢 d。

以下就係果段 code:(列車前進方向右邊的車門、月台望向列車時左半邊的幕門)
代碼: 選擇全部
[Object]
Position = 0, 0, 0
States = psd-L.csv
TranslateZFunction = If[abs[trackdistance] < 10, -0.5 * (Sin[rightdoors * 3.1415926535898 + 4.7123889803847] + 1), 0]


將果段 Function 轉做近似 pseudo code 的野
代碼: 選擇全部
if (列車同個幕門的距離係 ±10 米) {
       將 rightdoors 代入果條式
} else {
       不要郁動
}


個 if condition 係要 check 下架車係咪響個站的範圍。因為陣間條式個 variable 係用返畀你做 exterior train object 車門果個變量。如果唔 check 的到,到時你架車響第道開門的話咁全條線的幕門都會同時開門。個 10m 距離只係求其打上去,到時真係整果時要微調一下。

條式 -0.5 * (Sin[rightdoors * 3.1415926535898 + 4.7123889803847] + 1) 開頭的負號係因為要向左邊郁,如果係整右半邊的門就 del 左個負號。

而「rightdoors * 3.1415926535898」就係「2 * rightdoors * 90°」。要乘 90° 的原因係因為 rightdoors 所 return 的數係介乎 0 到 1,咁我地只係要個 curve 的頭 90° 的部分。所以最大的數(即係 1)轉做 90° 以乎合返個 curve 的情況。

留意條式只係可以令個門郁到 1m。如果想改做其他距離,好簡單,加返句 TranslateZDirection = 0, 0, 1.1,1.1 係代表你想將度門郁到有幾遠。

Re: openBVE 幕門測試

文章發表於 : 2009-03-25, 13:59
efilm
kirisame 寫:efilm:係kirisame啦=.=冇用個舊名好耐
1)個texture真係好樣衰咩=.=
呢個用lu ped相wo
2)最近個門唔關ge?另外閃燈用咩script咁........未研究到


因為而家個幕門真係得個門,其他人唔知頭唔知路的話咪覺得整得差,所以講定先。幕門個 Texture 都 ok 的。
個門唔識閂?我試果時 d 門全部都識郁。

呢個就係而家頂箱果 part:
代碼: 選擇全部
[Object]
States = top1.csv, top2.csv
StateFunction = If[abs[trackdistance] < 10, If[rightdoors == 1, 0, If[rightdoors < 1 & rightdoors > 0 , value == 0, 1]], 1]
RefreshRate = 0.1


入面套左幾層 if,果時係想整閂門果下識閃,所以最入果層係應該要加個驗係咪關門的條件。不過如果你唔想閃 / 想開關門都閃的話,可以改改個 function,等佢簡單 d。

Re: openBVE 幕門測試

文章發表於 : 2009-03-25, 16:16
efilm

今次有錄埋聲、加埋光暈效果,效果唔錯嗎? ;)

1.jpg

Re: openBVE 幕門測試

文章發表於 : 2009-03-25, 21:07
UCR683
eFilm,你的作品作得好!
現在下一個難題是:如何讓列車車門與月台幕門的動態物件,作同步活動。
這牽涉列車信號系統Plugin 的編程。

Re: openBVE 幕門測試

文章發表於 : 2009-03-25, 21:17
efilm
UCR683 寫:eFilm,你的作品作得好!
現在下一個難題是:如何讓列車車門與月台幕門的動態物件,作同步活動。
這牽涉列車信號系統Plugin 的編程。

其實我唔覺呢個係關列車 plugin 事,呢個應該係關 openBVE 本身事,我之前已經講過呢個問題:
http://openbve.freeforums.org/viewtopic.php?f=21&t=569
只係得個唔知頭唔知路的人亂咁 reply。 :oops:

Re: openBVE 幕門測試

文章發表於 : 2009-03-26, 10:43
kirisame
UCR683 寫:eFilm,你的作品作得好!
現在下一個難題是:如何讓列車車門與月台幕門的動態物件,作同步活動。
這牽涉列車信號系統Plugin 的編程。

這應該也不用plugin方面了
最初小弟用作開關幕門嘅scrpit正是參考松埔電鐵700系,關門動作相約
應該只要幕門同列車車門animated個code夾到就得(當然,幕門係slide,車就通常係plug-door,煩dd)

當然啦,你搵人地d車來行就當然no!
因為cl323好,松埔700系好,d script都唔同,車門移動都有唔同

Re: openBVE 幕門測試

文章發表於 : 2009-03-26, 16:24
efilm
kirisame 寫:這應該也不用plugin方面了
最初小弟用作開關幕門嘅scrpit正是參考松埔電鐵700系,關門動作相約
應該只要幕門同列車車門animated個code夾到就得(當然,幕門係slide,車就通常係plug-door,煩dd)

當然啦,你搵人地d車來行就當然no!
因為cl323好,松埔700系好,d script都唔同,車門移動都有唔同

而家呢個 object 動作同聲唔同步係唔關車型事。因為我地個 object 係接 openBVE 傳畀我地的車門狀態。其實係 openBVE 根本就唔知個門幾時先係真正開緊同閂緊。

michelle 講左話日後會補返呢個 set 開關門時間的功能: ;)
http://openbve.freeforums.org/doors-ope ... html#p2981

Re: openBVE 幕門測試

文章發表於 : 2009-03-26, 21:37
efilm
睇左 michelle 的 reply 講 rightdoorsrightdoorstarget 的分別之後,而家整到盞燈只係會響關門時先閃。

rightdoors 係會 return 架車目前車門的狀態 (return 出來的數係介乎 0 到 1 之間)。
rightdoorstarget 係會 return 0 或者 1。return 0 的話就代表 rightdoors 個數將會跌(即係閂緊門);return 1 就即係話 rightdoors 個數將會升(即係開緊門)。

頂箱:(top1.csv = 著左燈;top2.csv = 熄左燈)
代碼: 選擇全部
[Object]
States = top1.csv, top2.csv
StateFunction = If[abs[trackdistance] < 10, If[rightdoorstarget == 1, 0, If[abs[trackdistance] < 10 & rightdoors > 0 & rightdoorstarget == 0, value == 0, 1]], 1]
RefreshRate = 0.2

光暈:(個 StateFunction 係一樣的)
代碼: 選擇全部
[Object]
States = glow.csv
StateFunction = If[abs[trackdistance] < 10, If[rightdoorstarget == 1, 0, If[abs[trackdistance] < 10 & rightdoors > 0 & rightdoorstarget == 0, value == 0, 1]], 1]
RefreshRate = 0.2

Re: openBVE 幕門測試

文章發表於 : 2009-03-27, 10:45
kirisame
咁.............
用rightdoorstarget,
如果return 0(約5秒),可以用scrpit,令幕門關門2~3秒,列車2~3秒關到門再"plug"入去(條式再林)
如果return 1,就用另一條scrpit,令佢開門比預設耐d............
唔知得唔得?

Re: openBVE 幕門測試

文章發表於 : 2009-03-27, 11:42
efilm
kirisame 寫:咁.............
用rightdoorstarget,
如果return 0(約5秒),可以用scrpit,令幕門關門2~3秒,列車2~3秒關到門再"plug"入去(條式再林)
如果return 1,就用另一條scrpit,令佢開門比預設耐d............
唔知得唔得?

好似 Rail Sim Routes UK 咁整咪得:
http://railsimroutes.net/blog/?p=64
先整句郁 X 軸的 function,之後 openBVE 就會執行 Z 軸的 function。

如果你想響目前整到同聲同步的話,或者要改 Fuction / 借助 DLL。
幕門同車門開關想有 d delay 的話應該可以試改 Fuction / 借助 DLL。

Re: openBVE 幕門測試

文章發表於 : 2009-04-10, 19:07
YUNG`
efilm 寫:
今次有錄埋聲、加埋光暈效果,效果唔錯嗎? ;)

1.jpg



關門聲取自Transperth B-series train ;)