
ここでは、
VRM4CV標準化編成用スクリプト(テスト用機能限定版)
VRM4CV標準化自動合流ポイント用スクリプト
VRM4CV標準化自動合流ポイント用センサー(直進方向)
VRM4CV標準化自動合流ポイント用センサー(分岐方向)
VRM4CV標準化自動合流トグル分岐ポイントセンサー
VRM4CV標準化自動合流トグル分岐ポイント
VRM4CV標準化ASCセンサー(棒線駅型)
VRM4CV標準化ASCセンサー(待避駅型)
VRM4CV標準化待避駅出場報告センサー
を使用しています。
<解説(まずは上段分で)>
編成は画面左より「1」キーで「普通列車」(下:321系)が発車、「2」キーで「快速列車」(上:223系)が発車します。
発車後にまず来るのはダブルクロスポイントです。この部分は4つのポイントで構成されていますが、そのうち3つの明るい緑が「自動合流ポイント」です。「自動合流ポイント」は2線側の直進側と分岐側に、それぞれ直進側用と分岐側用のセンサーを置くことで編成通過時に自動的に合流できるようにすることを目的としていますが、1線側にどちらかのセンサーを置くことで指定した方向に進路を決定させるという使い方も出来ます。

<水色が直進方向指示、紫色が分岐方向指示>
この図でいくと左2つのポイントでそういう使い方をしており、右上が本来の使い方である自動合流用となっています。右下の暗い緑色のポイントは「トグル式ポイント」なのですが、これについては後述します。

ダブルクロスポイントを通過すると、次は途中駅です。行きは待避駅、帰りは棒線駅に到着します。今回は編成側で待避駅設定を両編成とも駅の指示に従う設定にしてあります。そして、左の黄色い「ASCセンサー(待避駅型)」では、「普通」を待避線で待機、「快速」を通過線で通過に設定しています。このセンサーにはそのほかに停車までの距離、停車時間を指定でき、直後の「自動合流ポイント」の動作命令を編成に受け渡す役目も担います。
この待避駅の出口もまた「自動合流ポイント」で合流し、一番右の「待避駅出場報告センサー」で、待避線に列車がいれば編成通過後にその待避列車を発車させることになります。
---*---*---*---
さて、今の「待避列車を発車させる」のところで、「あれ、おかしいな?」と気がついた方はいらっしゃいますでしょうか? ここに一つ大きな要素が隠れているのですが、お解りでしょうか?
この「VRM4CV標準化スクリプト構想」は、部品名での参照を使用しない規格です。なので、待避列車が「待避駅出場報告センサー」上を通過していない以上、「待避駅出場報告センサー」は待避列車の参照値を知りません。知っているのは通過した編成の参照値だけです。故に「待避駅出場報告センサー」は直接待避列車を発車させる術を持たないのです。
そこでこれを解決するのが、私が何度か名前だけ書いていた「センサーチェーン構造」というものです。
「待避駅出場報告センサー」は初期状態では、手前に配置された「ASCセンサー(待避駅型)」のことすら知りません。しかし、編成が通過すれば、その編成が手前の「ASCセンサー(待避駅型)」のオブジェクト参照値を運んできて教えてもらうことができます。
つまり、編成が運び屋になることで、2つのセンサー間での通信がセンサーの固有名を使わなくても可能になる。そうすれば、「ASCセンサー(待避駅型)」上は待避列車が通過しているので、待避列車の参照値を知ることも出来るのです。 まぁ、今回の場合は「ASCセンサー(待避駅型)」の方で管理しかったので、「待避駅出場報告センサー」は「ASCセンサー(待避駅型)」に対して通過の報告を与えるだけで、実際の命令は「ASCセンサー(待避駅型)」から出していますけどね。
そして、今回は1対1のリンクだけでしたが、このリンクは更に次のセンサーへも編成を通じて繋げることが出来ます。そうやって次々と繋げていけばチェーン状態が構築でき、1つ前のセンサーだけでなく、2つ3つ前のセンサー及びセンサーが持っている情報も取得が出来るのです。これが「センサーチェーン構造」という名前の由来であり、今後閉塞運転の再現等に大きな成果を上げるだろうと思っています。既に初歩的なテストは終わっていますし、その有効性は確認できています。
---*---*---*---
さて、話を戻しますと、もう一方の「ASCセンサー(棒線駅型)」は非常に単純です。指定の列車種別編成を停車・自動再発車させるだけです。センサー1個を置くだけなので非常に簡単です。
<本レイアウトの操作>
まずは「1」キーを押して「普通列車」を発車させてください。「普通列車」は待避駅で待避するので、次は「2」キーで「快速列車」を発車。待避駅通過後、「普通列車」は自動的に発車します。もう一方の折り返し駅は自動的に再発車しますので、キーを押す必要はありません。棒線駅では「快速列車」は通過、「普通列車」は停車・再発車し、元の駅に戻ります。スタート駅は自動再発車の機能はありません。キー操作でのみ発車できます。

さて、この絵の通り、全く同じよう路線が2つありますが、灰色のものはコピーしたものです。そして、一部変更しています。

1つ目は、前述していた「トグル式ポイント」の件です。トグル式は通過する度に勝手に切り替わっていくので、例えば「普通列車」を発車させず、「快速列車」ばかりを発車させていた場合には下記のように、

いつかは衝突します。そこで前回使った「ターミナル駅入場指令センサー」を使ったものが下段のものです。これだと指定したホームに必ず入るので衝突は発生しません。ただ、この程度の規模の折り返し駅に「ターミナル駅入場指令センサー」を使うのも大袈裟だし面倒なので、今後折り返し駅用のASCセンサーを考えようかと思っています。幾つか追加したい機能もありますし。
次に2つ目は上段の一番左の赤いASCセンサーで、これも前回使った「エンドレール手前で停止と反転の役目」として使っています。が、駅でいきなり急停車するのも何か変なので、方向判断型のASCセンサーに置き換えて、停車を少しは滑らかにしています。
この方向判断には「GetDirection」を使用しています。ということは、レールの向きに依存します(マニュアルには台車の向きに依存すると書いてあるけど、それじゃ何のことかわからんだろうに)ので、動作がおかしい場合にはレールを180度反転させる必要がありますが、カーブレールだとそうもいかないので、スクリプト内の比較値を-1から1に変えてやる必要があったりもします。ちょっとだけ厄介です。
この方向判断型ASCセンサーは1方向から突入してきた場合のみ動作しますので、
moko氏の日向車両mini「【スクテン】No.001」に書かれている、
ルール
編成末尾がセンサーを越えないように停車させて下さい。センサーを越えて停車した場合は正常に機能しません。編成長が長ければ、そのぶん緩やかに減速させること可能です。
の対処方法の1つです。もっとも、日向車両mini「【スクテン】No.002」では「GetDirection2」を使って既に方向判断にも対応されていますが。
ただ、「GetDirection2」は「折り返しループ」があると確か使い物にならないはずなので、どういう路線構造になるか判らないこちらではレール向き依存の「GetDirection」を使い、この場だけで完結させているということです。
---*---*---*---
ということで、ダウンロードはコチラから。これもVRM4第6号だけで使えるはずです。