スクリプトをコピーするには...
サンプルの右上に表示される
下記のアイコンを左クリックすると
スクリプトだけが別窓で開くので、
右クリックメニューの[すべて選択]→[コピー]をしてください。

スクリプトを貼り付けるには...
スクリプトの編集ウィンドウにあるメニューで[編集]→[張り付け]をしてください。

1.完成予定図
このページのスクリプトサンプルを使用した場合のビュワー動画です。
どのようなことが出来るのか、はじめに映像でご確認ください。
3.スクリプトを記述する
■ 信号機「信号機1-A」用スクリプト [非表示]

図の部分に配置した信号機「信号機1-A」へスクリプトを記述します。
下記の信号機スクリプトをコピーして貼り付けてください。
下記の信号機スクリプトをコピーして貼り付けてください。
▼ 信号機スクリプト
01 | //-------------変数を用意・初期設定 |
02 | Var ctrl-sig |
03 | SetSignal 6 |
04 |
05 | //---------通過間隔の取得用タイマー |
06 | Var cnt |
07 | Var counter |
08 | SetEventTimer this COUNTER counter 100 |
09 |
10 | BeginFunc COUNTER |
11 | add cnt 100 |
12 | EndFunc |
13 |
14 | //-------列車先頭を検知した時の処理 |
15 | BeginFunc RED |
16 | set cnt 0 |
17 | SetSignal 1 |
18 | KillEvent ctrl-sig |
19 | EndFunc |
20 |
21 | //---------------自動切り替えの処理 |
22 | BeginFunc TIMER |
23 | Var timer |
24 | mov timer cnt |
25 | SetEventTimer this CTRL-SIG ctrl-sig timer |
26 | call this CTRL-SIG |
27 | EndFunc |
28 |
29 | BeginFunc CTRL-SIG |
30 | Var status |
31 | GetSignal status |
32 | //-----注意現示の時は進行現示に切替 |
33 | ifeq status 3 |
34 | SetSignal 6 |
35 | KillEvent ctrl-sig |
36 | endif |
37 | //-----停止現示の時は注意現示に切替 |
38 | ifeq status 1 |
39 | SetSignal 3 |
40 | endif |
41 | EndFunc |
42 | |
■ 入口側のセンサー用スクリプト [表示]

図の部分に配置した入口側のセンサーへスクリプトを記述します。
下記のセンサースクリプトをコピーして貼り付けてください。
下記のセンサースクリプトをコピーして貼り付けてください。
▼ センサースクリプト
01 | //------検知場所を列車の先頭に設定 |
02 | SetSensorMode 0 |
03 |
04 | //----------------センサーイベント |
05 | Var detect |
06 | SetEventSensor DETECT detect |
07 |
08 | BeginFunc DETECT |
09 | call 信号機1-A RED |
10 | EndFunc |
11 | |
■ 信号機「信号機1-B」用スクリプト [表示]

図の部分に配置した信号機「信号機1-B」へスクリプトを記述します。
下記の信号機スクリプトをコピーして貼り付けてください。
下記の信号機スクリプトをコピーして貼り付けてください。
▼ 信号機スクリプト
01 | //-------------変数を用意・初期設定 |
02 | Var ctrl-sig |
03 | SetSignal 6 |
04 |
05 | //-------列車先頭を検知した時の処理 |
06 | BeginFunc RED |
07 | SetSignal 1 |
08 | KillEvent ctrl-sig |
09 | EndFunc |
10 |
11 | //---------------自動切り替えの処理 |
12 | BeginFunc TIMER |
13 | Var timer |
14 | mov timer 信号機1-A.cnt |
15 | SetEventTimer this CTRL-SIG ctrl-sig timer |
16 | EndFunc |
17 |
18 | BeginFunc CTRL-SIG |
19 | Var status |
20 | GetSignal status |
21 | //-----注意現示の時は進行現示に切替 |
22 | ifeq status 3 |
23 | SetSignal 6 |
24 | KillEvent ctrl-sig |
25 | endif |
26 | //-----停止現示の時は注意現示に切替 |
27 | ifeq status 1 |
28 | SetSignal 3 |
29 | endif |
30 | EndFunc |
31 | |
■ 出口側のセンサー用スクリプト [表示]

図の部分に配置した出口側のセンサーへスクリプトを記述します。
下記のセンサースクリプトをコピーして貼り付けてください。
下記のセンサースクリプトをコピーして貼り付けてください。
▼ センサースクリプト
01 | //------検知場所を列車の先頭に設定 |
02 | SetSensorMode 0 |
03 |
04 | //----------------センサーイベント |
05 | Var detect |
06 | SetEventSensor DETECT detect |
07 |
08 | BeginFunc DETECT |
09 | Var status |
10 | GetSensorMode status |
11 | //----列車の先頭を検知した時の処理 |
12 | ifzero status |
13 | call 信号機1-B RED |
14 | SetSensorMode 1 |
15 | //--列車の最後尾を検知した時の処理 |
16 | else |
17 | call 信号機1-A TIMER |
18 | call 信号機1-B TIMER |
19 | SetSensorMode 0 |
20 | endif |
21 | EndFunc |
22 | |
4.ビュワーで動作確認する

お疲れ様でした、以上でスクリプトの設定は完了です。
ビュワーを起動して、列車を通過させて信号機の動作を確認してください。
ビュワーを起動して、列車を通過させて信号機の動作を確認してください。
もし、ビュワーが起動できない場合や、
ご自身のレイアウトに合わせて改造したい場合など、
ご不明な点やご質問がありましたら、下記までお気軽にご連絡ください。