以下、本発明の一実施形態について図面に基づき詳細に説明する。
図1は、本発明の一実施形態に係る鉄道シミュレータシステム1の全体構成の一例を示す外観斜視図である。
図1に例示する鉄道シミュレータシステム1は、車掌や運転士の業務の訓練に用いられる、実空間内を移動する実際の鉄道車両(実鉄道車両)を模したシステムである。以下、車掌の業務の訓練を行う者を車掌訓練者と呼び、運転士の業務の訓練を行う者を運転士訓練者と呼ぶこととする。なお図1に例示する鉄道シミュレータシステム1の用途は車掌や運転士の業務の訓練には限定されない。鉄道シミュレータシステム1が例えば車掌や運転士の模擬体験などに用いられてもよい。
図1に示すように、本実施形態に係る鉄道シミュレータシステム1には、主な構成として、模擬鉄道車両10と、運転士操作卓20と、車掌教官卓30と、運転士教官卓40とが含まれる。
模擬鉄道車両10は、実鉄道車両の後方の一部を模したものである。車掌訓練者は、模擬鉄道車両10に乗り降り可能となっている。模擬鉄道車両10内には模擬車掌室11が設けられ、模擬車掌室11の後方には後方表示パネルP1が設けられている。
また模擬鉄道車両10の左側の側面に隣接して左側模擬プラットホーム12が設けられている。そして左側模擬プラットホーム12の前方に左側方表示パネルP2が設けられている。また模擬鉄道車両10の右側の側面に隣接して右側模擬プラットホーム13が設けられている。そして右側模擬プラットホーム13の前方に右側方表示パネルP3が設けられている。
運転士操作卓20は、実鉄道車両の運転室にある操作卓を模したものである。運転士操作卓20では、運転士訓練者による模擬運転操作が行われる。運転士操作卓20には、例えばレバー等を含む走行指令部21が設けられている。また、運転士操作卓20の前方には前方表示パネルP4が設けられている。
なお模擬車掌室11及び運転士操作卓20のそれぞれには、運転士訓練者と車掌訓練者とが相互に連絡を取り合うための音声通信機器が設けられていてもよい。
また模擬鉄道車両10と運転士操作卓20とは、同じ空間に設けられている必要はなく、例えば、壁で仕切られた隣の部屋にそれぞれ設けられていてもよい。また模擬鉄道車両10と運転士操作卓20とは互いに離れた場所に設けられてもよい。それにより、車掌訓練者と運転士訓練者とが遠隔の地にいる場合であっても、互いに連携して訓練を行うことができる。
車掌教官卓30では、車掌教官により車掌訓練者の監視等が行われる。車掌教官卓30上には複数の表示パネル等が設けられており、それら表示パネルを車掌教官が確認することにより車掌訓練者の訓練状況を監視できる。
運転士教官卓40では、運転士教官により運転士訓練者の監視等が行われる。運転士教官卓40上には複数の表示パネル等が設けられており、それら表示パネルを運転士教官が確認することにより運転士訓練者の訓練状況を監視できる。
図2は、模擬鉄道車両10及び運転士操作卓20の構成の一例を示す図である。図2に示すように、本実施形態に係る模擬鉄道車両10には、サーバ50が含まれている。また本実施形態に係る運転士操作卓20には、サーバ52が含まれている。
サーバ50には、例えば、プロセッサ50a、記憶部50b、及び、通信部50cが含まれている。プロセッサ50aは、例えばサーバ50にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。記憶部50bは、ROMやRAM等の記憶素子やハードディスクドライブなどである。記憶部50bには、プロセッサ50aによって実行されるプログラムなどが記憶される。通信部50cは、例えばサーバ52との間でデータを授受するためのネットワークボードなどの通信インタフェースである。サーバ50は、通信部50cを経由してサーバ52との間で情報の送受信を行う。
サーバ52には、例えば、プロセッサ52a、記憶部52b、及び、通信部52cが含まれている。プロセッサ52aは、例えばサーバ52にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。記憶部52bは、ROMやRAM等の記憶素子やハードディスクドライブなどである。記憶部52bには、プロセッサ52aによって実行されるプログラムなどが記憶される。通信部52cは、例えばサーバ50との間でデータを授受するためのネットワークボードなどの通信インタフェースである。サーバ52は、通信部52cを経由してサーバ50との間で情報の送受信を行う。
本実施形態では、予め、鉄道シミュレータシステム1を用いた訓練の対象となる実空間の鉄道路線を実鉄道車両が走行している間、当該実鉄道車両に設けられたカメラにより訓練に用いられる動画像が撮影される。
ここでは例えば、実鉄道車両に設けられた4個のカメラによって動画像が撮影されることとする。以下、これら4個のカメラをそれぞれ、後方実カメラ、左側方実カメラ、右側方実カメラ、及び、前方実カメラと呼ぶこととする。ここで後方実カメラは例えば、実鉄道車両の最後尾の車両の後方に位置し後方を向いている、車掌室から後方を撮影するカメラである。また左側方実カメラは例えば、実鉄道車両の最後尾の車両の車掌室の左側方に位置し前方を向いている、車掌室の左側方から前方を撮影するカメラである。また右側方実カメラは例えば、実鉄道車両の最後尾の車両の車掌室の右側方に位置し前方を向いている、車掌室の右側方から前方を撮影するカメラである。また前方実カメラは例えば、実鉄道車両の先頭の車両の前方に位置し前方を向いている、運転席から前方を撮影するカメラである。
上述のように実鉄道車両に設けられた4個のカメラによって動画像が撮影される場合は、それぞれ複数のフレーム画像を含む4個の動画像が生成されることとなる。以下、実鉄道車両に設けられたカメラが生成する動画像を実写動画像と呼ぶこととする。そして例えば後方実カメラ、左側方実カメラ、右側方実カメラ、及び、前方実カメラのそれぞれが生成する実写動画像を、それぞれ、後方実写動画像、左側方実写動画像、右側方実写動画像、及び、前方実写動画像と呼ぶこととする。
なお本実施形態では、後方実写動画像、左側方実写動画像、右側方実写動画像、及び、前方実写動画像は、撮影タイミングの同期がとれていることとする。そして、あるタイミングにおいて撮影された後方実写動画像のフレーム画像、左側方実写動画像のフレーム画像、右側方実写動画像のフレーム画像、及び、前方実写動画像のフレーム画像には、同じフレーム番号が設定されることとする。
また本実施形態では、予め、実写動画像に含まれるフレーム画像である実写画像の撮影タイミングにおける実鉄道車両の位置が特定されることとする。以下、このようにして特定される実鉄道車両の位置を、実車両位置と呼ぶこととする。ここで例えば、GPSモジュール等を用いることで、実写動画像に含まれる各フレーム画像の撮影の際に、当該フレーム画像の撮影タイミングにおける実車両位置が特定されるようにしてもよい。ここで例えば前方実カメラの位置や複数両編成である実鉄道車両の全体の中心の位置などといった実鉄道車両を代表する点の位置が、実車両位置として特定されてもよい。
そして本実施形態では以上のようにして撮影される実写動画像や当該実写動画像の撮影タイミングにおける実車両位置などが、実写画像管理データ(図3参照)によって管理される。実写画像管理データは例えばサーバ50の記憶部50bに記憶されてもよい。
図3は、本実施形態に係る実写画像管理データのデータ構造の一例を示す図である。図3に示すように、実写画像管理データには、実写画像セットID、後方実写フレーム画像、左側方実写フレーム画像、右側方実写フレーム画像、前方実写フレーム画像、実車両位置データ、仮想車両位置データが含まれる。実写画像管理データは、実写動画像に含まれる1個のフレーム画像に対応付けられるデータである。そのため例えばサーバ50の記憶部50bには、実写動画像に含まれるフレーム画像の数(実写動画像のフレーム数)の実写画像管理データが記憶されることとなる。
実写画像セットIDは、実写画像管理データの識別情報である。ここで例えば、実写画像セットIDの値としてフレーム番号が設定されてもよい。
実写画像管理データに含まれる後方実写フレーム画像、左側方実写フレーム画像、右側方実写フレーム画像、前方実写フレーム画像としては、当該実写画像管理データに含まれる実写画像セットIDに対応付けられるフレーム画像である実写画像が設定される。ここで例えば後方実写フレーム画像としては、後方実写動画像に含まれるフレーム画像である実写画像が設定される。また左側方実写フレーム画像としては、左側方実写動画像に含まれるフレーム画像である実写画像が設定される。また右側方実写フレーム画像としては、右側方実写動画像に含まれるフレーム画像である実写画像が設定される。また前方実写フレーム画像としては、前方実写動画像に含まれるフレーム画像である実写画像が設定される。このように本実施形態に係る実写画像管理データは、複数の実写画像の組合せが含まれることとなる。
実写画像管理データに含まれる実車両位置データの値としては、例えば、当該実写画像管理データに対応付けられるフレーム画像の撮影タイミングにおける実車両位置を示す値が設定される。ここで上述のように実車両位置データの値として実鉄道車両を代表する点の位置を示す値が設定されてもよい。また実車両位置データの値は例えば緯度と経度の組合せで表現されてもよい。
実写画像管理データに含まれる仮想車両位置データの値としては、当該実写画像管理データに含まれる実車両位置データが示す実車両位置に対応付けられる、図4に例示する仮想空間60内の位置を示す値が設定される。以下、実車両位置に対応付けられる仮想空間60内における位置を、仮想車両位置と呼ぶこととする。ここで仮想車両位置データの値は例えばX座標値、Y座標値、及び、Z座標値の組合せで表現されてもよい。
図4は、本実施形態に係る仮想空間60の一例を示す図である。図4に示す仮想空間60は3次元仮想空間である。また図4に示すように本実施形態に係る仮想空間60には、実鉄道車両に対応付けられる仮想オブジェクトである、複数のポリゴンにより構成された仮想鉄道車両オブジェクト62が配置される。ここで本実施形態に係る仮想鉄道車両オブジェクト62は、透明に設定された不可視の仮想オブジェクトであることとする。
ここで例えば実鉄道車両が6両編成である場合は、仮想空間60には、互いに連結された6個の仮想鉄道車両オブジェクト62(62a、62b、62c、62d、62e、及び、62f)が配置される。仮想鉄道車両オブジェクト62aは例えば実鉄道車両の先頭の車両に対応付けられる。また仮想鉄道車両オブジェクト62b、仮想鉄道車両オブジェクト62c、仮想鉄道車両オブジェクト62d、仮想鉄道車両オブジェクト62eはそれぞれ例えば実鉄道車両の先頭から2両目、3両目、4両目、5両目の車両に対応付けられる。また仮想鉄道車両オブジェクト62fは、例えば実鉄道車両の最後尾の車両に対応付けられる。
そして本実施形態では、上述のように、実空間内における実車両位置と仮想空間60内における仮想車両位置とは1対1で対応付けられる。ここで本実施形態では、実写動画像が撮影された際の実空間内における実鉄道車両の軌道に相当する軌道が予め仮想空間60に設定されていることとする。そして本実施形態では、図5に示すように、仮想車両位置及び当該軌道に基づいて、6個の仮想鉄道車両オブジェクト62の位置及び向きが一意に特定されることとする。
図5は、仮想車両位置及び軌道に基づく仮想鉄道車両オブジェクトの位置及び向きの特定の一例を説明する説明図である。図5では、ゆるやかに右に曲がる仮想鉄道車両オブジェクト62の軌道が二点鎖線で示されている。また図5では、仮想鉄道車両オブジェクト62は当該軌道に沿って図5における下から上に向かって進行することとする。
ここで例えば実車両位置が前方実カメラの位置であるとする。そして仮想鉄道車両オブジェクト62aの前面の中心の位置A1が仮想車両位置であることとする。この場合、仮想鉄道車両オブジェクト62の進行方向に対して位置A1の後方に位置する、位置A1を中心とした半径の長さがdである円と軌道との交点の位置A2が特定される。同様にして上述の進行方向に対して位置A2の後方に位置する、位置A2を中心とした半径の長さがdである円と軌道との交点の位置A3が特定される。また上述の進行方向に対して位置A3の後方に位置する、位置A3を中心とした半径の長さがdである円と軌道との交点の位置A4が特定される。また上述の進行方向に対して位置A4の後方に位置する、位置A4を中心とした半径の長さがdである円と軌道との交点の位置A5が特定される。また上述の進行方向に対して位置A5の後方に位置する、位置A5を中心とした半径の長さがdである円と軌道との交点の位置A6が特定される。ここで半径の長さdは特に問わないが、例えば1つの仮想鉄道車両オブジェクト62の長さであってもよいし、1つの仮想鉄道車両オブジェクト62の長さに余裕長を足した長さであってもよい。
そして仮想鉄道車両オブジェクト62aの前面の中心が位置A1に位置し当該前面の法線方向が位置A1における軌道の接線方向B1を向くよう仮想鉄道車両オブジェクト62aが仮想空間60に配置される。また仮想鉄道車両オブジェクト62bの前面の中心が位置A2に位置し当該前面の法線方向が位置A2における軌道の接線方向B2を向くよう仮想鉄道車両オブジェクト62bが仮想空間60に配置される。また仮想鉄道車両オブジェクト62cの前面の中心が位置A3に位置し当該前面の法線方向が位置A3における軌道の接線方向B3を向くよう仮想鉄道車両オブジェクト62cが仮想空間60に配置される。また仮想鉄道車両オブジェクト62dの前面の中心が位置A4に位置し当該前面の法線方向が位置A4における軌道の接線方向B4を向くよう仮想鉄道車両オブジェクト62dが仮想空間60に配置される。また仮想鉄道車両オブジェクト62eの前面の中心が位置A5に位置し当該前面の法線方向が位置A5における軌道の接線方向B5を向くよう仮想鉄道車両オブジェクト62eが仮想空間60に配置される。また仮想鉄道車両オブジェクト62fの前面の中心が位置A6に位置し位置A6における当該前面の法線方向が軌道の接線方向B6を向くよう仮想鉄道車両オブジェクト62aが仮想空間60に配置される。このようにして仮想車両位置に対応する6個の仮想鉄道車両オブジェクト62の位置及び向きが特定される。
また仮想空間60内には、それぞれ実鉄道車両に設けられたカメラに対応付けられる視点(仮想カメラ)64の位置及び視点64における視線の向き(視線方向66)が設定される。
図4には、視点64a、視点64b、視点64c、及び、視点64dの位置が示されている。また図4には、視点64aにおける視線の向きである視線方向66a、視点64bにおける視線の向きである視線方向66b、視点64cにおける視線の向きである視線方向66c、及び、視点64dにおける視線の向きである視線方向66dも示されている。
図4に示す視点64aの位置、視点64bの位置、視点64cの位置、視点64dの仮想空間60内における位置は、それぞれ、後方実カメラ、左側方実カメラ、右側方実カメラ、前方実カメラの実空間内における位置に対応付けられる。また図4に示す視線方向66a、視線方向66b、視線方向66c、及び、視線方向66dは、それぞれ、後方実カメラ、左側方実カメラ、右側方実カメラ、前方実カメラの実空間内における撮影する向きに対応付けられる。
そのため本実施形態では図4に示すように、例えば視点64aは仮想鉄道車両オブジェクト62fの後方に配置され視線方向66aは後方を向くこととなる。また例えば、視点64bは仮想鉄道車両オブジェクト62fの左側方に配置され視線方向66bは前方を向くこととなる。また例えば、視点64cは仮想鉄道車両オブジェクト62fの右側方に配置され視線方向66cは前方を向くこととなる。また例えば視点64dは仮想鉄道車両オブジェクト62aの前方に配置され視線方向66dは前方を向くこととなる。
そして本実施形態では例えば、視点64a、視点64b、及び、視点64cについては、仮想鉄道車両オブジェクト62fの位置に対する相対的な位置が固定される。また視線方向66a、視線方向66b、及び、視線方向66cについては、仮想鉄道車両オブジェクト62fの向きに対する相対的な向きが固定される。また視点64dについては、仮想鉄道車両オブジェクト62aの位置に対する相対的な位置が固定される。また視線方向66dについては、仮想鉄道車両オブジェクト62aの向きに対する相対的な向きが固定される。
また本実施形態では、上述のように、仮想車両位置に基づいて、6個の仮想鉄道車両オブジェクト62の位置及び向きが一意に特定される。そのため図5に示すように、視点64aの位置、視点64bの位置、視点64cの位置、視点64dの位置、視線方向66a、視線方向66b、視線方向66c、及び、視線方向66dについても、仮想車両位置(例えば図5における位置A1)に基づいて一意に特定されることとなる。
なお後述のように、仮想空間60に、複数のポリゴンにより構成された仮想人物オブジェクト68(図6、図8、図11及び図13参照)などといった、仮想鉄道車両オブジェクト62以外の仮想オブジェクトが配置されていてもよい。
本実施形態では鉄道シミュレータシステム1を用いた訓練が行われている期間に運転士訓練者等のユーザが行う走行指令部21に対する操作に応じて、鉄道シミュレータシステム1において模されている実鉄道車両における実車両位置が変化する。そしてこの実車両位置の変化に応じて、仮想車両位置が変化し、当該仮想車両位置の変化に応じて、仮想空間60内における仮想鉄道車両オブジェクト62の位置及び向きが変化する。なお本実施形態では、仮想車両位置の変化に応じて、仮想空間60に設定されている軌道に沿って仮想鉄道車両オブジェクト62の位置及び向きが変化する。
そして本実施形態では、鉄道シミュレータシステム1を用いた訓練が行われている期間にわたって、所定のフレームレートで(例えば1/60秒間隔で)4個のフレーム画像の組合せが生成される。そして生成される組合せに含まれるフレーム画像のそれぞれが後方表示パネルP1、左側方表示パネルP2、右側方表示パネルP3、及び、前方表示パネルP4に表示される。このようにして本実施形態では、訓練が行われている期間にわたって、所定のフレームレートで後方表示パネルP1、左側方表示パネルP2、右側方表示パネルP3、及び、前方表示パネルP4に表示されるフレーム画像が更新される。また本実施形態では、訓練が行われている期間にわたって、後方表示パネルP1、左側方表示パネルP2、右側方表示パネルP3、及び、前方表示パネルP4のそれぞれに動画像が表示されることとなる。
ここで本実施形態では例えば、後方表示パネルP1には、後方実写フレーム画像と仮想空間60内において視点64aから視線方向66aを見た様子を表す仮想空間画像とを合成した合成画像をフレーム画像として含む動画像が表示される。以下、当該仮想空間画像を後方仮想空間画像と呼び、当該合成画像を後方合成画像と呼ぶこととする。
また左側方表示パネルP2には、左側方実写フレーム画像と仮想空間60内において視点64bから視線方向66bを見た様子を表す仮想空間画像とを合成した合成画像をフレーム画像として含む動画像が表示される。以下、当該仮想空間画像を左側方仮想空間画像と呼び、当該合成画像を左側方合成画像と呼ぶこととする。
また右側方表示パネルP3には、右側方実写フレーム画像と仮想空間60内において視点64cから視線方向66cを見た様子を表す仮想空間画像とを合成した合成画像をフレーム画像として含む動画像が表示される。以下、当該仮想空間画像を右側方仮想空間画像と呼び、当該合成画像を右側方合成画像と呼ぶこととする。
また前方表示パネルP4には、前方実写フレーム画像と仮想空間60内において視点64dから視線方向66dを見た様子を表す仮想空間画像とを合成した合成画像をフレーム画像として含む動画像が表示される。以下、当該仮想空間画像を前方仮想空間画像と呼び、当該合成画像を前方合成画像と呼ぶこととする。
なお本実施形態に係る仮想空間画像は、仮想空間60を見た様子をレンダリングしたコンピュータグラフィックス(CG)の画像である。
以下、図6〜図10Cを参照しながら、合成画像の生成の一例について説明する。
例えばある時点(時点t1)において、図6に示すように、仮想空間60内で仮想鉄道車両オブジェクト62aの前方に仮想人物オブジェクト68が位置する状況になったとする。なお図6には、仮想鉄道車両オブジェクト62の軌道が二点鎖線で示されている。ここで例えば図6に示す仮想空間60に対応付けられる実写動画像が撮影された際に実鉄道車両は実空間内においてゆるやかに1021曲がる軌道を進んだとする。この場合、図6に示すように仮想空間60内における仮想鉄道車両オブジェクト62の軌道はゆるやかに右に曲がる軌道となる。
そしてこの状況における仮想車両位置に基づいて、視点64aの位置、視点64bの位置、視点64cの位置、視点64dの位置、視線方向66a、視線方向66b、視線方向66c、及び、視線方向66dが特定される。そして特定される視点64の位置及び視線方向66に基づいて、後方仮想空間画像、左側方仮想空間画像、右側方仮想空間画像、及び、前方仮想空間画像の組合せが生成される。図7Aに、この状況において生成される前方仮想空間画像70の一例を示す。
そしてこの状況における仮想車両位置が仮想車両位置データの値として設定された実写画像管理データが取得される。そして当該実写画像管理データに含まれる後方実写フレーム画像、左側方実写フレーム画像、右側方実写フレーム画像、及び、前方実写フレーム画像の組合せが取得される。図7Bに、この状況において取得される組合せに含まれる前方実写フレーム画像72の一例を示す。
そして生成された後方仮想空間画像と取得された組合せに含まれる後方実写フレーム画像とを合成することで後方合成画像が生成される。また生成された左側方仮想空間画像と取得された組合せに含まれる左側方実写フレーム画像とを合成することで左側方合成画像が生成される。また生成された右側方仮想空間画像と取得された組合せに含まれる右側方実写フレーム画像とを合成することで右側方合成画像が生成される。また生成された前方仮想空間画像と取得された組合せに含まれる前方実写フレーム画像とを合成することで前方合成画像が生成される。図7Cに、図7Aに示す前方仮想空間画像70と図7Bに示す前方実写フレーム画像72とを合成することにより生成される前方合成画像74の一例を示す。
なお、この状況における仮想車両位置が仮想車両位置データの値として設定された実写画像管理データが存在しないことが考えられる。このような場合は、この状況における仮想車両位置に基づいて特定される複数の実写画像管理データが取得されてもよい。そして複数の実写画像管理データのそれぞれに含まれる実写画像を補間した画像と仮想空間画像とを合成した合成画像が生成されてもよい。
例えば、この状況における仮想車両位置の、上述の軌道に沿った前及び後のそれぞれについての、当該仮想車両位置に最も近い位置を示す仮想車両位置データを含む実写画像管理データが取得されてもよい。そしてこのようにして取得された2つの実写画像管理データのそれぞれに含まれる後方実写フレーム画像を補間した画像と生成された後方仮想空間画像とを合成することで後方合成画像が生成されてもよい。また取得された2つの実写画像管理データのそれぞれに含まれる左側方実写フレーム画像を補間した画像と生成された左側方仮想空間画像とを合成することで左側方合成画像が生成されてもよい。また取得された2つの実写画像管理データのそれぞれに含まれる右側方実写フレーム画像を補間した画像と生成された右側方仮想空間画像とを合成することで右側方合成画像が生成されてもよい。また取得された2つの実写画像管理データのそれぞれに含まれる前方実写フレーム画像を補間した画像と生成された前方仮想空間画像とを合成することで前方合成画像が生成されてもよい。
そしてこのようにして生成される後方合成画像、左側方合成画像、右側方合成画像、及び、前方合成画像が、それぞれ、後方表示パネルP1、左側方表示パネルP2、右側方表示パネルP3、及び、前方表示パネルP4に表示される。
その後、時点t1より後である時点t2において、仮想鉄道車両オブジェクト62が図8に示す位置まで移動したとする。図8に示す状況では、仮想人物オブジェクト68の仮想空間60内における位置は変化していないが、仮想鉄道車両オブジェクト62が移動したことによって仮想人物オブジェクト68は仮想鉄道車両オブジェクト62fの右横に位置している。
図9に、時点t2の状況において生成される前方合成画像76の一例を示す。図8に示すように、時点t2の状況では、視点64dの視野範囲には仮想人物オブジェクト68が入らない。そのため、図9に示す前方合成画像76には、仮想人物オブジェクト68の像が含まれないこととなる。
図10Aに、時点t2の状況において生成される右側方仮想空間画像78の一例を示す。また図10Bに、時点t2の状況において取得される組合せに含まれる右側方実写フレーム画像80の一例を示す。時点t2の状況では視点64cの視野範囲に仮想人物オブジェクト68が入っている。そのため図10Aに示す右側方仮想空間画像78には仮想人物オブジェクト68の像が含まれることとなる。そして図10Aに示す右側方仮想空間画像78と図10Bに示す右側方実写フレーム画像80とを合成することにより、図10Cに示す右側方合成画像82が生成される。このようにして生成される右側方合成画像82は、右側方表示パネルP3に表示される。
以上のようにして、本実施形態では時点t1において前方表示パネルP4に表示されていた仮想人物オブジェクト68の像を、時点t2において前方表示パネルP4に表示させないようにしつつ右側方表示パネルP3に表示させることができることとなる。
以下、図11〜図14Cを参照しながら、合成画像の生成の別の一例について説明する。
例えばある時点(時点t3)において、図11に示すように、仮想空間60内で仮想鉄道車両オブジェクト62eの右横に仮想人物オブジェクト68が位置する状況になったとする。なお図11には、仮想鉄道車両オブジェクト62の軌道が二点鎖線で示されている。ここで例えば図11に示す仮想空間60に対応付けられる実写動画像が撮影された際に実鉄道車両は実空間内のゆるやかに右に曲がる軌道を進んだとする。この場合は図11に示すように仮想鉄道車両オブジェクト62の仮想空間60内の軌道はゆるやかに右に曲がる軌道となる。
図12Aに、時点t3の状況において生成される右側方仮想空間画像84の一例を示す。また図12Bに、時点t3の状況において取得される組合せに含まれる右側方実写フレーム画像86の一例を示す。図11に示すように、時点t3の状況では視点64cの視野範囲に仮想人物オブジェクト68が入っている。そのため図12Aに示す右側方仮想空間画像84には仮想人物オブジェクト68の像が含まれることとなる。そして図12Aに示す右側方仮想空間画像84と図12Bに示す右側方実写フレーム画像86とを合成することにより、図12Cに示す右側方合成画像88が生成される。このようにして生成される右側方合成画像88は、右側方表示パネルP3に表示される。
そして時点t3より後である時点t4において、仮想鉄道車両オブジェクト62が図13に示す位置に移動したとする。図13に示す状況では、仮想人物オブジェクト68の仮想空間60内における位置は時点t3と変化していないが、仮想鉄道車両オブジェクト62が移動したことによって仮想人物オブジェクト68は仮想鉄道車両オブジェクト62fの後方に位置している。
図14Aに、時点t4の状況において生成される後方仮想空間画像90の一例を示す。また図14Bに、時点t4の状況において取得される組合せに含まれる後方実写フレーム画像92の一例を示す。時点t4の状況では視点64cの視野範囲には仮想人物オブジェクト68が入らないが視点64aの視野範囲に仮想人物オブジェクト68が入っている。そのため図14Aに示す後方仮想空間画像90には仮想人物オブジェクト68の像が含まれることとなる。そして図14Aに示す後方仮想空間画像90と図14Bに示す後方実写フレーム画像92とを合成することにより、図14Cに示す後方合成画像94が生成される。このようにして生成される後方合成画像94は、後方表示パネルP1に表示される。
以上のようにして本実施形態では、時点t3において右側方表示パネルP3に表示されていた仮想人物オブジェクト68の像を、時点t4において右側方表示パネルP3に表示させないようにしつつ後方表示パネルP1に表示させることができることとなる。
本実施形態では、合成画像を生成するにあたって、実写画像に対して手作業でCGを重畳させる作業を行う必要がない。また本実施形態では、合成画像を生成するにあたって、実写画像の画像解析によってコンピュータグラフィックス(CG)を配置する位置を決定する演算処理などといった負荷が重い処理を行う必要がない。そのため本実施形態によれば、手間をかけずに軽い処理負荷で、実写画像と仮想空間画像とを合成した画像を生成できることとなる。
また本実施形態では、仮想人物オブジェクト68などの仮想オブジェクトをモデリングして仮想空間60に配置することにより、複数の表示パネルに表示されるすべての画像についての当該仮想オブジェクトの像の配置が決定される。そのため本実施形態によれば、実写画像と仮想空間画像とを合成した画像を含む動画像を複数の表示パネルにおいて互いに整合がとれた状態で容易に表示させることができる。
なお仮想人物オブジェクト68を構成するポリゴンの表面にカメラで実空間を撮影した実写画像がテクスチャとしてマッピングされていてもよい。このようにすればより実写に近い合成画像を生成することができる。
以下、本実施形態に係るサーバ50の機能並びに本実施形態に係るサーバ50で実行される処理についてさらに説明する。
図15は、本実施形態に係るサーバ50で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るサーバ50で、図15に示す機能のすべてが実装される必要はなく、また、図15に示す機能以外の機能が実装されていても構わない。
図15に示すように、本実施形態に係るサーバ50には、機能的には例えば、実写画像記憶部100、仮想空間データ記憶部102、走行信号受信部104、仮想車両位置更新部106、視点位置特定部108、仮想空間画像生成部110、実写画像取得部112、合成画像生成部114、合成画像出力部116、合成画像送信部118、が含まれる。実写画像記憶部100、仮想空間データ記憶部102は、記憶部50bを主として実装される。走行信号受信部104、合成画像送信部118は、通信部50cを主として実装される。仮想車両位置更新部106、視点位置特定部108、仮想空間画像生成部110、実写画像取得部112、合成画像生成部114は、プロセッサ50aを主として実装される。合成画像出力部116は、プロセッサ50a、後方表示パネルP1、左側方表示パネルP2、右側方表示パネルP3を主として実装される。そしてサーバ50は、本実施形態に係る合成画像を生成する鉄道シミュレータ用画像生成システムとしての役割を担うこととなる。
以上の機能は、コンピュータであるサーバ50にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ50aで実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してサーバ50に供給されてもよい。
実写画像記憶部100は、本実施形態では例えば、実空間内を移動する実鉄道車両に設けられたカメラにより撮影された実写画像を、仮想空間60内の仮想車両位置と関連付けて記憶する。ここで実写画像記憶部100が、実鉄道車両に設けられた複数のカメラによりそれぞれ撮影された複数の実写画像の組合せを、仮想空間60内における仮想車両位置と関連付けて記憶してもよい。例えば上述のように、実写画像記憶部100が、同じタイミングに撮影された実写画像の組合せを含む上述の実写画像管理データを複数記憶してもよい。
仮想空間データ記憶部102は、本実施形態では例えば、仮想空間60における各仮想オブジェクトの位置や向きを示すデータを記憶する。また仮想空間データ記憶部102が、仮想オブジェクトを表すポリゴンのデータや仮想オブジェクトにマッピングされるテクスチャの画像などを記憶してもよい。また仮想空間データ記憶部102は、仮想空間60内に設定された軌道を示すデータを記憶してもよい。また仮想空間データ記憶部102は、仮想車両位置に対する仮想鉄道車両オブジェクト62の位置及び向きを示すデータを記憶してもよい。また仮想空間データ記憶部102は、視点64a、視点64b、及び、視点64cの、仮想鉄道車両オブジェクト62fの位置に対する相対的な位置を示すデータを記憶してもよい。また仮想空間データ記憶部102は、視線方向66a、視線方向66b、及び、視線方向66cの、仮想鉄道車両オブジェクト62fの向きに対する相対的な向きを示すデータを記憶してもよい。また仮想空間データ記憶部102は、視点64dの、仮想鉄道車両オブジェクト62aの位置に対する相対的な位置を示すデータを記憶してもよい。また仮想空間データ記憶部102は、視線方向66dの、仮想鉄道車両オブジェクト62aの向きに対する相対的な向きを示すデータを記憶してもよい。
走行信号受信部104は、本実施形態では例えば、走行指令部21に対する操作入力に応じた走行信号を受信する。ここで例えば、所定のサンプリングレートで走行指令部21が走行信号をサーバ52に出力し、サーバ52が当該走行信号をサーバ50に送信してもよい。ここで当該サンプリングレートに相当する時間間隔は、上述のフレームレートに相当する時間間隔と同じであっても構わない。
仮想車両位置更新部106は、本実施形態では例えば、ユーザの操作に応じて、仮想空間60内の仮想車両位置を更新する。ここで例えば、仮想車両位置更新部106が、走行信号受信部104が受信する操作入力に応じた走行信号に応じて、仮想空間60内の仮想車両位置を更新してもよい。
視点位置特定部108は、本実施形態では例えば、更新後の仮想車両位置に対応する視点64の位置を特定する。ここで例えば視点位置特定部108が、仮想車両位置更新部106による更新後の仮想車両位置に基づいて、仮想鉄道車両オブジェクト62の位置及び向きを特定してもよい。そして視点位置特定部108が、特定された仮想鉄道車両オブジェクト62の位置及び向きに基づいて、視点64aの位置、視点64bの位置、視点64cの位置、視点64dの位置を特定してもよい。また例えば、例えば視点位置特定部108が、特定された仮想鉄道車両オブジェクト62の位置及び向きに基づいて、視線方向66a、視線方向66b、視線方向66c、及び、視線方向66dを特定してもよい。
仮想空間画像生成部110は、本実施形態では例えば、視点64の位置から仮想空間60を見た様子を表す仮想空間画像を生成する。例えば更新後の仮想車両位置に対応する視点64の位置から仮想空間60を見た様子を表す仮想空間画像が生成される。ここで例えば、上述のように、後方仮想空間画像、左側方仮想空間画像、右側方仮想空間画像、及び、前方仮想空間画像の組合せが生成されてもよい。
実写画像取得部112は、本実施形態では例えば、視点64の位置に基づいて特定される1又は複数の実写画像を実写画像記憶部100から取得する。例えば更新後の仮想車両位置に対応する視点64の位置に基づいて特定される1又は複数の実写画像が実写画像記憶部100から取得される。ここで例えば、実写画像取得部112が、上述のようにして、仮想空間60内における仮想車両位置に基づいて特定される1又は複数の実写画像管理データを実写画像記憶部100から取得してもよい。
合成画像生成部114は、本実施形態では例えば、仮想空間画像生成部110により生成される仮想空間画像と実写画像取得部112により取得される1又は複数の実写画像との合成画像を生成する。例えば複数のカメラのそれぞれについて、当該カメラに対応する視点64の位置から仮想空間60を見た様子を表す仮想空間画像と、取得される実写画像管理データに含まれる当該カメラにより撮影された1又は複数の実写画像と、の合成画像が生成されてもよい。ここで例えば上述のように、後方合成画像、左側方合成画像、右側方合成画像、及び、前方合成画像の組合せが生成されてもよい。なお上述のように、合成画像生成部114が、実写画像取得部112により取得される複数の実写画像を補間した画像を生成してもよい。そして合成画像生成部114が、仮想空間画像生成部110により生成される仮想空間画像と当該補間した画像との合成画像を生成してもよい。
合成画像出力部116は、本実施形態では例えば、合成画像生成部114が生成する合成画像を表示パネルに出力する。ここで例えば、合成画像出力部116は、合成画像生成部114が生成する後方合成画像を、後方表示パネルP1に出力してもよい。この場合、後方表示パネルP1は、当該後方合成画像を表示してもよい。また例えば、合成画像出力部116は、合成画像生成部114が生成する左側方合成画像を、左側方表示パネルP2に出力してもよい。この場合、左側方表示パネルP2は、当該左側方合成画像を表示してもよい。また例えば、合成画像出力部116は、合成画像生成部114が生成する右側方合成画像を、右側方表示パネルP3に出力してもよい。この場合、右側方表示パネルP3は、当該右側方合成画像を表示してもよい。
合成画像送信部118は、本実施形態では例えば、合成画像生成部114が生成する合成画像をサーバ52に送信する。ここで合成画像送信部118が、合成画像生成部114が生成する前方合成画像をサーバ52に送信してもよい。そして当該前方合成画像を受信したサーバ52が、当該前方合成画像を、前方表示パネルP4に出力してもよい。この場合、前方表示パネルP4は、当該前方合成画像を表示してもよい。
なお本実施形態において、例えば仮想車両位置更新部106が、仮想空間60に配置された仮想人物オブジェクト68の位置と仮想車両位置とに基づいて、仮想人物オブジェクト68の位置又は姿勢を変化させてもよい。具体的には例えば、車両と接触したような人物のような振る舞いをするよう仮想人物オブジェクト68の位置又は姿勢が制御されるようにしてもよい。そして仮想空間画像生成部110が、このように位置又は姿勢が変化する仮想人物オブジェクト68の像を含む仮想空間画像を生成してもよい。
以下、本実施形態に係るサーバ50において所定のフレームレートで繰り返し行われる処理の流れの一例を、図16に例示するフロー図を参照しながら説明する。
まず、走行信号受信部104が、走行指令部21に対する操作入力に応じた走行信号をサーバ52から受信する(S101)。
そして仮想車両位置更新部106が、S101に示す処理で受信した走行信号と、直前のフレームにおける実車両位置及び仮想車両位置に基づいて、当該フレームにおける実車両位置及び仮想車両位置を決定する(S102)。
そして視点位置特定部108が、S102に示す処理で決定された仮想車両位置に基づいて、仮想鉄道車両オブジェクト62の位置及び向きを特定する(S103)。
そして視点位置特定部108が、S103に示す処理で特定された仮想鉄道車両オブジェクト62の位置及び向きに基づいて、視点64の位置及び視線方向66を特定する(S104)。ここで例えば、視点64aの位置、視点64bの位置、視点64cの位置、視点64dの位置、視線方向66a、視線方向66b、視線方向66c、及び、視線方向66dが特定されてもよい。
そして仮想空間画像生成部110が、S104に示す処理で特定された視点64の位置及び視線方向66に基づいて、仮想空間画像を生成する(S105)。ここで例えば上述のように、後方仮想空間画像、左側方仮想空間画像、右側方仮想空間画像、及び、前方仮想空間画像の組合せが生成されてもよい。
そして実写画像取得部112が、S102に示す処理で特定された仮想車両位置を示す仮想車両位置データを含む1又は複数の実写画像管理データを取得する(S106)。
そして合成画像生成部114が、S106に示す処理で取得された実写画像管理データに含まれる実写画像と、S105に示す処理で生成された仮想空間画像と、に基づいて、合成画像を生成する(S107)。
ここで例えば上述のように、S106に示す処理で取得された実写画像管理データに含まれる後方実写フレーム画像と、S105に示す処理で生成された後方仮想空間画像とに基づいて、後方合成画像が生成されてもよい。また例えばS106に示す処理で取得された実写画像管理データに含まれる左側方実写フレーム画像と、S105に示す処理で生成された左側方仮想空間画像とに基づいて、左側方合成画像が生成されてもよい。また例えばS106に示す処理で取得された実写画像管理データに含まれる右側方実写フレーム画像と、S105に示す処理で生成された右側方仮想空間画像とに基づいて、右側方合成画像が生成されてもよい。また例えばS106に示す処理で取得された実写画像管理データに含まれる前方実写フレーム画像と、S105に示す処理で生成された前方仮想空間画像とに基づいて、前方合成画像が生成されてもよい。
そして合成画像出力部116による合成画像の出力、及び、合成画像送信部118による合成画像の送信が実行される(S108)。ここで例えば、合成画像出力部116が、後方合成画像を後方表示パネルP1に出力し、左側方合成画像を左側方表示パネルP2に出力し、右側方合成画像を右側方表示パネルP3に出力してもよい。この場合、上述のように、後方表示パネルP1は後方合成画像を表示し、左側方表示パネルP2は左側方合成画像を表示し、右側方表示パネルP3は右側方合成画像を表示し、前方表示パネルP4は前方合成画像を表示することとなる。また合成画像送信部118が、前方合成画像をサーバ52に送信してもよい。そしてサーバ52が前方表示パネルP4に前方合成画像を出力してもよい。この場合、上述のように、前方表示パネルP4は前方合成画像を表示することとなる。そしてS101に示す処理に戻る。
このようにして本処理例では、S101〜S108に示す処理が所定のフレームレートで繰り返し実行される。このように、合成画像生成部114が、ユーザの操作に応じた合成画像の生成を所定の時間間隔で繰り返し実行してもよい。
なお、本発明は上述の実施形態に限定されるものではない。
例えば図15に示す機能の一部又は全部が、サーバ52によって実装されてもよい。
また例えば、図1に例示する鉄道シミュレータシステム1にサーバ52が含まれなくてもよい。そしてこの場合、サーバ50が前方合成画像を前方表示パネルP4に出力してもよい。
また例えば、図1に例示する鉄道シミュレータシステム1にサーバ50が含まれなくてもよい。そしてこの場合、サーバ52が図15に示す機能を実装してもよい。そしてサーバ52が、後方合成画像を後方表示パネルP1に出力し、左側方合成画像を左側方表示パネルP2に出力し、右側方合成画像を右側方表示パネルP3に出力してもよい。
また、上述の具体的な文字列や数値、並びに、図面中の具体的な文字列は例示であり、これらの文字列や数値には限定されない。