路線バス運転シミュレータ開発記

OMSIを使って路線バスの運転シミュレータを製作しています。備忘録的にゆるーく書いていきたいと思いますので、お付き合いいただければ幸いです。

開発の契機とこれまでの経緯(その4)

路線バスの運転シミュレータについてはお蔵入りになってしまいましたが、社会人になってからBVEを使って鉄道の運転シミュレータが作れないかと模索を始めました。もともと、BVEはTrainSimulator用のマスコンをパソコンにつないで操作することもできたのですが、それでは飽き足らずにコントローラーから接点を取り出して実物のマスコンなどで操作する強者も現れました。

かくいう私も、最初からそのようなことをやりたかったのですが、コントローラーから接点を取り出してやるという実装方法はどうもしっくりときませんでした。この方法だと入力しかできず、出力を行って速度計を動かしたり、ランプを点灯させたりするというようなことができないからです。

そこで、まずはBVEの仕様を調べたところ、オープンソースではないのでソースを変更して何かするということはできないのですが、拡張プラグインWindows DLLで作成でき、これによって外部とノッチやブレーキハンドルの位置、現在速度などの情報を受け渡しできることがわかりました。

また、USB-IOというKm2Netから販売されている基板を使うとUSBデバイスを自作できるということも知り、「これだ!!」と思って確か2008年頃だったと思うのですが、拡張プラグインのDLLからUSB-IOを制御するプログラムを書いて、USB-IOにロータリースイッチを使った試験回路をつないでBVEを動かしてみたところ、ロータリースイッチの動きにあわせてマスコン位置とブレーキ位置がちゃんと切り替わったため、とりあえず実験は成功でした。理屈ではこれができれば、実車マスコンにつないでも動作するはずなので、早速コレクションしていたマスコンとブレーキ制御器につないで試したところうまく動作し、メーターについてもDLL側で値を変更するとそれに応じて動くということが分かったので、ひとまず試作品は完成ということで、しばらくそのままになっていました。残念ながら、当時の試作品の写真は残っていないのですが、記念すべき第一号機だったので記録に残しておけば良かったと今になって思います。

その後は、だいぶ先になりますが2015年に鉄道喫茶・居酒屋ぽぷらという店を開業した際、以前の試作品の設計をもとに札幌市営地下鉄6000形車両の運転シミュレータを製作し、しばらくの間供用していましたが、2017年の閉店に伴い解体したため現存しません。

以下に設置してあった時の写真を載せておきますが、筐体は何分素人工作なのでご勘弁ください。筐体は店の内装に使った資材で余ったものを使いましたが、塗装や組み立てを一人でやったため一苦労でした。

筐体の作りについては反省点も多く、特に大きかったのがすべてのものを1つにして組み込んでしまったため、全く移動することも分解することもできなかったことです。これではイベントなどの際に活用してもらうということもできないので、次回製作する機会があれば、複数のユニットに分かれた組み立て式の筐体を設計してみたいと考えています。

試作品の時と設計が異なるのは、試作品はベースにBVEを使用していたのですが、将来プラグインDLLの修正だけでは間に合わなくなる場合も想定して、このシミュレータではBVEの互換ソフトウェアでかつソースが公開されているOpenBVEを使用していることです。

f:id:poplar1930:20210530164219j:plain

筐体写真

f:id:poplar1930:20210530164402j:plain

運転台拡大

また、この運転シミュレータはATCの動作も再現していますが、ATCやATSについてはすでに他の方からフリーの拡張プラグインが出ており、自前で実装せずにそれをなんとか活用できないか検討しました。しかし、それらのプラグインはDLLファイルだけが公開されていてソースが公開されていないため、自分でそのDLLに入出力制御の処理を付け加えるということができません。そこで、いろいろ思案の挙句自前の拡張プラグインDLL内のコールバック関数がBVE側から呼び出されたら、そのコールバック関数の中からATS/ATC拡張プラグインDLLを呼び出すという少々トリッキーな方法で解決できることを思いつき、そのような方法で実装しています。

ATS/ATC再現用の拡張プラグインについては複数出ていますが、今回は(HN)ノ付氏作成の「汎用ATSプラグイン」を使用させていただきました。また、この時実装しませんでしたが、これを使えば6000形の自動運転も理論上再現可能でした。

そのほか、速度計/電圧計/電流計が動作する機能(電流計の動作はBVE5を使用したときのみ)、ATC車内信号切り替え時に警報ブザーが鳴動する機能、駅停車時にドア開閉に応じて状況号車表示灯が点滅する機能、おまけ的な要素で合図ベルが鳴動する機能、左隣の軸流ファンが動作する機能などを持っていました。

製作中にちょっとしたアクシデントもあり、操作をしているうちになぜか急にパソコンがフリーズしてしまうということもありました。なぜかと調べているうちに、どうやら軸流ファンの電源をON/OFFしたときのノイズがパソコンのUSBポートに混入してこの現象が起きているようだったのですが、解決方法については(HN)R.S.氏に助言をいただきました。

 

■本家BVE(mackoy氏)
https://bvets.net/

■OpenBVE
https://openbve-project.net/

■Km2Net
http://km2net.com/index.shtml

■汎用ATSプラグイン(ノ付氏)
http://iiyamaline.web.fc2.com/

■SCSIS(R.S.氏)
https://scsis.jp/