説明

シミュレーション装置、プログラム及び情報記憶媒体

【課題】
本発明の解決すべき課題は、ユーザに、ゲーム性を有する模擬運転を行わせつつ、所定の運転をするよう促すことができるシミュレーション装置を提供すること。
【解決手段】
上記課題を解決するための解決手段は、仮想空間内に配置されたアイテムをユーザの操作によって移動する移動体UCが取得するシミュレーションを実行するシミュレーション装置であって、オブジェクト空間設定部111は、移動体UCの位置又は向きに基づいて、アイテムIT1〜IT3を配置する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はシミュレーション装置、プログラム及び情報記憶媒体に関する。
【背景技術】
【0002】
従来より、運転者が安全運転や地球環境に優しい運転をしているかどうかを評価する装置が知られている(特許文献1)。この従来技術によれば、現実の車の運転状態を運転者に報知することにより、運転者が安全運転や地球環境に優しい運転をするように促すことができる。
【特許文献1】特開2000−247162号
【発明の概要】
【発明が解決しようとする課題】
【0003】
上記従来技術では、現実の運転において運転者が所定の運転をするように促すことができるが、運転シミュレーション装置による仮想空間内の運転においても運転者が所定の運転をするように促すことができれば、運転者の運転技術を向上させるために効果的である。 本発明の課題は、ユーザに、運転シミュレーションならではのゲーム性を有する模擬運転を行わせつつ、所定の運転をするよう促すことができるシミュレーション装置を提供することである。
【課題を解決するための手段】
【0004】
(1)上記課題を解決するための第1、第11及び第12の発明は、仮想空間内に配置されたアイテムをユーザの操作によって移動する移動体が取得するシミュレーションを実行するシミュレーション装置であって、操作部と、仮想空間内に、アイテム及び移動体を配置するオブジェクト空間設定部と、操作部の操作に基づいて移動体を移動させる移動体制御部と、アイテムと移動体の接触を判定する接触判定部と、アイテムと移動体が接触したと判定された場合、アイテムの取得処理を行うアイテム処理部とを有し、オブジェクト空間設定部は、移動体の位置又は向きに基づいて、アイテムを配置することを特徴とするシミュレーション装置、シミュレーション装置を上記のように機能させるプログラム及び当該プログラムが記録された情報記憶媒体である。
【0005】
これにより、ユーザに、仮想空間内でアイテムを取得しながら移動体を移動させるというゲーム性を有するシミュレーションを行わせることができる。そして、ユーザはアイテムを取得するため、アイテムの配置されている位置を通るように移動体を移動させようとするので、当該アイテムの配置を移動体の位置又は向きに基づいて変化させることにより、移動体の位置又は向きに応じて異なる位置を移動体に通らせるようにユーザを促すことができる。
【0006】
ここで、オブジェクト空間設定部は、仮想空間内にアイテムを最初に配置する際に、その配置位置を移動体の位置又は向きに基づいて決定してもよいし、仮想空間内に既に配置されたアイテムの配置位置を、移動体の位置又は向きに基づいて変化させてもよい。
【0007】
また、アイテム処理部が、所定の条件を満たした場合に移動体からアイテムを排出させる排出処理を行うようにし、オブジェクト空間設定部は、当該排出されたアイテムの配置し位置を移動体の位置又は向きに基づいて決定するようにしてもよい。
【0008】
このようにすれば、取得すべきアイテムが移動体から排出されて増加するという演出を行えると共に、排出されたアイテムを取得する場合においても、移動体の位置又は向きに応じて異なる位置を移動体に通らせるようにユーザを促すことができる。
【0009】
(2)第2の発明は、第1、第11、第12の発明のいずれかに従属するものであって、オブジェクト空間設定部が、アイテムに関する向きと移動体の向きとに基づいてアイテムを配置することを特徴とする。
【0010】
このようにすれば、アイテムと移動体の向きの関係に応じた位置を移動体に通らせるようにユーザを促すことができる。
【0011】
ここで、アイテムに関する向きとは、アイテム配置情報に含まれる向きの情報のことであり、例えば、アイテムに個別に設定された向き情報、複数のアイテムに共通に設定された向き情報、複数のアイテムが並んで配置される場合はその並び方向等である。
【0012】
例えば、複数のアイテムを仮想空間上に設定された道路に沿って並べて配置した場合、アイテムに関する向きは道路に沿った方向になる。この場合に、アイテムに関する向きと移動体の向きに基づいてアイテムの配置位置を決定すれば、道路上の移動体の向きに応じた側にアイテムが配置されるようにすることもできる。
【0013】
このようにすれば、道路上の走行すべき車線(例えば左側車線)にアイテムが配置されるので、ユーザが移動体に走行すべき車線を通らせるよう促すことができる。
【0014】
(3)第3の発明は、第2の発明に従属するものであって、オブジェクト空間設定部が、アイテムに関する向きと移動体の向きとに基づいて距離を算出し、仮想空間内の所定の基準位置から、アイテムに関する向きと所定の関係にある向きに当該距離だけ離れた位置に、アイテムを配置することを特徴とする。
【0015】
このようにすれば、アイテムと移動体の向きの関係に応じた距離だけ基準位置から離れた位置を移動体に通らせるようにユーザを促すことができる。
【0016】
(4)第4の発明は、第1〜3、第11、第12の発明のいずれかに従属するものであって、オブジェクト空間設定部が、移動体から所定以下の距離に配置されたアイテムの位置を変更することを特徴とする。
【0017】
このようにすれば、仮想空間内に配置された全てのアイテムの位置を変更する場合に比べて処理負荷が軽減される。
【0018】
(5)第5の発明は、第1〜第4、第11、第12の発明のいずれかに従属するものであって、アイテム処理部が、アイテムの取得数をカウントし、アイテムの取得数が所定数に達すると、仮想空間内にシミュレーション終了位置を設定する終了位置設定部と、移動体がシミュレーション終了位置に移動した時に、シミュレーションを終了する終了判定部をさらに有することを特徴とする。
【0019】
このようにすれば、シミュレーションの進行に併せてシミュレーション終了位置を設定することができる。
【0020】
(6)第6の発明は、第5の発明に従属するものであって、オブジェクト空間設定部が、仮想空間内に複数のアイテムを配置し、終了位置設定部は、複数のアイテムの内の一つをシミュレーション終了アイテムとして選択し、終了判定部は、シミュレーション終了アイテムが取得された時にシミュレーションを終了することを特徴とする。
【0021】
このようにすれば、シミュレーションの進行に応じて決まる所定のアイテムを取得した時にシミュレーションを終了させることができる。
【0022】
(7)第7の発明は、第6の発明に従属するものであって、仮想空間内に配置された仮想カメラから仮想空間を見た画像を生成する画像生成部をさらに有し、終了位置設定部は、複数のアイテムの内、仮想カメラの視界外に配置されたアイテムをシミュレーション終了アイテムとして選択することを特徴とする。
【0023】
このようにすれば、仮想空間内に配置された複数のアイテムの内最後に取得されるアイテムがシミュレーション終了アイテムとして選択される可能性が高くなる。特に、仮想空間内に配置された全てのアイテムを取得するとシミュレーションが終了するようにしたい場合は、最後に取得されるアイテムがシミュレーション終了アイテムとして選択される必要があるため、このようにすることが効果的である。
【0024】
(8)第8の発明は、第6、第7の発明のいずれかに従属するものであって、終了位置設定部が、複数のアイテムの内、移動体から最も遠い位置に配置されたアイテムをシミュレーション終了アイテムとして選択することを特徴とする。
【0025】
このようにすれば、仮想空間内に配置された複数のアイテムの内最後に取得されるアイテムがシミュレーション終了アイテムとして選択される可能性が高くなる。
【0026】
(9)第9の発明は、第5〜第8の発明のいずれかに従属するものであって、オブジェクト空間設定部が、シミュレーション終了位置に終了位置オブジェクトを配置することを特徴とする。
【0027】
このようにすれば、ユーザにシミュレーション終了位置を報知することができる。
【0028】
(10)第10の発明は、第9の発明に従属するものであって、オブジェクト空間設定部が、移動体がシミュレーション終了位置から所定以下の距離に近づいた場合に、終了位置オブジェクトを配置することを特徴とする。
【0029】
このようにすれば、移動体がシミュレーション終了位置の近くまで来ると終了位置オブジェクトが出現するという演出を行うことができる。
【図面の簡単な説明】
【0030】
【図1】本実施形態のシミュレーション装置の機能ブロック図
【図2】本実施形態のシミュレーションを説明するための図
【図3】本実施形態のシミュレーションを説明するための図
【図4】本実施形態のシミュレーションを説明するための図
【図5】本実施形態のシミュレーションを説明するための図
【図6】本実施形態の処理の流れを示すフローチャート
【図7】本実施形態のシミュレーションを説明するための図
【図8】本実施形態のシミュレーションを説明するための図
【図9】本実施形態のシミュレーションを説明するための図
【図10】本実施形態のシミュレーションを説明するための図
【図11】本実施形態の処理の流れを示すフローチャート
【図12】本実施形態のシミュレーションを説明するための図
【図13】本実施形態のシミュレーションを説明するための図
【図14】本実施形態のシミュレーションを説明するための図
【図15】本実施形態の処理の流れを示すフローチャート
【図16】本実施形態の処理の流れを示すフローチャート
【発明を実施するための最良の形態】
【0031】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0032】
1.構成
図1を用いて本実施形態の運転シミュレーション装置の構成について説明する。なお、図1は、本実施形態の運転シミュレーション装置における機能構成の例である。また、本実施形態の運転シミュレーション装置は、図1に示す構成要素(各部)の一部を省略した構成としてもよい。
【0033】
操作部160(シミュレーションコントローラ)は、ユーザが操作データを入力するためのものであり、その機能は、方向キー、アナログスティック、ボタン、レバー、ステアリング、ペダル、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【0034】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどにより実現できる。特に、この記憶部170は、処理部100がワーク領域として利用する主記憶部172及び画像を生成する際に用いる描画バッファ174を含む。主記憶部172には、シミュレーション実行に必要なパラメータ等の各種情報が記憶され、これらの情報はシミュレーションの進行に伴って更新される。
【0035】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。この情報記憶媒体180には、処理部100において本実施形態の種々の処理を行うためのプログラム(データ)が記憶されている。即ち、この情報記録媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶されている。
【0036】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。
【0037】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0038】
携帯型情報記憶装置194には、ユーザの個人データやシミュレーションのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型シミュレーション装置などがある。
【0039】
通信部196は、外部(例えばホスト装置や他の運転シミュレーション装置)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0040】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0041】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、シミュレーション処理、画像生成処理、或いは音生成処理などを行う。この処理部100は、記憶部170の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は、各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムなどにより実現できる。そして、この処理部100は、シミュレーション処理部110、画像生成部140、音生成部150を含む。
【0042】
シミュレーション処理部110は、操作部160から入力された又はシミュレーション処理部110内部にて設定された操作データやプログラムなどに基づいてシミュレーション処理を行う。
【0043】
このシミュレーション処理としては、シミュレーション開始条件が満たされた場合にシミュレーションを開始する処理、シミュレーションを進行させる処理、車両やマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、シミュレーション結果を演算する処理、或いはシミュレーション終了条件が満たされた場合にシミュレーションを終了する処理などがある。
【0044】
また、本実施形態のシミュレーション処理部110は、例えば、車両、船舶又は飛行機などの移動体オブジェクトの運転シミュレーションを実行するための各種の処理を行う。そして、本実施形態のシミュレーション処理部110は、ユーザの操作に基づいて上述の移動体オブジェクトの移動を制御し、単独又は複数のユーザにてオブジェクト空間に形成されるコースに従って運転シミュレーションを実行するための各種の処理を行う。
【0045】
そしてシミュレーション処理部110は、移動体オブジェクトを含むオブジェクト群をオブジェクト空間に配置設定するオブジェクト空間設定部111と、操作部160からの入力データを受け付けるための処理を行う入力処理部112と、移動体オブジェクトのオブジェクト空間内における移動・動作演算を行う移動体制御部113と、シミュレーション中における移動体オブジェクトと他のオブジェクト(他の移動体オブジェクトを含む)との接触判定(ヒットチェック)を行う接触判定部114と、仮想空間に配置されたアイテムの取得処理を行うアイテム処理部115と、シミュレーションの終了位置を設定する終了位置設定部116と、シミュレーションの終了を判定する終了判定部117と、仮想カメラ制御部118と、運転シミュレーションにおける各種の計時を行う計時制御部119と、指示オブジェクトの移動指示状態と停止指示状態を切り替える指示オブジェクト制御部120と、指示オブジェクトの状態に影響を与える所定の条件が満たされたことを判定する条件判定部121と、仮想空間内にシミュレーションに影響を与える所定の領域を設定する領域設定部122と、通信部196によるデータの送受信を制御する通信制御部130を含む。なお、これらの一部を省略する構成としてもよい。
【0046】
オブジェクト空間設定部111は、各キャラクタ、車両、船舶、建物、樹木、柱、壁、マップ(地形)、道路、信号(指示オブジェクトの一例)、アイテムなどの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ち、このオブジェクト空間設定部111は、ワールド座標系でのオブジェクト(モデルオブジェクト)の位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。また、オブジェクト空間設定部111は、配置したオブジェクトの位置を変更する処理を行う。
【0047】
入力処理部112は、操作部160と連動し、当該操作部160をユーザが操作することで入力される操作入力を受け付ける処理(監視し、検出する処理)を行う。具体的には、入力処理部112は、例えば、車両などにおけるハンドル操作、アクセル操作又はブレーキ操作など、移動体オブジェクトの運転中の移動を制御するためのユーザの操作入力を受け付ける。
【0048】
移動体制御部113は、オブジェクト、例えば、車、船舶又は飛行機等の各移動体オブジェトにおける移動・動作演算(移動・動作シミュレーション)を行う。即ち、この移動体制御部113は、操作部160によりユーザが入力した操作データ、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体オブジェクトをオブジェクト空間内で移動させたり、停止させたり、動作(モーション、アニメーション)させたりする処理を行う。具体的には、本実施形態の移動体制御部113は、移動体オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なお、このフレームは、オブジェクトの移動・動作演算(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0049】
また、本実施形態の移動体制御部113は、各移動体オブジェクが他の移動体オブジェクト又はコースの壁やブロックなどの障害物となるオブジェクト(以下、「障害物オブジェクト」という。)と接触した場合には、その接触状況に基づいて、移動体オブジェクトを移動・動作させるためのシミュレーション処理を行う。
【0050】
接触判定部114は、移動体オブジェクト同士や移動体オブジェクトと他のオブジェクトとの接触を検出する接触判定(ヒットチェック)を行う。なお、本実施形態において、接触判定(ヒットチェック)を行う場合には、各移動体オブジェクトの形状を簡略化して擬似的に表したヒットボリューム(ヒットボックス、ヒットエリア、簡易オブジェクト)や、車両のバンパーなどのオブジェクトの部位が描く軌道を簡略化して擬似的に表したヒットボリュームを用いることができる。
【0051】
アイテム処理部115は、アイテムと前記移動体オブジェクトが接触したと判定された場合、アイテムの取得処理を行う。アイテムの取得処理には、記憶部170に記憶されたアイテム取得情報(取得したアイテム又は取得されていないアイテムの個数の情報を含む情報)を更新する処理、同じく記憶部170に記憶された得点情報を更新する処理、取得されたアイテムを仮想空間内から消去する処理等が含まれる。
【0052】
終了位置設定部116は、アイテム取得情報に含まれるアイテム取得数又は未取得数が所定数に達すると、仮想空間内にシミュレーション終了位置を設定する。シミュレーション位置として、仮想空間内のアイテムのいずれかを選択する場合は、シミュレーション位置設定部は記憶部170に記憶されたアイテム配置情報に含まれる終了フラグを更新する。
【0053】
仮想カメラ制御部118は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラのオブジェクト空間への設定、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
【0054】
計時制御部119は、CPU又は図示しない時計回路(RTC)からのクロック信号に基づいて、運転シミュレーションが行われる仮想空間で経過する基準時間を計時する処理を行う。この基準時間は、例えば信号の制御のために用いられる。具体的には、計時制御部119は、運転シミュレーションが開始されると基準時間の計時を開始する。即ち、記憶部170に記憶される時間情報の更新を開始する。通常のシミュレーション状態では、計時制御部119は、基準時間を一定の速さで経過させる。即ち、時間情報は一定の増加量で増加するよう更新される(通常計時処理)。
【0055】
指示オブジェクト制御部120は、仮想空間内に配置された信号等の指示オブジェクトの移動指示状態と停止指示状態を、時間情報に基づいて切り替える。
【0056】
条件判定部121は、信号等の指示オブジェクトの状態に影響を与える所定の条件が満たされたことを判定する。条件判定部121が、当該所定の条件が満たされたと判定した場合、計時制御部119は、基準時間を通常計時処理とは異なる態様で変化させる特殊計時処理を行うことによって、時間情報を更新する。
【0057】
領域設定部122は、道路上にシミュレーションに影響を与える各種の領域を設定する。各種の領域とは、例えば、信号の手前に設定される停止領域や強制停止指示制御領域等の信号の状態に影響を与える状態変化領域、またCPU車の制御に影響を与えるCPU車制御領域、坂道上に設定される重力領域等である。
【0058】
通信制御部130は、運転シミュレーションを、サーバ装置と又はシミュレーション装置やパーソナルコンピュータなどの他の通信端末装置と実行する際に、各シミュレーションを実行するために必要なデータ及び命令(コマンド)を通信部196を介して送受信させる制御を行う。
【0059】
画像生成部140は、処理部100にて行われる種々の処理(シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。
【0060】
いわゆる3次元シミュレーション画像を生成する場合には、本実施形態の画像生成部140は、まず、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、或いは透視変換等のジオメトリ処理を行い、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を作成する。
【0061】
そして、この画像生成部140は、作成された描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を描画バッファ174(フレームバッファ、ワークバッファ)に描画する。これにより、画像生成部140は、オブジェクト空間内において所与の視点(仮想カメラ)から見える画像を生成する。
【0062】
音生成部150は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのシミュレーション音を生成し、音出力部192に出力する。
【0063】
なお、本実施形態の運転シミュレーション装置は、1人のユーザのみが操作できるシングルユーザモード専用のシステムにしてもよいし、複数のユーザが操作できるマルチユーザモードも備えるシステムにしてもよい。
【0064】
また、複数のユーザが操作する場合に、これらの複数のユーザに提供するシミュレーション画像やシミュレーション音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(シミュレーション機、携帯電話)を用いて分散処理により生成してもよい。
【0065】
2.運転シミュレーション概要
図2、図3を用いて、本実施形態の運転シミュレーション装置で実行される運転シミュレーションの概要を説明する。本実施形態の運転シミュレーションは、ユーザに操作入力によって仮想空間内に設定された道路上で車を走行させ、道路上に配置された二酸化炭素の塊を模したアイテムを取得させるというものである。また、この運転シミュレーションでは、ユーザの操作入力による車の走行が環境に優しいものであるかどうかが評価される。
【0066】
図2は、運転シミュレーションが行われる仮想空間の俯瞰図である。仮想空間には、道路、信号SG1〜SG5、建物BD1等が配置される。そして、道路上には、ユーザの操作により移動する車UC、CPU制御によって移動する複数のCPU車CC1、CC2等が配置される。ユーザには、道路上で交通規則を遵守して車を移動させることが求められる。例えば赤信号を無視したり、対向車線を走ったり、CPU車と衝突したりしない運転操作が求められる。
【0067】
道路上にはまた、二酸化炭素の塊を模した複数のアイテムIT1〜IT4等が配置される。ユーザは車を移動させ、車UCとアイテムを接触させることによりアイテムを取得する。本実施形態では、仮想空間内に配置された全てのアイテムを取得することでシミュレーションが終了する。
【0068】
本実施形態では、仮想カメラは車UCの後方に配置され、車UCの移動に追従するように移動する。そして、車UCの向いている方向を中心とした所定の視野範囲内の仮想空間の画像が生成される。
【0069】
図3は運転シミュレーション装置の表示部190に表示されるシミュレーション画面の一例を示す図である。シミュレーション画面10には、仮想空間に配置されたオブジェクトを仮想カメラから見た画像が表示されるとともに、所定の領域に各種のパラメータや報知情報が表示される。
【0070】
得点表示領域12にはユーザの現在の得点が表示される。得点はアイテムを取得すること等によって加算される。
【0071】
燃料ゲージ14は、現在の残り燃料を示している。本実施形態のシミュレーションでは、車を走行させるためには燃料を消費する必要がある。燃料は、ユーザのアクセル操作量及び、車UCの走行距離に基づいて消費される。また、車UCが、後述するような環境に優しくない運転をしていると評価されると、所定の燃料が残り燃料から減算される。これにより、環境に優しくない運転をすると燃費が悪くなるという現実世界の関係をリアルに表現できる。燃料ゲージの近傍にはまた、現在の瞬間燃費、及びシミュレーション開始時から現在までの平均燃費が表示される。
【0072】
エコメーター16は、ユーザが、環境に優しい運転をしているかどうかを示す表示であり、例えば図3に示すような植物が表示される。この植物はユーザが環境に優しい操作をすることによって成長する。環境に優しい運転を評価するためには、このような植物以外にも、ユーザの運転を褒めるような台詞が表示されたり、音声出力が行われたりしてもよい。例えば、車UCが一定距離を等速で運転し続けた場合に、図3に示すような「とうそくうんてん」の文字を表示してもよい。また、環境に優しい運転をした場合、図3に示すようなフルーツオブジェクト18が発生し、これを取得すると得点が加算されるようにしてもよい。
【0073】
本実施形態のシミュレーション画面には、ユーザが環境に優しい運転を成功させることができるように、アドバイスが表示される。例えば、シミュレーション中にユーザがゆっくりとブレーキを踏まなければならない状況が発生する場合、当該状況が発生する直前にゆっくりとブレーキを踏むようにとの指示が表示される。さらに、ユーザが環境に優しい運転を成功させたか否かが判定された直後に、次回以降より環境に優しい運転ができるように、操作のアドバイスが表示される。
【0074】
変身パワーゲージ20は、ユーザが環境に優しい運転操作をすることによって増加する変身パラメータの値を示すものである。変身パラメータが一定量に達すると、車UCを電気自動車に変身させることができる。車UCが電気自動車になっている間は、環境に優しいことを褒める表示、又は音声が出力され続ける。
【0075】
マップ領域22には、仮想空間を俯瞰したマップが表示される。マップには、道路、信号、アイテム等の位置が表示される。マップの下には、仮想空間全体に存在する未取得のアイテムの個数(シミュレーション終了までに取得する必要のあるアイテムの個数)が表示される。
【0076】
違反マーク24は、車UCが交通規則違反(赤信号無視、対向車線走行、速度違反、CPU車との衝突等)を犯した場合に表示される。シミュレーション画面10にはまた、車UCの現在速度が表示される。
【0077】
3.アイテム
3.1.アイテムの配置
図4を用いて、アイテムの配置について説明する。本実施形態の運転シミュレーションは、ユーザに、交通規則に従いつつ環境に優しい運転をする技術を学習させることを目的とする。従って、ユーザの操作する車が、交通規則に定められた走行車線(日本の場合は左側車線)を走るように誘導することが望ましい。そのため、本実施形態の運転シミュレーションでは、ユーザが取得すべきアイテムが必ずユーザが走行する道路の左側車線に配置されるようになっている。
【0078】
具体的には、本実施形態のシミュレーションでは、車UCの向きに基づいて仮想空間に配置されているアイテムの配置位置が変更される。図4(A)〜(G)は、車UCが回転した場合にアイテムの配置位置が変更される様子を示している。図4に示すように、本実施形態では、複数のアイテムIT1〜IT3が1つのアイテムグループとして有向線分(例えば図4の有向線分V1)上に配置される。そして、この有向線分V1と車UCの向きV2とのなす角度に応じて有向線分V1の位置が変更され、それに伴い同一アイテムグループ内のアイテムIT1〜IT3の配置位置が同時に変更される。
【0079】
図4(A)は、有向線分V1の向きと車UCの向きV2が同じ場合、即ち有向線分V1と車UCの向きV2のなす角度が0度の場合を示している。この場合、道路の中央(基準位置)から、有向線分V1の向いている方向を正面とした場合の左側方向に距離aだけ離れた位置にアイテムIT1〜IT3が配置される。ここで、この距離aは、道路の片側車線の幅Lの半分となるようにしてもよい。このようにすれば、有向線分V1の向きと車UCの向きV2が同じ場合、車UCが走行すべき車線の中央にアイテムIT1〜IT3が配置されるようになる。
【0080】
図4(B)は、有向線分V1と車UCの向きV2のなす角度が60度の場合を示している。本実施形態では、この場合も、アイテムIT1〜IT3の配置位置は図4(A)の場合と同様の位置に配置される。即ち、本実施形態では、有向線分V1と車UCの向きV2のなす角度が0度から60度の範囲の場合は、道路の中央から、直線V1の向いている方向を正面とした場合の左側方向に距離aだけ離れた位置にアイテムIT1〜IT3が配置される。従って、車UCがこの範囲内で回転しても、アイテムIT1〜IT3の配置位置は変更されない。これにより、アイテムIT1〜IT3が移動している様子が仮想カメラの視界内に入ってしまい、ユーザが違和感を覚える画像が生成されてしまうのを防ぐことができる。
【0081】
図4(C)は、有向線分V1と車UCの向きV2のなす角度が75度の場合を示している。この場合、道路の中央から、有向線分V1の向いている方向を正面とした場合の左側方向に距離b(a>b)だけ離れた位置にアイテムIT1〜IT3が配置される。
【0082】
図4(D)は、有向線分V1と車UCの向きV2のなす角度が90度の場合を示している。この場合、アイテムIT1〜IT3は道路の中央に配置される。
【0083】
図4(E)は、有向線分V1と車UCの向きV2のなす角度が105度の場合を示している。この場合、道路の中央から、有向線分V1の向いている方向を正面とした場合の右側方向に距離b(a>b)だけ離れた位置にアイテムIT1〜IT3が配置される。
【0084】
図4(F)は、有向線分V1と車UCの向きV2のなす角度が120度の場合を示している。この場合、道路の中央から、有向線分V1の向いている方向を正面とした場合の右側方向に距離a(a>b)だけ離れた位置にアイテムIT1〜IT3が配置される。
【0085】
図4(G)は、有向線分V1と車UCの向きV2のなす角度が180度の場合を示している。この場合、図4(F)の場合と同様に、道路の中央から、有向線分V1の向いている方向を正面とした場合の右側方向に距離a(a>b)だけ離れた位置にアイテムIT1〜IT3が配置される。
【0086】
このように、本実施形態では、有向線分V1と車UCの向きV2のなす角度が0度から60度の場合、及び120度から180度の範囲の場合は、道路の中央から距離aだけ離れた位置にアイテムIT1〜IT3が配置される。そして、有向線分V1と車UCの向きV2のなす角度が60度から120度の場合は、角度に応じた位置にアイテムIT1〜IT3が配置される。
【0087】
また、本実施形態では、有向線分V1と車UCの向きV2のなす角度が0度から90度の場合は、道路の中央から、有向線分V1の向いている方向を正面とした場合の左側方向に所定距離離れた位置にアイテムIT1〜IT3が配置され、有向線分V1と車UCの向きV2のなす角度が90度から180度の場合は、道路の中央から、有向線分V1の向いている方向を正面とした場合の右側方向に所定距離離れた位置にアイテムIT1〜IT3が配置される。即ち、有向線分V1と車UCの向きV2のなす角度が90度の場合を境に、道路の中央から見たアイテムIT1〜IT3が配置される方向が切り替わる。
【0088】
図5を用いて、車の向きV2の変化により、仮想空間内に配置された複数のアイテムグループの配置位置が変化する様子を説明する。本実施形態では、仮想空間内に配置された複数のアイテムグループについて、各アイテムグループの有向線分の向きと車の向きの角度に基づいた配置処理が行われる。
【0089】
図5(A)と図5(B)では、車UCの向きV2が変化しているが、それに応じてアイテムグループIG1、IG2、IG3、IG4等の位置が変化している。一方、アイテムグループIG5の位置は、車UCの向きV2が変化したにも関わらず変化していない。これは、アイテムグループIG1〜IG4等に比べ、アイテムグループIG5の配置位置が車から遠いからである。本実施形態では、車UCから所定距離以内に配置されているアイテムグループの配置位置を車UCの向きV2の変化に応じて変化させる。これにより、仮想空間内に配置された全てのアイテムグループの配置位置を車UCの向きV2に応じて変化させる場合に比べて処理負荷を軽減することができる。車UCとアイテムグループの距離は、車UCの座標とアイテムグループの代表点の距離とすることができる。アイテムグループの代表点はアイテムグループの中心点や、グループ内の所定のアイテム(例えば最も車UCに近いアイテム)等とすることができる。
【0090】
また、図5(A)と図5(B)を比較すると、アイテムグループIG4に比べて車UCの位置に近いアイテムグループIG6等の位置も変化していない。これは、アイテムグループIG6等が、車UCの向きV2に応じて配置位置が変化しないアイテムグループとして設定されているからである。例えば一方通行の道路のように、車UCが走行すべき車線と走行すべきでない車線の区別が無い道路等に配置されるアイテムグループは、車UCの向きV2に応じて配置位置が変化しないアイテムグループとして設定することができる。
【0091】
図6は、本実施形態のアイテム配置処理の流れを説明するフローチャートである。
【0092】
シミュレーション装置は、まず車UCの位置から所定距離以内に配置されたアイテムグループを選択する(ステップS10)。
【0093】
次に、シミュレーション装置は、選択されたアイテムグループの有向線分V1と車UCの向きV2のなす角度に基づいて、アイテムグループの配置位置を変更する(ステップS12)。
【0094】
そして、シミュレーション装置は、上記選択された全てのアイテムグループの配置位置を変更したか否かを判定し(ステップS14)、全てのアイテムグループの配置位置を変更した場合はアイテム配置処理を終了する。
【0095】
3.2.アイテムの取得
図7は、本実施形態における車とアイテムの接触判定について説明するための図である。図7に示すように、本実施形態では車UCの周囲に接触判定領域30が設定されている。そして、アイテムの配置位置(例えばアイテムが地面と接触する点)がこの接触判定領域30内に入ると、当該アイテムを取得したと判定される。接触判定領域30の直径は、道路の片側車線の幅L未満とすることが望ましい。そのようにすれば、アイテムが車線中央に配置されている場合、車UCが反対車線を走るとアイテムを取得することができなくなるため、ユーザにアイテムが配置された車線を運転するよう促すことができる。
【0096】
アイテムを取得すると、取得されたアイテムの画像が車UCに向かって移動し、その後表示されなくなる。また、アイテムを取得すると、得点が加算されると共に、既に取得したアイテムの合計数に1が加算される。あるいは、仮想空間内に配置されたアイテムの総数から1が減算される。
【0097】
3.3.シミュレーションの終了
図8〜図11を用いて、本実施形態のシミュレーションの終了について説明する。
【0098】
図8は、本実施形態における、シミュレーション終了位置設定について説明するための図である。上記の通り、本実施形態では、仮想空間内に配置された全てのアイテムを取得するとシミュレーションが終了する。従って、シミュレーション終了位置は、仮想空間内に配置された複数のアイテムの内、最後に取得するアイテム(シミュレーション終了アイテム)の位置となる。本実施形態では、仮想空間内における未取得のアイテム個数が10個以下になると、最後に取得するアイテムを予測する処理が開始される。
【0099】
具体的には、仮想空間内における未取得のアイテム個数が10個以下になると、最後に取得するアイテムの候補として、まず車に追従する仮想カメラCAの視界外のアイテムが選択される。図8のVAは、仮想カメラCAの視界を示す。仮想カメラCAの視界VAは、画像生成時のクリッピング範囲と同一としてもよい。図8(A)に示す場合では、アイテムIT10、IT11、IT12、IT13、IT14、IT15が仮想カメラCAの視界外であるため、これらのアイテムが選択される。
【0100】
次に、選択されたアイテムの中から、車UCから最も遠い位置に配置されたアイテムが選択され、当該アイテムの配置位置がシミュレーション終了位置として設定される。図8(A)に示す場合では、選択されたアイテムの中で車UCから最も遠い位置に配置されたアイテムIT10が選択され、その配置位置がシミュレーション終了位置として設定される。
【0101】
図8(B)に示す場合では、アイテムIT15、IT16が仮想カメラCAの視界外のアイテムとして選択される。そして、選択されたアイテムの内、車UCから遠い位置に配置されたアイテムIT15が選択され、その配置位置がシミュレーション終了位置として設定される。
【0102】
図8(C)に示す場合では、仮想カメラCAの視界外に配置されたアイテムは存在しない。このような場合は、仮想カメラの視界内に配置されたアイテムの中で、車UCから最も遠い位置に配置されたアイテムが選択され、当該アイテムの位置がシミュレーション終了位置として設定される。図8(C)に示す場合では、アイテムIT10が選択され、その配置位置がシミュレーション終了位置として設定される。
【0103】
本実施形態では、上記のように仮想カメラCAの視界外のアイテムや車UCから最も遠い位置に配置されたアイテムが優先的にシミュレーション終了アイテムとして選択されるので、最後に取得されるアイテムがシミュレーション終了アイテムとして選択される可能性が高くなる。
【0104】
本実施形態では、仮想空間内に配置されるアイテムリストが記憶部170にアイテム配置情報として記憶されている。アイテムリストには、アイテム毎に、配置座標、所属するアイテムグループ、終了アイテムフラグが設定されている。そして、シミュレーション終了アイテムとして選択されたアイテムの終了アイテムフラグには「1」が、その他のアイテムの終了アイテムフラグには「0」が設定される。
【0105】
このようにして設定されたシミュレーション終了アイテムを取得すると、シミュレーション終了と判定される。
【0106】
図9、図10は、シミュレーション終了位置の近傍に配置されるゴールゲート(終了位置オブジェクトの一例)について説明するための図である。
【0107】
本実施形態では、上記のシミュレーション終了位置設定処理によってシミュレーション終了位置となるアイテムが選択されると、当該アイテムの近傍にゴールゲート40が表示される。具体的には、ゴールゲート40の接地点を結ぶ線分ABの中点がシミュレーション終了アイテムIT20の配置位置と重なるように、ゴールゲート40が配置される。また、このゴールゲート40は、常に車UCに正対するように回転する。即ち、車UCの向きV2と、線分ABが常に垂直になるように回転する。
【0108】
また、ゴールゲート40は、車UCとシミュレーション終了アイテムの距離が所定以下になった場合に表示される。図10は、車UCとシミュレーション終了アイテムの距離が所定以下になっていない場合を示している。図10では、図9と同様に仮想空間内の未取得アイテムの個数は9個である。従って、シミュレーション終了位置設定処理は既に行われており、アイテムIT20がシミュレーション終了アイテムとして選択されている。しかし、図10では、車UCとシミュレーション終了アイテムIT20の距離が所定以下になっていないため、ゴールゲートは表示されていない。車UCが図10に示す位置から図9に示す位置まで移動すると、車UCとシミュレーション終了アイテムIT20の距離が所定以下になるため、ゴールゲート40が表示される。このようにすれば、車UCがシミュレーション終了アイテムの近くに来ると、突然ゴールゲート40が出現するという演出を行うことができる。
【0109】
さらに、本実施形態では、シミュレーション終了アイテムが車UCの前方にあるか後方にあるかによってゴールゲート出現の判定に異なる距離を用いている。例えばシミュレーション終了アイテムが車UCの前方にある場合は、車UCと当該シミュレーション終了アイテムの距離が50m以内になったときにゴールゲートを出現させるのに対し、シミュレーション終了アイテムが車UCの後方にある場合は、車UCと当該シミュレーション終了アイテムの距離が10m以内になったときにゴールゲートを出現させる。シミュレーション終了アイテムが車UCの前方にあるか後方にあるかは、車UCの向きV2と車UCからシミュレーション終了アイテムに向かう向きの角度に基づいて判定される。
【0110】
図11は、本実施形態のシミュレーション終了位置設定処理の流れを示すフローチャートである。
【0111】
シミュレーション装置は、まず仮想空間内に配置された未取得のアイテムの個数が10個以下になったか否かを判定する(ステップS20)。そして、仮想空間内に配置された未取得のアイテムの個数が10個以下だと判定すると(ステップS20:Y)、シミュレーション装置は、仮想カメラの視界外のアイテムをシミュレーション終了候補アイテムとして選択する(ステップS22)。さらに、シミュレーション装置は、シミュレーション終了候補アイテムの中で車からの距離が最も遠いアイテムをシミュレーション終了アイテムとして設定する(ステップS24)。
【0112】
シミュレーション装置は、次にシミュレーション終了アイテムが車から所定距離以内に配置されているか否かを判定する(ステップS26)。そして、シミュレーション終了アイテムが車から所定距離以内に配置されていると判定すると(ステップS26:Y)、当該シミュレーション終了アイテムの近傍にゴールゲートを配置する(ステップS28)。
【0113】
4.環境運転評価
上記の通り、本実施形態のシミュレーションは、ユーザが環境に優しい運転を学習することを目的とする。本実施形態では、仮想空間内を走行する車の走行状態が、各種の環境に優しい走行状態であることを評価することによって、上記目的を解決する。この評価には、車の走行中にリアルタイムで評価が行われるリアルタイム評価と、走行終了後、全走行期間を通した走行状態が評価される総合評価が含まれる。リアルタイム評価によって環境に優しい走行だと評価された場合は、上記のように、走行中の表示画面にユーザの運転を褒める表示がされたり、変身パラメータが加算されたりする。一方、総合評価は、運転シミュレーション終了後、総合評価画面の表示によってユーザに報知される。以下、本実施形態で評価の対象となる各種の走行状態について、具体的な評価方法を説明する。
【0114】
4.1.ふんわりアクセル
ふんわりアクセルとは、車が停止状態から移動を開始する際に、アクセルを踏む強さを徐々に強くして行く操作である。このような操作を行うと、エンジンに無理な回転をさせずに加速することができるため、燃費が良くなり環境に優しい。
【0115】
本実施形態では、ふんわりアクセルの評価は、車の速度が例えば時速0kmから25kmに上昇する間に、加速度が予め定められた基準値を超えたか否かを判定することによって行われる。
【0116】
リアルタイム評価においては、車の速度が時速0kmから25kmに上昇する間に、加速度が一度でも基準値を超えた場合は、その時点でふんわりアクセル失敗と判定される。一方、車の速度が時速0kmから25kmに上昇する間に、加速度が一度も基準値を超えなかった場合は、車の速度が時速25kmに達した時点でふんわりアクセル成功と判定される。尚、成功判定の場合は、アクセル操作を始めてから所定の時間内に車の速度が時速25kmに達することを更に条件としてもよい。
【0117】
総合評価は、運転シミュレーション開始から終了までの間のふんわりアクセル成功回数あるいは失敗回数に基づいて決定される。
【0118】
尚、ふんわりアクセル成功の条件として、上記に加え、アクセル操作が仮想空間内に設定された所定の領域内(例えば信号の手前の停止領域内)で行われたか否かを判定するようにしてもよい。
【0119】
4.2.ふんわりブレーキ
ふんわりブレーキとは、車が走行状態から停止する際に、ブレーキを踏む強さを徐々に強くして行く操作である。このような操作を行うと、エンジンに無理な回転をさせずに減速することができるため、燃費が良くなり環境に優しい。
【0120】
本実施形態では、ふんわりブレーキの評価は、車の速度が例えば時速30kmから2kmに下降する間に、減速度(負の加速度)が予め定められた基準値を下回ったか否かを判定することによって行われる。
【0121】
リアルタイム評価においては、車の速度が時速30kmから2kmに下降する間に、減速度が一度でも基準値を下回った場合は、その時点でふんわりブレーキ失敗と判定される。一方、車の速度が時速30kmから2kmに下降する間に、減速度が一度も基準値を下回らなかった場合は、車の速度が時速2kmに達した時点でふんわりブレーキ成功と判定される。尚、成功判定の場合は、ブレーキ操作を始めてから所定の時間内に車の速度が時速2kmに達することを更に条件としてもよい。
【0122】
総合評価は、運転シミュレーション開始から終了までの間のふんわりブレーキ成功回数、あるいは失敗回数に基づいて決定される。
【0123】
尚、ふんわりブレーキ成功の条件として、上記に加え、ブレーキ操作が仮想空間内に設定された所定の領域内(例えば信号の手前の停止領域内)で行われたかを判定するようにしてもよい。
【0124】
4.3.等速運転
等速運転とは、車を所定の時間又は距離の間、ほぼ等速で走行させることである。このような操作を行うと、エンジンに無理な回転をさせずに走行することができるため、燃費が良くなり環境に優しい。
【0125】
本実施形態では、リアルタイム評価においては、車が時速35km以上で、8秒間以上、速度変化の幅が時速3km以内で走行した場合、等速運転成功と判定される。
【0126】
総合評価は、運転シミュレーション開始から終了までの間に走行した総距離と、加速度が予め設定された上限を上回った回数、あるいは予め設定された下限を下回った回数に基づいて行われる。
【0127】
4.4.坂道運転
本実施形態の仮想空間内には坂道が設定される。坂道は、単に高低差のある道路モデルを配置することによって実現されても良いし、さらに坂道上では下り方向に向かって重力が加わるようにされていてもよい。
【0128】
坂道においては通常牽引力を上げるため低いギアで走行するが、ギアが低くなると燃費が悪くなる。従って、坂道の直前でアクセル操作を行い、坂道の途中でギアを下げずに走行すると燃費が良くなる。
【0129】
本実施形態では、このような運転を推奨するため、ギアを下げずに坂道を走行しきった場合は、坂道運転成功と判定される。
【0130】
また、坂道運転を成功させるために坂道の直前でアクセル操作をすると、逆に上記等速運転の評価が下がってしまうことがあり得る。このようなことを防ぐため、本実施形態では、マップ上の坂道直前の領域を坂道アクセル領域として設定し、当該領域でアクセルを強く踏む操作が行われても等速運転の評価には影響しないようにしている。または、当該領域でアクセル操作が行われた場合(所定の加速度が加わった場合)に、坂道運転成功と判定されるようにしてもよい。
【0131】
4.5.早めのアクセルオフ
車が停止状態から移動する際には多くの燃料が必要となる。赤信号の直前に達する前に減速を開始し、信号の直前に達した時に青信号に変わっていれば、停止することなく信号を通過できるため、発進の際の燃料を消費しなくてすむ。本実施形態では、信号から所定距離の位置にブレーキ判定領域が設定され、当該領域からブレーキ操作が開始されたことによって停止することなく信号を通過できた場合は、早めのアクセルオフ操作成功と判定される。
【0132】
5.信号
図12〜図16を用いて、本実施形態の信号制御について説明する。
【0133】
5.1.複数の信号の制御
まず、図12、図13を用いて、本実施形態の仮想空間内に配置される複数の信号の制御について説明する。図12は、車UCが交差点の赤信号の前で停止している場面のシミュレーション画面である。図12に示すように、交差点には信号SG10〜SG13の4機の信号が配置されている。図13は、SG10〜SG13を含む複数の信号の制御について説明するための図である。図13に示すように、本実施形態では仮想空間内に配置された複数の信号が同一の時間軸上で制御される。
【0134】
例えば信号SG10とSG11は、交差点で同一方向を向いている2機の信号である。図13に示すようにこの2機の信号はt0の時点(シミュレーション開始時点)では青表示(移動指示状態)となっており、その後t1の時点で黄、t2の時点で赤(停止指示状態)となり、t3の時点で再び青に戻る。そして、t3以降はt0〜t3と同じ周期で表示する色の変化を繰り返す。
【0135】
一方、信号SG12とSG13は、交差点で上記信号SG10とSG11と垂直となる方向を向いている2機の信号である。この2機の信号はt0の時点では赤表示となっており、その後t4の時点で青、t5の時点で黄となり、t6の時点で再び赤に戻る。
【0136】
図13に示すように、信号SG10とSG11には、信号SG12とSG13が青又は黄のときは必ず赤になるように、切替タイミングt1、t2、t3等が予め設定されている。また、信号SG12とSG13には、信号SG10とSG11が青又は黄のときは必ず赤になるように切替タイミングt3、t4、t5等が予め設定されている。
【0137】
図13に示す信号SG14は、図12には表示されていない仮想空間内の所定の位置に配置された信号である。本実施形態では信号SG14のような、同一交差点に無い信号も信号SG10〜SG13と同じ時間情報に基づいて制御される。また、信号SG15も、図12には表示されていない信号であり、信号SG14と組になった歩行者用信号である。この信号SG15も、信号SG10〜SG14と同じ時間情報に基づいて制御される。
【0138】
このように、本実施形態では、仮想空間内に配置される複数の信号について、同一の基準時間軸上で切替タイミングを設定することにより、多くの信号を簡単に制御することが可能となる。
【0139】
5.2.強制停止指示
図13、図14を用いて、本実施形態の信号の強制停止指示制御について説明する。
【0140】
上述したような環境に優しい運転、特にふんわりアクセルやふんわりブレーキを評価するためには、シミュレーション中で車が停止しなければならない状況を作り出す必要がある。この目的を達成するため、本実施形態では所定の条件を満たした場合に、仮想空間内に配置された信号を赤にすることにより、車が停止しなければならない状況を作り出している。
【0141】
具体的には、本実施形態では、特定の信号に対応付けて強制停止指示制御領域(状態変化領域の一例)が設定され、車が当該領域に進入した時点、あるいは当該領域を通過した時点から所定時間後に、当該領域に対応付けられた信号が赤になるように時間情報が更新される(特殊計時処理の一例)。
【0142】
図14は、強制停止指示制御領域について説明する図である。図14に示すように、本実施形態では仮想空間内の所定の領域が強制停止指示制御領域70として設定される。この強制停止指示制御領域70は、信号SG14に関連付けられており、車UCがこの領域に進入すると所定時間後に信号SG14が赤になるように時間情報が更新される。
【0143】
具体的には、図13に示すように、車UCが停止指示制御領域70に進入したのがt7の時点だったとすると、車UCが進入した瞬間、時間情報が一気にt7からt8にスキップする。このようにすることで、車UCが図14に示す信号SG14の手前の停止領域72まで移動した時に信号SG14が赤になり、ユーザにブレーキ操作を行わせることができる。時間情報のスキップ先は、直近の赤切替タイミング(車が停止指示制御領域に進入した時間の直後の切替タイミングであり、信号が赤に変化する切替タイミング)の数秒前としてもよい。直近の赤切替タイミングの何秒前にスキップするかは、車の時速に応じて変化させてもよい。
【0144】
図15は、本実施形態の信号の強制停止指示処理の流れを示すフローチャートである。
【0145】
シミュレーション装置は、車が強制停止指示領域に侵入したか否かを判定する(ステップS30)。そして、車が強制停止指示領域に侵入したと判定すると(ステップS30:Y)、シミュレーション装置は基準時間が当該強制停止指示領域に対応付けられた信号の赤切替タイミングの所定時間前にスキップするように時間情報を更新する(ステップS32)。
【0146】
5.3.停止指示時間短縮
上記の通り、本実施形態では、ユーザは赤信号の前で車を停止させる必要がある。車UCが赤信号中に信号の手前に設定される停止領域72を越えて走行すると赤信号無視となり、得点が減算される等のペナルティが課される。これにより、本実施形態のシミュレーションは、ユーザに赤信号の前で停止するという交通規則を学習させることができる。
【0147】
しかし、ユーザに赤信号の前で停止するという交通規則を学習させるという目的、あるいは上述したふんわりアクセルやふんわりブレーキの操作を行わせるという目的のためには、ユーザに車UCを移動状態から停止させるという操作を行わせれば十分であり、赤信号の前で長時間停止させておく必要は無い。赤信号の前で車UCを停止させていなければならない時間が長すぎると、ユーザのストレスとなるだけである。このため、本実施形態では、車UCが停止領域72(状態変化領域の一例)で停止していると判定された場合には仮想空間内の基準時間が経過する速さが通常状態に比べて速くなり、ユーザが赤信号の前で停止していなければならない時間が短縮されるようにしている(特殊計時処理の一例)。例えばこのような場合に、基準時間の経過する速さが2倍になる。例えば図13のt9の時点において、車UCが赤信号の手前の停止領域72で停止したとする。通常状態では、ユーザはt10の時点で信号が青になるまでΔtの期間車UCを停止させていなければならない。しかし、基準時間の経過する速さが2倍になれば、ユーザが車UCを停止させていなければならない期間はΔt/2となり、ユーザの信号待ちによるストレスが軽減される。
【0148】
図16は、本実施形態の信号の停止指示時間短縮処理の流れを示すフローチャートである。
【0149】
シミュレーション装置は、車が赤信号の手前の停止領域で停止したか否かを判定する(ステップS40)。車が赤信号の手前の停止領域で停止したと判定した場合、シミュレーション装置は、基準時間の経過する早さが通常時の2倍になるような計時処理を行う(ステップS42)。
【0150】
5.4.強制移動指示
上述したように、本実施形態では、変身パラメータの値が所定値以上になると、ユーザが車を一定時間電気自動車に変身させることができる(特殊状態変化イベントの一例)。そして、車が電気自動車に変身している間は、仮想空間上に配置された全ての信号、あるいは電気自動車からの所定距離以内の信号は仮想空間内の時間経過に関わらず青になる。
【0151】
6.CPU車
以下、本実施形態のCPU車の制御について説明する。
【0152】
上述したように、本実施形態では、強制停止指示制御領域への進入や停止領域での停止等、信号の状態に影響を与える所定の条件が満たされると、基準時間の経過の態様が通常計時処理とは異なる特殊計時処理が行われる。ここで、本実施形態では、図13に示すように、仮想空間内に配置された複数の信号を単一の時間情報に基づいて制御しているため、基準時間の経過態様が変化するとその影響が複数の信号に及ぶことになる。このため、例えば強制停止指示処理によって時間情報がスキップした場合、ユーザの操作する車と関係ない位置にある信号が、黄色を経ずに突然赤信号になったりすることがあり、このような場合に、信号の変化に基づいて制御されているCPU車の制御に不具合が生じることがある。本実施形態では、シミュレーションの進行に問題が生じるのを防ぐため、上記のような不具合が生じたCPU車を強制的に初期位置に配置し直す処理や、CPU車が交差点内にいる間に時間情報がスキップしたことによって当該CPU車の前方の信号が急に赤になった場合は、赤信号に関わらずCPU車に交差点を通過させる処理等が行われる。
【0153】
また、シミュレーションの難易度を上げるため、本実施形態ではユーザの操作する車が仮想空間内に設定された所定のCPU車制御領域に侵入した時に、車の近傍にいるCPU車が当該車に向かって走行して来るように制御される。このようにすることで、ユーザは向かってくるCPU車を避ける運転を練習することができる。尚、ユーザの操作する車がCPU車制御領域に侵入した時に、既に仮想カメラの視界内に入っているCPU車をこのように制御すると、CPU車の向きが不自然に変化する画像が表示されてしまうことがある。このようなことを防ぐため、本実施形態では、ユーザの操作する車がCPU車制御領域に侵入した時に視界外にいるCPU車に対して、ユーザの操作する車に向かって走行するように移動方向を変化させる制御が行われる。
【0154】
7.変形例
7.1.適用対象
上記実施形態では、本発明を運転シミュレーション装置に適用した例を説明したが、本発明は運転シミュレーション装置以外にも適用することができる。例えば、アクションゲームにおいて、プレーヤが操作するキャラクタが集めるアイテムの配置に本発明を適用することができる。
【0155】
また、上記実施形態では、3人称視点の3Dシミュレーションの例を説明したが、視点は1人称視点でもよい。また、3Dではなく2Dのシミュレーションに本発明を適用することもできる。
【0156】
7.2.アイテム
7.2.1.アイテムの配置
上記実施形態では、既に配置されているアイテムの配置位置を変更する例を説明したが、本発明の実施形態はこれに限られず、アイテムを最初に仮想空間に配置する場合に本発明を適用してもよい。
【0157】
また、本実施形態では、所定の条件を満たした場合(車の運転が交通違反や、環境に優しくないものだった場合、CPU車と衝突した場合等)に、車からアイテムが排出されるが、この排出されたアイテムも上記実施形態の原理に基づいて道路上に配置されるようにしてもよい。その場合、アイテムが排出された位置の近傍に存在するアイテムグループの有向線分上に、排出されたアイテムを配置するようにしてもよい。また、排出されたアイテムのみで新たなアイテムグループを形成するようにしてもよい。
【0158】
また、上記実施形態では、片側一車線ずつの道路上にアイテムを配置する例を説明したが、片側複数車線の道路上にアイテムを配置するようにしてもよい。この場合、複数の車線の内の一番左側の車線にアイテムを配置するようにしてもよい。また、ユーザのレベルに応じて、アイテムを配置する車線を決定してもよい。
【0159】
また、上記実施形態では、左側車線にアイテムを配置する例を説明したが、右側車線にアイテムを配置するようにしてもよい。また、シミュレーションの設定で、国の選択ができるようにし、選択された国に応じてどちら側の車線にアイテムを配置するのかを決定するようにしてもよい。
【0160】
また、上記実施形態では、1人のユーザがシミュレーションを行う場合、即ち仮想空間内でユーザが操作する車が一台だけの例を説明したが、本発明は複数のユーザがそれぞれの車を仮想空間内で操作する場合にも適用できる。その場合、ユーザのレベルに応じてどのユーザの車の向きに基づいてアイテムを配置するかを決定してもよい。
【0161】
また、上記実施形態では、アイテムグループの有向線分と車の向きのなす角度に応じてアイテムの配置を変更する例を説明したが、有向線分を用いない方法も可能である。例えば、道路マップを所定の区間に分け、車がある区間に侵入した際に、どの位置から進入したかを判定し、判定結果に基づいてアイテムの配置を変更してもよい。
【0162】
7.2.2.アイテムの取得
上記実施形態では、接触判定領域が固定の例を説明したが、接触判定領域が動的に変化するようにしてもよい。例えば、車が道路の直線部分の上にいる場合と、カーブの上にいる場合で接触判定領域の大きさを変化させてもよい。また、車が走行する道路の幅に応じて接触判定領域の大きさを変化させてもよい。また、特定のイベント(例えば電気自動車に変身したこと等)が発生した場合に、接触判定領域の大きさを変化させてもよい。また、仮想空間内に配置されたアイテムが残り1個となった場合に、接触判定領域の大きさを小さくするようにしてもよい。このようにすれば、シミュレーション終了位置として設定されたアイテムを取得する場合は、当該アイテムにより接近しなければアイテムを取得できなくなり、ゴールゲート表示位置とずれた位置でシミュレーションが終了してしまうのを防ぐことができる。
【0163】
また、上記実施形態では、車の周囲に接触判定領域が設定される例を説明したが、アイテムの周囲に接触判定領域が設定されるようにしてもよい。この場合、シミュレーション終了位置として設定されたアイテムの周囲の接触判定領域は、小さくなるようにしてもよい。
【0164】
7.4.信号
上記実施形態では、指示オブジェクトとして信号を例に説明したが、指示オブジェクトは信号に限られない。例えば、道路上で故障して止まっているCPU車や、運転を誤ってユーザの操作する車に向かって進行してくるCPU車を指示オブジェクトとしてもよい。
【0165】
上記実施形態では、車が赤信号の前の停止領域で停止した場合に基準時間の経過が速くなる例を説明したが、車が停止領域に停止していることに加え、上述したふんわりブレーキ操作が成功したと判定されたことを条件として、基準時間の経過が速くなるようにしてもよい。
【0166】
また、基準時間の経過の速さの上昇率を、車が停止した時点から青信号に切り替わるまでの時間(赤信号の残り時間)に応じて変化させてもよい。例えば赤信号の残り時間が長い場合ほど、速さの上昇率が大きくなるようにしてもよい。
【0167】
また、上記実施形態では、強制停止指示制御の場合は基準時間をスキップする例を説明したが、この場合に基準時間の経過が速くなるようにしてもよい。同様に、停止指示時間短縮制御の場合に基準時間がスキップするようにしてもよい。
【符号の説明】
【0168】
100 処理部、
110、シミュレーション処理部、111 オブジェクト空間設定部、
112 入力処理部、113 移動体制御部、114 接触判定部、
115 アイテム処理部、116 終了位置設定部、117 終了判定部、
118 仮想カメラ制御部、119 計時制御部、120 指示オブジェクト制御部、
121 条件判定部、122 領域設定部、130 通信制御部、
140 画像生成部、150 音生成部、
160 操作部、
170 記憶部、172 主記憶部、174 描画バッファ、
180 情報記憶媒体、190 表示部、192 音出力部、
194 携帯型情報記憶媒体、196 通信部、

【特許請求の範囲】
【請求項1】
仮想空間内に配置されたアイテムをユーザの操作によって移動する移動体が取得するシミュレーションを実行するシミュレーション装置であって、
操作部と、
前記仮想空間内に、前記アイテム及び前記移動体を配置するオブジェクト空間設定部と、
前記操作部の操作に基づいて前記移動体を移動させる移動体制御部と、
前記アイテムと前記移動体の接触を判定する接触判定部と、
前記アイテムと前記移動体が接触したと判定された場合、前記アイテムの取得処理を行うアイテム処理部とを有し、
前記オブジェクト空間設定部は、前記移動体の位置又は向きに基づいて、前記アイテムを配置することを特徴とするシミュレーション装置。
【請求項2】
請求項1において、
前記オブジェクト空間設定部は、前記アイテムに関する向きと前記移動体の向きとに基づいて前記アイテムを配置することを特徴とするシミュレーション装置。
【請求項3】
請求項2において、
前記オブジェクト空間設定部は、前記アイテムに関する向きと前記移動体の向きとに基づいて距離を算出し、前記仮想空間内の所定の基準位置から、前記アイテムに関する向きと所定の関係にある向きに前記距離だけ離れた位置に、前記アイテムを配置することを特徴とするシミュレーション装置。
【請求項4】
請求項1〜3において、
前記オブジェクト空間設定部は、前記移動体から所定以下の距離に配置された前記アイテムの位置を変更することを特徴とするシミュレーション装置。
【請求項5】
請求項1〜4において、
前記オブジェクト空間設定部は、前記仮想空間内に複数の前記アイテムを配置し、
前記アイテム処理部は、前記アイテムの取得数をカウントし、
前記アイテムの取得数が所定数に達すると、前記仮想空間内にシミュレーション終了位置を設定する終了位置設定部と、
前記移動体が前記シミュレーション終了位置に移動した時に、前記シミュレーションを終了する終了判定部をさらに有することを特徴とするシミュレーション装置。
【請求項6】
請求項5において、
前記終了位置設定部は、複数の前記アイテムの内の一つをシミュレーション終了アイテムとして選択し、
前記終了判定部は、前記シミュレーション終了アイテムが取得された時に前記シミュレーションを終了することを特徴とするシミュレーション装置。
【請求項7】
請求項6において、
前記仮想空間内に配置された仮想カメラから前記仮想空間を見た画像を生成する画像生成部をさらに有し、
前記終了位置設定部は、複数の前記アイテムの内、前記仮想カメラの視界外に配置されたアイテムをシミュレーション終了アイテムとして選択することを特徴とするシミュレーション装置。
【請求項8】
請求項6又は7において、
前記終了位置設定部は、複数の前記アイテムの内、前記移動体から最も遠い位置に配置されたアイテムをシミュレーション終了アイテムとして選択することを特徴とするシミュレーション装置。
【請求項9】
請求項5〜8において、
前記オブジェクト空間設定部は、前記シミュレーション終了位置に終了位置オブジェクトを配置することを特徴とするシミュレーション装置。
【請求項10】
請求項9において、
前記オブジェクト空間設定部は、前記移動体が前記シミュレーション終了位置から所定以下の距離に近づいた場合に、前記終了位置オブジェクトを配置することを特徴とするシミュレーション装置。
【請求項11】
シミュレーション装置に、仮想空間内に配置されたアイテムをユーザの操作によって移動する移動体が取得するシミュレーションを実行させるプログラムであって、
操作部と、
前記仮想空間内に、前記アイテム及び前記移動体を配置するオブジェクト空間設定部と、
前記操作部の操作に基づいて前記移動体を移動させる移動体制御部と、
前記アイテムと前記移動体の接触を判定する接触判定部と、
前記アイテムと前記移動体が接触したと判定された場合、前記アイテムの取得処理を行うアイテム処理部としてシミュレーション装置を機能させ、
前記オブジェクト空間設定部は、前記移動体の位置又は向きに基づいて、前記アイテムを配置することを特徴とするプログラム。
【請求項12】
請求項11に記載のプログラムが記録された情報記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate