(57)【特許請求の範囲】
【請求項１】
コンピュータに、
ユーザに関連付けられた仮想視点を含む仮想空間を定義するステップと、
前記ユーザの頭部の動きを検出するステップと、
前記ユーザの頭部の動きに基づいて、前記仮想視点からの視線の動きを制御するステップと、
前記仮想視点からの視界に対応する視界画像を、前記ユーザに関連付けられたヘッドマウントディスプレイに表示するステップと、
前記仮想空間に、前記視線の動き及びコントローラの入力の少なくとも一方によって操作される、１又は複数の対象オブジェクトを配置するステップと、
前記対象オブジェクトに対する、前記視線の動き及び前記コントローラの入力が所定の条件を満たすか否かを判定するステップと、
を実行させるためのプログラム。
【請求項２】
前記判定の結果に応じて、前記ユーザに関連付けられるポイントを付与するステップをコンピュータにさらに実行させるための請求項１に記載のプログラム。
【請求項３】
前記ポイントを付与するステップは、前記視線の動きに対する判定結果によって付与されるポイントと、前記コントローラの入力に対する判定結果によって付与されるポイントと、を異ならせることを含む、請求項２に記載のプログラム。
【請求項４】
前記視線の動きと前記コントローラの入力に対する前記所定の条件がそれぞれ異なる、請求項１〜３のいずれか一項に記載のプログラム。
【請求項５】
前記複数の対象オブジェクトは、前記コントローラの入力のみによって操作される対象オブジェクトを含む、請求項１〜４のいずれか一項に記載のプログラム。
【請求項６】
前記ポイントを付与するステップは、前記視線の動き及び前記コントローラの入力が前記所定条件を満たすか否かの判定が行われるごとに、前記ポイントを付与することを含み、
前記ユーザに付与された各ポイントを合計するステップをコンピュータにさらに実行させるための請求項２又は３に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ヘッドマウントディスプレイを制御するプログラム、システム、及び方法に関するものである。
【背景技術】
【０００２】
特許文献１には、鉄道シミュレーションゲーム装置が開示されている。この鉄道シミュレーションゲームは、座席と、コントロールパネルと、ディスプレイを備えており、ディスプレイの画面を見ながら操作具を操作することで鉄道車両を所定の運行パターン通りに運転し、その的確さを競う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２４４０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示の発明は、大掛かりな装置を必要とするので、ユーザが手軽に乗り物を運転しているという臨場感を味わう上で、改善の余地がある。
【０００５】
本発明は、乗り物の運転をシミュレーションする際に、高い臨場感を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によれば、ディスプレイと、傾きを検出するセンサを備えるヘッドマウントディスプレイに接続されるコンピュータを、ディスプレイに仮想空間を提供し、仮想空間内の乗り物オブジェクトまたは背景オブジェクトを操作するように機能させるプログラムであって、ディスプレイに、操縦部を含む乗り物オブジェクトと、乗り物オブジェクトの外界である背景オブジェクトと、を表示する表示制御部と、センサで検出されるヘッドマウントディスプレイの傾きに基づいて、乗り物オブジェクトまたは背景オブジェクトを操作するオブジェクト制御部と、乗り物オブジェクトまたは背景オブジェクトが所定の条件を満たすように操作されたか否かを判定する判定部と、を備えるプログラムが得られる。
【０００７】
また、本発明によれば、ディスプレイと、傾きを検出するセンサを備える第１ヘッドマウントディスプレイ及び第２ヘッドマウントディスプレイに接続されるコンピュータを、ディスプレイに仮想空間を提供し、仮想空間内の乗り物オブジェクトまたは背景オブジェクトを操作するように機能させるプログラムであって、ディスプレイに、操縦部を含む乗り物オブジェクトと、乗り物オブジェクトの外界である背景オブジェクトと、を表示する表示制御部と、センサで検出される第１ヘッドマウントディスプレイの傾き、および、第２ヘッドマウントディスプレイからの指令に基づいて、乗り物オブジェクトまたは背景オブジェクトを操作するオブジェクト制御部と、乗り物オブジェクトまたは背景オブジェクトが所定の条件を満たすように操作されたか否かを判定する判定部と、を備え、第１ヘッドマウントディスプレイからの操作による条件と、第２ヘッドマウントディスプレイからの操作による条件とが異なる、プログラムが得られる。
【０００８】
また、本発明によれば、ディスプレイと、傾きを検出するセンサと、制御回路部と、を備えるヘッドマウントディスプレイを含むシステムであって、制御回路部は、ディスプレイに、操縦部を含む乗り物オブジェクトと、乗り物オブジェクトの外界である背景オブジェクトと、を含む仮想空間を提供し、センサで検出されるヘッドマウントディスプレイの傾きに基づいて、乗り物オブジェクトまたは背景オブジェクトを操作し、乗り物オブジェクトまたは前記背景オブジェクトが所定の条件を満たすように操作されたか否かを判定する、システムが得られる。
【０００９】
また、本発明によれば、ディスプレイと、傾きを検出するセンサを備えるヘッドマウントディスプレイの制御方法であって、以下を備える方法が得られる。
１）前記ディスプレイに、操縦部を含む乗り物オブジェクトと、前記乗り物オブジェクトの外界である背景オブジェクトと、を含む仮想空間を提供する；
２）前記センサで検出される前記ヘッドマウントディスプレイの傾きに基づいて、前記乗り物オブジェクトまたは前記背景オブジェクトを操作し；
３）前記乗り物オブジェクトまたは前記背景オブジェクトが所定の条件を満たすように操作されたか否かを判定する。
【発明の効果】
【００１０】
本発明によれば、乗り物の運転をシミュレーションする際に、高い臨場感を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態によるＨＭＤシステムを示す図である。
【図２】ＨＭＤを装着しているユーザの頭部を中心に規定される３次元空間上の直交座標系を示す。
【図３Ａ】仮想空間と実空間の配置位置の対応関係の一例を示すＸＹＺ空間図である。
【図３Ｂ】仮想空間と実空間の配置位置の対応関係の一例を示すＸＺ平面図である。
【図４】ＨＭＤシステムの機能を実現するための、制御回路部の機能を示すブロック図である。
【図５Ａ】視界領域を示す３次元の模式図である。
【図５Ｂ】視界領域をＸ方向から見たＹＺ面図である。
【図５Ｃ】視界領域をＹ方向から見たＸＺ面図である。
【図６】図４に示すオブジェクト制御部の機能を説明するブロック図である。
【図７】オブジェクト操作テーブルの一例を示す図である。
【図８】ＨＭＤシステムの機能を実現するための処理を示すフローチャートである。
【図９】ＨＭＤに表示される視界画像の一例を示す図である。
【図１０】ＨＭＤに表示される視界画像の一例を示す図である。
【図１１】ＨＭＤに表示される視界画像の一例を示す図である。
【図１２】ＨＭＤに表示される視界画像の一例を示す図である。
【図１３】ＨＭＤに表示される視界画像の一例を示す図である。
【図１４】ＨＭＤに表示される視界画像の一例を示す図である。
【図１５】判定部における判定内容の一例を示すテーブルである。
【図１６】判定部における判定方法の一例を示す図である。
【図１７】本発明の他の実施形態によるＨＭＤシステムを示す図である。
【発明を実施するための形態】
【００１２】
［本発明の実施形態の説明］
最初に、本発明の実施形態の内容を列記して説明する。本発明の一実施形態によるヘッドマウントディスプレイを制御するプログラム、システム、及び方法は、以下のような構成を備える。
（項目１）
ディスプレイと、傾きを検出するセンサを備えるヘッドマウントディスプレイに接続されるコンピュータを、前記ディスプレイに仮想空間を提供し、前記仮想空間内の乗り物オブジェクトまたは背景オブジェクトを操作するように機能させるプログラムであって、
前記ディスプレイに、操縦部を含む前記乗り物オブジェクトと、前記乗り物オブジェクトの外界である前記背景オブジェクトと、を表示する表示制御部と、
前記センサで検出される前記ヘッドマウントディスプレイの傾きに基づいて、前記乗り物オブジェクトまたは前記背景オブジェクトを操作するオブジェクト制御部と、
前記乗り物オブジェクトまたは前記背景オブジェクトが所定の条件を満たすように操作されたか否かを判定する判定部と、を備えるプログラム。
本項目のプログラムによれば、ヘッドマウントディスプレイの傾きに基づいて、乗り物オブジェクトまたは背景オブジェクトを操作し、所定の条件を満たすように操作されたか否かが判定される。従って、例えば車窓の外の信号等に適切に視線を送ったか否かといった要素を乗り物の運転シミュレーションに新たに付加することができる。従って、高い臨場感を提供することができる。
（項目２）
前記プログラムは、前記センサで検知される傾き情報に基づいて、前記仮想空間内の基準視線を定義する視界決定部をさらに備え、
前記表示制御部は、前記背景オブジェクトに確認オブジェクトをさらに表示し、
前記判定部は、前記基準視線が前記確認オブジェクトと交差したか否かを判定する、項目２のプログラム。
本項目のプログラムによれば、特定のオブジェクトに適切に視線を送ったか否かを、正確に判定できる。従って、乗り物の運転をシミュレーションする際に、高い臨場感を提供することができる。
（項目３）
前記確認オブジェクトは、前記乗り物オブジェクトの移動に応じて、前記乗り物オブジェクトとの相対距離情報が変化し、
前記判定部は、前記相対距離情報が所定の範囲内にある場合に、前記基準視線が前記確認オブジェクトと交差したか否かを判定する、項目２のプログラム。
本項目のプログラムによれば、確認オブジェクトと乗り物オブジェクトとの相対距離が所定の範囲内にある場合に、確認オブジェクトに視線を送ったか否かを判定できる。従って、適切なタイミングに特定のオブジェクトに適切に視線を送ったか否かを判定でき、高い臨場感を提供することができる。
（項目４）
前記コンピュータは外部コントローラと接続され、
前記オブジェクト制御部は、前記外部コントローラに対する入力に基づいて、前記乗り物オブジェクトまたは前記背景オブジェクトをさらに操作する、項目１〜３のいずれかのプログラム。
本項目のプログラムによれば、外部コントローラに対する入力に基づいて、特定のオブジェクトをさらに操作できる。従って、乗り物の運転をシミュレーションする際に、高い臨場感を提供することができる。
（項目５）
前記プログラムは、前記センサで検知される傾き情報に基づいて、前記仮想空間内の基準視線を定義する視界決定部をさらに備え、
前記表示制御部は、前記背景オブジェクトに確認オブジェクトをさらに表示し、
前記判定部は、前記基準視線が前記確認オブジェクトと交差した場合に、前記外部コントローラに対する入力が、前記基準視線が前記確認オブジェクトと交差してから所定の時間内になされたか否かを判定する、項目４のプログラム。
本項目のプログラムによれば、確認オブジェクトに視線を送るアクションの前後に所定のアクションが適切に行われたか否かを、さらに判定できる。従って、例えば車窓の外の信号等に適切に視線を送るとともに、指差確認するといった要素を乗り物の運転シミュレーションに新たに付加することができる。従って、高い臨場感を提供することができる。
（項目６）
前記ヘッドマウントディスプレイは、音声入力を受け付けるマイクをさらに備え、
前記判定部は、前記乗り物オブジェクトまたは前記背景オブジェクトが所定の条件を満たす場合に前記音声入力が受け付けられたか否かを判定する、項目１〜５のいずれかのプログラム。
本項目のプログラムによれば、音声入力に基づいて、乗り物の運転が適切に行われたか否かを判定できる。従って、乗り物の乗客に対して適切なタイミングでアナウンスを行うといった要素を乗り物の運転シミュレーションに新たに付加することができる。従って、高い臨場感を提供することができる。
（項目７）
ディスプレイと、傾きを検出するセンサを備える第１ヘッドマウントディスプレイ及び第２ヘッドマウントディスプレイに接続されるコンピュータを、前記ディスプレイに仮想空間を提供し、前記仮想空間内の乗り物オブジェクトまたは背景オブジェクトを操作するように機能させるプログラムであって、
前記ディスプレイに、操縦部を含む前記乗り物オブジェクトと、前記乗り物オブジェクトの外界である前記背景オブジェクトと、を表示する表示制御部と、
前記センサで検出される前記第１ヘッドマウントディスプレイの傾き、および、前記第２ヘッドマウントディスプレイからの指令に基づいて、前記乗り物オブジェクトまたは前記背景オブジェクトを操作するオブジェクト制御部と、
前記乗り物オブジェクトまたは前記背景オブジェクトが所定の条件を満たすように操作されたか否かを判定する判定部と、を備え、
前記第１ヘッドマウントディスプレイからの操作による前記条件と、前記第２ヘッドマウントディスプレイからの操作による前記条件とが異なる、プログラム。
本項目のプログラムによれば、仮想空間内に第１ヘッドマウントディスプレイを装着した第１プレーヤと、当該第１プレーヤと役割の異なる第２ヘッドマウントディスプレイを装着した第２プレーヤを登場させることができる。従って、乗り物の運転をシミュレーションする際に、高い臨場感を提供することができる。
（項目８）
ディスプレイと、傾きを検出するセンサと、制御回路部と、を備えるヘッドマウントディスプレイを含むシステムであって、
前記制御回路部は、
前記ディスプレイに、操縦部を含む乗り物オブジェクトと、前記乗り物オブジェクトの外界である背景オブジェクトと、を含む仮想空間を提供し、
前記センサで検出される前記ヘッドマウントディスプレイの傾きに基づいて、前記乗り物オブジェクトまたは前記背景オブジェクトを操作し、
前記乗り物オブジェクトまたは前記背景オブジェクトが所定の条件を満たすように操作されたか否かを判定する、システム。
本項目のシステムによれば、ヘッドマウントディスプレイの傾きに基づいて、乗り物オブジェクトまたは背景オブジェクトを操作し、所定の条件を満たすように操作されたか否かが判定される。従って、例えば車窓の外の信号等に適切に視線を送ったか否かといった要素を乗り物の運転シミュレーションに新たに付加することができる。従って、高い臨場感を提供することができる。
（項目９）
ディスプレイと、傾きを検出するセンサを備えるヘッドマウントディスプレイの制御方法であって、以下を備える；
１）前記ディスプレイに、操縦部を含む乗り物オブジェクトと、前記乗り物オブジェクトの外界である背景オブジェクトと、を含む仮想空間を提供する；
２）前記センサで検出される前記ヘッドマウントディスプレイの傾きに基づいて、前記乗り物オブジェクトまたは前記背景オブジェクトを操作し；
３）前記乗り物オブジェクトまたは前記背景オブジェクトが所定の条件を満たすように操作されたか否かを判定する。
本項目の制御方法によれば、ヘッドマウントディスプレイの傾きに基づいて、乗り物オブジェクトまたは背景オブジェクトを操作し、所定の条件を満たすように操作されたか否かが判定される。従って、例えば車窓の外の信号等に適切に視線を送ったか否かといった要素を乗り物の運転シミュレーションに新たに付加することができる。従って、高い臨場感を提供することができる。
【００１３】
［本発明の実施形態の詳細］
本発明の実施形態に係るヘッドマウントディスプレイを制御するプログラム、システム、及び方法の具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を省略する。
【００１４】
図１は、本実施形態にかかるヘッドマウントディスプレイ（以下、「ＨＭＤ」と称する。）１１０を備えるＨＭＤシステム１００を示す。ＨＭＤシステム１００は、ユーザの頭部に装着されるＨＭＤ１１０と、制御回路部１２０と、センサ１３０と、外部コントローラ１４０を備える。ＨＭＤ１１０は、非透過型の表示装置であるディスプレイ１１２と、センサ部１１４を含む。制御回路部１２０はディスプレイ１１２に右目用画像と左目用画像を表示することにより、両目の視差を利用した３次元画像を仮想空間として提供する。ディスプレイ１１２がユーザの眼前に配置されることによって、ユーザは仮想空間に没入できる。仮想空間は、後述するように、背景やユーザが操作可能な各種オブジェクトを含む。
【００１５】
ディスプレイ１１２は、右目用画像を提供する右目用サブディスプレイと、左目用画像を提供する左目用サブディスプレイを含んでもよい。また、右目用画像と左目用画像を提供できれば、１つの表示装置で構成されていても良い。例えば、表示画像が一方の目にしか認識できないようにするシャッターを高速に切り替えることにより、右目用画像と左目用画像を独立して提供し得る。
【００１６】
制御回路部１２０は、ＨＭＤ１１０に接続されるコンピュータであり、ディスプレイ１１２に仮想空間を提供し、当該仮想空間内に表示される各種オブジェクトを操作するように機能させる。制御回路部１２０はそのような動作を制御するプログラムを格納する。制御回路部１２０はＨＭＤ１１０に搭載されていなくてもよく、別のハードウェア（例えば公知のパーソナルコンピュータ、ネットワークを通じたサーバ・コンピュータ）として構成してもよい。また、制御回路部１２０は、一部の機能のみをＨＭＤ１１０に実装し、残りの機能を別のハードウェアに実装してもよい。
【００１７】
センサ１３０は、ＨＭＤ１１０の位置や動きに関する情報を検出する。センサ１３０は、センサ部１１４と、検知部１３２を含む。センサ部１１４は、複数の光源を含んでもよい。光源は、例えば赤外線を発するＬＥＤである。検知部１３２は例えば赤外線センサであり、光源からの赤外線をＨＭＤ１１０の検知点として検知することで、ユーザの動きに応じたＨＭＤ１１０の実空間内における角度に関する情報を経時的に検出する。そして、検知部１３２により検出された情報の経時的変化に基づいて、ＨＭＤ１１０の角度の時間変化を決定し、ＨＭＤ１１０の位置や動きに関する情報を検知することができる。
【００１８】
センサ１３０によって取得される角度に関する情報を、図２を参照して説明する。ＨＭＤ１１０を装着したユーザの頭部を中心として、ＸＹＺ座標を規定する。ユーザが直立する垂直方向をＹ軸とし、Ｙ軸と直交しディスプレイ１１２の中心とユーザを結ぶ前後方向をＺ軸とし、Ｙ軸およびＺ軸と直交する横方向をＸ軸とする。そして各軸周りのＨＭＤ１１０の傾き角度θｘ（いわゆるピッチ角），θｙ（いわゆるヨー角），θｚ（いわゆるロール角）を検出し、それらの経時的な変化により、ＨＭＤ１１０の位置や動きに関する情報を検知することができる。
【００１９】
センサ１３０は、ディスプレイ１１２の近くに固定されたセンサ部１１４と、検知部１３２の、一方のみから構成されてもよい。センサ部１１４が、地磁気センサ、加速度センサ、角速度（ジャイロ）センサであってもよく、これらの少なくとも１つを用いて、ユーザの頭部に装着されたＨＭＤ１１０（特に、ディスプレイ１１２）の傾きを検出する。これにより、ＨＭＤ１１０の位置や動きに関する情報を検出することができる。例えば、角速度センサは、ＨＭＤ１１０の動きに応じて、ＨＭＤ１１０の３軸回りの角速度を経時的に検出し、各軸回りの角度（傾き）の時間変化を決定することができる。この場合には、検知部１３２は不要である。また、検知部１３２は光学カメラを含んで構成されても良い。この場合には、画像情報に基づいてＨＭＤ１１０の位置や動きに関する情報を検出することができ、センサ部１１４は不要である。
【００２０】
センサ１３０を用いてＨＭＤの位置や動きに関する情報を検出する機能をポジション・トラッキングと称する。センサ１３０によるポジション・トラッキングと、仮想空間２内に配置される仮想カメラ１との関係を図３Ａ，図３Ｂを参照して説明する。仮想カメラ１とセンサ１３０の位置関係を説明するために、以下ではセンサ１３０の位置は、検知部１３２を有する場合には検知部１３２の位置とし、検知部１３２を有しない場合にはセンサ部１１４の位置とする。図３Ａは実空間内のセンサ１３０と仮想空間２の関係を示す３次元の模式図であり、図３Ｂは実空間内のセンサ１３０と仮想空間２の関係をＹ方向から見た平面図である。仮想空間２の内部に仮想カメラ１が配置され、および仮想空間２の外部（実空間）にセンサ１３０が仮想的に配置される。
【００２１】
仮想空間２は、略正方形または略長方形の複数のメッシュ３を有する天球状に形成される。各メッシュは仮想空間２の空間情報が関連付けられており、この空間情報に基づいて後述する視界画像が形成される。本実施形態では、図３Ｂに示すように、ＸＺ面において、天球の中心点２１が仮想カメラ１とセンサ１３０を結ぶ線上に常に配置されるように調整することが好ましい。例えば、ＨＭＤを装着したユーザが移動して仮想カメラ１の位置がＸ方向に移動した場合には、中心２１が仮想カメラ１とセンサ１３０の線分上に位置するように、仮想空間２の領域が変更される。
【００２２】
外部コントローラ１４０は、制御回路部１２０に対して各種指令を送ることができるように通信可能なデバイスであり、無線通信が可能な携帯端末で構成されることが好ましい。外部コントローラ１４０は、互いにバス接続されたＣＰＵ、主記憶、補助記憶、送受信部、表示部、および入力部を備える任意の携帯型デバイスとすることができる。例えば、スマートフォン、ＰＤＡ、タブレット型コンピュータ、ゲーム用コンソール、ノートＰＣを適用可能であり、タッチパネルを備える携帯端末であることが好ましい。ユーザは、外部コントローラ１４０のタッチパネルに対し、タップ、スワイプおよびホールドを含む各種タッチ動作を実施することにより、仮想空間に表示されるオブジェクトに対して影響を及ぼすことができる。
【００２３】
ＨＭＤシステム１００はいずれかの要素にマイクを含むヘッドホンを備えていても良い。これにより、ユーザは仮想空間内の所定のオブジェクト（後述するゲームオブジェクト等）に、音声による指示を与えることができる。また、仮想空間内の仮想テレビにテレビ番組の放送を受信するために、ＨＭＤシステム１００はいずれかの要素にテレビジョン受像機を含んでいても良い。
【００２４】
図４は、ＨＭＤシステム１００における仮想空間２の表示処理や、当該仮想空間２内に表示されるオブジェクトの操作を実現するための、制御回路部１２０の機能を示す図である。制御回路部１２０は、主にセンサ１３０および外部コントローラ１４０からの入力に基づいて、ディスプレイ１１２への出力画像を制御する。
【００２５】
制御回路部１２０は、表示制御部２００とオブジェクト制御部３００と、判定部４００を備える。表示制御部２００は、動き検出部２１０と、視界決定部２２０と、視界画像生成部２３０と、空間情報格納部２４０を含む。オブジェクト制御部３００は、オブジェクト情報格納部３１０と、仮想カメラ情報格納部３２０を含む。センサ１３０と、表示制御部２００と、オブジェクト制御部３００と、ディスプレイ１１２は互いに通信可能に接続されており、有線または無線の通信インターフェースを介して接続され得る。外部コントローラ１４０は、オブジェクト制御部３００と通信可能に接続されている。空間情報格納部２４０、オブジェクト情報格納部３１０、および仮想カメラ情報格納部３２０は、センサ１３０や外部コントローラ１４０からの入力に対応した出力情報をディスプレイ１１２へ提供するための各種テーブルを含む。判定部４００は、センサ１３０や外部コントローラ１４０からの入力が所定の条件を満たし、各種オブジェクトが所定の条件を満たすように操作されたか否かを判定する。
【００２６】
センサ１３０は、センサ部１１４により経時的に検知される角度情報や、検知部１３２により経時的に検知されるＨＭＤ１１０の角度情報に基づいて、ＨＭＤ１１０の位置や動きに関する情報を、表示制御部２００およびオブジェクト制御部３００に出力する。動き検知部２１０は、センサ１３０からの入力情報に基づいて、ＨＭＤ１１０の動きを検出する。そして、仮想空間２内におけるＨＭＤ１１０の向きを規定する基準視線となる視野方向を検出する。そして、検出した情報を視界決定部２２０に出力する。
【００２７】
視界決定部２２０は、空間情報格納部２４０に格納された仮想空間情報と、センサ１３０からの入力情報（動き検知部２１０からの情報）に基づいて、仮想空間２における仮想カメラ１の視界領域に関する情報を決定する。視界画像生成部２３０は、当該視界情報に基づいて、仮想空間を構成する３６０度パノラマの一部を、視界画像として生成する。視界画像はディスプレイ１１２に出力される。視界画像は左目用と右目用の２つの２次元画像を含み、これらがディスプレイ１１２に重畳されることにより、３次元画像としての仮想空間２がユーザに提供される。
【００２８】
オブジェクト制御部３００では、オブジェクト情報格納部３１０に格納された仮想空間内のオブジェクト情報と、センサ１３０および外部コントローラ１４０からのユーザ指令に基づいて、操作対象オブジェクトを特定する。そして、操作対象オブジェクトへの所定のユーザ操作指令に基づいて、仮想カメラ情報格納部３２０に格納された仮想カメラ情報を調整する。調整された仮想カメラ情報を表示制御部２００に出力し、視界画像が調整される。また、所定のユーザ操作指令に対応する操作を操作対象オブジェクトへ実施し、オブジェクト制御情報をディスプレイ１１２および表示制御部２００に出力する。オブジェクト操作の具体的な処理は後述する。
【００２９】
なお、制御回路部１２０の各機能を実現するためのハードウェア要素は、ＣＰＵ、メモリ、その他の集積回路で構成することができる。そして、メモリにロードされたソフトウェア要素としての各種プログラムによって各機能が実現される。したがって、これらの機能ブロックがハードウェア、ソフトウェア、又はそれらの組み合わせによって実現できることが当業者に理解される。
【００３０】
図５Ａ〜Ｃを参照して、視界決定部２２０で決定される、仮想空間２の天球面に沿った視界領域６について説明する。図５Ａは、視界領域６を示す３次元の模式図であり、図５Ｂは視界領域６をＸ方向から見たＹＺ面図であり、図５Ｃは視界領域６をＹ方向から見たＸＺ面図である。図５Ａに示すように、視界領域６は仮想空間２の一部を構成する。視界領域６は視界方向５に基づいて定められ、視界方向５は仮想カメラ１の位置および方向に基づいて定められる。視界領域６は、仮想空間２と視界方向５との交点におけるＸ軸まわりの所定範囲である第１領域６１と、仮想空間２と視界方向５との交点におけるＹ軸まわりの所定範囲である第２視界領域６２とを有する。第１領域６１は、視界方向５を中心として極角αを含む範囲として設定される。第２領域６２は、視界方向５を中心として方位角βを含む範囲として設定される。つまり、視界領域６は、仮想カメラ１の位置からの視界方向５に対して、ＸＹ平面図における極角θおよびＸＺ平面図における方位角βを有した球面上の領域とすることができる。
【００３１】
図６、図７を参照して、仮想空間２内でのオブジェクト操作に関する制御回路部１２０の処理動作を説明する。図６は、図４に示すオブジェクト制御部３００の機能を説明するブロック図である。オブジェクト制御部３００は、操作対象オブジェクトを特定するためのオブジェクト特定部３３０と、特定された操作対象オブジェクトを操作するためのオブジェクト操作部３４０を備える。
【００３２】
オブジェクト特定部３３０は、基準視線計算部３３１、オブジェクト判定部３３２、操作対象オブジェクト選択部３３３を備える。オブジェクト特定部３３０は、ＨＭＤ１１０の傾き動作によって、仮想空間２において図５Ａ〜Ｃに示した基準視線である視界方向５上に配置されるオブジェクトを特定する。そのために、基準視線計算部３３１が視界方向５を設定し、オブジェクト判定部３４０が視界方向５上にオブジェクトが配置されているかを判定する。さらに、操作対象オブジェクト選択部３６０は、視界方向５上にオブジェクトが配置される場合に、そのオブジェクトを操作対象オブジェクトとして選択する。
【００３３】
オブジェクト操作部３４０は、外部コントローラ動作判定部３４１と、傾き動作判定部３４２と、仮想カメラ調整部３４３と、オブジェクト操作特定部３４４と、オブジェクト操作実施部３４５と、オブジェクト操作テーブル３４６を備える。オブジェクト操作部３４０は、オブジェクト特定部３００で特定された操作対象オブジェクトに対し、ＨＭＤ１１０の傾き動作に従った操作を実施する。
【００３４】
外部コントローラ動作判定部３４１は、外部コントローラ１４０にユーザのタッチ操作が入力されたかを判定する。傾き動作判定部３４２は、ＨＭＤ１１０に傾き動作（特に、傾け方向）が入力されたかを判定する。仮想カメラ調整部３４３は、オブジェクト操作の際に仮想カメラ１の位置や方向を調整する。オブジェクト操作特定部３４４は、操作対象オブジェクトに対する操作を、オブジェクト操作テーブル３４６に従って特定する。オブジェクト操作実施部３４５は、オブジェクト操作を実施し、その結果として生じる画像を視界画像として生成する。
【００３５】
図７はオブジェクト操作テーブル３４６の一例を示す。オブジェクト操作テーブル３４６は、ユーザ動作と操作対象オブジェクトのアクションを関連付ける。即ち、ユーザによるＨＭＤ１１０に対する傾き変更動作や、外部コントローラ１４０への入力といった動作に対して、操作対象オブジェクトが所定のアクションをとるよう、一対一で対応付けられる。操作対象オブジェクトのアクションは、ＨＭＤ１１０または外部コントローラ１４０単体への入力動作によって関連付けられても良いし、ＨＭＤ１１０と外部コントローラ１４０の連携した操作に関連付けられていても良い。当該入力に対する各アクションの詳細は後述する。
【００３６】
なお、オブジェクト操作テーブル３４６がユーザ動作と操作対象オブジェクトの情報を有している場合には、オブジェクト操作部３４０がオブジェクト特定部３３０としての機能を有する場合がある。即ち、オブジェクト操作テーブル３４６が有する操作対象オブジェクト情報は、オブジェクト特定部３３０において特定されたものであっても良いし、予め設定されたものであっても良い。
【００３７】
次に、図８〜図１６を参照して、本実施形態による、仮想空間２内におけるオブジェクト操作のための処理フローを説明する。当該オブジェクト操作処理は、外部コントローラ１４０、センサ１３０、ＨＭＤ１００および制御回路部１２０の相互作用によって実現され得る。
【００３８】
まず、センサ１３０によってＨＭＤ１１０の位置が検知される（ステップＳ１３０−１）。
センサ１３０の検知情報は制御回路部１２０に送信され、動き検出部２１０により、ＨＭＤ１１０の位置情報や傾き情報が決定される（ステップＳ１２０−１）。視界決定部２２０は、ＨＭＤ１１０の位置情報および／または傾き情報に基づいて、仮想空間２内での視界情報が決定される。そして、視界画像生成部２３０が当該視界情報に基づいてＨＭＤ１１０のディスプレイ１１２に表示するための視界画像を生成する（ステップＳ１２０−２）
【００３９】
このとき、視界決定部２２０は基準視線である視界方向５を決定する（ステップＳ１２０−３）。視界方向５は、前述のように視界画像の所定位置に対応付けて決定される。当該所定位置は視界画像の中心点とするのがよいが、これに限定されず、視界画像の如何なる設定可能な位置としてよい。また、視界方向は何らかのマーク（例えば、円形や手の平形のアイコン）として上記視界画像に重畳表示してもよい。
【００４０】
次に、視界画像がＨＭＤ１１０に表示される（ステップＳ１００−２）。視界画像には、後述するように操作対象になり得る複数のオブジェクトが表示される。そして、視界画像がＨＭＤ１１０に表示された状態で、ＨＭＤ１１０を装着したユーザが頭部を傾ける動作をした場合には、仮想空間２内に配置された複数のオブジェクトのうち、少なくとも１つが視界画像の所定位置に対応するよう位置合わせを行う。
【００４１】
ＨＭＤ１１０に表示される視界画像の一例を図９に示す。視界画像Ｇ１は、乗り物オブジェクトＶ１（第１オブジェクト）と、背景オブジェクトＢ１（第２オブジェクト）を含む。乗り物オブジェクトＶ１は、例えば電車の操縦席に対応するものであり、操縦部Ｍと、操縦部Ｍによる操縦結果を表示する表示部Ｄを含む。操縦部Ｍは、電車を加速するための操縦バーＭ１と、電車を減速するためのブレーキバーＭ２を含む。表示部Ｄは、操縦バーＭ１およびブレーキバーＭ２による電車の速度を反映する速度計Ｄ１と、ブレーキバーＭ２の操作による電車の減速の度合いを反映する圧力計Ｄ２を含む。背景オブジェクトＢ１は、乗り物オブジェクトＶ１の背景に相当するものであり、本実施形態では電車の運転席から見た外界の風景である。背景オブジェクトＢ１の中心付近には、視界方向５に相当するマークＯが表示される。
【００４２】
視界画像Ｇ１は三次元オブジェクトである仮想空間２として構成され、乗り物オブジェクトＶ１の速度に応じて背景オブジェクトＢ１の変化する速度が変更される。これにより、ユーザは電車の運転士としての状況を、高い臨場感をもって体験することができる。なお、乗り物オブジェクトＶ１は電車に限られず、乗用車、バス・タクシー等の商用自動車、飛行機など、様々な乗り物を採用することができ、様々な乗り物の運転をシミュレーションすることが可能である。
【００４３】
次に、センサ１３０によってさらにＨＭＤ１１０の位置が検知されることにより、ＨＭＤ１１０に対するユーザの入力が検知される（ステップＳ１３０−２,１１０−３）。センサ１３０の検知情報はオブジェクト制御部３００に送信され、傾け動作判定部３４２によりＨＭＤ１１０の位置情報や傾き情報が決定され、ＨＭＤ１１０に対するユーザの入力が受け付けられる（ステップＳ１２０−４）。オブジェクト操作特定部３４４は、オブジェクト操作テーブル３４６を参照して、当該ユーザの入力に関連付けられた操作対象オブジェクトと、操作内容を選択する（ステップＳ１２０−５）。
【００４４】
また、外部コントローラ１４０に対するユーザのタッチ操作が入力された場合には、当該入力情報がオブジェクト制御部３００に送信され、外部コントローラ動作判定部３４１に受け付けられる。オブジェクト操作特定部３４４は、オブジェクト操作テーブル３４６を参照して、当該ユーザの入力に関連付けられた操作対象オブジェクトと、操作内容を選択する（ステップＳ１２０−５）。
【００４５】
図１０〜図１５を参照して、ＨＭＤ１１０または外部コントローラ１４０に対するユーザの入力に基づいて、操作対象オブジェクトを制御する態様の一例を示す。
【００４６】
図１０,図１１は、外部コントローラ１４０としてのタッチパネルを備えるデバイスに、ユーザのタッチ操作を入力することによって、操作対象オブジェクトとしての乗り物オブジェクトＶ１を制御する態様を示す。図７に示すように、外部コントローラ１４０への入力操作と、操作対象オブジェクトおよび操作内容が関連付けられている。従って、外部コントローラ１４０に所定の操作を入力することによって、乗り物オブジェクトＶ１を制御できる。
【００４７】
例えば、外部コントローラ１４０のタッチパネルに上から下へ直線的な軌道をもってスワイプ操作を入力すると、乗り物オブジェクトＶ１が加速するように制御される。具体的には、図１０に示すように、当該スワイプ操作が入力されると、操作対象オブジェクトとして関連付けられた操縦バーＭ１に、手前に倒すようなアクションが行われる。これに合わせて乗り物オブジェクトＶ１は加速し、同様に操作対象オブジェクトとして関連付けられた速度計Ｄ１のメータが乗り物オブジェクトＶ１の速度に応じて変動する。そして、乗り物オブジェクトＶ１の速度に応じて背景オブジェクトＢ１の変化する速度が変更される。これにより、ユーザは外部コントローラ１４０を操作することで、操縦部Ｍを含む乗り物オブジェクトＶ１を操作できる。
【００４８】
また、外部コントローラ１４０のタッチパネルに右から左へ円弧状の軌道をもってスワイプ操作を入力すると、乗り物オブジェクトＶ１が減速するように制御される。具体的には、図１１に示すように、当該スワイプ操作が入力されると、操作対象オブジェクトとして関連付けられたブレーキバーＭ２に、右回りに撚るようなアクションが行われる。これに合わせて乗り物オブジェクトＶ１は減速し、同様に操作対象オブジェクトとして関連付けられた圧力計Ｄ２のメータが、スワイプ量に応じて変動する。圧力計Ｄ２はブレーキの強さを反映しており、当該ブレーキアクションに応じて乗り物オブジェクトＶ１は減速し、速度計Ｄ１のメータが変動する。そして、乗り物オブジェクトＶ１の速度に応じて背景オブジェクトＢ１の変化する速度が変更される。これにより、ユーザは外部コントローラ１４０を操作することで、操縦部Ｍを含む乗り物オブジェクトＶ１を操作できる。
【００４９】
図１２は、ＨＭＤ１１０に対するユーザの入力に基づいて、操作対象オブジェクトとしての背景オブジェクトＢ１を制御する態様を示す。図７に示すように、ＨＭＤ１１０への入力操作と、操作対象オブジェクトおよび操作内容が関連付けられている。従って、ＨＭＤ１１０に所定の操作を入力することによって、背景オブジェクトＢ１を制御できる。
【００５０】
例えば、ユーザが背景オブジェクトＢ１に含まれる信号Ｃ１（確認オブジェクトの一例）に視線を向けることによって、ユーザの信号確認操作が実行される。これにより、背景オブジェクトＢ１の制御に基づいて、後述するようにゲームポイントが付与される。具体的には、図１２に示すように、ユーザが頭を右方向に向けることで信号Ｃ１に視線を向けることにより、ＨＭＤ１１０の傾きがセンサ１３０に検知され、これにより視界方向５に相当するマークＯの位置が右方向に変化する。信号Ｃ１の外側近傍には、所定の認識領域Ｃ２が設定されており、認識領域Ｃ２とマークＯの少なくとも一部が重複することで、信号Ｃ１が操作対象オブジェクトとして判定され、選択される。その結果、ユーザが信号Ｃ１に視線を向けたと判定され得る。これにより、ＨＭＤ１１０を操作することで、信号Ｃ１を含む背景オブジェクトＢ１を操作できる。なお、認識領域Ｃ２はユーザが視認できない仮想領域としておくことが好ましい。
【００５１】
また、図１３,図１４に示すように、ＨＭＤ１１０に対するユーザの入力と、外部コントローラ１４０に対するユーザの入力の両方に基づいて、操作対象オブジェクトとしての背景オブジェクトＢ１を制御してもよい。図７に示すように、ＨＭＤ１１０および外部コントローラ１４０への入力操作と、操作対象オブジェクトおよび操作内容が関連付けられている。従って、ＨＭＤ１１０および外部コントローラ１４０に所定の操作を入力することによって、背景オブジェクトＢ１を制御できる。
【００５２】
例えば、図１３に示すように、ユーザが右を向いて視線を信号Ｃ１に向けた操作に続いて、所定の時間内に外部コントローラ１４０のタッチパネルをタップするようにし、ユーザが信号Ｃ２に対し指差確認するようにしてもよい。また、当該操作に対応する画像Ｏ１を、さらに視界画像Ｇ１に表示するようにしても良い。これにより、指差確認が完了したことをユーザにフィードバックできる。そして、指差確認に応じたゲームポイントをさらに付与するようにしても良い。
【００５３】
また、図１４に示すように、ユーザが左を向いて視線を警笛標識Ｃ３に向けた操作に続いて、所定の時間内に外部コントローラ１４０のタッチパネルをダブルタップするようにし、ユーザが警笛を鳴らすようにしてもよい。また、当該操作に対応する画像Ｏ２を、さらに視界画像Ｇ１に表示するようにしても良い。これにより、警笛を鳴らすことが完了したことをユーザにフィードバックできる。そして、適切なタイミングで警笛を鳴らすことができた場合にはゲームポイントをさらに付与するようにしても良い。
【００５４】
そして、オブジェクト操作特定部３４４は、オブジェクト操作テーブル３４６を参照して、上記の操作が所定の条件を満たすか否かを判断し、結果を判定部４００に出力する。判定部４００は、図１５に示す入力操作と判定内容を関連付けるテーブルに基づいて、上記の操作が所定の条件を満たすか否かを判定する（ステップＳ１２０−６）。即ち、外部コントローラ１４０のタッチパネルに対して所定のタッチ操作が所定の条件を満たすように行われたか否か、および、ＨＭＤ１１０に対して所定の傾き操作が所定の条件を満たすように入力されたか否かが判定される。
【００５５】
ここで、オブジェクト操作特定部３４４は、ＨＭＤ１１０を装着したユーザが操作対象となるオブジェクトに視線を合わせたか否かを、基準視線となる視界方向５が操作対象オブエクと交差したか否かに基づいて判断することが好ましい。また、前述のように、操作対象オブジェクトの近傍に仮想的な認識領域を設けておくことが好ましい。これにより、ユーザが操作対象オブジェクトを視認したにも係わらず、操作入力として受け付けられないといった事態が生じることを防止できる。
【００５６】
また、判定部４００は、視界方向５が操作対象オブジェクトと所定のタイミングで交差したか否かを判定することが好ましい。例えば、電車の運転シミュレーションでは、信号を適切なタイミングで視認し、さらに、適切なタイミングで指差確認したか否かを判定することにより、運転士の安全行動をゲームポイントとして付与できる。
【００５７】
この場合、信号Ｃ１は電車Ｖ１の移動に応じて電車Ｖ１との相対距離情報が変化するように設定しておくことが好ましい。図１６に示すように、仮想カメラ１の位置を電車Ｖ１の位置とし、電車Ｖ１と信号Ｃ１の間の相対距離ｄ１が設定され、電車Ｖ１の移動に応じて相対距離ｄ１が変化する。相対距離ｄ１が遠距離ｄ２の範囲にある場合には、視認のタイミングが早すぎるため、信号確認が行われたと判定されない。相対距離ｄ１が近距離ｄ４の範囲にある場合には、視認のタイミングが遅すぎるため、信号確認が行われたと判定されない。相対距離ｄ１が適距離ｄ３の範囲にある場合には、適切なタイミングでの信号確認が行われたと判定される。
【００５８】
さらに、前述のように、信号確認操作に連続して外部コントローラ１４０のタッチパネルにタップ操作が入力されるまでの時間を計測し、所定の時間内に入力が確認されたと判定された場合には、指差確認が入力されたと判定することが好ましい。
【００５９】
このように、入力操作が所定の条件を満たすと判定された場合には、ゲームポイントが付与される（ステップＳ１２０−７）。ゲームポイントの大小によって運転士の運転レベルが判定されることにより、車窓の外の信号等に適切に視線を送ったか否かといった要素を乗り物の運転シミュレーションに新たに付加することができる。従って、高い臨場感を提供することができる。
【００６０】
続いて、オブジェクト操作実施部３４５で操作対象オブジェクトへの操作が実施され、操作結果を含む一連の結果画像が生成される（ステップＳ１２０−８）。また、仮想カメラ１の位置や方向が調整され、その結果が仮想カメラ情報格納部３２０から視界決定部２２０に送信される。視界画像生成部２３０は、調整された仮想カメラ情報に基づいて空間情報格納部２４０から更新された視界画像を取得する。そして、操作対象オブジェクトの操作結果を含む一連の結果画像を視界画像と合成することで操作結果画像を生成し、これをＨＭＤ１１０に出力する（ステップＳ１２０−９）。ＨＭＤ１１０は、ディスプレイ１１２に操作結果画像を表示する（ステップＳ１１０−４）。
【００６１】
以上、本発明の実施の形態について説明したが、本発明は上記実施形態に限定されるも
のではない。前述の請求項に記載されるこの発明の精神及び範囲から逸脱することなく、
様々な実施形態の変更がなされ得ることを当業者は理解するであろう。
【００６２】
例えば、図１７に示すように、ＨＭＤシステム１００は、第１ＨＭＤ１１０−１を装着した第１プレーヤＰ１と、第２ＨＭＤ１１０−２を装着した第２プレーヤＰ２を含み、２人のユーザが同時に１つの仮想空間２を体験可能にしても良い。即ち、第１ＨＭＤ１１０−１と、第２ＨＭＤ１１０−２には、同一の仮想空間２に対応する画像が表示される。そして、第１プレーヤＰ１には、上述したように運転士としての役割を付与する一方第２プレーヤＰ２２には第１ＨＭＤ１１０−１と異なる役割（例えば、車掌としての役割）を付与しても良い。この場合、乗り物オブジェクトＶ１または背景オブジェクトＢ１を制御するための所定の条件が、第１ＨＭＤ１１０−１と第２ＨＭＤ１１０−２とで異なることが好ましい。これにより、仮想空間内に第１ＨＭＤを装着した第１プレーヤＰ１と、当該第１プレーヤと役割の異なる第２ＨＭＤを装着した第２プレーヤＰ２を登場させることができる。従って、乗り物の運転をシミュレーションする際に、高い臨場感を提供することができる。このような処理は、制御回路部１２０が同一の視界画像を第１ＨＭＤ１１０−１と第２ＨＭＤ１１０−２に表示するように制御するとともに、第１ＨＭＤ１１０−１と第２ＨＭＤ１１０−２それぞれからの操作対象オブジェクトへの操作入力を受付、これらに基づいて操作結果画像を生成し、同一の視界画像としてを第１ＨＭＤ１１０−１と第２ＨＭＤ１１０−２に表示するように制御すれば良い。
【００６３】
このとき、第２ＨＭＤ１１０−２は、外部コントローラ１４０として、音声入力を受け付けるマイク１４２をさらに備えても良い。この場合、ステップＳ１２０−６において、乗り物オブジェクトＶ１または背景オブジェクトＢ１が所定の条件を満たす場合に音声入力が受け付けられたか否かを判定することが好ましい。例えば、第１ＨＭＤ１１０−１に乗り物オブジェクトＶ１の操縦部Ｍに減速操作が入力されてから所定時間内に次の駅名をアナウンスする音声入力をすることとすれば、第２プレーヤは適切なタイミングで電車の乗客に対してアナウンスするシミュレーションを行うことができる。また、背景オブジェクトＢ１が所定の条件を満たす場合（例えば、危険な踏切近くを通過する場合には、アナウンスを行わない。）にアナウンスする音声入力をすることとしても良い。これにより、音声入力に基づいて、乗り物の運転が適切に行われたか否かを判定できる。従って、乗り物の乗客に対して適切なタイミングでアナウンスを行うといった要素を乗り物の運転シミュレーションに新たに付加することができる。従って、高い臨場感を提供することができる。
【００６４】
また、車掌としての第２プレーヤＰ２は、他の背景オブジェクトとしての車内オブジェクトを視認可能としてもよい。この場合には、車掌は車内の乗客の様子にも気を配り、適切な指示を運転士である第１プレーヤＰ１に与えるといった役割も付与され、さらに臨場感が向上され得る。
【符号の説明】
【００６５】
１００…ヘッドマウントディスプレイ（ＨＭＤ）システム、１１０…ＨＭＤ、１１２…ディスプレイ、１１４…センサ部、１２０…制御回路部、１３０…センサ、１３２…検知部、１４０…外部コントローラ、２００…表示制御部、３００…オブジェクト制御部、４００…判定部、１…仮想カメラ、２…仮想空間、５…視界方向、６…視界領域、Ｇ１…視界画像、Ｖ１…乗り物オブジェクト、Ｂ１…背景オブジェクト、Ｃ１…信号（確認オブジェクト）、Ｍ…操縦部、Ｄ…表示部、Ｏ…マーク
【図１】
0006580373.tif 000002
【図２】
0006580373.tif 000003
【図３Ａ】
0006580373.tif 000004
【図３Ｂ】
0006580373.tif 000005
【図４】
0006580373.tif 000006
【図５Ａ】
0006580373.tif 000007
【図５Ｂ】
0006580373.tif 000008
【図５Ｃ】
0006580373.tif 000009
【図６】
0006580373.tif 000010
【図７】
0006580373.tif 000011
【図８】
0006580373.tif 000012
【図９】
0006580373.tif 000013
【図１０】
0006580373.tif 000014
【図１１】
0006580373.tif 000015
【図１２】
0006580373.tif 000016
【図１３】
0006580373.tif 000017
【図１４】
0006580373.tif 000018
【図１５】
0006580373.tif 000019
【図１６】
0006580373.tif 000020
【図１７】
0006580373.tif 000021