おーとま氏開発のAtsEXを利用する練習として、読み込んだシナリオの自線線形を表示するマッププラグインを作成しました。
このマッププラグインを組み込んだシナリオを実行すると、次図のように別ウィンドウが開かれ、上段に軌道平面図、下段に縦断面図が表示されます。自列車の現在位置を赤点で表示し、平面図には現在位置の距離程(KP)、曲率半径(R)を表示しています。(縦断面図への勾配(GR)の表示は未対応です)
プラグインの本体、ソースコード、サンプルシナリオは以下からダウンロードできます。このシナリオを動作させるにはAtsEX v1.0.31118.2 以降(入力デバイスプラグイン版)が必要ですので、インストールガイドを参照してあらかじめインストールをお願いします。
なお、zipファイルをダウンロードしたら、ファイルを右クリック→[プロパティ]を開いて、[許可する]にチェックを入れてから、zipファイルを展開してください。この手順を飛ばした場合、シナリオを実行できない場合があります。
ハマりポイント
- 自線の軌道半径の取得
e.Scenario.Route.MyTrack.Curves
にCurve
クラスのリストが格納されていることは分かったものの、Curvature
にアクセスする方法がわからず(Curve)myTrack.Curves.GoToAndGetCurrent(userVehicleLoc.Location)).Curvature
としてCurve
クラスにキャストすることでアクセスできたが、これで正しいのかよくわからないままGoToAndGetCurrent
で対応する距離程のデータを抽出できることに気づくまで、Curves
リストをスキャンしてデータを抽出しようとしていた
- 自線の勾配データ
- いまだに取得方法がわからない
今後やってみたいこと
- 勾配情報の表示
- DirectXによる描画への対応
- OpenBVEでの表示のような、メイン画面への重ね書きを想定