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

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

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

ところが問題はそこからでした。市販のゲームなどでは、車が路上の物体と接触すると物体が飛ばされたり、逆に車が跳ね返されたりするものですが、そういう処理に必須な当たり判定のアルゴリズムというのがよく分からず、バウンディングボックスというのがあるみたいというのまでは分かったのですが、実際にプログラムをどのように書けばいいのか分からずそのままになってしまいました。

また、実車の挙動を再現するには物理の知識が必要ですが、当時Unityのような便利なゲームエンジンのようなものは存在していなかったため、当たり判定にせよ物理的な挙動にせよすべて自前で実装しなければならず、そこで完全に行き詰ってしまいました。さらに、当時はネットでの情報も少なく、3次元の当たり判定について記述されているサイトはなかなか見つからなかったというのが実情です。

話が逸れますが、大学に入ってからBVEという電車でGoなどとは全く違うコンセプトの鉄道運転シミュレーションソフトがフリーで出回るようになり、mackoy氏みたいな人はすごいなと思っていました。このソフトウェアのすごいところは、従来の電車でGoのようなソフトウェアがゲーム性を重視していることに対して、BVEはあくまで物理的挙動や運転感覚、実車と同じ運転操作を再現することに主軸がおかれていて、ATSやATCの動作が再現されているのには感動しました。ATSであれば確認操作を行って持続チャイムが鳴るところまで再現されていたり、さらにはEBまで再現されていたりしました。BVEは路線データや車両データを自作できるため、路線バスの運転シミュレータのほかに、これを使えば一から自前で開発しなくても鉄道の運転シミュレータを作れるのではないかと考えたのもこの頃でした。

さて、肝心の路線バスの運転シミュレータですが、奮闘していろいろ勉強してはみたものの、それから著しい進展はなく、せいぜいハンドルコントローラーで操作できるようになったくらいで、結局当たり判定と物理的挙動に関する課題は解決できず、大学卒業後にそのままお蔵入りとなってしまいました。

(つづく)