Real Analog Gauge

公開、 更新

アナログ計器用ATSプラグイン「Real Analog Gauge」

ダウンロード

プラグイン+サンプルシナリオ

 プラグイン本体のほかにプラグインの使用例シナリオが同梱されていいます。同梱されているサンプルシナリオの動作には、BVE5.8以降もしくはBVE6が必要になります。

Download (2020-10-14 更新, 4.95MiB/5,197,342bytes)

プラグイン単体

 プラグイン本体だけが必要な方はこちらからダウンロードしてください。

Download (2020-10-14 更新, 326KiB/334,630bytes)

概要

 アナログ計器の挙動をリアルにするATSプラグインです。当プラグインはアナログ計器の指針表示の再現性の向上に寄与する二つの機能を備えています。

 一つ目の機能では低速時における速度計指針の振動を再現することができます。

 もう一つは目盛が等間隔でない計器の指示を補正する機能です。

 下の画像はReal Analog Gaugeを使用しなかったときの指針挙動イメージです。0.1kA(100A)ずつ電流値を増やしています。この例では特に数値が大きい領域で実際の値と指示の乖離が大きくなってしまいます。

 こちらはReal Analog Gaugeによって指針挙動に補正を行った後の指針挙動イメージです。いかなる値に対しても正確な指示を出すようになっています。

動画

 同梱のサンプルデータの動作例と、開発者モードの使い方の紹介を行っています。

更新履歴

2020-10-14
BVE6向け64bit版の追加
2017-10-07
複数の指針制御に対応
他ATSプラグインによる運転台・サウンド制御出力からの入力に対応
特定の環境で設定ファイルの読み込みに失敗しプラグインが動作しなくなる不具合の修正
設定ファイル中のStepValueセクションの各設定のデフォルト値がゼロになっていた不具合の修正
2015-10-14
公開

動作環境

 当プラグインの動作にランタイムは不要です。 

基本的な使い方

 Real Analog Gaugeを既存の車両アドオンに適用する手順を解説します。ここではmackoy様制作の京成3500形車両アドオン中の速度計と電流計への適用例を示します。なお簡略化のため、指針の影の再現を担う部分への適用は省略します。

 まずプラグイン本体であるRealAnalogGauge.dllを適当な場所に置き、車両設定ファイルもしくはRock_On様作成のDetailManager.dllの設定ファイルであるDetailModules.txtからこれをATSプラグインとして指定します。DetailManagerを利用して他のATSプラグインと組み合わせる場合、必ず定速制御を行うプラグインの前に配置してください。

 BVE4/5にて利用する場合はx86フォルダ内の32ビット版DLLファイルを、BVE6にて利用する場合はx64フォルダ内の64bit版DLLファイルをご利用ください。

 以下の図は、BVE5専用の古いフォーマットにおけるVehicleファイルです。BVE5とBVE6の両方に対応した新しいフォーマットのVehicleファイルの場合、ATSプラグインへのパスを指定する部分の構文が異なります。

プラグインのファイルパス指定

 次にRealAnalogGauge.dllを配置したフォルダと同じ場所に「RealAnalogGauge.ini」という名前の設定ファイルを作成します。このファイルに以下のテキストをコピー&ペーストし保存します。

[FileName]
Gauge0 = Speedometer
Gauge1 = Ammerter

[DeveloperMode]
Enabled = 1

 FileNameセクションは個別の計器に対する設定ファイル名を、DeveloperModeセクションは開発者モード使用の有無を設定するためのものです。アドオンの公開時にはDeveloperModeセクションを削除してください。

 さらに各計器の振る舞いを設定するために使用される、以下の4つのファイルを先ほどと同じフォルダに作成します。これらのファイル名のうち拡張子を除く部分は、上記設定ファイル中のセクションで指定したものと同じにします。

Speedometer.ini
Speedometer.csv
Ammerter.ini
Ammerter.csv

 それから運転台パネルファイルから計器設定ファイルへの設定値の移植や、プラグイン動作のために必要となる運転台パネルファイルの設定変更を行います。以下は速度計に対する設定を例として解説を進めます。

 運転台パネルファイルとINI形式の計器設定ファイル(Speedometer.ini)を開きます。運転台パネルファイル中でReal Analog Gaugeを適用したい指針の設定を担っているNeedleセクションに移動します。計器設定ファイルにSubjectKeyセクションを追加した上で、運転台パネルファイル中のSubjectキー指定値を計器設定ファイルに移植します。

Subjectセクション設定の移植

 移植元の設定箇所には、ATSプラグインからの出力値を受け取るために「ats*」(*は0~255の整数インデックス値)を指定します。そして、計器設定ファイルにPanelIndexセクションを追加し、Needleキーにも同じインデックス値を指定します。この数値は、既存プラグインで使用されているものと被らないようにしてください。

PanelIndexの指定

 今度はCSV形式の計器設定ファイル(Speedometer.csv)を開き、このファイルに目盛最小値とその指示角と、目盛最大値とその指示角の設定値を以下の図の通りに移植します。

指示角度設定の移植

 移植元の設定箇所には、プラグインの動作に必要となる固定値を指定します。以下のテキストをコピーした後、運転台パネルファイル中に現存する当該設定項目を削除しそれと置き換えてください。

InitialAngle = -180
LastAngle = 180
Minimum = 0
Maximum = 360000

既存の指示角度設定置換

 以上の設定移植作業を、同様に電流計の設定ファイルに対しても行います。これで、速度計と電流計をReal Analog Gaugeに対応させるための必要最低限の設定は完了です。

電流計の設定

 Real Analog Gaugeの機能を実際に利用するためにはさらなる設定が必要です。

 低速時における速度計指針の振動を再現したい場合には、INI形式の計器設定ファイル中にVibrationセクションを追加します。設定テキストの一例を以下に示します。

[Vibration]
Period = 0.46
Amplitude = 1
Threshold = 60

 Amplitudeキーには指針の振れ幅の大きさを指定します。Periodは10km/hにおける振動周期を指定します。この値が大きいほど指針はゆっくり振動し、小さければその逆となります。Thresholdの指定値より速度が大きいときには振動が起こらなくなります。

 不等間隔な目盛を持つ計器の指針指示を正確にしたい場合は、CSV形式の計器設定ファイルを編集します。このファイルには、計器へのある入力値とその入力値が指し示す角度のペアを複数記述します。設定テキストの一例を以下に示します。

0,-114.7
100,-93.1
200,-72
300,-47.6
400,-21.8
500,3.4
600,30.6
700,56.4
800,79.7
900,98
1000,114.7

 このファイルの設定に必要となる指示角度値は、プラグインが適用済みの計器に対して開発者モードを発動することで容易に得られます。

 詳しいプラグインの設定方法や仕様につきましては、後に続きます「プラグイン設定ファイル構成」と「プラグイン設定仕様書」セクションをご覧ください。

プラグイン設定ファイル構成

現行バージョン

 3種類の設定ファイルによりプラグインの挙動設定を行います。

Real Analog Gaugeの設定ファイル一覧

 ①のファイル(プラグインと同一名のiniファイル)では各指針の設定ファイル名の指定と、開発者モードに関する設定を行います。②のiniファイルは各指針の挙動に関する設定を担います。③のcsvファイルは各指針の指示角度を補正するためのものです。設定内容の詳細につきましては後述する「プラグイン設定仕様書」をご覧ください。グレーアウトしている部分は、互換性保持のために残した旧バージョンにおける設定ファイル構成です。

旧バージョン

 2017-10-07のアップデートで設定ファイルの構成を変更しましたが、互換性を維持し旧バージョン用の設定ファイルは現バージョンでもそのままお使いいただけます。そのため、プラグインのアップデートはプラグイン本体の上書きだけで完了し、設定ファイルの編集が必要になることはございません。参考までに、以下に旧バージョンにおける設定ファイル構成を示します。

 旧バージョンのプラグインにおける設定ファイルは「①開発者モード」と「②指針の挙動設定」を両方記載するiniファイルと、「③指針の指示角度補正データ」を記述するcsvファイルの二種類です。この二つの設定ファイル名は、いずれもプラグインと同じファイル名にする必要があります。

Real Analog Gaugeの設定ファイル一覧(旧バージョン) 

プラグイン設定仕様書

① 各指針の設定ファイル名と開発者モードの設定

 ini形式の設定ファイルです。

FileNameセクション

 指針設定ファイル名を指定します。

キー値のタイプデフォルト値設定内容
Gauge*
(*は0~15の整数)
string(文字列) 指針設定ファイル名(拡張子無し)

DeveloperModeセクション

 開発者モードの有効・無効を切り替えます。

 当プラグインを組み込んだアドオンの公開時にはEnabledに0を指定するか、当セクションを丸ごと削除してください。

キー値のタイプデフォルト値設定内容
Enabledint(整数)00で無効、1で有効

KeyIndexセクション

 開発者モードにおけるキーアサインを設定します。

キー値のタイプデフォルト値設定内容
CopyValueToClipboardstring(文字列)S角度調整値のクリップボード出力
AdjustIncrementSmallstring(文字列)A1調整値増加(0.1倍)
AdjustDecrementSmallstring(文字列)A2調整値減少(0.1倍)
AdjustIncrementMediumstring(文字列) B1調整値増加(1倍)
AdjustDecrementMediumstring(文字列) B2調整値減少(1倍)
AdjustIncrementLargestring(文字列)C1調整値増加(10倍)
AdjustDecrementLargestring(文字列)C2調整値減少(10倍)
SwitchAdjustModestring(文字列)D開発者モード切り替え
ResetAdjustValuestring(文字列)L調整値のゼロリセット

 このセクションで使用する設定用文字列の一覧は以下の通りです。

設定文字列キーアサインデフォルトの割り当て
S保安装置 0 (S)Space
A1保安装置 1 (A1)Insert
A2保安装置 2 (A2)Delete
B1保安装置 3 (B1)Home
B2保安装置 4 (B2)End
C1保安装置 5 (C1)PageUp
C2保安装置 6 (C2)PageDown
D保安装置 7 (D)2
E保安装置 8 (E)3
F保安装置 9 (F)4
G保安装置 10 (G)5
H保安装置 11 (H)6
I保安装置 12 (I)7
J保安装置 13 (J)8
K保安装置 14 (K)9
L保安装置 15 (L)0

StepValueセクション

 開発者モードにおける調整用数値の変化量を設定します。

キー値のタイプデフォルト値設定内容
Angle double(実数) 1 角度調整値の変化量
Valuedouble(実数)10設定確認用調整値の変化量
Rotatedouble(実数)1 回転モードにおける指針回転速度[deg/frame]

② 指針の挙動設定

 ini形式の設定ファイルです。

SubjectKeyセクション

 プラグインで指示する値のソースを設定します。

キー値のタイプデフォルト値設定内容
Subjectstring(文字列)kmph 指示値のソース

 このセクションで指定可能な設定用文字列のうち、車両物理量の指定に使用する文字列はBVEと同じです。その一覧を以下に示します。

設定文字列対応する状態量
kmph速度[km/h]
bcブレーキシリンダ圧力[kPa]
mr元空気溜め圧力[kPa]
sap直通管圧力[kPa]
bpブレーキ管圧力[kPa]
er釣り合い空気溜め圧力[kPa]
am電流[A]
amabs電流の絶対値[A]

 以下はReal Analog Gaugeの独自設定です。これは、他のATSプラグインから出力された任意の運転台パネル制御値もしくはサウンド制御値を受け取るために用意されたものです。

設定文字列対応する状態量
panel*(*は0~255の整数)ATS-PI運転台制御値
sound*(*は0~255の整数)ATS-PIサウンド制御値

PanelIndexセクション

 プラグインからの出力値に割り当てられる運転台パネルファイルのsubjectKey(ats0~ats255)を、0~255の間の数値で設定します。この範囲外の値が設定された場合、BVEへの出力を行いません。

キー値のタイプデフォルト値設定内容
Needleint(整数)-1指針指示出力

Vibrationセクション

 低速時における速度計指針の振動再現に関する設定を行います。PeriodもしくはAmplitudeの数値を0に設定した場合、針の振動を行いません。

キー値のタイプデフォルト値設定内容
Perioddouble(実数)010km/hにおける針の振動周期[sec]
Amplitudedouble(実数)0針の振幅
Thresholddouble(実数)0 針の振動を中止する入力値しきい値(0で常に振動)

③ 指針の指示角度補正データ

 このcsv形式の設定ファイルには、「ある車両状態量」と「そのときの指針の向き(角度)」の組を複数記述します。これと線形補間を組み合わせて、BVE上における指針指示を適切に補正します。指針の角度は、プラグインの開発者モードを利用することにより簡単に取得することができます(開発者モードの説明は後述します)。

電流計における指針指示角度と電流の関係

 csv形式の設定ファイルには一列目に車両状態量を実数値で、二列目にその車両状態量が指し示すべき指針指示角度を度数法で記述します。数値として認識できない文字列が記述された場合は無視されます。角度は、0時の位置を原点に、時計回りを正とします(運転台パネルファイルのInitialAngle, LastAngleの設定仕様と共通です)。

 目盛間隔の補正機能を使用しない場合は、csvファイルに以下の通りに運転台パネルファイルのNeedleセクションにおける各キーの数値を記述すれば、プラグインを使わない時と同じ挙動になります。

Minimumの数値,InitialAngleの数値
Maximumの数値,LastAngleの数値

開発者モード

 ini形式の設定ファイル中のDeveloperModeセクションの設定を変更することにより、開発者モードを利用することができます。

 開発者モードが有効になっている場合、BVEの起動中にモード切替キー(デフォルト:保安装置 7 (D) / 非テンキーの2キー)を押すと以下の通りにBVEへの数値出力モードが切り替わります。

 表示モード -> 調整モード -> 確認モード -> 回転モード -> 表示モード -> ……

 各モードにおける挙動は次の通りです。

表示モード

 BVEから受け取った車両状態量を角度に変換して表示します。開発者モードが無効な場合、表示モードに固定されています。

調整モード

 ある車両状態量における指針の指示角度の調査に利用します。

 プラグインとBVE本体のキーアサインが共にデフォルトな場合における、操作キーと角度の変化量の対応は以下の通りです。リセットキー(デフォルト:保安装置 7 (D) / 非テンキーの2キー)を押すと指示角度が0にリセットされます。

キー角度変化
Insert+0.1
Home+1
PageUp+10
Delete-0.1
End-1
PageDown-10

 調整モードのみにおいて、クリップボードへの出力キー(デフォルト:保安装置 0 (S) / Spaceキー)を押すと、クリップボードに現在の指針指示角度が出力されます。目盛に指針を合わせて指示角度を取得する作業を繰り返し、車両状態量と指針指示角度の関係を順次調べていくことにより、指針の指示角度補正データを作成します。

確認モード

 ここでは車両状態量と角度の関係が正しく設定されていることを、キー操作によって入力状態量を任意に変化させることにより確認します。

 プラグインとBVE本体のキーアサインが共にデフォルトな場合における、操作キーと状態量の変化量の対応は以下の通りです。リセットキー(デフォルト:保安装置 7 (D) / 非テンキーの2キー)を押すと状態量が0にリセットされます。

キー状態量変化
Insert+1
Home+10
PageUp+100
Delete-1
End-10
PageDown-100

回転モード

 ini形式設定ファイルのStepValueセクション・Rotateキーに設定された速度で指針が回転し続けます。指針の回転中心位置決めの補助としてご利用下さい。