(57)【要約】【課題】仮想空間に対するユーザの没入感をさらに高める。【解決手段】情報処理方法は、仮想空間２００を規定する仮想空間データを生成するステップと、ＨＭＤの動きと、コントローラの動きとを検出するように構成された検出ユニットの検出結果を取得するステップと、ＨＭＤの動きに応じて、仮想カメラ３００の視野を更新するステップと、仮想カメラ３００の視野と仮想空間データに基づいて、視野画像データを生成するステップと、視野画像データに基づいて、表示部に視野画像を表示させるステップと、コントローラの動きに応じて、手オブジェクト４００を動作させるステップと、手オブジェクト４００によるタブレットオブジェクト５００に対する入力操作に応じて、モニターオブジェクト６００に表示されたメニューを操作するステップとを含む。【選択図】図９
2018041341.tif 000002
【特許請求の範囲】
【請求項１】
表示部を備えたヘッドマウントデバイスを制御するコンピュータのプロセッサによって実行される情報処理方法であって、
（ａ）仮想カメラと、仮想空間内に固定的に配置され、メニューを表示する第１オブジェクトと、前記第１オブジェクトに表示されたメニューを操作可能な第２オブジェクトと、操作オブジェクトとを含む前記仮想空間を規定する仮想空間データを生成するステップと、
（ｂ）前記ヘッドマウントデバイスの動きと、ユーザの頭部以外の身体の一部の動きとを検出するように構成された検出ユニットの検出結果を取得するステップと、
（ｃ）前記ヘッドマウントデバイスの動きに応じて、前記仮想カメラの視野を更新するステップと、
（ｄ）前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
（ｅ）前記視野画像データに基づいて、前記表示部に視野画像を表示させるステップと、
（ｆ）前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを動作させるステップと、
（ｇ）前記操作オブジェクトによる前記第２オブジェクトに対する入力操作に応じて、前記第１オブジェクトに表示されたメニューを操作するステップと、
を含む、情報処理方法。
【請求項２】
（ｈ）前記仮想カメラの位置に基づいて、前記第２オブジェクトの移動範囲を設定するステップと、
（ｉ）前記第２オブジェクトが前記移動範囲内に位置しているかどうかを判定するステップと、
（ｊ）前記第２オブジェクトが前記移動範囲内に位置していないと判定した場合に、前記第２オブジェクトを前記移動範囲内の所定の位置に移動させるステップと、
をさらに含む、請求項１に記載の情報処理方法。
【請求項３】
前記ステップ（ｊ）は、
前記仮想カメラの位置と前記第１オブジェクトの位置に基づいて、前記第２オブジェクトを前記移動範囲内の前記所定の位置に移動させるステップを含む、請求項２に記載の情報処理方法。
【請求項４】
前記ステップ（ｈ）は、
前記ユーザの頭部と前記ユーザの身体の一部との間の距離を測定するステップと、
前記測定された距離と、前記仮想カメラの位置に基づいて、前記移動範囲を設定するステップと、
を含む、請求項２又は３に記載の情報処理方法。
【請求項５】
前記ステップ（ｈ）は、
前記ユーザの頭部の位置と前記ユーザの身体の一部の位置に基づいて、前記ユーザの頭部と前記ユーザの身体の一部との間の距離の最大値を特定するステップと、
前記特定された距離の最大値と、前記仮想カメラの位置に基づいて、前記移動範囲を設定するステップと、
を含む、請求項２又は３に記載の情報処理方法。
【請求項６】
前記ステップ（ｈ）は、
前記仮想カメラの位置と前記操作オブジェクトの位置に基づいて、前記仮想カメラと前記操作オブジェクトとの間の距離の最大値を特定するステップと、
前記特定された距離の最大値と、前記仮想カメラの位置に基づいて、前記移動範囲を設定するステップと、
を含む、請求項２又は３に記載の情報処理方法。
【請求項７】
請求項１から６のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理方法および当該情報処理方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
仮想空間内にユーザインターフェース（ＵＩ）オブジェクトを配置する技術が知られている。例えば、特許文献１の開示では、仮想空間内にウィジェット（ＵＩオブジェクトの一例）が配置されており、仮想カメラの視野内に当該ウィジェットが表示されている。ヘッドマウントデバイス（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｅｖｉｃｅ：ＨＭＤ）の移動に伴い、ウィジェットが仮想カメラの視野外に位置した場合、当該ウィジェットは仮想カメラの視野内に位置するように移動される。このように、ウィジェットが仮想空間内に配置されている間は、ウィジェットは常にＨＭＤに表示される視野画像内に表示される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５８７６６０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１に開示されているように、視野画像内にウィジェットが常に表示されている場合、ユーザは当該ウィジェットに対して煩わしさを感じる場合がある。特に、ウィジェットが視野画像に表示されている間は、ユーザは仮想空間に対する没入感を十分に得ることができない。
【０００５】
本発明は、仮想空間に対するユーザの没入感をさらに高めることが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本開示が示す一態様によれば、表示部を備えたヘッドマウントデバイスを制御するコンピュータのプロセッサによって実行される情報処理方法が提供される。
前記情報処理方法は、
（ａ）仮想カメラと、仮想空間内に固定的に配置され、メニューを表示する第１オブジェクトと、前記第１オブジェクトに表示されたメニューを操作可能な第２オブジェクトと、操作オブジェクトとを含む前記仮想空間を規定する仮想空間データを生成するステップと、
（ｂ）前記ヘッドマウントデバイスの動きと、ユーザの頭部以外の身体の一部の動きとを検出するように構成された検出ユニットの検出結果を取得するステップと、
（ｃ）前記ヘッドマウントデバイスの動きに応じて、前記仮想カメラの視野を更新するステップと、
（ｄ）前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
（ｅ）前記視野画像データに基づいて、前記表示部に視野画像を表示させるステップと、
（ｆ）前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを動作させるステップと、
（ｇ）前記操作オブジェクトによる前記第２オブジェクトに対する入力操作に応じて、前記第１オブジェクトに表示されたメニューを操作するステップと、
を含む。
【発明の効果】
【０００７】
本開示によれば、仮想空間に対するユーザの没入感をさらに高めることが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】ヘッドマウントデバイス（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｅｖｉｃｅ：ＨＭＤ）システムを示す概略図である。
【図２】ＨＭＤを装着したユーザの頭部を示す図である。
【図３】制御装置のハードウェア構成を示す図である。
【図４】外部コントローラの具体的な構成の一例を示す図である。
【図５】視野画像をＨＭＤに表示する処理を示すフローチャートである。
【図６】仮想空間の一例を示すｘｙｚ空間図である。
【図７】（ａ）は、図６に示す仮想空間のｙｘ平面図である。（ｂ）は、図６に示す仮想空間のｚｘ平面図である。
【図８】ＨＭＤに表示された視野画像の一例を示す図である。
【図９】仮想カメラと、手オブジェクトと、タブレットオブジェクトと、モニターオブジェクトとを含む仮想空間を示す図である。
【図１０】タブレットオブジェクトの表示画面の一例を示す図である。
【図１１】本実施形態に係る情報処理方法を説明するためのフローチャートである。
【図１２】タブレットオブジェクトの移動範囲を設定するための方法の一例を示すフローチャートである。
【図１３】（ａ）は、仮想空間に没入しているユーザの様子を示す図である。（ｂ）は、仮想カメラの周辺に設定されたタブレットオブジェクトの移動範囲の一例を示す図である。（ｃ）は、仮想カメラの周辺に設定されたタブレットオブジェクトの移動範囲の他の一例を示す図である。
【図１４】（ａ）は、タブレットオブジェクトが移動範囲外に位置している様子を示す図である。（ｂ）は、タブレットオブジェクトが移動範囲外から移動範囲内の所定の位置に移動する様子を示す図である。
【発明を実施するための形態】
【０００９】
［本開示が示す実施形態の説明］
本開示が示す実施形態の概要を説明する。
（１）表示部を備えたヘッドマウントデバイスを制御するコンピュータのプロセッサによって実行される情報処理方法であって、
（ａ）仮想カメラと、仮想空間内に固定的に配置され、メニューを表示する第１オブジェクトと、前記第１オブジェクトに表示されたメニューを操作可能な第２オブジェクトと、操作オブジェクトとを含む前記仮想空間を規定する仮想空間データを生成するステップと、
（ｂ）前記ヘッドマウントデバイスの動きと、ユーザの頭部以外の身体の一部の動きとを検出するように構成された検出ユニットの検出結果を取得するステップと、
（ｃ）前記ヘッドマウントデバイスの動きに応じて、前記仮想カメラの視野を更新するステップと、
（ｄ）前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
（ｅ）前記視野画像データに基づいて、前記表示部に視野画像を表示させるステップと、
（ｆ）前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを動作させるステップと、
（ｇ）前記操作オブジェクトによる前記第２オブジェクトに対する入力操作に応じて、前記第１オブジェクトに表示されたメニューを操作するステップと、
を含む。
【００１０】
上記方法によれば、操作オブジェクトによる第２オブジェクトに対する入力操作に応じて、第１オブジェクトに表示されたメニューが操作される。つまり、ユーザは、ユーザの身体の一部（例えば、手）の動きに連動する仮想空間内の操作オブジェクトを用いて、仮想空間内の第２オブジェクトに対して所定の操作を行うことができる。当該所定の操作の結果、第１オブジェクトに表示されるメニューが操作される。このように、メニュー操作を仮想空間内のオブジェクト同士の相互作用により実行することが可能となる。さらに、第１オブジェクト及び第２オブジェクトは視野画像内に常に表示されるわけではないので、視野画像内にウィジェット等のＵＩオブジェクトが常に表示されてしまうといった状況を回避することが可能となる。従って、仮想空間に対するユーザの没入感をさらに高めることが可能な情報処理方法を提供することができる。
【００１１】
（２）（ｈ）前記仮想カメラの位置に基づいて、前記第２オブジェクトの移動範囲を設定するステップと、
（ｉ）前記第２オブジェクトが前記移動範囲内に位置しているかどうかを判定するステップと、
（ｊ）前記第２オブジェクトが前記移動範囲内に位置していないと判定した場合に、前記第２オブジェクトを前記移動範囲内の所定の位置に移動させるステップと、
をさらに含む、項目（１）に記載の情報処理方法。
【００１２】
上記方法によれば、第２オブジェクトが第２オブジェクトの移動範囲に位置していないと判定された場合に、第２オブジェクトが当該移動範囲内の所定の位置に移動する。例えば、ユーザが第２オブジェクトを持たないまま移動し、又はユーザが第２オブジェクトを投げ飛ばすことで、第２オブジェクトが移動範囲外に配置される。かかる状況によって第２オブジェクトが移動範囲外に位置した場合でも、第２オブジェクトが移動範囲内の所定の位置に移動する。このように、ユーザは、第２オブジェクトを容易に見つけ出すことができると共に、第２オブジェクトを手に取るための手間を大幅に軽減することができる。
【００１３】
（３）前記ステップ（ｊ）は、
前記仮想カメラの位置と前記第１オブジェクトの位置に基づいて、前記第２オブジェクトを前記移動範囲内の前記所定の位置に移動させるステップを含む、項目（２）に記載の情報処理方法。
【００１４】
上記方法によれば、仮想カメラの位置と第１オブジェクトの位置に基づいて第２オブジェクトが移動範囲内の所定位置に移動される。このように、第１オブジェクトと仮想カメラとの間の位置関係に基づいて第２オブジェクトの位置が決定されるため、ユーザは第２オブジェクトを容易に見つけ出すことができる。
【００１５】
（４）前記ステップ（ｈ）は、
前記ユーザの頭部と前記ユーザの身体の一部との間の距離を測定するステップと、
前記測定された距離と、前記仮想カメラの位置に基づいて、前記移動範囲を設定するステップと、
を含む、項目（２）又は（３）に記載の情報処理方法。
【００１６】
上記方法によれば、ユーザの頭部とユーザの身体の一部（例えば、手）との間の距離と、仮想カメラの位置に基づいて第２オブジェクトの移動範囲が設定される。このように、第２オブジェクトは、ユーザが静止した状態でユーザが手に取ることができる範囲に配置されるため、ユーザが第２オブジェクトを手に取るための手間を大幅に軽減することができる。
【００１７】
（５）前記ステップ（ｈ）は、
前記ユーザの頭部の位置と前記ユーザの身体の一部の位置に基づいて、前記ユーザの頭部と前記ユーザの身体の一部との間の距離の最大値を特定するステップと、
前記特定された距離の最大値と、前記仮想カメラの位置に基づいて、前記移動範囲を設定するステップと、
を含む、項目（２）又は（３）に記載の情報処理方法。
【００１８】
上記方法によれば、ユーザの頭部とユーザの身体の一部との間の距離の最大値と、仮想カメラの位置に基づいて、操作オブジェクトの移動範囲が設定される。このように、第２オブジェクトは、ユーザが静止した状態でユーザが手に取ることができる範囲に配置されるため、ユーザが第２オブジェクトを手に取るための手間を大幅に軽減することができる。
【００１９】
（６）前記ステップ（ｈ）は、
前記仮想カメラの位置と前記操作オブジェクトの位置に基づいて、前記仮想カメラと前記操作オブジェクトとの間の距離の最大値を特定するステップと、
前記特定された距離の最大値と、前記仮想カメラの位置に基づいて、前記移動範囲を設定するステップと、
を含む、項目（２）又は（３）に記載の情報処理方法。
【００２０】
上記方法によれば、仮想カメラと操作オブジェクトとの間の距離の最大値と、仮想カメラの位置に基づいて、操作オブジェクトの移動範囲が設定される。このように、第２オブジェクトは、ユーザが静止した状態でユーザが手に取ることができる範囲に配置されるため、ユーザが第２オブジェクトを手に取るための手間を大幅に軽減することができる。
【００２１】
（７）項目（１）から（５）のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【００２２】
上記方法によれば、仮想空間に対するユーザの没入感をさらに高めることが可能なプログラムを提供することができる。
【００２３】
［本開示が示す実施形態の詳細］
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
【００２４】
最初に、図１を参照してヘッドマウントデバイス（ＨＭＤ）システム１の構成について説明する。図１は、ＨＭＤシステム１を示す概略図である。図１に示すように、ＨＭＤシステム１は、ユーザＵの頭部に装着されたＨＭＤ１１０と、位置センサ１３０と、制御装置１２０と、外部コントローラ３２０と、ヘッドフォン１１６とを備える。
【００２５】
ＨＭＤ１１０は、表示部１１２と、ＨＭＤセンサ１１４と、注視センサ１４０とを備える。表示部１１２は、ＨＭＤ１１０を装着したユーザＵの視界（視野）を覆うように構成された非透過型の表示装置を備えている。これにより、ユーザＵは、表示部１１２に表示された視野画像のみを見ることで仮想空間に没入することができる。尚、表示部１１２は、ユーザＵの左目に画像を提供するように構成された左目用の表示部とユーザＵの右目に画像を提供するように構成された右目用の表示部から構成されてもよい。また、ＨＭＤ１１０は、透過型表示装置を備えてもよい。この場合、当該透過型表示装置は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。
【００２６】
ＨＭＤセンサ１１４は、ＨＭＤ１１０の表示部１１２の近傍に搭載される。ＨＭＤセンサ１１４は、地磁気センサ、加速度センサ、傾きセンサ（角速度センサやジャイロセンサ等）のうちの少なくとも１つを含み、ユーザＵの頭部に装着されたＨＭＤ１１０の各種動きを検出することができる。
【００２７】
注視センサ１４０は、ユーザＵの視線方向を検出するアイトラッキング機能を有する。注視センサ１４０は、例えば、右目用注視センサと、左目用注視センサを備えてもよい。右目用注視センサは、ユーザＵの右目に例えば赤外光を照射して、右目（特に、角膜や虹彩）から反射された反射光を検出することで、右目の眼球の回転角に関する情報を取得してもよい。一方、左目用注視センサは、ユーザＵの左目に例えば赤外光を照射して、左目（特に、角膜や虹彩）から反射された反射光を検出することで、左目の眼球の回転角に関する情報を取得してもよい。
【００２８】
位置センサ１３０は、例えば、ポジション・トラッキング・カメラにより構成され、ＨＭＤ１１０と外部コントローラ３２０の位置を検出するように構成されている。位置センサ１３０は、制御装置１２０に無線又は有線により通信可能に接続されており、ＨＭＤ１１０に設けられた図示しない複数の検知点の位置、傾き又は発光強度に関する情報を検出するように構成されている。さらに、位置センサ１３０は、外部コントローラ３２０に設けられた複数の検知点３０４（図４参照）の位置、傾き及び／又は発光強度に関する情報を検出するように構成されている。検知点は、例えば、赤外線や可視光を放射する発光部である。また、位置センサ１３０は、赤外線センサや複数の光学カメラを含んでもよい。
【００２９】
尚、本実施形態の説明では、ＨＭＤセンサ１１４と、注視センサ１４０と、位置センサ１３０等のセンサを検出ユニットと総称する場合がある。検出ユニットは、ユーザＵの身体の一部（例えば、ユーザＵの手）の動きを検出した上で、当該検出結果を示す信号を制御装置１２０に送信する。また、検出ユニットは、ユーザＵの頭部の動きを検出する機能（ＨＭＤセンサ１１４によって実現される機能）と、ユーザＵの頭部以外の身体の一部の動きを検出する機能（位置センサ１３０によって実現される機能）とを有する。また、検出ユニットは、ユーザＵの視線の動きを検出する機能（注視センサ１４０によって実現される機能）を有してもよい。
【００３０】
制御装置１２０は、ＨＭＤ１１０を制御するように構成されたコンピュータである。制御装置１２０は、位置センサ１３０から取得された情報に基づいて、ＨＭＤ１１０の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間における仮想カメラの位置と、現実空間におけるＨＭＤ１１０を装着したユーザＵの位置を正確に対応付けることができる。さらに、制御装置１２０は、位置センサ１３０から取得された情報に基づいて、外部コントローラ３２０の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間内に表示される手オブジェクト４００（後述する）の位置と現実空間における外部コントローラ３２０の位置を正確に対応付けることができる。
【００３１】
また、制御装置１２０は、注視センサ１４０から送信された情報に基づいて、ユーザＵの右目の視線と左目の視線をそれぞれ特定し、当該右目の視線と当該左目の視線の交点である注視点を特定することができる。さらに、制御装置１２０は、特定された注視点に基づいて、ユーザＵの視線方向を特定することができる。ここで、ユーザＵの視線方向は、ユーザＵの両目の視線方向であって、ユーザＵの右目と左目を結ぶ線分の中点と注視点を通る直線の方向に一致する。
【００３２】
次に、図２を参照して、ＨＭＤ１１０の位置や傾きに関する情報を取得する方法について説明する。図２は、ＨＭＤ１１０を装着したユーザＵの頭部を示す図である。ＨＭＤ１１０を装着したユーザＵの頭部の動きに連動したＨＭＤ１１０の位置や傾きに関する情報は、位置センサ１３０及び／又はＨＭＤ１１０に搭載されたＨＭＤセンサ１１４により検出可能である。図２に示すように、ＨＭＤ１１０を装着したユーザＵの頭部を中心として、３次元座標（ｕｖｗ座標）が規定される。ユーザＵが直立する垂直方向をｖ軸として規定し、ｖ軸と直交しＨＭＤ１１０の中心を通る方向をｗ軸として規定し、ｖ軸およびｗ軸と直交する方向をｕ軸として規定する。位置センサ１３０及び／又はＨＭＤセンサ１１４は、各ｕｖｗ軸回りの角度（すなわち、ｖ軸を中心とする回転を示すヨー角、ｕ軸を中心とした回転を示すピッチ角、ｗ軸を中心とした回転を示すロール角で決定される傾き）を検出する。制御装置１２０は、検出された各ｕｖｗ軸回りの角度変化に基づいて、仮想カメラの視軸を制御するための角度情報を決定する。
【００３３】
次に、図３を参照することで、制御装置１２０のハードウェア構成について説明する。図３は、制御装置１２０のハードウェア構成を示す図である。図３に示すように、制御装置１２０は、制御部１２１と、記憶部１２３と、Ｉ／Ｏ（入出力）インターフェース１２４と、通信インターフェース１２５と、バス１２６とを備える。制御部１２１と、記憶部１２３と、Ｉ／Ｏインターフェース１２４と、通信インターフェース１２５は、バス１２６を介して互いに通信可能に接続されている。
【００３４】
制御装置１２０は、ＨＭＤ１１０とは別体に、パーソナルコンピュータ、タブレット又はウェアラブルデバイスとして構成されてもよいし、ＨＭＤ１１０に内蔵されていてもよい。また、制御装置１２０の一部の機能がＨＭＤ１１０に搭載されると共に、制御装置１２０の残りの機能がＨＭＤ１１０とは別体の他の装置に搭載されてもよい。
【００３５】
制御部１２１は、メモリとプロセッサを備えている。メモリは、例えば、各種プログラム等が格納されたＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やプロセッサにより実行される各種プログラム等が格納される複数ワークエリアを有するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等から構成される。プロセッサは、例えばＣＰＵ(Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ)、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）及び／又はＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であって、ＲＯＭに組み込まれた各種プログラムから指定されたプログラムをＲＡＭ上に展開し、ＲＡＭとの協働で各種処理を実行するように構成されている。
【００３６】
特に、プロセッサが本実施形態に係る情報処理方法をコンピュータに実行させるためのプログラム（後述する）をＲＡＭ上に展開し、ＲＡＭとの協働で当該プログラムを実行することで、制御部１２１は、制御装置１２０の各種動作を制御してもよい。制御部１２１は、メモリや記憶部１２３に格納された所定のアプリケーションプログラム（ゲームプログラム）を実行することで、ＨＭＤ１１０の表示部１１２に仮想空間（視野画像）を表示する。これにより、ユーザＵは、表示部１１２に表示された仮想空間に没入することができる。
【００３７】
記憶部（ストレージ）１２３は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢフラッシュメモリ等の記憶装置であって、プログラムや各種データを格納するように構成されている。記憶部１２３は、本実施形態に係る情報処理方法をコンピュータに実行させるプログラムを格納してもよい。また、ユーザＵの認証プログラムや各種画像やオブジェクトに関するデータを含むゲームプログラム等が格納されてもよい。さらに、記憶部１２３には、各種データを管理するためのテーブルを含むデータベースが構築されてもよい。
【００３８】
Ｉ／Ｏインターフェース１２４は、位置センサ１３０と、ＨＭＤ１１０と、外部コントローラ３２０とをそれぞれ制御装置１２０に通信可能に接続するように構成されており、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子、ＤＶＩ（Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）端子、ＨＤＭＩ（登録商標）（Ｈｉｇｈ―Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子等により構成されている。尚、制御装置１２０は、位置センサ１３０と、ＨＭＤ１１０と、外部コントローラ３２０とのそれぞれと無線接続されていてもよい。
【００３９】
通信インターフェース１２５は、制御装置１２０をＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）又はインターネット等の通信ネットワーク３に接続させるように構成されている。通信インターフェース１２５は、通信ネットワーク３を介してネットワーク上の外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んでおり、通信ネットワーク３を介して通信するための通信規格に適合するように構成されている。
【００４０】
次に、図４を参照して外部コントローラ３２０の具体的構成の一例について説明する。
外部コントローラ３２０は、ユーザＵの身体の一部（頭部以外の部位であり、本実施形態においてはユーザＵの手）の動きを検知することにより、仮想空間内に表示される手オブジェクトの動作を制御するために使用される。外部コントローラ３２０は、ユーザＵの右手によって操作される右手用外部コントローラ３２０Ｒ（以下、単にコントローラ３２０Ｒという。）と、ユーザＵの左手によって操作される左手用外部コントローラ３２０Ｌ（以下、単にコントローラ３２０Ｌという。）と、を有する（図１３（ａ）参照）。コントローラ３２０Ｒは、ユーザＵの右手の位置や右手の手指の動きを示す装置である。また、コントローラ３２０Ｒの動きに応じて仮想空間内に存在する右手オブジェクトが移動する。コントローラ３２０Ｌは、ユーザＵの左手の位置や左手の手指の動きを示す装置である。また、コントローラ３２０Ｌの動きに応じて仮想空間内に存在する左手オブジェクトが移動する。コントローラ３２０Ｒとコントローラ３２０Ｌは略同一の構成を有するので、以下では、図４を参照してコントローラ３２０Ｒの具体的構成についてのみ説明する。尚、以降の説明では、便宜上、コントローラ３２０Ｌ，３２０Ｒを単にコントローラ３２０と総称する場合がある。さらに、コントローラ３２０Ｒの動きに連動する右手オブジェクトとコントローラ３２０Ｌの動きに連動する左手オブジェクトを単に手オブジェクト４００と総称する場合がある。
【００４１】
図４に示すように、コントローラ３２０Ｒは、操作ボタン３０２と、複数の検知点３０４と、図示しないセンサと、図示しないトランシーバとを備える。検知点３０４とセンサは、どちらか一方のみが設けられていてもよい。操作ボタン３０２は、ユーザＵからの操作入力を受付けるように構成された複数のボタン群により構成されている。操作ボタン３０２は、プッシュ式ボタン、トリガー式ボタン及びアナログスティックを含む。プッシュ式ボタンは、親指による押下する動作によって操作されるボタンである。例えば、天面３２２上に２つのプッシュ式ボタン３０２ａ，３０２ｂが設けられている。トリガー式ボタンは、人差し指や中指で引き金を引くような動作によって操作されるボタンである。例えば、グリップ３２４の前面部分にトリガー式ボタン３０２ｅが設けられると共に、グリップ３２４の側面部分にトリガー式ボタン３０２ｆが設けられる。トリガー式ボタン３０２ｅ，３０２ｆは、人差し指と中指によってそれぞれ操作される。アナログスティックは、所定のニュートラル位置から３６０度任意の方向へ傾けて操作されうるスティック型のボタンである。例えば、天面３２２上にアナログスティック３２０ｉが設けられており、親指を用いて操作される。
【００４２】
コントローラ３２０Ｒは、グリップ３２４の両側面から天面３２２とは反対側の方向へ延びて半円状のリングを形成するフレーム３２６を備える。フレーム３２６の外側面には、複数の検知点３０４が埋め込まれている。複数の検知点３０４は、例えば、フレーム３２６の円周方向に沿って一列に並んだ複数の赤外線ＬＥＤである。位置センサ１３０が、複数の検知点３０４の位置、傾き又は発光強度に関する情報を検出した後に、制御装置１２０は、位置センサ１３０によって検出された情報に基づいて、コントローラ３２０Ｒの位置や姿勢（傾き・向き）に関する情報を取得する。
【００４３】
コントローラ３２０Ｒのセンサは、例えば、磁気センサ、角速度センサ、若しくは加速度センサのいずれか、又はこれらの組み合わせであってもよい。センサは、ユーザＵがコントローラ３２０Ｒを動かしたときに、コントローラ３２０Ｒの向きや位置に応じた信号（例えば、磁気、角速度、又は加速度に関する情報を示す信号）を出力する。制御装置１２０は、センサから出力された信号に基づいて、コントローラ３２０Ｒの位置や姿勢に関する情報を取得する。
【００４４】
コントローラ３２０Ｒのトランシーバは、コントローラ３２０Ｒと制御装置１２０との間でデータを送受信するように構成されている。例えば、トランシーバは、ユーザＵの操作入力に対応する操作信号を制御装置１２０に送信してもよい。また、トランシーバは、検知点３０４の発光をコントローラ３２０Ｒに指示する指示信号を制御装置１２０から受信してもよい。さらに、トランシーバは、センサによって検出された値を示す信号を制御装置１２０に送信してもよい。
【００４５】
次に、図５から図８を参照することで視野画像をＨＭＤ１１０に表示するための処理について説明する。図５は、視野画像をＨＭＤ１１０に表示する処理を示すフローチャートである。図６は、仮想空間２００の一例を示すｘｙｚ空間図である。図７（ａ）は、図６に示す仮想空間２００のｙｘ平面図である。図７（ｂ）は、図６に示す仮想空間２００のｚｘ平面図である。図８は、ＨＭＤ１１０に表示された視野画像Ｖの一例を示す図である。
【００４６】
図５に示すように、ステップＳ１において、制御部１２１（図３参照）は、仮想カメラ３００と、各種オブジェクトとを含む仮想空間２００を示す仮想空間データを生成する。図６に示すように、仮想空間２００は、中心位置２１を中心とした全天球として規定される（図６では、上半分の天球のみが図示されている）。また、仮想空間２００では、中心位置２１を原点とするｘｙｚ座標系が設定されている。仮想カメラ３００は、ＨＭＤ１１０に表示される視野画像Ｖ（図８参照）を特定するための視軸Ｌを規定している。仮想カメラ３００の視野を定義するｕｖｗ座標系は、現実空間におけるユーザＵの頭部を中心として規定されたｕｖｗ座標系に連動するように決定される。また、制御部１２１は、ＨＭＤ１１０を装着したユーザＵの現実空間における移動に応じて、仮想カメラ３００を仮想空間２００内で移動させてもよい。また、仮想空間２００内における各種オブジェクトは、例えば、タブレットオブジェクト５００と、モニターオブジェクト６００と、手オブジェクト４００である（図９参照）。
【００４７】
次に、ステップＳ２において、制御部１２１は、仮想カメラ３００の視野ＣＶ（図７参照）を特定する。具体的には、制御部１２１は、位置センサ１３０及び／又はＨＭＤセンサ１１４から送信されたＨＭＤ１１０の状態を示すデータを取得した上で、当該取得されたデータに基づいて、ＨＭＤ１１０の位置や傾きに関する情報を取得する。次に、制御部１２１は、ＨＭＤ１１０の位置や傾きに関する情報に基づいて、仮想空間２００内における仮想カメラ３００の位置や向きを特定する。次に、制御部１２１は、仮想カメラ３００の位置や向きから仮想カメラ３００の視軸Ｌを決定し、決定された視軸Ｌから仮想カメラ３００の視野ＣＶを特定する。ここで、仮想カメラ３００の視野ＣＶは、ＨＭＤ１１０を装着したユーザＵが視認可能な仮想空間２００の一部の領域に相当する。換言すれば、視野ＣＶは、ＨＭＤ１１０に表示される仮想空間２００の一部の領域に相当する。また、視野ＣＶは、図７（ａ）に示すｘｙ平面において、視軸Ｌを中心とした極角αの角度範囲として設定される第１領域ＣＶａと、図７（ｂ）に示すｘｚ平面において、視軸Ｌを中心とした方位角βの角度範囲として設定される第２領域ＣＶｂとを有する。尚、制御部１２１は、注視センサ１４０から送信されたユーザＵの視線方向を示すデータに基づいて、ユーザＵの視線方向を特定し、ユーザＵの視線方向に基づいて仮想カメラ３００の向きを決定してもよい。
【００４８】
このように、制御部１２１は、位置センサ１３０及び／又はＨＭＤセンサ１１４からのデータに基づいて、仮想カメラ３００の視野ＣＶを特定することができる。ここで、ＨＭＤ１１０を装着したユーザＵが動くと、制御部１２１は、位置センサ１３０及び／又はＨＭＤセンサ１１４から送信されたＨＭＤ１１０の動きを示すデータに基づいて、仮想カメラ３００の視野ＣＶを変化させることができる。つまり、制御部１２１は、ＨＭＤ１１０の動きに応じて、視野ＣＶを変化させることができる。同様に、ユーザＵの視線方向が変化すると、制御部１２１は、注視センサ１４０から送信されたユーザＵの視線方向を示すデータに基づいて、仮想カメラ３００の視野ＣＶを移動させることができる。つまり、制御部１２１は、ユーザＵの視線方向の変化に応じて、視野ＣＶを変化させることができる。
【００４９】
次に、ステップＳ３において、制御部１２１は、ＨＭＤ１１０の表示部１１２に表示される視野画像Ｖを示す視野画像データを生成する。具体的には、制御部１２１は、仮想空間２００を規定する仮想空間データと、仮想カメラ３００の視野ＣＶとに基づいて、視野画像データを生成する。
【００５０】
次に、ステップＳ４において、制御部１２１は、視野画像データに基づいて、ＨＭＤ１１０の表示部１１２に視野画像Ｖを表示する（図７参照）。このように、ＨＭＤ１１０を装着しているユーザＵの動きに応じて、仮想カメラ３００の視野ＣＶが更新され、ＨＭＤ１１０の表示部１１２に表示される視野画像Ｖが更新されるので、ユーザＵは仮想空間２００に没入することができる。
【００５１】
尚、仮想カメラ３００は、左目用仮想カメラと右目用仮想カメラを含んでもよい。この場合、制御部１２１は、仮想空間データと左目用仮想カメラの視野に基づいて、左目用の視野画像を示す左目用視野画像データを生成する。さらに、制御部１２１は、仮想空間データと、右目用仮想カメラの視野に基づいて、右目用の視野画像を示す右目用視野画像データを生成する。その後、制御部１２１は、左目用視野画像データと右目用視野画像データに基づいて、ＨＭＤ１１０の表示部１１２に左目用視野画像と右目用視野画像を表示する。このようにして、ユーザＵは、左目用視野画像と右目用視野画像から、視野画像を３次元画像として立体的に視認することができる。尚、本明細書では、説明の便宜上、仮想カメラ３００の数は一つとする。勿論、本開示の実施形態は、仮想カメラの数が２つの場合でも適用可能である。
【００５２】
次に、仮想空間２００に含まれる仮想カメラ３００と、手オブジェクト４００（操作オブジェクトの一例）と、タブレットオブジェクト５００（第２オブジェクトの一例）と、モニターオブジェクト６００（第１オブジェクトの一例）について図９を参照して説明する。図９に示すように、仮想空間２００は、仮想カメラ３００と、手オブジェクト４００と、モニターオブジェクト６００と、タブレットオブジェクト５００とを含む。制御部１２１は、これらのオブジェクトを含む仮想空間２００を規定する仮想空間データを生成している。上述したように、仮想カメラ３００は、ユーザＵが装着しているＨＭＤ１１０の動きに連動する。つまり、仮想カメラ３００の視野は、ＨＭＤ１１０の動きに応じて更新される。
【００５３】
手オブジェクト４００は、左手オブジェクトと右手オブジェクトの総称である。上記したように、左手オブジェクトは、ユーザＵの左手に装着されるコントローラ３２０Ｌ（図１３（ａ）参照）の動きに応じて移動する。同様に、右手オブジェクトは、ユーザＵの右手に装着されるコントローラ３２０Ｒの動きに応じて移動する。尚、本実施形態では、説明の便宜上、１つの手オブジェクト４００のみが仮想空間２００内に配置されているが、２つの手オブジェクト４００が仮想空間２００内に配置されていてもよい。
【００５４】
制御部１２１は、位置センサ１３０からコントローラ３２０の位置情報を取得した上で、当該取得された位置情報に基づいて、仮想空間２００内の手オブジェクト４００の位置と現実空間におけるコントローラ３２０の位置とを対応付ける。このように、制御部１２１は、ユーザＵの手の位置（コントローラ３２０の位置）に応じて、手オブジェクト４００の位置を制御する。
【００５５】
また、ユーザＵが操作ボタン３０２を操作することで、仮想空間２００内に配置された手オブジェクト４００の各指を操作することが可能となる。つまり、制御部１２１は、操作ボタン３０２に対する入力操作に対応する操作信号をコントローラ３２０から取得した上で、当該操作信号に基づいて、手オブジェクト４００の手指の動作を制御する。例えば、ユーザＵが操作ボタン３０２を操作することで手オブジェクト４００はタブレットオブジェクト５００を掴むことができる（図９参照）。さらに、手オブジェクト４００がタブレットオブジェクト５００を掴んだ状態で、コントローラ３２０の移動に応じて、手オブジェクト４００とタブレットオブジェクト５００を移動させることが可能となる。このように、制御部１２１は、ユーザＵの手指の動きに応じて、手オブジェクト４００を動作を制御するように構成されている。
【００５６】
モニターオブジェクト６００は、仮想空間２００内の所定の位置に固定的に配置されている。モニターオブジェクト６００は、メニュー（特に、メニュー画面６１０）を表示するように構成されている。メニュー画面６１０には、ユーザＵによって選択されるべき複数の選択項目が表示されてもよい。図９では、選択項目として「洋食」、「和食」及び「中華」がメニュー画面６１０に表示される。また、メニュー画面６１０には、ステージ情報や、獲得アイテム情報、リタイアボタン及び/又はゲーム再開ボタンが表示されてもよい。
【００５７】
タブレットオブジェクト５００は、モニターオブジェクト６００に表示されたメニューを操作することができる。制御部１２１は、手オブジェクト４００によるタブレットオブジェクト５００に対する入力操作に応じて、モニターオブジェクト６００に表示されたメニューを操作する。具体的には、制御部１２１は、コントローラ３２０から送信された操作信号及び／又は位置センサ１３０から送信されたコントローラ３２０の位置情報に基づいて、手オブジェクト４００の動作を制御する。その後、制御部１２１は、手オブジェクト４００とタブレットオブジェクト５００との間の相互作用を特定した上で、当該相互作用に基づいて、手オブジェクト４００によるタブレットオブジェクト５００に対する入力操作を特定する。制御部１２１は、当該特定された入力操作に基づいて、モニターオブジェクト６００のメニュー画面６１０に表示された複数の選択項目（「洋食」、「和食」及び「中華」）のうちの一つを選択する。制御部１２１は、当該選択結果に応じた所定の処理を実行する。
【００５８】
次に、図１０を参照してタブレットオブジェクト５００の表示画面５１０の一例について説明する。表示画面５１０には、方向キー５２０と、ＢＡＣＫボタン５３０と、ＯＫボタン５４０と、Ｌボタン５５０Ｌと、Ｒボタン５５０Ｒが表示されている。ここで、方向キー５２０は、モニターオブジェクト６００のメニュー画面６１０に表示されたカーソルの移動を制御するためのボタンである。
【００５９】
次に、図１１から図１４を参照して本実施形態に係る情報処理方法について以下に説明する。図１１は、本実施形態に係る情報処理方法を説明するためのフローチャートである。図１２は、タブレットオブジェクト５００の移動範囲を設定するための方法の一例を示すフローチャートである。図１３（ａ）は、仮想空間２００に没入しているユーザＵの様子を示す図である。図１３（ｂ）は、仮想カメラ３００の周辺に設定されたタブレットオブジェクト５００の移動範囲の一例（移動範囲Ｒａ）を示す図である。図１３（ｃ）は、仮想カメラ３００の周辺に設定されたタブレットオブジェクト５００の移動範囲の他の一例（移動範囲Ｒｂ）を示す図である。図１４（ａ）は、タブレットオブジェクト５００が移動範囲Ｒａ外に位置している様子を示す図である。図１４（ｂ）は、タブレットオブジェクト５００が移動範囲Ｒａ外から移動範囲Ｒａ内の所定の位置に移動する様子を示す図である。
【００６０】
図１１に示すように、ステップＳ１１において、制御部１２１は、タブレットオブジェクト５００の移動範囲を設定する。ここで、タブレットオブジェクト５００の移動範囲とは、ユーザＵが移動しない状態（換言すれば、現実空間でのユーザＵの位置座標が変化しない状態）で、ユーザＵが手オブジェクト４００を用いてタブレットオブジェクト５００を掴めることができる範囲として規定されてもよい。タブレットオブジェクト５００が移動範囲外に位置する場合には、制御部１２１は、タブレットオブジェクト５００を移動範囲内の所定の位置に移動させる。
【００６１】
図１３（ｂ）に示すように、タブレットオブジェクト５００の移動範囲は、仮想カメラ３００の中心位置を中心とした所定の半径Ｒを有する球として規定された移動範囲Ｒａでもよい。ここで、タブレットオブジェクト５００と仮想カメラ３００との間の距離が半径Ｒ以下である場合、タブレットオブジェクト５００は、移動範囲Ｒａ内に存在すると判定される。これとは反対に、タブレットオブジェクト５００と仮想カメラ３００との間の距離が半径Ｒよりも大きい場合、タブレットオブジェクト５００は、移動範囲Ｒａ外に存在すると判定される。
【００６２】
また、図１３（ｃ）に示すように、タブレットオブジェクト５００の移動範囲は、仮想カメラ３００の中心位置を中心とした回転楕円体として規定された移動範囲Ｒｂでもよい。ここで、回転楕円体の長軸は、仮想カメラ３００のｗ軸と平行であると共に、回転楕円体の短軸は、仮想カメラ３００のｖ軸と平行であってもよい。また、タブレットオブジェクト５００の移動範囲は、仮想カメラ３００の中心位置を中心とした立方体又は直方体として規定された移動範囲でもよい。
【００６３】
以降では、タブレットオブジェクト５００の移動範囲は、図１３（ｂ）に示す移動範囲Ｒａであるものとして説明を行う。移動範囲Ｒａを規定する球の半径Ｒは、図１３（ａ）に示すように、ＨＭＤ１１０とコントローラ３２０（コントローラ３２０Ｌ又はコントローラ３２０Ｒ）との間の距離Ｄに基づいて設定される。図１２を参照して、移動範囲Ｒａの設定方法（図１１に示すステップＳ１１で実行される処理）の一例について説明する。
【００６４】
図１２に示すように、制御部１２１は、ステップＳ２１において、整数Ｎの値を１に設定する。図１２に示す処理が開始された場合、最初に整数Ｎの値が１に設定される。例えば、整数Ｎの値は１フレーム毎に１だけ増加してもよい。例えば、ゲーム動画のフレームレートが９０ｆｐｓの場合には、１／９０秒経過毎に整数Ｎの値が１だけ増加してもよい。次に、ステップＳ２２において、制御部１２１は、位置センサ１３０から送信されたＨＭＤ１１０の位置情報とコントローラ３２０の位置情報に基づいて、ＨＭＤ１１０の位置（ユーザＵの頭部の位置）を特定すると共に、コントローラ３２０の位置（ユーザＵの手の位置）を特定する。次に、制御部１２１は、特定されたＨＭＤ１１０の位置とコントローラ３２０の位置に基づいて、ＨＭＤ１１０とコントローラ３２０との間の距離ＤＮを特定する（ステップＳ２３）。
【００６５】
次に、整数Ｎの値が１であるため（ステップＳ２４でＹＥＳ）、制御部１２１は、特定された距離Ｄ１をＨＭＤ１１０とコントローラ３２０との間の最大距離Ｄｍａｘに設定する（ステップＳ２５）。その後、所定時間が経過していない場合（ステップＳ２６でＮＯ）、ステップＳ２７において、整数Ｎの値が１つだけ増加され（Ｎ＝２）、処理は再びステップＳ２２に戻る。次に、ステップＳ２２の処理が実行された後、ステップＳ２３において、制御部１２１は、Ｎ＝２のときのＨＭＤ１１０とコントローラ３２０との間の距離Ｄ２を特定する。次に、Ｎ≠１であるため（ステップＳ２４でＮＯ）、制御部１２１は、距離Ｄ２が最大距離Ｄｍａｘ（＝Ｄ１）よりも大きいかどうかを判定する（ステップＳ２８）。制御部１２１は、距離Ｄ２が最大距離Ｄｍａｘよりも大きいと判定した場合（ステップＳ２８でＹＥＳ）、距離Ｄ２を最大距離Ｄｍａｘに設定する（ステップＳ２９）。一方、制御部１２１は、距離Ｄ２が最大距離Ｄｍａｘ以下であると判定した場合（ステップＳ２８でＮＯ）、ステップＳ２６の処理に進む。所定時間が経過していない場合（ステップＳ２６でＮＯ）、ステップＳ２７において、整数Ｎの値が１つだけ増加される。このように、所定時間が経過するまでステップＳ２２，Ｓ２３，Ｓ２８，Ｓ２９の処理が繰り返し実行されると共に、整数Ｎの値が１フレーム毎に１つだけ増加する。つまり、所定時間が経過するまで１フレーム毎にＨＭＤ１１０とコントローラ３２０との間の距離ＤＮが特定された上で、ＨＭＤ１１０とコントローラ３２０との間の最大距離Ｄｍａｘが更新される。次に、制御部１２１は、所定時間が経過したと判定した場合（ステップＳ２６でＹＥＳ）、ＨＭＤ１１０とコントローラ３２０との間の最大距離Ｄｍａｘと仮想カメラ３００の位置に基づいて、タブレットオブジェクト５００の移動範囲Ｒａを設定する（ステップＳ３０）。具体的には、制御部１２１は、仮想カメラ３００の中心位置を移動範囲Ｒａを規定する球の中心に設定すると共に、最大距離Ｄｍａｘを移動範囲Ｒａを規定する球の半径Ｒに設定する。このようにして、ＨＭＤ１１０とコントローラ３２０との間の距離の最大値と仮想カメラ３００の位置に基づいて、移動範囲Ｒａが設定される。
【００６６】
尚、制御部１２１は、仮想カメラ３００と手オブジェクト４００との間の距離の最大値と仮想カメラ３００の位置に基づいて、移動範囲Ｒａを設定してもよい。この場合、ステップＳ２２において、制御部１２１は、仮想カメラ３００の位置と手オブジェクト４００の位置を特定すると共に、ステップＳ２３において、仮想カメラ３００と手オブジェクト４００との間の距離ＤＮを特定する。さらに、制御部１２１は、所定時間が経過するまで、仮想カメラ３００と手オブジェクト４００との間の最大距離Ｄｍａｘを特定する。制御部１２１は、仮想カメラ３００の中心位置を移動範囲Ｒａを規定する球の中心に設定すると共に、仮想カメラ３００と手オブジェクト４００との間の最大距離Ｄｍａｘを当該球の半径Ｒに設定する。
【００６７】
また、移動範囲Ｒａの別の設定方法としては、制御部１２１は、ユーザＵの所定の姿勢のときのＨＭＤ１１０とコントローラ３２０との間の距離と仮想カメラ３００の位置に基づいて移動範囲Ｒａを設定してもよい。例えば、ユーザＵが起立した状態で両手を前方に突き出したときのＨＭＤ１１０とコントローラ３２０との間の距離と仮想カメラ３００の位置に基づいて移動範囲Ｒａが設定されてもよい。
【００６８】
図１１に戻ると、ステップＳ１２において、制御部１２１は、手オブジェクト４００がタブレットオブジェクト５００を掴んだ状態で手オブジェクト４００が移動したかどうかを判定する（図１４参照）。ステップＳ１２でＹＥＳの場合、制御部１２１は、コントローラ３２０の移動に応じて、手オブジェクト４００とタブレットオブジェクト５００を一緒に移動させる（ステップＳ１３）。一方、ステップＳ１２でＮＯの場合、処理はステップＳ１４に進む。次に、ステップＳ１４において、制御部１２１は、タブレットオブジェクト５００が手オブジェクト４００によって操作されたかどうかを判定する。ステップＳ１４でＹＥＳの場合、制御部１２１は、手オブジェクトによるタブレットオブジェクト５００に対する入力操作に応じて、モニターオブジェクト６００に表示されたメニュー（メニュー画面６１０）を操作した上で、操作結果に応じた所定の処理を実行する（ステップＳ１５）。一方、ステップＳ１４でＮＯの場合、処理はステップＳ１６に進む。
【００６９】
次に、制御部１２１は、タブレットオブジェクト５００は移動範囲Ｒａ外に存在すると共に、タブレットオブジェクト５００は手オブジェクト４００によって掴まれていないかどうかを判定する（ステップＳ１６）。例えば、図１４（ａ）に示すように、ユーザＵが手オブジェクト４００を用いてタブレットオブジェクト５００を投げ飛ばすことで、タブレットオブジェクト５００は移動範囲Ｒａ外に位置する。または、タブレットオブジェクト５００が手オブジェクト４００によって掴まれていない状態でユーザＵが移動することで、タブレットオブジェクト５００は移動範囲Ｒａ外に位置する。この場合、ユーザＵが移動することで、仮想カメラ３００が移動するため、仮想カメラ３００の周辺に設定された移動範囲Ｒａが移動する。このようにして、タブレットオブジェクト５００は移動範囲Ｒａ外に位置する。ステップＳ１６でＹＥＳの場合、制御部１２１は、仮想カメラ３００の位置とモニターオブジェクト６００の位置に基づいて、タブレットオブジェクト５００を移動範囲Ｒａ内の所定の位置に移動させる（ステップＳ１７）。例えば、図１４（ｂ）に示すように、制御部１２１は、モニターオブジェクト６００の中心位置と仮想カメラ３００の中心位置とを結ぶ線分Ｃの中心位置からｙ軸方向に所定距離だけオフセットした位置を特定した上で、当該特定された位置にタブレットオブジェクト５００を配置してもよい。尚、ステップＳ１６では、タブレットオブジェクト５００は移動範囲Ｒａ外に存在するかどうかのみが判定されてもよい。
【００７０】
このように、本実施形態によれば、手オブジェクト４００によるタブレットオブジェクト５００に対する入力操作に応じて、モニターオブジェクト６００に表示されたメニューが操作される。つまり、ユーザＵは、ユーザＵの手の動きに連動する仮想空間２００内の手オブジェクト４００を用いて、仮想空間２００内のタブレットオブジェクト５００に対して所定の操作を行うことができる。当該所定の操作の結果、モニターオブジェクト６００に表示されるメニューが操作される。このように、メニュー操作が仮想空間２００内のオブジェクト同士の相互作用により実行されると共に、視野画像内にウィジェット等のＵＩオブジェクトが常に表示されてしまうといった状況を回避することが可能となる。従って、仮想空間２００に対するユーザＵの没入感をさらに高めることが可能な情報処理方法を提供することができる。
【００７１】
また、タブレットオブジェクト５００が移動範囲Ｒａ外に位置した場合でも、タブレットオブジェクト５００が移動範囲Ｒａ内の所定の位置に移動する。このように、ユーザＵは、タブレットオブジェクト５００を容易に見つけ出すことができると共に、タブレットオブジェクト５００を手に取るための手間を大幅に軽減することができる。さらに、モニターオブジェクト６００と仮想カメラ３００との間の位置関係（例えば、線分Ｃの中心点）に基づいて、移動範囲Ｒａ内におけるタブレットオブジェクト５００の位置が決定されるので、ユーザＵはタブレットオブジェクト５００を容易に見つけ出すことができる。
【００７２】
また、ＨＭＤ１１０（ユーザＵの頭部）とコントローラ３２０（ユーザＵの手）との間の最大距離Ｄｍａｘに基づいて、タブレットオブジェクト５００の移動範囲Ｒａが決定される。このように、タブレットオブジェクト５００は、ユーザＵが静止した状態（現実空間においてユーザの位置座標が変化しない状態）でユーザＵが手に取ることができる範囲に配置されるため、ユーザＵがタブレットオブジェクト５００を手に取るための手間を大幅に軽減することができる。
【００７３】
制御部１２１によって実行される各種処理をソフトウェアによって実現するために、本実施形態に係る情報処理方法をコンピュータ（プロセッサ）に実行させるための情報処理プログラムが記憶部１２３又はＲＯＭに予め組み込まれていてもよい。または、情報処理プログラムは、磁気ディスク（ＨＤＤ、フロッピーディスク）、光ディスク（ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ、Ｂｌｕ−ｒａｙディスク等）、光磁気ディスク（ＭＯ等）、フラッシュメモリ（ＳＤカード、ＵＳＢメモリ、ＳＳＤ等）等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体が制御装置１２０に接続されることで、当該記憶媒体に格納された情報処理プログラムが、記憶部１２３に組み込まれる。そして、記憶部１２３に組み込まれた情報処理プログラムがＲＡＭ上にロードされて、プロセッサがロードされた当該プログラムを実行することで、制御部１２１は本実施形態に係る情報処理方法を実行する。
【００７４】
また、情報処理プログラムは、通信ネットワーク３上のコンピュータから通信インターフェース１２５を介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該プログラムが記憶部１２３に組み込まれる。
【００７５】
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲及びその均等の範囲に基づいて定められるべきである。
【００７６】
本実施形態では、ユーザＵの手の動きを示す外部コントローラ３２０の動きに応じて、手オブジェクトの移動が制御されているが、ユーザＵの手自体の移動量に応じて、仮想空間内における手オブジェクトの移動が制御されてもよい。例えば、外部コントローラを用いる代わりに、ユーザの手指に装着されるグローブ型デバイスや指輪型デバイスを用いることで、位置センサ１３０により、ユーザＵの手の位置や移動量を検出することができると共に、ユーザＵの手指の動きや状態を検出することができる。また、位置センサ１３０は、ユーザＵの手（手指を含む）を撮像するように構成されたカメラであってもよい。この場合、カメラを用いてユーザの手を撮像することにより、ユーザの手指に直接何らかのデバイスを装着させることなく、ユーザの手が表示された画像データに基づいて、ユーザＵの手の位置や移動量を検出することができると共に、ユーザＵの手指の動きや状態を検出することができる。
【００７７】
また、本実施形態では、ユーザＵの頭部以外の身体の一部である手の位置及び／又は動きに応じて、手オブジェクトによってタブレットオブジェクトが操作されるが、例えば、ユーザＵの頭部以外の身体の一部である足の位置及び／又は動きに応じて、ユーザＵの足の動きに連動する足オブジェクト（操作オブジェクトの一例）によってタブレットオブジェクトが操作されてもよい。このように、手オブジェクトではなく足オブジェクトが操作オブジェクトとして規定されてもよい。
【００７８】
また、タブレットオブジェクトの代わりにリモコンオブジェクト等が、モニターオブジェクトに表示されたメニューを操作可能なオブジェクトとして規定されてもよい。
【符号の説明】
【００７９】
１：ＨＭＤシステム
３：通信ネットワーク
２１：中心位置
１１２：表示部
１１４：ＨＭＤセンサ
１２０：制御装置
１２１：制御部
１２３：記憶部
１２４：Ｉ／Ｏインターフェース
１２５：通信インターフェース
１２６：バス
１３０：位置センサ
１４０：注視センサ
２００：仮想空間
３００：仮想カメラ
３０２：操作ボタン
３０２ａ：プッシュ式ボタン
３０２ｂ：プッシュ式ボタン
３０２ｅ：トリガー式ボタン
３０２ｆ：トリガー式ボタン
３０４：検知点
３２０：外部コントローラ（コントローラ）
３２０ｉ：アナログスティック
３２０Ｌ：左手用外部コントローラ（コントローラ）
３２０Ｒ：右手用外部コントローラ（コントローラ）
３２２：天面
３２４：グリップ
３２６：フレーム
４００：手オブジェクト（操作オブジェクト）
５００：タブレットオブジェクト（第２オブジェクト）
５１０：表示画面
５２０：方向キー
５３０：ＢＡＣＫボタン
５４０：ＯＫボタン
５５０Ｌ：Ｌボタン
５５０Ｒ：Ｒボタン
６００：モニターオブジェクト（第１オブジェクト）
６１０：メニュー画面
Ｃ：線分
ＣＶ：視野
ＣＶａ：第１領域
ＣＶｂ：第２領域
Ｌ：視軸
Ｒａ，Ｒｂ：移動範囲
【図１】
2018041341.tif 000003
【図２】
2018041341.tif 000004
【図３】
2018041341.tif 000005
【図４】
2018041341.tif 000006
【図５】
2018041341.tif 000007
【図６】
2018041341.tif 000008
【図７】
2018041341.tif 000009
【図８】
2018041341.tif 000010
【図９】
2018041341.tif 000011
【図１０】
2018041341.tif 000012
【図１１】
2018041341.tif 000013
【図１２】
2018041341.tif 000014
【図１３】
2018041341.tif 000015
【図１４】
2018041341.tif 000016