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

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

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

このブログは、OMSIというドイツにあるMR-Software社がつくった路線バスの運転シミュレーションソフトウェアをベースに、これをカスタマイズして国内仕様の路線バス運転シミュレータ開発日々記録しよういうもので、あまり形式にこだわらず、備忘録程度に書き進めていきたいと思っています。

OMSIの話をする前に、私が路線バスの運転シミュレータを開発しようという考えに至った経緯を書かせていただきます。鉄道やバスに興味のある方でしたら、博物館などで運転シミュレータに触れたことがあるかと思いますが、たいていは待ち時間が長かったり、1人1区間などの制限があって十分に楽しむことができません。非常に単純な考えですが、「あれが家にあったら好きなだけ遊べるのになぁ」と思ったことがそもそもの始まりでした。

ただ、あんなコンピュータを駆使した機械を自分で開発するのは難しいと思い、そう思い立った中学生当初(1995年くらい)は、ラジコンを改造してバスの車体を取り付け、コントローラーから接点を取り出して実際の運転台を模したモックアップに取り付けて運転するようなものができないかと考えていました。当時、廃車バスの部品などはバス会社のイベントなどで販売されていたのでそれを集めれば運転台のようなものをつくることは可能でした。

しかし、考えていくうちにこの方式には難点があることに気が付きました。普通のラジコン操作なら、自分が車の後ろを追いかけていけば車の曲がる方向とコントローラーの操作する方向は変わらないのですが、運転台モックアップのようなものを作ってしまうと移動できないので、車の方向が自分の向いている方向と一致しなくなったときにハンドル操作が難しくなり、操作性が非常に悪いということです。加えて一番大きな難点は、小さなジオラマの中を走らせるにせよ、一路線作るだけで相当なスペースを必要とし、物理的にも無理だということです。

そこで、やはりコンピュータを用いた仮想空間にバスを走らせるようなシミュレータが良いという結論になり、まずはプログラミングを勉強することにしました。元々家にパソコンはなかったのですが、幸いなことに1996年だったと思いますが親族からPC-9801を譲ってもらい、図書館からN88BASICの本を借りてきて勉強を始めました。本来であればBASICではなく、Cの勉強をしたかったのですが、今のようにネットからサクッとフリーのコンパイラをダウンロードできるという時代ではなく、何万もする立派な箱に入ったコンパイラを買うのが常識でした。まさか中学生にそんなものが買えるはずもなく、とりあえずN88BASICでプログラムを書いてみてプログラムを作るとはどういうことなのか試してみることにしました。(N88BASICはコンパイラではなくインタプリタですが買わなくてもパソコンに付属してくるものでした)

毎週のように図書館に通い、本を借りてきてはパソコンに打ち込んで勉強するうちに大体の文法を理解して、あとはリファレンスを見ればプログラムが書けるところまできました。クイズとか占い、もぐら叩きの類のものや26音源で音楽を再生するプログラムなどを書いたのを覚えています。

しかし、BASICの文法を理解してプログラムが書けるようになっても問題はそこからで、どういうアルゴリズムで運転シミュレータのような3次元の画面を出しているか知る由もありませんでした。加えて、当時電子回路の知識が全くなかった(鉄道模型のパワーパックでバスのメーターを動かして遊んでいる程度)ので、スイッチやメーター類をコンピュータとどのように接続して動かすかというのも悩みの種でした。

(つづく)