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