(57)【要約】      （修正有）【課題】複数の表示装置に対して、各表示装置に対応する計算機で生成した各映像を同期表示するシミュレーションシステムを提供する。【解決手段】シミュレーションシステム１は、仮想空間のデータを周期的に更新するサーバ２と、サーバ２に接続される第１主端末装置３１及び第１副端末装置３２Ａ、３２Ｂ、を備える。第１主端末装置３１は、今回更新時刻の第１車両のデータを生成してサーバ２へ送信し、第１主端末装置３１及び第１副端末装置３２Ａ、３２Ｂは、第１描画データ及び第２描画データをそれぞれ生成し、サーバ２へ描画準備終了の通知を送信し、サーバ２は、第１主端末装置３１及び第１副端末装置３２Ａ、３２Ｂに同時に画面更新の指令を送信し、第１主端末装置３１及び第１副端末装置３２Ａ、３２Ｂは、第１描画データ及び第２描画データに基づいて画面表示をそれぞれ更新する。【選択図】図１
2017138793.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間のデータを周期的に更新するサーバと、
第１入力装置及び第１表示装置を含み、ネットワークを通じて前記サーバに接続される第１クライアントと、
第２表示装置を含み、ネットワークを通じて前記サーバに接続される第２クライアントと、を備え、
前記サーバは、前回更新時刻の前記仮想空間のデータと今回更新時刻を前記第１クライアント及び前記第２クライアントにそれぞれ送信し、
前記第１クライアントは、前記サーバから今回更新時刻を受信したことを条件として、前回更新時刻から今回更新時刻までの前記第１入力装置による第１ユーザの入力操作に基づいて前記仮想空間の第１オブジェクトのデータを更新することにより今回更新時刻の前記第１オブジェクトのデータを生成して前記サーバへ送信し、前記サーバから前回更新時刻の前記仮想空間のデータを受信したことを条件として、受信した前回更新時刻の前記仮想空間のデータと前記第１クライアントが記憶保持している前回更新時刻の前記第１オブジェクトのデータから第１描画データを生成し、前記第１描画データの生成が終了したことを条件として前記サーバへ描画準備終了の通知を送信し、
前記第２クライアントは、前記サーバから前回更新時刻の前記仮想空間のデータを受信したことを条件として、受信した前回更新時刻の前記仮想空間のデータから第２描画データを生成し、前記第２描画データの生成が終了したことを条件として前記サーバへ描画準備終了の通知を送信し、
前記サーバは、前記第１クライアントから今回更新時刻の前記第１オブジェクトのデータを受信したことを条件として、受信した今回更新時刻の前記第１オブジェクトのデータに基づいて今回更新時刻の前記仮想空間のデータを更新し、前記第１クライアント及び前記第２クライアントから前記描画準備終了の通知を受信したことを条件として、前記第１クライアント及び前記第２クライアントに同時に画面更新の指令を送信し、
前記第１クライアントは、前記サーバから前記画面更新の指令を受信した時に、前記第１描画データに基づいて第１表示装置の画面表示を更新し、
前記第２クライアントは、前記サーバから前記画面更新の指令を受信した時に、前記第２描画データに基づいて第２表示装置の画面表示を更新する、シミュレーションシステム。
【請求項２】
請求項１に記載のシミュレーションシステムにおいて、
前記第２クライアントは、第２入力装置をさらに備え、
前記サーバから今回更新時刻を受信したことを条件として、前回更新時刻から今回更新時刻までの前記第２入力装置による第２ユーザの入力操作に基づいて前記仮想空間の第２オブジェクトのデータを更新することにより今回更新時刻の前記第２オブジェクトのデータを生成して前記サーバへ送信し、
前記第２描画データは、前記サーバから受信した前回更新時刻の前記仮想空間のデータに加え、前記第２クライアントが記憶保持している前回更新時刻の前記第２オブジェクトのデータから生成される、シミュレーションシステム。
【請求項３】
請求項１又は２に記載のシミュレーションシステムにおいて、
前記サーバは、第３表示装置をさらに備え、
前記第１クライアント及び前記第２クライアントに前記画面更新の指令を送信するまでに、前回更新時刻の前記仮想空間のデータから第３描画データを生成し、
前記画面更新の指令を送信した時に、前記第３描画データに基づいて前記第３表示装置の画面表示を更新する、シミュレーションシステム。
【請求項４】
請求項３に記載のシミュレーションシステムにおいて、
前記サーバは、第３入力装置をさらに備え、
前回更新時刻から今回更新時刻までの前記第３入力装置による第３ユーザの入力操作に基づいて前記仮想空間の第３オブジェクトのデータを更新することにより今回更新時刻の前記第３オブジェクトのデータを生成し、
前記第３描画データは、前記サーバが記憶保持している前回更新時刻の前記仮想空間のデータに加え、前記サーバが記憶保持している前回更新時刻の前記第３オブジェクトのデータから生成される、シミュレーションシステム。
【請求項５】
ネットワークを通じてクライアントに接続されるサーバであって、
仮想空間のデータを周期的に更新する手段と、
前回更新時刻の前記仮想空間のデータと今回更新時刻とを前記クライアントに送信する手段と、
前記クライアントから今回更新時刻の前記仮想空間のオブジェクトのデータを受信したことを条件として、受信した今回更新時刻の前記オブジェクトのデータに基づいて今回更新時刻の前記仮想空間のデータを更新する手段と、
前記クライアントから描画準備終了の通知を受信したことを条件として前記クライアントに画面更新の指令を送信する手段と、を備えるサーバ。
【請求項６】
入力装置及び表示装置を備え、仮想空間のデータを周期的に更新するサーバにネットワークを通じて接続されるクライアントであって、
今回更新時刻を前記サーバから受信したことを条件として、前回更新時刻から今回更新時刻までの前記入力装置によるユーザの入力操作に基づいて前記仮想空間のオブジェクトのデータを更新することにより今回更新時刻の前記オブジェクトのデータを生成して前記サーバへ送信する手段と、
前回更新時刻の前記仮想空間のデータを前記サーバから受信したことを条件として、受信した前回更新時刻の前記仮想空間のデータと記憶保持している前回更新時刻の前記オブジェクトのデータから描画データを生成する手段と、
前記描画データの生成が終了したことを条件として前記サーバへ描画準備終了の通知を送信する手段と、
前記サーバから画面更新の指令を受信した時に、前記描画データに基づいて前記表示装置の画面表示を更新する手段と、を備えるクライアント。
【請求項７】
仮想空間のデータを周期的に更新するサーバと、入力装置及び表示装置を含み、ネットワークを通じて前記サーバに接続されるクライアントとを備えるシミュレーションシステムの前記サーバのコンピュータを、
前回更新時刻の前記仮想空間のデータと今回更新時刻を前記クライアントに送信する手段、
前記クライアントから受信した今回更新時刻の前記仮想空間のオブジェクトのデータに基づいて今回更新時刻の前記仮想空間のデータを更新する手段、
前記表示装置への描画準備終了の通知を前記クライアントから受信したことを条件として、前記クライアントに画面更新の指令を送信する手段、として機能させるためのサーバプログラム。
【請求項８】
仮想空間のデータを周期的に更新するサーバと、入力装置及び表示装置を含み、ネットワークを通じて前記サーバに接続されるクライアントとを備えるシミュレーションシステムの前記クライアントのコンピュータを、
前記サーバから今回更新時刻を受信したことを条件として、前回更新時刻から今回更新時刻までの前記入力装置によるユーザの入力操作に基づいて前記仮想空間のオブジェクトのデータを更新することにより今回更新時刻の前記オブジェクトのデータを生成して前記サーバへ送信する手段、
前記サーバから前回更新時刻の前記仮想空間のデータを受信したことを条件として、前記サーバから受信した前回更新時刻の前記仮想空間のデータと前記クライアントが記憶保持している前回更新時刻の前記オブジェクトのデータから描画データを生成する手段、
前記描画データの生成が終了したことを条件として前記サーバへ描画終了の通知を送信する手段、
前記サーバから画面更新の指令を受信した時に、前記描画データに基づいて前記表示装置の画面表示を更新する手段、として機能させるためのクライアントプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシミュレーションシステムに関する。
【背景技術】
【０００２】
車の運転などを仮想的に体験できるドライブシミュレータは、アミューズメント用や運転技能訓練用、車両開発用のほか、道路交通に関する学術研究用など多岐にわたる目的に利用されている。このドライブシミュレータのリアリティを高めるためには、仮想空間内の交通状況や環境、ドライバーの操作、仮想空間内の運転席からの視野などを細部まで計算する必要がある。このため単一の計算機ではリアリティの向上に伴う計算量の増加に処理が追いつかないことがある。そこでネットワークを介して複数の計算機を結合したクラスターシステムを構成することにより、計算の負荷を分散して処理する方法が用いられている。
【０００３】
例えば特許文献１に開示された先行技術は、ドライバーが操作する運転車両、道路交通状態を計算する周辺車両生成手段、ドライバーの仮想的な視界を計算する３Ｄ−ＣＧ表示手段などが別々の計算機上に実装されている。そして各計算機で分散処理が行われ、データ通信によって装置間のデータ交換を行うことで一つのドライブシミュレータを構成している。また特許文献１に開示された先行技術は、データ通信に伴う処理速度の低下を抑制するための工夫がなされている。すなわち前回処理ステップにおいて計算及び格納しておいた各装置のデータを今回処理ステップにおいて送受信し、計算と通信の処理ステップを一周期ずらしている。ただしクラスターシステムでは、複数の計算機の処理速度が必ずしも一致するとは限らない。また仮想空間内における一時刻の状態が全ての計算機で同時に処理されているとも限らない。このため特許文献１に開示された先行技術は、複数の計算機が同期処理できるよう実行タイミングを制御する手段が設けられているほか、処理周期の遅い計算機の処理データを補間処理することにより、処理周期の早い計算機の処理データと整合性を図っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２７２１５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ドライブシミュレータのリアリティを向上させる他の方法として、複数の表示装置を用いて仮想空間内の運転席からの視野を表示する方法が挙げられる。例えば複数の表示装置をドライバーの前面から側面にかけて並べるなどの態様により、より臨場感のある映像をドライバーに提示することができる。先述の特許文献１においても、１台の映像信号生成装置で生成された映像を複数の表示装置に表示する技術が開示されている。
【０００６】
しかし映像の描画速度を落とすことなく複数の表示装置のそれぞれに解像度の高い映像を表示する場合、描画処理に必要な計算負荷がさらに増大して１台の映像信号生成装置では処理しきれなくなる。このため複数の表示装置の各表示装置がそれぞれ一以上の映像信号生成装置を備える必要が生じる。
【０００７】
ところが同時に表示すべき複数の映像を別々の映像信号生成装置で処理すると、表示内容の違いに伴う描画速度の差により、各表示装置に表示される映像に時間差が生じてしまう虞が生ずる。
【０００８】
先述のように計算と通信の処理ステップを一周期ずらすことによっても、ドライバーの操作に対する表示の遅れが生ずる。しかしドライバーの操作とその操作によってもたらされる視野の変化との僅かな時間差は、知覚されにくくドライバーにとってはほとんど気にならない。これに対し例えば複数の隣接した表示装置の映像間に生じる時間差は、僅かであってもドライバーに知覚され、かえってリアリティを損ねてしまう。そしてこの映像表示の時間差は、先述のような複数の計算機の内部処理を同期させる方法では解決できない。
【０００９】
また近年では、仮想空間内の複数の車両をそれぞれのドライバーが操作するドライブシミュレータを用いて、互いの運転に及ぼし合う影響を調べる研究等が行われている。このように複数のドライバーによる操作の相互作用に着目する場合、各ドライバーに提示する映像に生じる時間差が検証結果等に影響を与えてしまう虞が生ずる。
【００１０】
本発明はこのような課題に鑑みてなされたものであり、その目的とするところは、複数の表示装置に対して、各表示装置に対応する計算機で生成した各映像を同期表示するシミュレーションシステムを提供することにある。
【課題を解決するための手段】
【００１１】
＜本発明の第１の態様＞
本発明の第１の態様は、仮想空間のデータを周期的に更新するサーバと、第１入力装置及び第１表示装置を含み、ネットワークを通じて前記サーバに接続される第１クライアントと、第２表示装置を含み、ネットワークを通じて前記サーバに接続される第２クライアントと、を備え、前記サーバは、前回更新時刻の前記仮想空間のデータと今回更新時刻を前記第１クライアント及び前記第２クライアントにそれぞれ送信し、前記第１クライアントは、前記サーバから今回更新時刻を受信したことを条件として、前回更新時刻から今回更新時刻までの前記第１入力装置による第１ユーザの入力操作に基づいて前記仮想空間の第１オブジェクトのデータを更新することにより今回更新時刻の前記第１オブジェクトのデータを生成して前記サーバへ送信し、前記サーバから前回更新時刻の前記仮想空間のデータを受信したことを条件として、受信した前回更新時刻の前記仮想空間のデータと前記第１クライアントが記憶保持している前回更新時刻の前記第１オブジェクトのデータから第１描画データを生成し、前記第１描画データの生成が終了したことを条件として前記サーバへ描画準備終了の通知を送信し、前記第２クライアントは、前記サーバから前回更新時刻の前記仮想空間のデータを受信したことを条件として、受信した前回更新時刻の前記仮想空間のデータから第２描画データを生成し、前記第２描画データの生成が終了したことを条件として前記サーバへ描画準備終了の通知を送信し、前記サーバは、前記第１クライアントから今回更新時刻の前記第１オブジェクトのデータを受信したことを条件として、受信した今回更新時刻の前記第１オブジェクトのデータに基づいて今回更新時刻の前記仮想空間のデータを更新し、前記第１クライアント及び前記第２クライアントから前記描画準備終了の通知を受信したことを条件として、前記第１クライアント及び前記第２クライアントに同時に画面更新の指令を送信し、前記第１クライアントは、前記サーバから前記画面更新の指令を受信した時に、前記第１描画データに基づいて第１表示装置の画面表示を更新し、前記第２クライアントは、前記サーバから前記画面更新の指令を受信した時に、前記第２描画データに基づいて第２表示装置の画面表示を更新する、シミュレーションシステムである。
【００１２】
ここで「更新時刻」とは、周期的に稼働する当該シミュレーションシステムの処理周期の各開始時刻を意味するものであり、各表示装置の表示内容や各データを更新する時刻を意味するものではない。
【００１３】
今回更新時刻を始点とする今回の処理周期内において、第１クライアントは、サーバから前回更新時刻の仮想空間のデータを受信し、第１クライアントが記憶保持している前回更新時刻の第１オブジェクトのデータと合わせて第１描画データを生成する。これにより第１描画データは、前回更新時刻における仮想空間及び第１オブジェクトの状態を反映した描画データとなる。そして第１クライアントは、この描画データの生成が終了したときにサーバへ描画準備終了の通知を送信する。
【００１４】
第２クライアントに関しても、今回の処理周期内においてサーバから前回更新時刻の仮想空間のデータを受信し、前回更新時刻における仮想空間の状態を反映した第２描画データを生成する。そして第２クライアントは、第１クライアントと同様にこの描画データの生成が終了したときにサーバへ描画準備終了の通知を送信する。
【００１５】
このとき第１クライアントと第２クライアントは描画内容が異なるため、描画準備が終了するタイミングは互いに異なる場合が多い。これに対しサーバは、第１クライアントと第２クライアントから描画準備終了の通知を両方受信したことを条件に、第１クライアントと第２クライアントに同時に画面更新の指令を送信する。
【００１６】
サーバからの画面更新の指令を受信した第１クライアント及び第２クライアントは、直ちに自らが準備した描画データで画面表示を更新する。このときサーバから送信される画面更新指令には仮想空間のデータ等が含まれておらず、更新のタイミングを通知するだけであるので、通信に要する時間は無視できるほど短い。また第１クライアント及び第２クライアントの描画データに関しても描画準備が終了しているため、画面更新に要する時間は無視できるほど短い。したがってサーバからの画面更新指令の直後に、第１クライアント及び第２クライアントの画面表示が同時に更新されることになる。
【００１７】
また第１クライアント及びサーバは、今回の処理周期内における上述の描画処理と並行して、次回の処理周期で描画処理に使用するデータの更新処理を以下のように行う。
【００１８】
まず第１クライアントは、前回の処理周期の期間内（前回更新時刻から今回更新時刻までの間）における第１ユーザの入力操作に基づいて、自らが記憶保持している前回更新時刻の第１オブジェクトのデータを更新することで、今回更新時刻の第１オブジェクトのデータを生成し、このデータを記憶保持するとともにサーバへ送信する。
【００１９】
次にサーバは、第１クライアントから受信した今回更新時刻の第１オブジェクトのデータに基づいて、自らが記憶保持している前回更新時刻の仮想空間のデータを更新することで、今回更新時刻の仮想空間のデータを生成して記憶保持する。
【００２０】
これらの処理により、次回の処理周期で使用する今回更新時刻、つまり次回処理周期において前回更新時刻となる時刻における第１オブジェクトと仮想空間のデータを今回の処理周期の期間内で準備しておくことができ、周期的に稼働できるシステムとなる。
【００２１】
これにより本発明の第１の態様によれば、複数の表示装置に対して、各表示装置に対応する計算機で生成した各映像を同期表示するシミュレーションシステムを提供することができるという作用効果が得られる。
【００２２】
＜本発明の第２の態様＞
本発明の第２の態様は、前述した本発明の第１の態様において、前記第２クライアントは、第２入力装置をさらに備え、前記サーバから今回更新時刻を受信したことを条件として、前回更新時刻から今回更新時刻までの前記第２入力装置による第２ユーザの入力操作に基づいて前記仮想空間の第２オブジェクトのデータを更新することにより今回更新時刻の前記第２オブジェクトのデータを生成して前記サーバへ送信し、前記第２描画データは、前記サーバから受信した前回更新時刻の前記仮想空間のデータに加え、前記第２クライアントが記憶保持している前回更新時刻の前記第２オブジェクトのデータから生成される、シミュレーションシステムである。
【００２３】
第２クライアントは、第１クライアントと同様に第２入力装置を備え、サーバとのデータ通信によって仮想空間内の第２オブジェクトを操作することができる。そして第１ユーザによる第１オブジェクトの操作と並行して、第２ユーザにより第２オブジェクトの操作が行われる。よって第１ユーザと第２ユーザが１台のシミュレーションシステムを同時に使用することができるようになる。このとき第１表示装置及び第２表示装置の画面表示は、サーバからの画面更新指令の直後に同時に更新されることになる。
【００２４】
これにより本発明の第２の態様によれば、複数のユーザが同時に使用するシミュレーションシステムにおいても、前述した本発明の第１の態様と同様の作用効果が得られる。
【００２５】
＜本発明の第３の態様＞
本発明の第３の態様は、前述した本発明の第１又２の態様において、前記サーバは、第３表示装置をさらに備え、前記第１クライアント及び前記第２クライアントに前記画面更新の指令を送信するまでに、前回更新時刻の前記仮想空間のデータから第３描画データを生成し、前記画面更新の指令を送信した時に、前記第３描画データに基づいて前記第３表示装置の画面表示を更新する、シミュレーションシステムである。
【００２６】
サーバは、第１クライアント及び第２クライアントとのデータ通信を行いつつ仮想空間のデータを周期的に更新する。またこれと並行してサーバは、第１クライアント及び第２クライアントに画面更新の指令を送信するまでに、前回更新時刻における仮想空間のデータを用いて任意の視点からの映像を第３描画データとして生成する。そしてサーバは、第１クライアント及び第２クライアントに画面更新の指令を送信する時、第３描画データに基づいて第３表示装置の画面表示を更新する。
【００２７】
これにより本発明の第３の態様によれば、仮想空間における任意の視点からの映像を表示するサーバの表示装置を含めて、前述した本発明の第１又は２の態様と同様の作用効果が得られる。
【００２８】
＜本発明の第４の態様＞
本発明の第４の態様は、前述した本発明の第３の態様において、前記サーバは、第３入力装置をさらに備え、前回更新時刻から今回更新時刻までの前記第３入力装置による第３ユーザの入力操作に基づいて前記仮想空間の第３オブジェクトのデータを更新することにより今回更新時刻の前記第３オブジェクトのデータを生成し、前記第３描画データは、前記サーバが記憶保持している前回更新時刻の前記仮想空間のデータに加え、前記サーバが記憶保持している前回更新時刻の前記第３オブジェクトのデータから生成される、シミュレーションシステムである。
【００２９】
サーバは、第１クライアント及び第２クライアントと同様に第３入力装置を備え、仮想空間内の第３オブジェクトを操作することができる。そして第１ユーザ及び第２ユーザの操作と並行して、第３ユーザにより第３オブジェクトの操作が行われる。このとき第１表示装置、第２表示装置、及び第３表示装置の画面表示は、サーバからの画面更新指令の直後に同時に更新されることになる。
【００３０】
これにより本発明の第４の態様によれば、サーバが仮想空間のデータを更新するだけでなくクライアントとしての機能を併せ持つことにより、前述した本発明の第２の態様と同様の作用効果が得られる。
【００３１】
＜本発明の第５の態様＞
本発明の第５の態様は、ネットワークを通じてクライアントに接続されるサーバであって、仮想空間のデータを周期的に更新する手段と、前回更新時刻の前記仮想空間のデータと今回更新時刻とを前記クライアントに送信する手段と、前記クライアントから今回更新時刻の前記仮想空間のオブジェクトのデータを受信したことを条件として、受信した今回更新時刻の前記オブジェクトのデータに基づいて今回更新時刻の前記仮想空間のデータを更新する手段と、前記クライアントから描画準備終了の通知を受信したことを条件として前記クライアントに画面更新の指令を送信する手段と、を備えるサーバである。
【００３２】
本発明の第５の態様によれば、このサーバを用いて構成されたシミュレーションシステムにおいて、前述した本発明の第１の態様と同様の作用効果が得られる。
【００３３】
＜本発明の第６の態様＞
本発明の第６の態様は、入力装置及び表示装置を備え、仮想空間のデータを周期的に更新するサーバにネットワークを通じて接続されるクライアントであって、今回更新時刻を前記サーバから受信したことを条件として、前回更新時刻から今回更新時刻までの前記入力装置によるユーザの入力操作に基づいて前記仮想空間のオブジェクトのデータを更新することにより今回更新時刻の前記オブジェクトのデータを生成して前記サーバへ送信する手段と、前回更新時刻の前記仮想空間のデータを前記サーバから受信したことを条件として、受信した前回更新時刻の前記仮想空間のデータと記憶保持している前回更新時刻の前記オブジェクトのデータから描画データを生成する手段と、前記描画データの生成が終了したことを条件として前記サーバへ描画準備終了の通知を送信する手段と、前記サーバから画面更新の指令を受信した時に、前記描画データに基づいて前記表示装置の画面表示を更新する手段と、を備えるクライアントである。
【００３４】
本発明の第６の態様によれば、このクライアントを用いて構成されたシミュレーションシステムにおいて、前述した本発明の第１の態様と同様の作用効果が得られる。
【００３５】
＜本発明の第７の態様＞
本発明の第７の態様は、仮想空間のデータを周期的に更新するサーバと、入力装置及び表示装置を含み、ネットワークを通じて前記サーバに接続されるクライアントとを備えるシミュレーションシステムの前記サーバのコンピュータを、前回更新時刻の前記仮想空間のデータと今回更新時刻を前記クライアントに送信する手段、前記クライアントから受信した今回更新時刻の前記仮想空間のオブジェクトのデータに基づいて今回更新時刻の前記仮想空間のデータを更新する手段、前記表示装置への描画準備終了の通知を前記クライアントから受信したことを条件として、前記クライアントに画面更新の指令を送信する手段、として機能させるためのサーバプログラムである。
【００３６】
これにより本発明の第７の態様によれば、このプログラムを実行可能なサーバを備えたシミュレーションシステムにおいて、前述した本発明の第１の態様と同様の作用効果が得られる。
尚、このサーバプログラムが記憶され、コンピュータが読み出し可能な有形の非一時的な記憶媒体もまた本発明の対象になり得る。
【００３７】
＜本発明の第８の態様＞
本発明の第８の態様は、仮想空間のデータを周期的に更新するサーバと、入力装置及び表示装置を含み、ネットワークを通じて前記サーバに接続されるクライアントとを備えるシミュレーションシステムの前記クライアントのコンピュータを、前記サーバから今回更新時刻を受信したことを条件として、前回更新時刻から今回更新時刻までの前記入力装置によるユーザの入力操作に基づいて前記仮想空間のオブジェクトのデータを更新することにより今回更新時刻の前記オブジェクトのデータを生成して前記サーバへ送信する手段、前記サーバから前回更新時刻の前記仮想空間のデータを受信したことを条件として、前記サーバから受信した前回更新時刻の前記仮想空間のデータと前記クライアントが記憶保持している前回更新時刻の前記オブジェクトのデータから描画データを生成する手段、前記描画データの生成が終了したことを条件として前記サーバへ描画終了の通知を送信する手段、前記サーバから画面更新の指令を受信した時に、前記描画データに基づいて前記表示装置の画面表示を更新する手段、として機能させるためのクライアントプログラムである。
【００３８】
これにより本発明の第８の態様によれば、このプログラムを実行可能なクライアントを備えたシミュレーションシステムにおいて、前述した本発明の第１の態様と同様の作用効果が得られる。
尚、このサーバプログラムが記憶され、コンピュータが読み出し可能な有形の非一時的な記憶媒体もまた本発明の対象になり得る。
【発明の効果】
【００３９】
本発明によれば、複数の表示装置に対して、各表示装置に対応する計算機で生成した各映像を同期表示するシミュレーションシステムを提供することができる。
【図面の簡単な説明】
【００４０】
【図１】本発明の第１実施例に係るシミュレーションシステムの構成図である。
【図２】本発明の第１実施例に係る第１ドライブシミュレータの斜視図である。
【図３】本発明の第１実施例に係るサーバの概略を示すブロック図である。
【図４】第１実施例に係る第１主端末装置の概略を示すブロック図である。
【図５】第１実施例に係る第１副端末装置の概略を示すブロック図である。
【図６】本発明の第１実施例に係るサーバの動作を示すフローチャートである。
【図７】本発明の第１実施例に係るサーバによるデータ送受信を示すフローチャートである。
【図８】本発明の第１実施例に係るサーバによる交通状態の計算を示すフローチャートである。
【図９】本発明の第１実施例に係る第１主端末装置の動作を示すフローチャートである。
【図１０】本発明の第１実施例に係る第１副端末装置の動作を示すフローチャートである。
【図１１】本発明の第１実施例に係る装置間通信のタイミングを示すシーケンス図である。
【図１２】本発明の第２実施例に係るシミュレーションシステムの構成図である。
【図１３】本発明の第２実施例に係る装置間通信のタイミングを示すシーケンス図である。
【図１４】本発明の第３実施例に係るシミュレーションシステムの構成図である。
【発明を実施するための形態】
【００４１】
以下、図面に基づき本発明の実施形態について説明する。
＜第１実施例＞
図１は、本発明の第１実施例に係るシミュレーションシステム１の構成図である。また図２は、本発明の第１実施例に係る第１ドライブシミュレータ３の斜視図である。
【００４２】
シミュレーションシステム１は、サーバ２、第１ドライブシミュレータ３を備え、それぞれネットワークＮで接続されている。ここでネットワークＮとは、インターネット、イントラネット、ＬＡＮ等である。また第１ドライブシミュレータ３は、「第１クライアント」としての第１主端末装置３１、「第２クライアント」としての第１副端末装置３２Ａ、３２Ｂをさらに備える。
【００４３】
サーバ２は、「コンピュータ」としてのＣＰＵ（Central Processing Unit）１１及びＨＤＤ（Hard Disk Drive）１２を含む。ＨＤＤ１２は、ＣＰＵ１１が読み出し可能な有形の非一時的な記憶媒体である。ＨＤＤ１２には、ＣＰＵ１１に実行され、本明細書において説明するサーバ２の機能を実現するためのサーバプログラムが記憶されている。サーバ２は、シミュレーションシステム１で扱う仮想空間を形成するとともに、仮想空間のデータを周期的に更新する。またサーバ２は、ネットワークＮを介して第１ドライブシミュレータ３とデータの送受信を行う。
【００４４】
第１ドライブシミュレータ３は、仮想空間内を走行する「第１オブジェクト」としての第１車両を第１ユーザが操作するものである。第１主端末装置３１は、「第１表示装置」としての第１正面モニタ３３及び「第１入力装置」としての第１運転操作部３４が接続されている。また第１副端末装置３２Ａ、３２Ｂは、「第２表示装置」としての第１左側モニタ３５Ａ及び第１右側モニタ３５Ｂがそれぞれ接続されている。ここで第１運転操作部３４とは、例えば第１車両のハンドル、アクセル、ブレーキ、ギア、ウインカー、クラクション、ワイパー等を操作する手段を含む運転席である。
【００４５】
第１主端末装置３１は、「コンピュータ」としてのＣＰＵ１３及びＨＤＤ１４を含む。ＨＤＤ１４は、ＣＰＵ１３が読み出し可能な有形の非一時的な記憶媒体である。ＨＤＤ１４には、ＣＰＵ１３に実行され、本明細書において説明する第１主端末装置３１の機能を実現するためのクライアントプログラムが記憶されている。
【００４６】
第１副端末装置３２Ａは、「コンピュータ」としてのＣＰＵ１５及びＨＤＤ１６を含む。ＨＤＤ１６は、ＣＰＵ１５が読み出し可能な有形の非一時的な記憶媒体である。ＨＤＤ１６には、ＣＰＵ１５に実行され、本明細書において説明する第１副端末装置３２Ａの機能を実現するためのクライアントプログラムが記憶されている。
【００４７】
第１副端末装置３２Ｂは、「コンピュータ」としてのＣＰＵ１７及びＨＤＤ１８を含む。ＨＤＤ１８は、例えばハードディスクドライブ等のＣＰＵ１７が読み出し可能な有形の非一時的な記憶媒体である。ＨＤＤ１８には、ＣＰＵ１７に実行され、本明細書において説明する第１副端末装置３２Ｂの機能を実現するためのクライアントプログラムが記憶されている。
【００４８】
第１正面モニタ３３は、第１運転操作部３４の正面に配置されるモニタであり、第１車両からの正面の視界を第１ユーザの正面に提供する。また第１左側モニタ３５Ａは、第１運転操作部３４の左前方に配置されるモニタであり、第１車両からの左前方の視界を第１ユーザに提供する。同様に第１右側モニタ３５Ｂは、第１運転操作部３４の右前方に配置されるモニタであり、第１車両からの右前方の視界を第１ユーザに提供する。このとき第１正面モニタ３３、第１左側モニタ３５Ａ、第１右側モニタ３５Ｂに表示される映像は、第１主端末装置３１、第１副端末装置３２Ａ、第１副端末装置３２Ｂによりそれぞれ独立に生成される。尚、第１左側モニタ３５Ａ及び第１右側モニタ３５Ｂは、サイズや配置を変更してバックミラーやサイドミラーに映る景色を表示してもよい。
【００４９】
次にサーバ２、第１主端末装置３１及び第１副端末装置３２Ａ、３２Ｂについて、内部の構成を詳細に説明する。
図３は、本発明の第１実施例に係るシミュレーションシステム１のサーバ２の構成図である。
サーバ２は、サーバ通信部２１、クライアント管理部２２、周期管理部２３、仮想空間モデル生成部２４、仮想空間移動体生成部２５、仮想空間状態記憶部２６、仮想空間計算部２７を含む。
【００５０】
サーバ通信部２１は、ネットワークＮを介して外部との通信を行う。本実施例においてサーバ通信部２１は、第１主端末装置３１、第１副端末装置３２Ａ及び第１副端末装置３２Ｂとそれぞれ通信する。
【００５１】
クライアント管理部２２は、サーバ通信部２１と通信する各端末装置の情報を管理する。具体的には例えば、通信を確立した端末装置のＩＰアドレス、複数のドライブシミュレータが接続されている場合の識別情報、生成する映像の視界方向（正面、左側、右側）の識別情報等のようなステータス情報を管理する。
【００５２】
周期管理部２３は、サーバ２のシステム時刻を周期的に取得することにより仮想空間の各周期の開始時刻を定義し、サーバ通信部２１と各端末装置との通信のタイミングを管理する。
【００５３】
仮想空間モデル生成部２４は、仮想空間の静的なオブジェクトを定義するものであり、地形、道路、信号機、建物、街路樹等のように仮想空間の時間経過に対して配置や形状が変化しないモデルを生成する。
【００５４】
仮想空間移動体生成部２５は、仮想空間の動的なオブジェクト、つまり仮想空間内で移動するオブジェクトを定義する。例えば通行車両やバイク、歩行者等の移動するモデルがこれに該当する。
【００５５】
仮想空間状態記憶部２６は、仮想空間の状態を常時記憶する。また仮想空間状態記憶部２６で記憶する情報は、仮想空間の時間経過に対して周期的に更新される。
【００５６】
仮想空間計算部２７は、仮想空間の状態変化を周期的に計算する。具体的には例えば、仮想空間移動体生成部２５で生成した通行車両、バイク及び歩行者等の移動や、仮想空間モデル生成部２４で定義した信号機の状態等のほか、仮想空間における時刻や気象状態の変化を周期毎に更新するための計算を行う。また仮想空間計算部２７は、第１主端末装置３１から受信する第１車両の挙動についても仮想空間の更新に反映させる。
【００５７】
図４は、第１実施例に係る第１主端末装置３１の概略を示すブロック図である。また図５は、第１実施例に係る第１副端末装置３２Ａ、３２Ｂの概略を示すブロック図である。
第１主端末装置３１は、端末通信部３１１、視野計算部３１２、描画データ記憶部３１３、自車状態記憶部３１４、仮想空間モデル生成部３１５、自車状態計算部３１６、入力操作記憶部３１７を含む。また第１副端末装置３２Ａ、３２Ｂはそれぞれ、端末通信部３２１、視野計算部３２２、描画データ記憶部３２３、仮想空間モデル生成部３２４を含む。
【００５８】
端末通信部３１１、３２１は、それぞれネットワークＮを介してサーバ２との通信を行う。具体的には例えば端末通信部３１１は、第１車両の状態をサーバ２に送信し、仮想空間の状態をサーバ２から受信する。また端末通信部３２１は、第１車両の視野を計算するために必要な仮想空間のデータをサーバ２から受信する。
【００５９】
視野計算部３１２、３２２は、サーバ２から受信した仮想空間における第１車両及び第１車両の周囲のデータに基づき第１車両からの視野を計算して描画データを作成する。
【００６０】
描画データ記憶部３１３、３２３は、視野計算部３１２、３２２で作成された描画データを一時的に記憶保持し、サーバ２からの画面更新指令を受信したときに各表示装置に直ちに表示できるようスタンバイする。
【００６１】
自車状態記憶部３１４は、前回処理周期で計算された前回更新時刻における第１車両の状態を記憶保持し、今回処理周期で表示する描画データ作成に必要なデータを視野計算部３１２に提供する。そして自車状態記憶部３１４は、今回処理周期で更新される第１車両のデータを次回処理周期まで記憶保持する。
【００６２】
仮想空間モデル生成部３１５、３２４は、サーバ２の仮想空間モデル生成部２４と同様に、仮想空間の静的なオブジェクトを定義するものであり、地形、道路、信号機、建物、街路樹等のように仮想空間の時間経過に対して配置や形状が変化しないモデルを生成する。そして仮想空間モデル生成部３１５、３２４は、視野計算部３１２、３２２それぞれに対し描画データ作成に必要な仮想空間の情報を提供する。
【００６３】
自車状態計算部３１６は、サーバ２から受信した前回更新時刻における仮想空間のデータと入力操作記憶部３１７が記憶保持した前回処理周期（前回更新時刻から今回更新時刻までの間）の第１ユーザの操作履歴とに基づき、今回更新時刻における第１車両の状態を計算する。
【００６４】
入力操作記憶部３１７は、第１車両に対する第１ユーザの操作が第１運転操作部３４から入力され、今回処理周期中（今回更新時刻から次回更新時刻までの間）になされた操作を記憶して次回更新時刻に自車状態計算部３１６に送信する。
【００６５】
次にサーバ２がシミュレーションにおいて実行するプログラムの動作についてフローチャートを用いて説明する。
図６は、本発明の第１実施例に係るサーバの動作を示すフローチャートである。
【００６６】
サーバ２は、シミュレーションシステム１の起動とともに動作を開始する。そしてまず仮想空間モデルの生成を行う（ステップＳ１）。ここではシミュレーションシステム１が扱う仮想空間を定義するため、先述のように仮想空間モデル生成部２４が仮想空間内に地形、道路、信号機、建物、街路樹等のモデルを生成する。
【００６７】
仮想空間モデルの生成が完了すると、サーバ２は、各クライアントとの通信を確立する（ステップＳ２）。本実施例では先述のように、サーバ通信部２１が第１主端末装置３１、第１副端末装置３２Ａ及び第１副端末装置３２Ｂとそれぞれ通信する。そして第１主端末装置３１、第１副端末装置３２Ａ及び第１副端末装置３２Ｂの各ステータス情報を取得し、クライアント管理部２２に送信する。
【００６８】
次にサーバ２は、ステップＳ１において生成した仮想空間モデルに対し車両等を追加することにより、移動体を含む仮想空間の動的オブジェクトを定義する（ステップＳ３）。このとき車両等の各移動体の情報には、位置や移動方向に加え、車輪の向き、車両の傾き、車両の移動速度、エンジンの回転数、各種ライトの点灯状態等の詳細情報が含まれる。
【００６９】
上述のようにサーバ２が行うステップＳ１からステップＳ３までの処理により、シミュレーション開始の準備が完了する。そこでサーバ２の周期管理部２３は、ステップＳ２で通信を確立した第１主端末装置３１、第１副端末装置３２Ａ及び第１副端末装置３２Ｂのそれぞれに対してシミュレーションの開始を通知する（ステップＳ４）。
【００７０】
シミュレーションが開始されるとサーバ２は、各クライアントと仮想空間のデータを送受信するとともに（ステップＳ５）、第１車両を含めた仮想空間の移動体に関する交通状態の計算を行う（ステップＳ６）。尚、ステップＳ５及びステップＳ６は並列処理されるとともに、周期的に実行される（ステップＳ７でＮｏ）。そして第１ユーザによる終了の指示によりシミュレーションが終了する（ステップＳ７でＹｅｓ）。以下、ステップＳ５及びステップＳ６について別図で詳細に説明する。
【００７１】
図７は、本発明の第１実施例に係るサーバによるデータ送受信を示すフローチャートである。
サーバ２の仮想空間状態記憶部２６は、自身が記憶している前回更新時刻における仮想空間のデータを各クライアントへ送信する（ステップＳ１１）。ただし初回の周期に関しては、シミュレーションの準備段階で生成した初期データを用いる。このとき仮想空間状態記憶部２６は、第１副端末装置３２Ａ及び第１副端末装置３２Ｂのそれぞれに対して前回更新時刻における仮想空間の第１車両周辺のデータを送信する。一方、第１主端末装置３１に対して仮想空間状態記憶部２６は、前回更新時刻における仮想空間の第１車両周辺のデータに加え、前回周期間隔、すなわち前回更新時刻から今回更新時刻までの時間を送信する（ステップＳ１２）。
【００７２】
次にサーバ２の仮想空間計算部２７は、第１主端末装置３１において計算された今回更新時刻における第１車両のデータを受信し、今回更新時刻における仮想空間のデータに反映させる（ステップＳ１３）。尚、シミュレーションシステム１が複数のドライブシミュレータを備える場合には、全てのドライブシミュレータから今回更新時刻における各データを受信するまで待機し（ステップＳ１４でＮｏ）、全てが揃った段階で次のステップに進む（ステップＳ１４でＹｅｓ）。
【００７３】
またサーバ２の周期管理部２３は、第１主端末装置３１、第１副端末装置３２Ａ及び第１副端末装置３２Ｂのそれぞれから描画データの準備が終了した旨の通知を受信する（ステップＳ１５）。また周期管理部２３は、全てのクライアントから描画データの準備終了通知を受信したか否かを確認し（ステップＳ１６）、通知を受信していないクライアントがある場合にはその通知を受信するまで待機する（ステップＳ１６でＮｏ）。
【００７４】
そして周期管理部２３は、全てのクライアントから描画データの準備終了通知を受信したことを条件として（ステップＳ１６でＹｅｓ）、全てのクライアントに対して同時に画面更新の指令を送信する（ステップＳ１７）。
【００７５】
図８は、本発明の第１実施例に係るサーバ２による交通状態の計算を示すフローチャートである。
サーバ２の仮想空間計算部２７は、仮想空間における交通状態の計算として次の手順により全ての移動体の挙動を計算する。
【００７６】
まず仮想空間計算部２７は、仮想空間状態記憶部２６に記憶された仮想空間モデルのデータのうち、各移動体の挙動に対して影響する外的要因、すなわち道路、交差点、路面等の状態を取得する（ステップＳ２１）。また同じく仮想空間状態記憶部２６に記憶された前回更新時刻における移動体の情報を取得する（ステップＳ２２）。
【００７７】
次に仮想空間計算部２７は、第１主端末装置３１から受信した前回更新時刻における第１車両の情報を取得する（ステップＳ２３）。そして仮想空間計算部２７は、ステップ２１〜２３で取得した情報に基づき、各移動体の挙動解析を行い移動体ごとの今回更新時刻における状態を計算する（ステップＳ２４）。
【００７８】
仮想空間計算部２７は、全ての移動体の今回更新時刻における状態の計算が完了すると、それらのデータで仮想空間状態記憶部２６のデータを更新する。そして今回処理周期中に更新された今回更新時刻における仮想空間のデータは、次回処理周期まで仮想空間状態記憶部２６に記憶保持される（ステップＳ２５）。
【００７９】
続いて第１主端末装置３１がシミュレーションにおいて実行するプログラムの動作についてフローチャートを用いて説明する。
図９は、本発明の第１実施例に係る第１主端末装置３１の動作を示すフローチャートである。
【００８０】
第１主端末装置３１は、シミュレーションシステム１の起動とともに動作を開始する。そしてまずサーバ２と同様に仮想空間モデル生成部３１５により地形、道路、信号機、建物、街路樹等のモデルを生成する（ステップＳ３１）。
【００８１】
端末通信部３１１は、仮想空間モデル生成部３１５による仮想空間モデルの生成が完了すると、サーバ２との通信を確立する（ステップＳ３２）。そして端末通信部３１１は、第１主端末装置３１のステータス情報をサーバ２に送信する。次に自車状態計算部３１６は、第１ユーザが操作する第１車両のデータを生成し、自車状態記憶部３１４に記憶保持する（ステップＳ３３）。
【００８２】
上述のように第１主端末装置３１が行うステップＳ３１からステップＳ３３までの処理により、シミュレーション開始の準備が完了する。そこで端末通信部３１１は、ステップＳ３２で通信を確立したサーバ２からシミュレーションの開始通知を受信したか否かを判定する（ステップＳ３４）。
【００８３】
シミュレーションの開始通知を受信すると（ステップＳ３４でＹｅｓ）、端末通信部３１１は、サーバ２から前回更新時刻における仮想空間のデータと前回周期間隔とを受信したか否かを判定する（ステップＳ３５）。ここで次に使用する自車状態計算部３１６の演算領域を確保するため、前回処理周期に自車状態計算部３１６で計算されたデータを自車状態記憶部３１４に退避しておく。
【００８４】
サーバ２から前回周期間隔を受信した場合（ステップＳ３５でＹｅｓ）、次に自車状態計算部３１６は、端末通信部３１１が受信した前回周期間隔に基づき前回更新時刻から今回更新時刻までの第１ユーザによる操作を記憶した入力操作記憶部３１７からの情報を取得する。そして自車状態計算部３１６は、この操作情報と自車状態記憶部３１４に記憶されている前回更新時刻における第１車両の状態とに基づき、今回更新時刻における状態を計算し第１車両のデータを更新する（ステップＳ３６）。
【００８５】
ここで自車状態計算部３１６は、ステップＳ３６の計算が完了したことを条件として、計算した今回更新時刻における第１車両のデータをサーバ２へ送信する（ステップＳ３７）。
【００８６】
つづいて視野計算部３１２は、ステップＳ３５において端末通信部３１１が受信した前回更新時刻における仮想空間のデータから、前回更新時刻における第１車両からの正面の視野を計算し、第１正面モニタ３３に表示する描画データを作成する（ステップＳ３８）。さらに視野計算部３１２は、ステップＳ３８における描画データの作成が完了すると、その描画データを描画データ記憶部３１３に記憶するとともに、サーバ２へ描画準備の終了を通知する（ステップＳ３９）。
【００８７】
そして端末通信部３１１は、サーバ２から画面更新の指令を受信したことを条件として（ステップＳ４０でＹｅｓ）、描画データ記憶部３１３に記憶された描画データで直ちに第１正面モニタ３３の映像を更新する（ステップＳ４１）。尚、ステップＳ３５からステップＳ４１までの手順は、シミュレーションが実行されている間は周期的に実行される（ステップＳ４２でＮｏ）。そしてサーバ２の処理が終了したときに第１主端末装置３１のプログラムも終了する（ステップＳ４２でＹｅｓ）。
【００８８】
次に第１副端末装置３２Ａ及び第１副端末装置３２Ｂがシミュレーションにおいて実行するプログラムの動作についてフローチャートを用いて説明する。尚、第１副端末装置３２Ａと第１副端末装置３２Ｂは、扱う描画データが第１ユーザの左側か右側かで異なるだけであり、データの処理手順は共通である。よって以降は第１副端末装置３２Ａについて説明し、第１副端末装置３２Ｂの説明は省略する。
図１０は、本発明の第１実施例に係る第１副端末装置の動作を示すフローチャートである。
【００８９】
第１副端末装置３２Ａは、シミュレーションシステム１の起動とともに動作を開始する。そしてまずサーバ２及び第１主端末装置３１と同様に仮想空間モデル生成部３２４により地形、道路、信号機、建物、街路樹等のモデルを生成する（ステップＳ５０）。また仮想空間モデル生成部３２４は、視野計算部３２２から仮想空間のモデルを参照できるよう視野計算部３２２と接続されている。
【００９０】
第１副端末装置３２Ａの端末通信部３２１は、仮想空間モデル生成部３２４による仮想空間モデルの生成が完了すると、サーバ２との通信を確立する（ステップＳ５１）。そして端末通信部３２１は、第１副端末装置３２Ａのステータス情報をサーバ２に送信する。
【００９１】
第１副端末装置３２Ａの端末通信部３２１は、ステップＳ５０において仮想空間モデルを生成し、ステップＳ５１において通信サーバ２と通信を確立することにより、シミュレーションの準備が完了する。そこで端末通信部３２１は、通信を確立したサーバ２からシミュレーションの開始通知を受信したか否かを判定する（ステップＳ５２）。
【００９２】
シミュレーションの開始通知を受信すると（ステップＳ５２でＹｅｓ）、端末通信部３２１は、サーバ２から前回更新時刻における仮想空間のデータを受信したか否かを判定する（ステップＳ５３）。ここで受信する仮想空間のデータは、前回更新時刻における第１車両の位置及び向きと、仮想空間内の移動体の情報である。
【００９３】
サーバ２から前回更新時刻における仮想空間のデータを受信すると（ステップＳ５３でＹｅｓ）、つづいて視野計算部３２２は、ステップＳ５３において端末通信部３２１が受信した前回更新時刻における仮想空間のデータから、前回更新時刻における第１車両からの左側の視野を計算し、第１左側モニタ３５Ａに表示する描画データを作成する（ステップＳ５４）。さらに視野計算部３２２は、ステップＳ５４における描画データの作成が完了すると、その描画データを描画データ記憶部３２３に記憶するとともに、サーバ２へ描画準備の終了を通知する（ステップＳ５５）。
【００９４】
そして端末通信部３２１は、サーバ２から画面更新の指令を受信したことを条件として（ステップＳ５６でＹｅｓ）、描画データ記憶部３２３に記憶された描画データで直ちに第１左側モニタ３５Ａの映像を更新する（ステップＳ５７）。尚、ステップＳ５３からステップＳ５７までの手順は、シミュレーションが実行されている間は周期的に実行される（ステップＳ５８でＮｏ）。そしてサーバ２の処理が終了した場合に第１副端末装置３２Ａのプログラムも終了する（ステップＳ５８でＹｅｓ）。
【００９５】
次にサーバ２、第１主端末装置３１、及び第１副端末装置３２Ａによる相互の通信について、シミュレーション周期中におけるデータ送受信及び通知のタイミングを説明する。
図１１は、本発明の第１実施例に係る装置間通信のタイミングを示すシーケンス図である。
ここでは時刻Ｔ１は前回更新時刻を、時刻Ｔ２は今回更新時刻を、時刻Ｔ３は次回更新時刻を表し、時刻Ｔ１から時刻Ｔ２までの期間を前回処理周期、時刻Ｔ２から時刻Ｔ３までの期間を今回処理周期と表現する。また図１１では、今回処理周期における通信以外の処理は図示を省略している。また第１副端末装置３２Ｂについては、第１副端末装置３２Ａと同様であるため、図示及び詳細な説明を省略する。
【００９６】
サーバ２は、システム時刻を周期的に取得することによりシミュレーションの各周期の開始時刻を定義する。具体的にはここでは、サーバ２が時刻Ｔ２を取得することにより今回更新時刻が定義され、今回処理周期の開始時刻になる。
【００９７】
サーバ２は、今回更新時刻を定義した後、第１主端末装置３１に時刻Ｔ１時点の仮想空間のデータ及び前回処理周期の時間間隔を送信する（ステップＳ６０）。またこのときサーバ２は、第１副端末装置３２Ａに時刻Ｔ１時点の仮想空間のデータを送信する（ステップＳ６１）。
【００９８】
これに対し第１主端末装置３１は、時刻Ｔ２時点の第１車両の状態を計算してサーバ２に送信するとともに（ステップＳ６２）、時刻Ｔ１時点における第１車両からの正面の視界の映像（第１正面モニタ３３の表示）を作成してその描画データの準備が完了した旨の通知をサーバ２に送信する（ステップＳ６４）。
【００９９】
一方、第１副端末装置３２Ａは、時刻Ｔ１時点における第１車両からの左前方の視界の映像（第１左側モニタ３５Ａの表示）を作成してその描画データの準備が完了した旨の通知をサーバ２に送信する（ステップＳ６３）。
【０１００】
ここで第１主端末装置３１からサーバ２へ送信される描画終了通知と第１副端末装置３２Ａからサーバ２へ送信される描画終了通知は、描画内容の違いやその他の処理の有無により必ずしも同時に行われるわけではない。よってサーバ２は、第１主端末装置３１及び第１副端末装置３２Ａの両方からの描画データの準備が完了した旨の通知を受信したことを条件として、両者に画面更新指令を同時に送信する（ステップＳ６５）。
【０１０１】
サーバ２から画面更新指令を受信した第１主端末装置３１及び第１副端末装置３２Ａは、直ちに各々が作成した描画データで第１正面モニタ３３及び第１左側モニタ３５Ａの画面をそれぞれ更新する。このときサーバ２から送信される画面更新指令には仮想空間のデータ等が含まれておらず、更新のタイミングを通知するだけであるので、通信に要する時間は無視できるほど短い。また第１主端末装置３１及び第１副端末装置３２Ａの描画データに関しても描画準備が終了しているため、画面更新に要する時間は無視できるほど短い。したがってサーバ２からの画面更新指令の直後に、第１主端末装置３１及び第１副端末装置３２Ａの画面表示が同時に更新されることになる。
【０１０２】
以上のようにサーバ２及び第１主端末装置３１は、今回処理周期において、今回更新時刻時点の仮想空間及び第１車両のデータをそれぞれ更新処理する。また第１主端末装置３１及び第１副端末装置３２Ａは、今回処理周期において、前回更新時刻時点の仮想空間のデータから描画データを作成する。このため第１主端末装置３１及び第１副端末装置３２Ａは、各更新周期においてサーバ２の画面更新指令の直後に同時に画面を更新することができる。
【０１０３】
これにより本発明の第１実施例に係るシミュレーションシステム１は、第１主端末装置３１、第１副端末装置３２Ａ及び第１副端末装置３２Ｂで生成した映像を第１正面モニタ３３、第１左側モニタ３５Ａ及び第１右側モニタ３５Ｂのそれぞれに対して同期表示することができる。
【０１０４】
＜第２実施例＞
次に本発明の第２実施例について説明する。第２実施例のシミュレーションシステムは、２つのドライブシミュレータが設けられている点で第１実施例と構成が異なる。以下、第１実施例と異なる部分について説明することとし、第１実施例と共通する構成要素については、同じ符号を付して詳細な説明を省略する。
【０１０５】
図１２は、本発明の第２実施例に係るシミュレーションシステム１の構成図である。
シミュレーションシステム１は、サーバ２、第１ドライブシミュレータ４、第２ドライブシミュレータ５を備え、それぞれネットワークＮで接続されている。また第１ドライブシミュレータ４は、「第１クライアント」としての第１主端末装置４１をさらに備える。同じく第２ドライブシミュレータ５は、「第２クライアント」としての第２主端末装置５１をさらに備える。
【０１０６】
第１主端末装置４１は、第１正面モニタ４３、第１運転操作部４４を備え、第１実施例における第１主端末装置３１と同じ構成であるため詳細な説明は省略する。また第２主端末装置５１は、「第２表示装置」としての第２正面モニタ５３、「第２入力装置」としての第２運転操作部５４を備え、第１主端末装置４１と同じ構成であるため詳細な説明は省略する。
【０１０７】
本実施例では、第１ユーザ及び第２ユーザがそれぞれ第１ドライブシミュレータ４及び第２ドライブシミュレータ５により同一の仮想空間における第１車両及び「第２オブジェクト」としての第２車両をそれぞれ操作する。また第１ドライブシミュレータ４及び第２ドライブシミュレータ５は、第１実施例と同様に複数のモニタとそれぞれの描画処理用端末を備えることもできる。
図１１は、本発明の第１実施例に係る装置間通信のタイミングを示すシーケンス図である。
ここでは時刻Ｔ１は前回更新時刻を、時刻Ｔ２は今回更新時刻を、時刻Ｔ３は次回更新時刻を表し、時刻Ｔ１から時刻Ｔ２までの期間を前回処理周期、時刻Ｔ２から時刻Ｔ３までの期間を今回処理周期と表現する。また図１１では、今回処理周期における通信以外の処理は図示を省略している。また第１副端末装置３２Ｂについては、第１副端末装置３２Ａとどうようであるため、図示及び詳細な説明を省略する。
【０１０８】
図１３は、本発明の第２実施例に係る装置間通信のタイミングを示すシーケンス図である。
サーバ２は、システム時刻を周期的に取得することによりシミュレーションの各周期の開始時刻を定義する。具体的にはここでは、サーバ２が時刻Ｔ２を取得することにより今回更新時刻が定義され、今回処理周期の開始時刻になる。サーバ２は、今回更新時刻を定義した後、第１主端末装置４１及び第２主端末装置５１に時刻Ｔ１時点の仮想空間のデータ及び前回処理周期の時間間隔をそれぞれ送信する（ステップＳ７０、Ｓ７１）。
【０１０９】
これに対し第１主端末装置４１は、時刻Ｔ２時点の第１車両の状態を計算してサーバ２に送信するとともに（ステップＳ７２）、時刻Ｔ１時点における第１車両からの正面の視界の映像（第１正面モニタ４３の表示）を作成してその描画データの準備が完了した旨の通知をサーバ２に送信する（ステップＳ７４）。同様に、第２主端末装置５１は、時刻Ｔ２時点の第２車両の状態を計算してサーバ２に送信するとともに（ステップＳ７３）、時刻Ｔ１時点における第２車両からの正面の視界の映像（第２正面モニタ５３の表示）を作成してその描画データの準備が完了した旨の通知をサーバ２に送信する（ステップＳ７５）。
【０１１０】
サーバ２は、第１主端末装置４１及び第２主端末装置５１の両方から描画データの準備が完了した旨の通知を受信したことを条件として、両者に画面更新指令を同時に送信する（ステップＳ７６）。サーバ２から画面更新指令を受信した第１主端末装置４１は、作成した描画データで第１正面モニタ４３の画面を直ちに更新する。同様に、サーバ２から画面更新指令を受信した第２主端末装置５１は、作成した描画データで第２正面モニタ５３の画面を直ちに更新する。
【０１１１】
このときサーバ２から送信される画面更新指令には仮想空間のデータ等が含まれておらず、更新のタイミングを通知するだけであるので、通信に要する時間は無視できるほど短い。また第１主端末装置４１及び第２主端末装置５１の描画データに関しても描画準備が終了しているため、画面更新に要する時間は無視できるほど短い。したがってサーバ２からの画面更新指令の直後に、第１主端末装置４１及び第２主端末装置５１の画面表示が同時に更新されることになる。
【０１１２】
これにより本発明の第２実施例に係るシミュレーションシステム１は、第１主端末装置４１及び第２主端末装置５１で生成した映像を第１正面モニタ４３及び第２正面モニタ５３のそれぞれに対して同期表示することができる。
【０１１３】
＜第３実施例＞
次に本発明の第３実施例について説明する。第３実施例のシミュレーションシステムは、サーバ２が第３正面モニタ６１及び第３運転操作部６２をさらに備える点で第２実施例と異なる。以下、第２実施例と異なる部分について説明することとし、第２実施例と共通する構成要素については、同じ符号を付して詳細な説明を省略する。
【０１１４】
図１４は、本発明の第３実施例に係るシミュレーションシステムの構成図である。
シミュレーションシステム１は、操作サーバ６、第１ドライブシミュレータ４、第２ドライブシミュレータ５を備え、それぞれネットワークＮで接続されている。また操作サーバ６は、「第３表示装置」としての第３正面モニタ６１、「第３入力装置」としての第３運転操作部６２をさらに備える。
【０１１５】
操作サーバ６は、第３ユーザによる第３運転操作部６２からの操作に基づき、仮想空間における「第３オブジェクト」としての第３車両を操作し、第３車両からの正面の視野の映像を第３正面モニタ６１によりに第３ユーザに提示する。また操作サーバ６は、第１主端末装置４１及び第２主端末装置５１と同様に、以下に説明する手順により第３車両のデータの更新及び描画データの生成を行う。
【０１１６】
まず操作サーバ６は、今回更新時刻を定義した後、第１主端末装置４１及び第２主端末装置５１に前回更新時刻時点の仮想空間のデータ及び前回処理周期の時間間隔を送信する。
【０１１７】
これに対し第１主端末装置４１は、今回更新時刻時点の第１車両の状態を計算して操作サーバ６に送信するとともに、前回更新時刻時点における第１車両からの正面の視界の映像（第１正面モニタ４３の表示）を作成してその描画データの準備が完了した旨の通知を操作サーバ６に送信する。同様に、第２主端末装置５１は、今回更新時刻時点の第２車両の状態を計算して操作サーバ６に送信するとともに、前回更新時刻時点における第２車両からの正面の視界の映像（第２正面モニタ５３の表示）を作成してその描画データの準備が完了した旨の通知を操作サーバ６に送信する。
【０１１８】
操作サーバ６は、第１主端末装置４１及び第２主端末装置５１によるデータの更新及び描画データの準備と並行して、第３車両のデータの更新及び描画データの準備を行う。すなわち操作サーバ６は、前回更新時刻から今回更新時刻までの第３運転操作部６２からの操作に基づいて今回更新時刻時点の第３車両の状態を計算する。これとともに操作サーバ６は、操作サーバ６が記憶保持する前回更新時刻時点の仮想空間のデータと、操作サーバ６が記憶保持する前回更新時刻時点の第３車両のデータとから、前回更新時刻時点の第３車両からの正面の視界の映像（第３正面モニタ６１の表示）を作成してその描画データを準備する。
【０１１９】
操作サーバ６は、第１主端末装置４１及び第２主端末装置５１の両方から描画データの準備が完了した旨の通知を受信し、かつ操作サーバ６の描画データの準備が完了したことを条件として、第１主端末装置４１及び第２主端末装置５１に画面更新指令を同時に送信する。操作サーバ６から画面更新指令を受信した第１主端末装置４１は、作成した描画データで第１正面モニタ４３の画面を直ちに更新する。同様に、サーバ２から画面更新指令を受信した第２主端末装置５１は、作成した描画データで第２正面モニタ５３の画面を直ちに更新する。このとき操作サーバ６は、作成した描画データで第３正面モニタ６１の画面を直ちに更新する。
【０１２０】
このとき操作サーバ６から送信される画面更新指令には仮想空間のデータ等が含まれておらず、更新のタイミングを通知するだけであるので、通信に要する時間は無視できるほど短い。また操作サーバ６、第１主端末装置４１、及び第２主端末装置５１の描画データに関しても描画準備が終了しているため、画面更新に要する時間は無視できるほど短い。したがって操作サーバ６からの画面更新指令の直後に、操作サーバ６、第１主端末装置４１、及び第２主端末装置５１の画面表示が同時に更新されることになる。
【０１２１】
これにより本発明の第３実施例に係るシミュレーションシステム１は、操作サーバ６、第１主端末装置４１及び第２主端末装置５１で生成した映像を第３正面モニタ６１、第１正面モニタ４３及び第２正面モニタ５３のそれぞれに対して同期表示することができる。
【０１２２】
＜変形例＞
上記説明した第３実施例の変形例について以下説明する。例えば操作サーバ６は、第３実施例で説明したように第３オブジェクトを操作することができる操作モードと、第３オブジェクトを操作せずに定点観測ができる表示モードとを選択できる機能とを備える。
【０１２３】
表示モードでは、第３ユーザは、仮想空間における任意の位置及び方向を指定することにより、その位置及び方向に対応する視野の描画データを生成し第３正面モニタ６１に表示する。このとき第３正面モニタ６１に表示される映像は、第１正面モニタ４３及び第２正面モニタ５３と同期表示される。
【０１２４】
これにより本発明の第３実施例の変形例に係るシミュレーションシステム１は、仮想空間内を運転操作する第１ユーザ及び第２ユーザに提示する映像を加え、観測者としての第３ユーザに提示する映像も含めた同期表示が可能となる。このシステムは例えば、ドライバーと交通誘導員との相互作用を検証できるほか、航空機のフライトシミュレータに応用した場合にパイロットと管制官との相互作用をシミュレートすること等が可能となる。
【０１２５】
以上で実施形態の説明を終えるが、本発明は上述した実施形態に限定されるものではない。例えば仮想空間において操作可能なオブジェクトは、車両に限らずバイク、自転車、歩行者等でもよい。
【符号の説明】
【０１２６】
１  シミュレーションシステム
２  サーバ
３、４  第１ドライブシミュレータ
５  第２ドライブシミュレータ
６  操作サーバ
３１、４１  第１主端末装置
３２Ａ、３２Ｂ  第１副端末装置
３３、４３  第１正面モニタ
３４、４４  第１運転操作部
３５Ａ  第１左側モニタ
３５Ｂ  第１右側モニタ
５１  第２主端末装置
５３  第２正面モニタ
５４  第２運転操作部
６１  第３正面モニタ
６２  第３運転操作部
Ｎ  ネットワーク
【図１】
2017138793.tif 000003
【図２】
2017138793.tif 000004
【図３】
2017138793.tif 000005
【図４】
2017138793.tif 000006
【図５】
2017138793.tif 000007
【図６】
2017138793.tif 000008
【図７】
2017138793.tif 000009
【図８】
2017138793.tif 000010
【図９】
2017138793.tif 000011
【図１０】
2017138793.tif 000012
【図１１】
2017138793.tif 000013
【図１２】
2017138793.tif 000014
【図１３】
2017138793.tif 000015
【図１４】
2017138793.tif 000016