何某日和

「カメラ」のち「ハンダゴテ」ところにより「プログラミング」 ── そんな私“かめきち”のウェブサイト

鉄道運転シミュレータ開発

プロジェクトの紹介

 幼い頃から電車かバスの運転士を目指していた私。 大学時代の出会いにより、今でこそシステムエンジニアや学校教員として従事していますが、幼き頃の "将来の夢" も捨てきれず、電車に乗るたび「運転席に座る自分」を想像してしまうのでした。 そんな背景のもとで始まった本プロジェクト。どんな形になるやら、いつ動くようになるやら、わかりませんが、少しずつでも夢の実現に近づけていこうと思います。(2021.03.27)

活動ログ(メモ)

No.7 - ちょっと three.js で(続き) - 2021.09.16

 つづく寄り道...

KTS(仮)sandbox

No.6 - ちょっと three.js で - 2021.08.10

 ちょっくら寄り道... KTS(仮)

No.5 - OpenBVEの調査(4) - 2021.07.17

かなり期間が空いてしまったが... git clone したソースコードを改めて読み始めた。 とりあえずトップダウンに、エントリポイントを探して、呼び出し階層を追っていくことに。

/source
 /OpenBVE
  /System
   Program.cs ← エントリポイント(Mainメソッドがある)
   GameWindow.cs ← ゲームウィンドウの操作に応じた処理が記載されている
   MainLoop.cs ← 画面モードの設定、ゲームウィンドウの起動、など
  /Graphics
   NewRenderer.cs ← Perspective云々(視界設定)
 /OpenBveApi
  /Math
   /Matrix4.cs ← CreatePerspectiveFieldOfView(透視図法、遠近法関連)、CreateOrthographic(正投影)

No.4 - OpenBVEの調査(3) - 2021.03.31

 今日はコードリーディング。どこからどんなふうに動いているのか押さえたい。

OpenBVE - Program.cs - Main() // エントリポイント
 -> OpenBVE - MainLoop.cs - StartLoopEx() // メニュー画面(路線・車両選択)後の処理
  -> Program.currentGameWindow.Run() // ここで展望のウィンドウが立ち上がる?

No.3 - OpenBVEの調査(2) - 2021.03.30

 次に、OpenBVEをソースからビルドして、動作確認してみる。

https://openbve-project.net/
 -> Download
  -> Source Code

 このページからGitHubにアクセスし、OpenBVEのソース一式をzipでダウンロード、ローカルで展開してビルドしてみる。 ビルドには Visual Studio 2019 Community を使用した。 いくつかのプロジェクトが含まれているが、見てみると「OpenBVE」というプロジェクトが親玉のよう。 ビルドの順序に気をつけねばならないのか、何度かエラーが吐かれたけれど、あれこれビルドするうちに実行・動作確認ができた。

No.2 - OpenBVEの調査(1) - 2021.03.29

 そもそも「OpenBVE」のことについて書いているものの、実際に動かしたことがなかったので、一旦動かしてみることに。 手持ちの Microsoft Surface にインストールして動作させてみると、案外すんなりと正常動作を確認することができた。

 また、心配だった「サードパーティのプラグインが正しく動くか」についても試してみたところ、こちらも特に問題なく動いている様子。 OpenBVEすごい...!

No.1 - 本当に実現できるのか(フィジビリティ検証)- 2021.03.28

 考えとしては長らく温めていながら、なかなか行動に至らず。考えるのもそこそこ、とりあえず手を動かしてみよう、と活動ログの記録から始めてみます。
現状で抱いているイメージはこんな感じ。

  1. BVE Trainsim(https://bvets.net/)のような
  2. VRゴーグル(できれば私が所有しているOculus Go)で操作できる
  3. BVE Trainsimのデータが使える

 一番嬉しいのは、これに準ずるソフトウェアがすでに提供されていること、なのですが、私の思い描くものは現時点で存在しないようなのです。
(アーケード製品としてバンダイナムコさんの「Train Meister(トレインマイスター)」があります。これが自宅でできれば、ね...笑)

 とはいえ、これをイチから開発するのは途方も無いので、 OpenBVE(BVEのオープンソース版。https://openbve-project.net/)を派生させる形で開発できないか、と考えています。
 ...という具合に夢物語を並べ立てましたが、まずは、本当に実現できるのか(フィジビリティ)の検証から始めます。

  • OpenBVEの調査 → OpenBVEがどのような言語/ライブラリを用いているか調査する
  • Oclus Goの調査 → Oclus Goで上記の言語/ライブラリを用いることができるか調査する
  • Oclus Goのアプリ開発可否の確認→ 簡単なアプリを作って動かせることを確認する

 ではでは、地道にやっていきましょう。