設定ファイル仕様 - magicant/bve-autopilot GitHub Wiki
bve-autopilot 設定ファイル仕様
設定ファイルは bve-autopilot.dll ファイルと同じフォルダ内に autopilot.ini というファイル名で置きます。
通常の INI ファイルと同様に、 [...]
でセクション名を指定し 設定名 = 設定値
で値を設定します。
ファイルの書き方は、テスト用シナリオの車両データで使用している autopilot.ini を参考にしてください。
bve-autopilot は設定ファイルがないデフォルト状態でも ATO/TASC として最低限の動作をするように設計してありますので、全ての設定値を記載した設定ファイルを最初から用意する必要はありません。まずは設定ファイルがない状態で動作確認をし、必要に応じて設定値を書き加えていくことをお勧めします。
[init]
セクション
起動時のモード
シナリオが読み込まれたときに ATO/TASC が最初から有効になっているかどうかを設定します。
- 設定名とデフォルト値:
mode = ato
- 設定値: ATO と TASC をどちらも無効にするには
off
、TASC のみ有効にするにはtasc
、どちらも有効にするにはato
。 - 使用可能なバージョン: v0.8 以降
TASC を無効にして ATO のみ有効にすることはできません。
[control]
セクション
モード切替順序
状態切り替えキーを押したときに ATO/TASC の有効/無効が切り替わる順序および切り替え可能な状態を指定します。
- 設定名とデフォルト値:
modes = ato, tasc, off
- 設定値: 状態切り替えキーを押したときに切り替わる状態をカンマ区切りで指定します。記載できる値は以下の三つです
ato
: ATO と TASC が両方有効な状態tasc
: ATO が無効で TASC のみ有効な状態off
: ATO と TASC が両方無効な状態
- 使用可能なバージョン: v1.8 以降
状態切り替えキーを押すと、この設定値で指定した順序で状態が切り替わります。例えばデフォルトの modes = ato, tasc, off
では、両方有効 ↠ TASC のみ有効 ↠ 両方無効の順に切り替わります。
設定値で指定しなかった状態は選べなくなります。例えば modes = ato, off
とすると、両方有効と両方無効の間で切り替えができるようになり、TASC のみ有効な状態にはできなくなります。 modes = tasc, off
だと ATO が常に無効で、TASC のみ切り替え可能になります。
TASC を無効にして ATO のみ有効にした状態にはできません。
[dynamics]
セクション
車両長
車両の一両当たりの長さを設定します。
- 設定名とデフォルト値:
carlength = 20.0
- 設定値: 車両の長さをメートル単位の正の実数で指定します。
- 使用可能なバージョン: v0.2 以降
車両パラメーターファイルで [Dynamics]
セクションの CarLength
キーに設定する値と同じです。ただし設定名 carlength
は小文字にしてください。この値がずれていると制限速度区間を抜けていないのに列車が加速する恐れがあります。
[power]
セクション
加速終了遅延
力行レバーを切にしてから実際に加速が止まるまでの時間を設定します。
- 設定名とデフォルト値:
offdelay = 2.0
※ - 設定値: 時間差を秒単位の 0 以上の実数で指定します。
- 使用可能なバージョン: v0.6 以降
この値が小さすぎると加速し過ぎて制限速度を超過する可能性があります。加速を止めた直後にすぐにブレーキが働いてしまう場合はこの値を大きめにしてください。
この値が大きすぎると加速をやめるタイミングが早くなり再加速をするタイミングが遅くなるので制限速度よりも低めの速度で走行しがちになります。
※ v0.9 でデフォルト値が 2 秒に変わりました。v0.8 以前のデフォルト値は 1 秒でした。
入力ノッチ変換
プラグインが受け取った力行ノッチ (手動運転時のマスコンの指令) に対して、プラグインが出力する力行ノッチの対応を定義します。
- 設定名とデフォルト値:
translation = 1, 2, 3, 4, ...
- 設定値: 出力する力行ノッチをカンマ区切りの自然数で指定します。
- 使用可能なバージョン: v1.16 以降
この設定は [acceleration]
セクションで手動運転時の力行段数よりも多いノッチを設定した場合に意味があります。例えば、手動運転時マスコンが P1~P4 の 4 段階で操作できる車両があり、[acceleration]
セクションで 10 段のノッチを設定したとします。10 段のノッチに対して加速力の差が等分されている場合、手動運転時に P1~P4 の範囲のノッチでそのまま力行すると加速がとても弱くなってしまいます。ここで translation = 2, 4, 7, 10
と設定すると、手動運転時の P1, P2, P3, P4 がそれぞれ ATO 運転時の P2, P4, P7, P10 に対応するようにノッチ段数が変換され、適切な加速力を得ることができます。
この機能については拡張力行指令の解説も参照してください。
[acceleration]
セクション
速度域および力行ノッチごとに列車の加速度を設定します。ここで設定した加速度は、ATO が出力する力行ノッチを選択する計算で使われます。
- 設定名:
=
の左側には、速度を km/h 単位で記載します。 - 設定値:
=
の右側には、速度に対応する加速度(よりも少し大きめの数字)を力行ノッチごとにカンマ区切りで km/h/s 単位で記載します。- 例えば力行ノッチが P1 から P5 までの 5 段階ある場合は、
1.5, 2.5, 3.0, 3.3, 3.3
のように数字を五つ並べます。 - 数字を
0
にすると、そのノッチはその速度以上で使用されなくなります。
- 例えば力行ノッチが P1 から P5 までの 5 段階ある場合は、
- 使用可能なバージョン: v1.11 以降
- 手動ノッチの段数と異なる設定は v1.16 以降
BVE の車両物理量ウィンドウ等を使って車両データの実際の加速度を測定し、測定値と同じか 10% 程度大きな値を記載することをお勧めします。記載した値が実際の加速度より小さすぎると ATO が加速し過ぎて制限速度を超過する可能性があります。記載した値が大きすぎると再加速をするタイミングが遅くなるので制限速度よりも低めの速度で走行しがちになります。
ここで設定した加速度は線形補間されるのではなく、低い方の速度に従って階段状に補間されます。例えば 0 km/h での加速度の次に 10 km/h での加速度が記載されている場合、0 km/h 以上 10 km/h 未満の速度域での加速度は 0 km/h での加速度をそのまま使用して計算されます。
[acceleration]
セクション全体の記載例を挙げておきます。以下は、mackoy さんの京成千葉線データに含まれている京成 3500 形更新車の加速度データです。
[acceleration]
0 = 1.6, 4.0, 4.0, 4.0, 4.0
10 = 0.0, 4.0, 4.0, 4.0, 4.0
23 = 0.0, 2.0, 4.0, 4.0, 4.0
26 = 0.0, 1.0, 4.0, 4.0, 4.0
30 = 0.0, 0.0, 4.0, 4.0, 4.0
40 = 0.0, 0.0, 3.2, 4.0, 4.0
45 = 0.0, 0.0, 2.0, 4.0, 4.0
50 = 0.0, 0.0, 1.5, 3.0, 3.5
55 = 0.0, 0.0, 1.0, 2.2, 3.5
60 = 0.0, 0.0, 0.0, 1.7, 3.0
70 = 0.0, 0.0, 0.0, 1.1, 2.0
75 = 0.0, 0.0, 0.0, 1.0, 1.6
85 = 0.0, 0.0, 0.0, 0.0, 1.0
100 = 0.0, 0.0, 0.0, 0.0, 0.6
設定ファイルに記載がない場合のデフォルトは以下の通りです。(...
は車両データの力行ノッチの数に応じて記載数が自動調整されるという意味であり、実際に設定ファイルに ...
と記載できるわけではありません)
[acceleration]
0 = 2.5, 5.0, 5.0, 5.0, ...
10 = 0.0, 5.0, 5.0, 5.0, ...
バージョン 1.16 以降では、手動運転時のマスコンの段数とは異なる段数の加速度を設定できます。例えば以下のように 10 段のノッチごとの加速度を設定すると、ATO はこれら 10 段階の強さで力行指令を制御します。この場合、車両性能ファイルの進段パラメーターテーブルでこの段数に応じた RequiredNotch_Up/Down が設定されている必要があります。また、入力ノッチ変換の値を設定しないと手動運転時の力行ノッチが正常に反映されません。この機能については拡張力行指令の解説も参照してください。
[acceleration]
0 = 0.3, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.0
10 = 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.0
(以下略)
[braking]
セクション
最大減速度
車両の常用ブレーキの最大減速度を設定します。
- 設定名とデフォルト値:
maxdeceleration = 3.0
- 設定値: 減速度を km/h/s 単位の正の実数で指定します。
- 使用可能なバージョン: v0.1 以降
この値が小さすぎるとブレーキのかけ始めが早くなるためより長い時間をかけてゆっくりと減速するようになります。 この値が大きすぎるとブレーキのかけ始めが遅くなるため過走しやすくなります。
減速中にブレーキを小刻みに弱くしたり強くしたりを繰り返す挙動が発生する場合は、この値が大きすぎる可能性があるのでより小さい値に変えてみてください。
指令の強さ
常用ブレーキの各ノッチにおけるブレーキ指令の強さを設定します。
- 設定名とデフォルト値:
pressurerates = 0
- 設定値: 常用最大ブレーキの強さを 1 として、常用ブレーキの各ノッチ (緩め位置を含む) のブレーキの強さの比をカンマ区切りで指定します。
- 車両パラメーターファイルの
PressureRates
に書かれている設定値をそのままコピペすれば OK です。ただし設定名pressurerates
は小文字にしてください。
- 車両パラメーターファイルの
- 使用可能なバージョン: v0.7 以降
この値が設定されていない場合は、0 から 1 までの間で各ノッチを等分するように値が線形補間されます。ただし ATS 確認ノッチ (車両パラメーターファイルの AtsCancelNotch
) に満たないノッチは 0 とみなされます。また、書かれている値がノッチの数に満たない場合も同様に残りのノッチが線形補間されます。書かれている値が多すぎるときは余ったものは単に無視されます。
この数列の最初の値は 0 である必要があります。また数列の値は単調増加になっている (昇順に並べられている) 必要があります。
v0.8 以降では、より多くの値を設定することで TASC/ATO に手動ブレーキ時とは別のブレーキ指令を出力させることができます。詳しくは拡張ブレーキ指令を参照してください。
反応時間
ブレーキレバーを操作してから実際に減速度が変化するまでの時間を設定します。
- 設定名とデフォルト値:
effectlag = 0.2
- 設定値: 減速度が変化するまでの時間を秒単位の 0 以上の実数で指定します。
- 使用可能なバージョン: v0.7 以降
車両が停止する瞬間まで強いブレーキがかかっていて停止時の衝撃が強い場合は、この値を大きくすることで停止の直前にブレーキを緩めて衝撃を緩和する効果が期待されます。 停止直前にブレーキを緩めるのが早すぎて過走してしまう場合はこの値を低くしてください。 ただし車両性能や路線の特性によってはこの設定を調整してもほとんど動作が変わらない場合があります。
緩解時間
緩解時間の設定は v0.7 以降では使われていません。
常用ブレーキの緩解にかかる時間 (最大常用ブレーキがかかっている状態からブレーキの効き目がなくなるまで) を設定します。
- 設定名とデフォルト値:
releasedelay = 1.0
- 設定値: 緩解にかかる時間を秒単位の 0 以上の実数で指定します。
- 使用可能なバージョン: v0.2 以降 v0.6 まで
この値が小さすぎると列車が停止する直前まで強いブレーキがかかるため停止時の衝撃が強くなります。 この値が大きすぎると列車が停止する直前にブレーキを早く緩めすぎて過走しやすくなります。 過走する場合は実際の緩解にかかる時間にかかわらず短い時間を設定してください。
拡張ノッチの数
拡張ブレーキ指令を使用する場合の、ブレーキ指令の段数 (ノッチ数) を設定します。
- 設定名とデフォルト値:
extendednotches = 0
- 設定値: ブレーキ指令の段数を 1 以上の整数で指定します。
- 0 にすると拡張ブレーキ指令は無効になり、手動の常用ブレーキと同じブレーキ指令が使用されます。
- 使用可能なバージョン: v0.8 以降
転動防止の強さ
停車中に ATO/TASC が自動的にかけ続けるブレーキの強さを設定します。
- 設定名とデフォルト値:
standbybrakerate = 0.5
- 設定値: ブレーキの強さを、常用最大ブレーキに対する割合 (0 以上 1 以下の実数) で指定します。
- 使用可能なバージョン: v0.9 以降
この値が小さすぎると停車中に列車が転動する (勝手に動き出す) 恐れがあります。
[tasc]
セクション
TASC 制御リセット条件
運転台パネルの TASC 制御状態ランプ (tascmonitor
) が消える条件を設定します。
- 設定名とデフォルト値:
monitoroff = none
- 設定値:
- ランプが消える条件を以下から設定します。
none
: 条件なし (ドアが閉まるまでずっと点灯)stop
: 列車が停止位置 (許容誤差以内) に停止したときdooropen
: 停止後ドアが開いたときmanualbrake
: ドアが開いたあと手動で TASC 転動防止ブレーキ ([braking]
セクションのstandbybrakerate
) 以上のブレーキをかけたとき
- 秒数を条件の直前に書くことで、その条件からさらに指定秒数経過したあとにランプを消す設定にできます。
- ドアが開いたあと閉まったときは、この設定値に関係なくランプは消えます。
- ランプが消える条件を以下から設定します。
- 例:
monitoroff = none
(ドアが開いたあと閉まるまでずっとランプを点灯させます)monitoroff = dooropen
(ドアが開いたらランプを消します)monitoroff = 0.0 dooropen
(同じく、ドアが開いたらランプを消します)monitoroff = 3.0 stop
(停止から 3 秒後にランプを消します)
- 使用可能なバージョン: v1.9 以降
TASC 緩解条件
駅に停車後、TASC がいつまで転動防止ブレーキをかけ続けるかを設定します。
- 設定名とデフォルト値:
brakeoff = manualbrake
- 設定値: 設定値の書き方と意味は TASC 制御リセット条件 (
monitoroff
) と同じです。- ドアが開いたあと閉まったときは、この設定値に関係なく転動防止ブレーキは終了します。
brakeoff = stop
に設定すると転動防止ブレーキがかからなくなります。
- 使用可能なバージョン: v1.9 以降
転動防止ブレーキが終了すると運転台パネルの TASC 制動状態 (tascbrake
) の出力は 0 になります。
ATO が有効な場合、パネルの TASC 制動状態 (tascbrake
) の出力は 0 になりますが、実際のブレーキは ATO を発進させるまでかかったままになります。
[ato]
セクション
ATC 事前減速
ATO が ATC 路線を運転中に信号現示受信地上子により前方の信号の速度が下がることを認識した場合に、予めブレーキをかけて速度を落とすかどうかを設定します。
- 設定名とデフォルト値:
atcprebrake = true
- 設定値:
true
に設定すると、信号の現示速度が下がるよりも前に予め速度を落とします。false
に設定すると、信号の現示速度が下がってから速度を落とします。
- 使用可能なバージョン: v1.4 以降
路線が ATC かどうかは信号インデックスが 10 以上かどうかで決まります。ATC でない路線ではこの設定に関係なく信号の手前で速度を落とします。
ATO 一時停止
ATO 運転中にマスコン等を操作したときに ATO を一時的に解除するかどうかを設定します。
- 設定名とデフォルト値:
pauseonshift = false
- 設定値:
true
に設定すると、ATO 運転中にレバーサー・マスコン・ブレーキのどれかを手動で操作したときに ATO が一時的に解除され、手動運転に切り替わります。false
に設定すると、ATO 運転中にレバーサー・マスコン・ブレーキを手動で操作しても ATO の動作は継続します。
- 使用可能なバージョン: v1.6 以降
ATO が一時的に解除されたあと ATO の動作を復帰させるには、「レバーサーを前進」「マスコンを切」「ブレーキを切 (緩め)」に戻した状態で発進ボタンを押してください。なお、自動発進が有効な場合は、レバーサー・マスコン・ブレーキを戻すと発進ボタンを押さなくても ATO が復帰します。
ATO が一時的に解除されている間は TASC も一時的に解除されます。
ATO を無効にして TASC のみ有効な状態で運転しているときは、マスコン等を手動で操作しても TASC が一時的に解除されることはありません。
[key]
セクション
プラグインを操作するためのキーの割り当てを設定します。 詳細はキー操作仕様を参照してください。
[panel]
セクション
運転台パネルに表示する値を設定します。 詳細は運転台パネル出力仕様を参照してください。
[sound]
セクション
プラグインが鳴らす音声を設定します。 詳細は音声出力仕様を参照してください。