自動踏切スクロール

鉄道の情景に欠かせない踏切部品がVRMではリリースされています。自動センサーを使うと簡単に設定できますが、 複線区間にある踏切上で列車がすれ違うと正しく動作しない、方向表示機は消えたままとかなりお粗末なものです。 このスクロールは、クセのある方向表示機の動作と複線以上でのすれ違いや追い越しなどにも完全に対応しました。

踏切関連のスクロールは、前例にghost氏の【gws/1.0】自動踏切スクロール(VRM4 でも動作します。作者が活動を終了されているので注意)がありますが、今回VRM5/Onlineの新仕様や自動センサーに合わせたチューニングを行い、 組み込みが楽になった(と感じるかは個人差もありそうですが)ほか、自動センサーの絶対方向検知でより正確に動作するようになりました。

このスクロールはVRM5/Online専用です。VRM4ユーザーの方にはご使用頂けませんので注意してください。 またこのスクロールでは自動センサーを使用します。

もくじ

自動踏切スクロールは組み込み方法がやや複雑です。必ず下の組み込みマニュアルに目を通してください。

  1. ダウンロード
  2. 下準備
  3. スクロールの組み込み-【1】踏切本体
  4. スクロールの組み込み-【2】踏切作動センサー
  5. 方向表示機と遮断機遅延動作の設定
  6. [応用編]単線区間の踏切

ダウンロード

以下のリンクをクリックするとzipアーカイブのダウンロードを開始します。

[Download] atcross201b.zip (6KB)

AKAGIはこのアーカイブファイルをダウンロード・解凍すること及び内容物を使用することに伴って発生したいかなる損害について、一切その責任を負わないものとします。 このことに合意いただける方は上記[Download]リンクをクリックしてダウンロードを開始してください。

ダウンロードの終了後、Readmeを参考にスクロールをインストールして下さい。

ファイルはZIP形式で圧縮されています。解凍ツールはVectorなどから入手できます。

下準備

大まかな手順は「踏切部品の配置」→「踏切本体スクロールの組み込み」→「踏切作動センサーの組み込み」→「方向表示機・遮断機遅延動作の設定」の4ステップになります。 踏切部品4個を例に、順を追って説明します。

まずは、踏切を設置したい区間に踏切部品を配置してください。踏切本体スクロールが、踏切部品の個数によって2個用、4個用、6個用となっているのでその数だけ設置します。

これからスクロールを組み込んでいくに当たって、踏切部品には適切に名前をつけておくと楽チンです。今回の例では、踏切部品とセンサーに図のように名前をつけました。

警報機の配置

センサーの配置

なお、踏切直後の開くセンサー(ここではSns1001とSns1004)に名前をつける際に、ダイアログの「後方台車を検出」のチェックボックスをONにしてください。

atseditor

スクロールの組み込み-【1】踏切本体

ではこれからスクロールを組み込みます。メニューの「レイアウト>>SCRIPTウィザード」を選ぶとスクリプトウィザードが起動します。

まずはじめに踏切本体を組み込みます。「踏切」カテゴリに含まれる「自動踏切β2.0(方向表示機対応)-【1】踏切本体」を選択してください。 踏切部品が2個用、4個用、6個用とありますので個数にあったものを選んでください。ウィザードは、簡易/詳細どちらから開始しても同じです。

wizard1

ウィザードを開始すると、踏切部品を選択する画面に切り替わります。重要なのは、1つ目に選んだ踏切部品は「制御の親」としてその踏切全体の動作を取り仕切る役割を担います。 この「親」がどれであったか分からなくなると、後にセンサーの設定をするときに困るハメになります。 親は、連番で付けた一番若い番号にするとか、一定のルールを定めておくとよいでしょう。

wizard2

2つ目以降は「子」になります。選ぶのは順不同ですが、どこまで選んだか分からなくならないように注意してください。

最後にOKを押すと踏切本体の組み込みが完了します。

wizard3

スクロールの組み込み-【2】踏切作動センサー

本体の組み込みは完了しましたが、このままでは動作しませんので引き続きセンサーにスクロールを組み込みます。

先ほどと同様にスクリプトウィザードを起動し、「踏切」カテゴライズされている「自動踏切β2.0(方向表示機対応)-【2】踏切作動センサー」を選択してください。 今回はウィザード上でパラメータの設定が必要な箇所がありますので、「詳細ウィザード」から開始してください

wizard4

組み込み対象となるセンサーを選択します。どこまで組み込んだか分からなくならないように注意してください。

wizard5

次に作動対象となる踏切の「制御の親」を選択します。選び間違いに注意してください。

wizard6

最後に、センサーから見て制御の親がどちらにあるかを設定します。これを逆にすると踏切が正しく動作しませんので注意してください。 設定後間違っていることが分かったら、スクリプトを直接編集することで修正できます。

wizard7

最後にOKを押すとセンサーの組み込みが完了します。センサーの個数だけこの作業を繰り返し、踏切に関係する全てのセンサーにこれを組み込んでください。

wizard8

方向表示機と遮断機遅延動作の設定

ここまでが正しく組み込めていれば、一応踏切は動作します。しかし、今から行う設定を行わないと方向表示機が正しく動作していません。 またこの工程で遮断機遅延動作(閉じるときのみ)を設定でき、よりリアルな踏切の動作を再現できます。 遮断機遅延動作を行う場合は、作動センサーから踏切までの距離を長めに取る必要があります。

まず、方向表示機の設定を行います。親部品はそのままでいいのですが、親と線路を挟んで反対側の警報機(Crs1002)のスクリプトダイアログを開いてください。以下、冒頭の部分を抜粋します。

//SCRWIZ-GLB[akg_AutoCrs_1_4]-IN
Var FlgDirection
set FlgDirection	1	//0=親と同方向	1=親と逆方向
Var VarDelay
set VarDelay		0	//踏切閉動作の遅延(ミリ秒)
add VarDelay 1

VarCrossing pCrsP
get pCrsP "Crs1001"


//SCRWIZ-GLB[akg_AutoCrs_1_4]OUT

緑色で強調した部分に注目してください。デフォルトでは0になっていますが、親の反対にあるので1に変更します。

次に遮断機遅延動作を設定します。この工程はすっ飛ばしてもらっても構いません。同様に踏切遮断機のスクリプトダイアログを開いてください。

//SCRWIZ-GLB[akg_AutoCrs_1_4]-IN
Var FlgDirection
set FlgDirection	0	//0=親と同方向	1=親と逆方向
Var VarDelay
set VarDelay		2000	//踏切閉動作の遅延(ミリ秒)
add VarDelay 1

VarCrossing pCrsP
get pCrsP "Crs1001"


//SCRWIZ-GLB[akg_AutoCrs_1_4]OUT

//踏切閉動作の遅延の箇所の数字が2000になっています。ここで遅延時間をミリ秒(1秒=1000ミリ秒)で指定してください。

以上で自動踏切の組み込みは終了です。お疲れさまでした。なお、TOMIX TCS自動踏切は警報機と遮断機が一体になっており、また方向表示機がありませんのでこの工程は不要です。

[応用編]単線区間の踏切

自動踏切スクロールは、複線と同様に単線区間に組み込むことで問題なく動作しますが、センサー設置位置の都合で「踏切通過後しばらくしないと開かない」という現象が発生します。 あまり見た目がよろしくないので、裏技的ですがこれを改善する方法を紹介します。

単線

踏切部品とセンサーを図のように配置します。センサーはすべて共通のスクリプトを組み込みますので、順/逆の通過で閉/開の動作を否応なしに行うのですが、 Sns1101,Sns1102では順方向に通過したときのみ踏切を閉じる、Sns1103,Sns1104には逆方向に通過したときのみ踏切を開けるというふうにしたいわけです。 まずは踏切本体、作動センサー共に複線のときと同様の方法でスクロールを組み込んでください。

Sns1101,Sns1102のスクリプトの一部を抜粋しました。緑色の部分は、今回不要な処理の部分です。ゴッソリ削除してください。

//SCRWIZ-FNC[akg_AutoCrs_2]-IN
BeginFunc MtdCrossing
        Var direction
        VarTrain train
        GetATSTrain train direction
        if direction    //進入処理
                if FlgDirection
                        add "pCrsP.VarCountPlus" 1
                else
                        add "pCrsP.VarCountMinus" 1
                endif
        else
                if FlgDirection
                        sub "pCrsP.VarCountMinus" 1
                else
                        sub "pCrsP.VarCountPlus" 1
                endif
        endif
        call pCrsP MtdCrossingP
EndFunc

//SCRWIZ-FNC[akg_AutoCrs_2]OUT

こちらはSns1103,Sns1104のスクリプトの一部です。同じように不要な部分を削ってしまってください。

//SCRWIZ-FNC[akg_AutoCrs_2]-IN
BeginFunc MtdCrossing
        Var direction
        VarTrain train
        GetATSTrain train direction
        if direction    //進入処理
                if FlgDirection
                        add "pCrsP.VarCountPlus" 1
                else
                        add "pCrsP.VarCountMinus" 1
                endif
        else
                if FlgDirection
                        sub "pCrsP.VarCountMinus" 1
                else
                        sub "pCrsP.VarCountPlus" 1
                endif
        endif
        call pCrsP MtdCrossingP
EndFunc

//SCRWIZ-FNC[akg_AutoCrs_2]OUT

以上です。複線+単線で3線が並走している場合などは、単線の部分にだけこの処理を行ってください。

困ったときは…

スクロールの組み込み方法や組み込み後の動作についてなにか分からないことがある場合、バグを発見された場合はBBSまたはメールでお気軽にご相談下さい。