2.路線側の実装について
信号の実験用路線を作成しましたのでそれをベースに解説しようと思います。
実験用路線:「山手線(ニッポンの首都ぐるぐるライン) 原宿→池袋」
初期型205系の代表路線としていちおう山手線ってことにしましたが、
ATCだけでなくATS-Pの動きも確認できるよう、
原宿→ ATS-P →新宿→ ATC →目白→ ATS-P →池袋 と切り替わります。
信号の構文が埋もれて見づらくならないように
余計なストラクチャなどは殆ど置いていません。っていうか全線単線の殺風景な路線にしました。
あくまで信号の実験が目的なので駅間距離やカーブ設定など全くのデタラメです。
信号機の設置場所とかもかなりムラがあります。
BVE4用
【Route、Objectファイル】
【Soundファイル】
BVE5用
【シナリオファイル】
Senariosフォルダ直下に入れて下さい
【路線ファイル】
フォルダの中身を集約してSenariosフォルダ直下に入れて下さい
使用車両は当サイトの205系(ATC-6型装備車)をダウンロードして下さい。
ATS-Pの確認だけしたい方は当サイトの205系(非ATC車)でどうぞ。
原宿〜新宿間、目白〜池袋間で確認できます。
BVE5での車両の指定方法に馴染みのない方はこちらもご参照下さい↓
(1) 路線のストーリー概要
原宿駅
8:0000定刻出発。先行列車も4分前の7:5600定刻で出発
↓
先行列車が野生のイノシシ線路内立入りを発見したため次の代々木駅にて抑止、少し遅れて出発。
※停止現示でのATS-P動作確認が可能
↓
代々木駅
先行列車の遅延のため到着遅れる。
↓
新宿駅
ここで ATS-P → ATC に切替わる。
↓
先行列車との間隔が詰まっているため、車内信号の指示速度も制限気味。
↓
新大久保駅
このあたりからようやく先行列車との間隔も空いてくる。
↓
先行列車の回復運転がはかどり、指示速度も高速域になる。
※山手線の営業最高速度は90km/hだが、車内信号MAX値120km/hまでの表示確認
としてSection構文の信号インデックス'112'(120km/h)まで持たせてみた。
↓
高田馬場駅
↓
ここからSection構文の信号インデックス'109'(90km/h)までとして
本来の山手線らしい速度指示が出るようにした。
↓
目白駅
ここで再び ATC → ATS-P に戻る。
↓
途中で50km/h制限区間あり。
※速度制限のATS-P動作確認が可能
↓
池袋駅
(2) ATCの設定
ATC区間の構文です。
1.車両側の実装について でも触れましたが、信号インデックスは
インデックス101 ・・・ 自分がいる閉塞内に先行列車がいる
インデックス102 ・・・ 自分がいる次の閉塞内に先行列車がいる
インデックス103 ・・・ 自分がいる2閉塞先に先行列車がいる
・
・
・
インデックス112 ・・・ 自分がいる11閉塞先以降に先行列車がいる
を意味しており、車両側のAtsプラグイン設定によって車両特有の
各信号インデックスの指示速度が指定されます。
Section構文は左から順に 自分の閉塞;1閉塞先;2閉塞先;・・・;n閉塞先 と記入していきます。
(最後のインデックスの後は';'をつけてはいけません)
上画像@の構文はインデックス112(205系では120km/h指示)まで持たせてみました。
すると11閉塞先まで想定してATCが動くようになるので下の画像のように
120km/h指示の車内信号が表示されます。
(最高速度90km/hの山手線・京浜東北線ではありえないですね)
Aはインデックス109までにしてるので8閉塞先以降は同じ指示速度(最大90km/h指示)になり、かつての山手線らしい表示になります。
(3) ATS−Pの設定
@信号機と地上子のデザイン
まずは、若干蛇足になりますが、BVE4以降では
信号機や地上子のオブジェクトを作者が自由にデザインして配置することができます。
路線ファイルの冒頭で信号機(Signal)と地上子(Beacon)ファイルの格納場所を宣言します。
上記宣言部の格納フォルダ内容です。青枠は信号部分、緑枠は地上子部分です。
信号機は支柱部分は普通のオブジェクトですが、信号灯部分はG、YG、Y、YY、R現示のバリエーションがあるので
バリエーション分の画像を用意します。また、csvファイルだけでなくxファイルも必要になります。
信号灯部分のCSVファイルです。ここでは信号灯画像をハメる「枠」の位置と大きさを設定するだけで、
着色や画像の貼り付けはしません。このCSVファイルを変換ツール「CSV to X converter」(検索してね)に
食わせるとXファイルが自動的に生成されます。
これで信号灯部分に必要なファイルは
【CSVファイル】
signal.csv
【Xファイル】
signal.x
【信号画像】
signal0.bmp(停止R現示)、signal1.bmp(警戒YY現示)、
signal2.bmp(注意Y現示)、signal3.bmp(減速YG現示)、
signal4.bmp(進行G現示)
となり、ファイル名はsignalで統一し、信号画像は信号インデックスに沿って末尾に0〜4を付ける
・・・と見よう見マネで試してみたら動くようになりました。
自作の信号機と地上子
A信号機と地上子の設置構文
構文の解説の前にまず、ATS-Pの地上子の役割について簡単に触れておきます。
実際の動きとは若干異なる可能性があります。あくまでBVE製作の参考程度として読んで下さい。
前方の信号が停止(R)現示になると地上子は直上を通過する列車に
信号機の手前で停止できる減速パターンを送信します。
列車は信号機の前で止まれるよう、地上子から受け取った
減速パターン以内の速度で減速&停止しなければなりません。(@)
列車が減速パターンに近い速度でいると、パターン接近の警告が発生し、
ぶつかってしまうとパターンに沿った速度で強制的に減速させられます。(A)
地上子は「パターン発生・更新」と「即時停止」を設置しますが、設置位置は
・パターン発生・更新・・・閉塞信号機:600m,180m,85m手前、
絶対信号機:600m,280m,180m,85m,50m手前
・即時停止 ・・・出発信号機:25m手前、 場内・閉塞信号機:30m手前
となります。絶対信号機とは場内信号や出発信号とかのことで、停止(R)現示になる
可能性が比較的高いため地上子を多めに設置しているのだとか・・・。
また、閉塞区間が600mに満たない場合は600m手前の地上子は省略されるとかだったと思う。
(適当ですいません・・・)
地上子を一つの信号機の前に複数設置しているのは、途中で現示が上位(停止(R)→警戒(YY)とか)に
変わった場合、「やっぱ止まんなくてよくなったからパターン取り消すわ」という情報をタイムリーに
伝えないと列車は最初受け取ったパターンに支配されたままになるため、
その支配から卒業させるためにこまめに地上子を設置しているのです。
すなわちパターン発生・更新地上子には「パターン発生」させる責任と、取り消しになったら
「やっぱパターン取り消す」という情報に「更新」させる責任を担っているのであります。
そして即時停止地上子は、停止(R)現示で止まった列車に、警戒(YY)以上の進行許可が出た際に
それまで持っていた停止パターンを消去してあげる役割(パターン更新)と、万が一停止(R)現示にも
関わらず通過してしまった場合に列車を強制的に止める(極端なノロノロ運転だとごまかせる
場合もあるとか?)という役割を主に担います。
上記を踏まえてATS-Pの地上子と信号機の構文について解説します。
@〜A : 地上子(Beacon)構文
設定値は左から順に
・'3'or'4'・・・地上子タイプ(@'3':パターン発生・更新、A'4':即時停止)
・'0'・・・前述「(3)-@信号機と地上子のデザイン」の項、路線ファイル冒頭で宣言したオブジェクトインデックス
・'-1'・・・対となるセクション、ATS-Pでは'-1'(常に先行列車のいるセクション)を設定
速度制限にも地上子を使います。
設定値は左から順に
・'6'・・・地上子タイプ('6':速度制限)
・'0'・・・上記と同様、地上子オブジェクトのインデックス
・'20060'・・・速度制限区間までの距離とブレーキ制動速度
(200m先に制限区間があり、60km/h以上でブレーキがかかる)
B: 信号機(SigF、Section)構文
SigF構文の設定値は左から順に
・'0'・・・上記Beacon構文の設定値'0'と同様、路線ファイル冒頭で宣言したインデックス
・'1'・・・対となるセクション(1閉塞先なので'1'にする)
・';2.6;4.3'・・・信号灯部分の設置位置(2.6m右、高さ4.3mの所に設置)
Section構文の設定値
・'0;1;2;3;4'・・・左から順に1閉塞先、2閉塞先、・・・の信号インデックス。
信号インデックスは路線csvファイル冒頭で宣言した内容に従う。(下の画像参照)
なお、'0'と'4'はそれぞれ停止と進行。
その下のFreeObj構文は信号の支柱(ただのオブジェクト)です。
以上、いろいろ説明が抜けているかもしれませんが、こんな感じでATCとATS-Pは動くと思います。