(57)【要約】【課題】エンタテイメント性の高い、仮想空間における仮想体験をユーザに提供する。【解決手段】ＨＭＤと、ユーザの身体の一部の位置を検知するセンサとを備えたシステムにおける方法であって、仮想空間を規定する仮想空間データを特定するステップと、仮想視点を特定するステップと、仮想空間データ、仮想視点、ＨＭＤの向きに応じて視界画像を生成するステップと、身体の一部の動きに応じて操作オブジェクトを通常モードで動かすステップと、身体の一部が所定の条件を満たす場合に操作オブジェクトを選択モードに切り替えるステップと、選択モードにおいて操作オブジェクトにより対象オブジェクトが選択されない場合、該選択モードの継続中、身体の一部の動き又は操作オブジェクトの動きに基づいて仮想視点を動かすステップと、仮想視点に基づいて生成される視界画像をＨＭＤに関連付けられる表示部に出力するステップとを含む、方法を提供する。【選択図】図１１
2018194889.tif 000002
【特許請求の範囲】
【請求項１】
ヘッドマウントデバイスと、ユーザの頭部以外の身体の一部の位置を検知するように構成されたセンサとを備えたシステムにおける情報処理方法であって、
前記身体の一部に関連付けられる操作オブジェクト及び少なくとも１つの対象オブジェクトを含む仮想空間を規定する仮想空間データを特定するステップであって、前記操作オブジェクトは、通常モード及び選択モードを含む少なくとも２つの動作モードで動かすことができる、ステップと、
前記仮想空間における仮想視点を特定するステップと、
前記仮想空間データと、前記仮想視点と、前記ヘッドマウントデバイスの向きとに応じて、視界画像を生成するステップと、
前記身体の一部の動きに応じて、前記仮想空間内で前記操作オブジェクトを前記通常モードで動かすステップと、
前記身体の一部の状態が所定の条件を満たす場合に、前記操作オブジェクトの動作モードを前記選択モードに切り替えるステップと、
前記選択モードに切り替えられた際に、前記操作オブジェクトにより前記少なくとも１つの対象オブジェクトのうちのいずれも選択されない場合、該選択モードの継続中、前記身体の一部の動き又は前記操作オブジェクトの動きに基づいて、前記仮想視点を動かすステップと、
前記仮想視点に基づいて生成される視界画像を、前記ヘッドマウントデバイスに関連付けられる表示部に出力するステップと
を含む、方法。
【請求項２】
前記身体の一部の動きは前記身体の一部の位置を含む、請求項１に記載の方法。
【請求項３】
前記選択モードに切り替えられた際に、前記操作オブジェクトにより前記少なくとも１つの対象オブジェクトが選択された場合、該選択モードの継続中、前記身体の一部の動き又は前記操作オブジェクトの動きに基づいて、該少なくとも１つの対象オブジェクトを動かすステップをさらに含む、請求項１又は２に記載の方法。
【請求項４】
前記身体の一部は右手及び左手であり、前記操作オブジェクトは右手オブジェクト及び左手オブジェクトを含み、
前記右手及び／もしくは前記左手、又は前記右手オブジェクト及び／もしくは前記左手オブジェクトの動きに基づいて、上記仮想視点を動かすステップをさらに含む、請求項１から３のいずれかに記載の方法。
【請求項５】
前記右手オブジェクト及び前記左手オブジェクトの両方の動作モードが前記選択モードであるとき、前記右手及び前記左手の動きが検知された場合、前記右手及び前記左手のうち先に動いた手の動き又は前記先に動いた手に対応する操作オブジェクトの動きに基づいて前記仮想視点を動かすステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記選択モードにおいて、前記身体の一部又は前記操作オブジェクトの連続的な動きが検知された場合、前記仮想視点の移動速度を徐々に増加させるステップをさらに含む、請求項１から５のいずれかに記載の方法。
【請求項７】
前記連続的な動きの中の１つの動きに応じた前記仮想視点の移動速度を、該１つの動きの前に行われた動きに応じた前記仮想視点の移動速度に比べて増加させるステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記連続的な動きに含まれる動きが一定速度以上の動きである場合、及び／又は、前記連続的な動きに含まれる複数の動きが一定時間間隔より小さい時間間隔を空けて行われる場合に、前記仮想視点の移動速度を増加させるステップをさらに含む、請求項６又は７に記載の方法。
【請求項９】
前記連続的な動きに含まれる１つの動きが一定速度以上の動き及び／又は一定距離以上の動きである場合に、該１つの動きが行われている間、前記仮想視点の移動速度を徐々に上げるステップをさらに含む、請求項６から８のいずれかに記載の方法。
【請求項１０】
視野のロール軸に対する、前記身体の一部の動き又は前記操作オブジェクトの動きの角度が、視野角の半分より大きい場合に、前記仮想視点の移動速度をゼロにするか又は低減するステップをさらに含む、請求項１から９のいずれかに記載の方法。
【請求項１１】
前記身体の一部の動き又は前記操作オブジェクトの動きのうち視野のロール軸に直交する方向の成分の少なくとも１つに基づく、前記仮想視点の移動速度の該方向の成分を、ゼロにするか又は低減するステップをさらに含む、請求項１から１０のいずれかに記載の方法。
【請求項１２】
前記右手オブジェクト及び前記左手オブジェクトの両方の動作モードが前記選択モードであるとき、前記少なくとも１つの対象オブジェクトのうちのいずれも選択されない場合に、前記右手及び前記左手の両方によって同様の方向に同様の形状の領域を囲む動きが検知された場合には、該動きに基づいて前記仮想視点を回転させるステップをさらに含む、請求項４又は５に記載の方法。
【請求項１３】
前記同様の形状の領域を囲む動きが水平面に対して傾いている場合、水平面へと射影した該動きに基づいて前記仮想視点を回転させるステップをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記仮想視点を回転させる際に、前記視界画像の視覚情報を低減させるステップをさらに含む、請求項１２又は１３に記載の方法。
【請求項１５】
前記仮想視点の回転は、第１速度での回転と前記第１速度より遅いか又はゼロである第２速度での回転との組み合わせである、請求項１２から１４のいずれかに記載の方法。
【請求項１６】
前記右手オブジェクト及び前記左手オブジェクトの両方の動作モードが前記選択モードであるとき、前記少なくとも１つの対象オブジェクトのうちのいずれも選択されない場合に、前記右手と前記左手が近づく動きが検知された場合には、前記視界画像に含まれる前記仮想空間の範囲を小さくするか又は大きくするステップをさらに含む、請求項４、５及び１２から１５のいずれかに記載の方法。
【請求項１７】
前記右手オブジェクト及び前記左手オブジェクトの両方の動作モードが前記選択モードであるとき、前記少なくとも１つの対象オブジェクトのうちのいずれも選択されない場合に、前記右手と前記左手が遠ざかる動きが検知された場合には、前記視界画像に含まれる前記仮想空間の範囲を小さくするか又は大きくするステップをさらに含む、請求項４、５及び１２から１５のいずれかに記載の方法。
【請求項１８】
前記視界画像に含まれる前記仮想空間の範囲を小さくするか又は大きくするステップは、前記仮想視点の位置を変化させることなく、前記仮想空間内の仮想カメラの大きさを変化させるステップを含む、請求項１６又は１７に記載の方法。
【請求項１９】
請求項１から１８のいずれかに記載の方法をプロセッサに実行させるプログラム。
【請求項２０】
プロセッサとメモリを備え、前記プロセッサの制御により、請求項１から請求項１８のいずれか１項に記載の方法が実行される、コンピュータ。
【請求項２１】
ヘッドマウントデバイスと、ユーザの頭部以外の身体の一部の位置を検知するように構成されたセンサとを備えたシステムにおいて使用されるコンピュータであって、前記コンピュータはプロセッサを備え、前記プロセッサは、
前記身体の一部に関連付けられる操作オブジェクト及び少なくとも１つの対象オブジェクトを含む仮想空間を規定する仮想空間データを特定し、前記操作オブジェクトは、通常モード及び選択モードを含む少なくとも２つの動作モードで動かすことができ、
前記仮想空間における仮想視点を特定し、
前記仮想空間データと、前記仮想視点と、前記ヘッドマウントデバイスの向きとに応じて、視界画像を生成し、
前記身体の一部の動きに応じて、前記仮想空間内で前記操作オブジェクトを前記通常モードで動かし、
前記身体の一部の状態が所定の条件を満たす場合に、前記操作オブジェクトの動作モードを前記選択モードに切り替え、
前記選択モードに切り替えられた際に、前記操作オブジェクトにより前記少なくとも１つの対象オブジェクトのうちのいずれも選択されない場合、該選択モードの継続中、前記身体の一部の動き又は前記操作オブジェクトの動きに基づいて、前記仮想視点を動かし、
前記仮想視点に基づいて生成される視界画像を、前記ヘッドマウントデバイスに関連付けられる表示部に出力する
ように構成される、コンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理方法、コンピュータ及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、仮想空間内における視点移動によって、様々な視点から仮想空間における仮想体験を楽しむことを可能にする技術が開示されている。
【０００３】
特許文献１に開示された技術において、ユーザは、１つの対象を様々な角度から観察することができるにすぎない。このような技術に関し、仮想体験のエンタテイメント性を高めるために改善の余地がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許５８６９１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本開示は、エンタテイメント性の高い、仮想空間における仮想体験をユーザに提供することを目的とする。
【課題を解決するための手段】
【０００６】
本開示の一実施形態によれば、ヘッドマウントデバイスと、ユーザの頭部以外の身体の一部の位置を検知するように構成されたセンサとを備えたシステムにおける情報処理方法であって、前記身体の一部に関連付けられる操作オブジェクト及び少なくとも１つの対象オブジェクトを含む仮想空間を規定する仮想空間データを特定するステップであって、前記操作オブジェクトは、通常モード及び選択モードを含む少なくとも２つの動作モードで動かすことができる、ステップと、前記仮想空間における仮想視点を特定するステップと、前記仮想空間データと、前記仮想視点と、前記ヘッドマウントデバイスの向きとに応じて、視界画像を生成するステップと、前記身体の一部の動きに応じて、前記仮想空間内で前記操作オブジェクトを前記通常モードで動かすステップと、前記身体の一部の状態が所定の条件を満たす場合に、前記操作オブジェクトの動作モードを前記選択モードに切り替えるステップと、前記選択モードに切り替えられた際に、前記操作オブジェクトにより前記少なくとも１つの対象オブジェクトのうちのいずれも選択されない場合、該選択モードの継続中、前記身体の一部の動き又は前記操作オブジェクトの動きに基づいて、前記仮想視点を動かすステップと、前記仮想視点に基づいて生成される視界画像を、前記ヘッドマウントデバイスに関連付けられる表示部に出力するステップとを含む、方法が提供される。
【０００７】
本開示の別の実施形態によれば、ヘッドマウントデバイスと、ユーザの頭部以外の身体の一部の位置を検知するように構成されたセンサとを備えたシステムにおいて使用されるコンピュータであって、前記コンピュータはプロセッサを備え、前記プロセッサは、前記身体の一部に関連付けられる操作オブジェクト及び少なくとも１つの対象オブジェクトを含む仮想空間を規定する仮想空間データを特定し、前記操作オブジェクトは、通常モード及び選択モードを含む少なくとも２つの動作モードで動かすことができ、前記仮想空間における仮想視点を特定し、前記仮想空間データと、前記仮想視点と、前記ヘッドマウントデバイスの向きとに応じて、視界画像を生成し、前記身体の一部の動きに応じて、前記仮想空間内で前記操作オブジェクトを前記通常モードで動かし、前記身体の一部の状態が所定の条件を満たす場合に、前記操作オブジェクトの動作モードを前記選択モードに切り替え、前記選択モードに切り替えられた際に、前記操作オブジェクトにより前記少なくとも１つの対象オブジェクトのうちのいずれも選択されない場合、該選択モードの継続中、前記身体の一部の動き又は前記操作オブジェクトの動きに基づいて、前記仮想視点を動かし、前記仮想視点に基づいて生成される視界画像を、前記ヘッドマウントデバイスに関連付けられる表示部に出力するように構成される、コンピュータが提供される。
【０００８】
本開示の別の実施形態によれば、上記方法をプロセッサに実行させるプログラムが提供される。
【発明の効果】
【０００９】
本開示の実施形態により、エンタテイメント性の高い、仮想空間における仮想体験をユーザに提供することができる。
【００１０】
本開示のその他の特徴及び利点は、後述する実施形態の説明、添付の図面及び特許請求の範囲の記載から明らかなものとなる。
【図面の簡単な説明】
【００１１】
【図１】ＨＭＤシステム１００の構成を概略的に示す。
【図２】一実施形態による、コンピュータの基本的なハードウェア構成の例を表すブロック図である。
【図３】一実施形態による、ＨＭＤに設定されるｕｖｗ視野座標系を概念的に表す図である。
【図４】一実施形態による、仮想空間を表現する一態様を概念的に表す図である。
【図５】一実施形態による、ＨＭＤ１１０を装着するユーザの頭部を上から表した図である。
【図６】仮想空間において視認領域をｘ方向から見たｙｚ断面を表す図である。
【図７】仮想空間において視認領域をｙ方向から見たｘｚ断面を表す図である。
【図８】一実施形態によるコントローラの概略構成を表す図である。
【図９】一実施形態による、ＨＭＤシステムにおける仮想空間の表示処理等を実現するためのコンピュータの機能を示すブロック図である。
【図１０】ユーザが没入する仮想空間の画像を表示部に表示するための一般的な処理のフロー図である。
【図１１】本開示の一実施形態による方法のフローチャートである。
【図１２】本開示の一実施形態において想定されるゲームの態様を概略的に説明する図である。
【図１３】本開示の一実施形態の処理により生成される視界画像の例を示す。
【図１４】本開示の一実施形態の処理により生成される視界画像の例を示す。
【図１５】本開示の一実施形態の処理により生成される視界画像の例を示す。
【図１６】本開示の一実施形態の処理により生成される視界画像の例を示す。
【図１７】本開示の一実施形態の処理により生成される視界画像の例を示す。
【図１８】本開示の一実施形態の処理の例を模式的に示す図である。
【図１９】本開示の一実施形態の処理により生成される視界画像の例を示す。
【図２０】本開示の一実施形態の処理の例を模式的に示す図である。
【図２１】本開示の一実施形態による、視覚情報が低減された視界画像の例を示す。
【図２２】仮想視点の回転角度と時間との間の関係の例を示すグラフである。
【図２３】本開示の一実施形態の処理により生成される視界画像の例を示す。
【図２４】本開示の一実施形態の処理により生成される視界画像の例を示す。
【図２５】本開示の一実施形態の処理の例を模式的に示す図である。
【図２６】本開示の一実施形態の処理により生成される視界画像の例を示す。
【発明を実施するための形態】
【００１２】
［本開示の実施形態の説明］
はじめに、本開示の例示的な実施形態の構成を列記して説明する。本開示の実施形態による方法、コンピュータ及びプログラムは、以下のような構成を備えてもよい。
【００１３】
（項目１）
ヘッドマウントデバイスと、ユーザの頭部以外の身体の一部の位置を検知するように構成されたセンサとを備えたシステムにおける情報処理方法であって、
前記身体の一部に関連付けられる操作オブジェクト及び少なくとも１つの対象オブジェクトを含む仮想空間を規定する仮想空間データを特定するステップであって、前記操作オブジェクトは、通常モード及び選択モードを含む少なくとも２つの動作モードで動かすことができる、ステップと、
前記仮想空間における仮想視点を特定するステップと、
前記仮想空間データと、前記仮想視点と、前記ヘッドマウントデバイスの向きとに応じて、視界画像を生成するステップと、
前記身体の一部の動きに応じて、前記仮想空間内で前記操作オブジェクトを前記通常モードで動かすステップと、
前記身体の一部の状態が所定の条件を満たす場合に、前記操作オブジェクトの動作モードを前記選択モードに切り替えるステップと、
前記選択モードに切り替えられた際に、前記操作オブジェクトにより前記少なくとも１つの対象オブジェクトのうちのいずれも選択されない場合、該選択モードの継続中、前記身体の一部の動き又は前記操作オブジェクトの動きに基づいて、前記仮想視点を動かすステップと、
前記仮想視点に基づいて生成される視界画像を、前記ヘッドマウントデバイスに関連付けられる表示部に出力するステップと
を含む、方法。
【００１４】
（項目２）
前記身体の一部の動きは前記身体の一部の位置を含む、項目１に記載の方法。
【００１５】
（項目３）
前記選択モードに切り替えられた際に、前記操作オブジェクトにより前記少なくとも１つの対象オブジェクトが選択された場合、該選択モードの継続中、前記身体の一部の動き又は前記操作オブジェクトの動きに基づいて、該少なくとも１つの対象オブジェクトを動かすステップをさらに含む、項目１又は２に記載の方法。
【００１６】
（項目４）
前記身体の一部は右手及び左手であり、前記操作オブジェクトは右手オブジェクト及び左手オブジェクトを含み、
前記右手及び／もしくは前記左手、又は前記右手オブジェクト及び／もしくは前記左手オブジェクトの動きに基づいて、上記仮想視点を動かすステップをさらに含む、項目１から３のいずれかに記載の方法。
【００１７】
（項目５）
前記右手オブジェクト及び前記左手オブジェクトの両方の動作モードが前記選択モードであるとき、前記右手及び前記左手の動きが検知された場合、前記右手及び前記左手のうち先に動いた手の動き又は前記先に動いた手に対応する操作オブジェクトの動きに基づいて前記仮想視点を動かすステップをさらに含む、項目４に記載の方法。
【００１８】
（項目６）
前記選択モードにおいて、前記身体の一部又は前記操作オブジェクトの連続的な動きが検知された場合、前記仮想視点の移動速度を徐々に増加させるステップをさらに含む、項目１から５のいずれかに記載の方法。
【００１９】
（項目７）
前記連続的な動きの中の１つの動きに応じた前記仮想視点の移動速度を、該１つの動きの前に行われた動きに応じた前記仮想視点の移動速度に比べて増加させるステップをさらに含む、項目６に記載の方法。
【００２０】
（項目８）
前記連続的な動きに含まれる動きが一定速度以上の動きである場合、及び／又は、前記連続的な動きに含まれる複数の動きが一定時間間隔より小さい時間間隔を空けて行われる場合に、前記仮想視点の移動速度を増加させるステップをさらに含む、項目６又は７に記載の方法。
【００２１】
（項目９）
前記連続的な動きに含まれる１つの動きが一定速度以上の動き及び／又は一定距離以上の動きである場合に、該１つの動きが行われている間、前記仮想視点の移動速度を徐々に上げるステップをさらに含む、項目６から８のいずれかに記載の方法。
【００２２】
（項目１０）
視野のロール軸に対する、前記身体の一部の動き又は前記操作オブジェクトの動きの角度が、視野角の半分より大きい場合に、前記仮想視点の移動速度をゼロにするか又は低減するステップをさらに含む、項目１から９のいずれかに記載の方法。
【００２３】
（項目１１）
前記身体の一部の動き又は前記操作オブジェクトの動きのうち視野のロール軸に直交する方向の成分の少なくとも１つに基づく、前記仮想視点の移動速度の該方向の成分を、ゼロにするか又は低減するステップをさらに含む、項目１から１０のいずれかに記載の方法。
【００２４】
（項目１２）
前記右手オブジェクト及び前記左手オブジェクトの両方の動作モードが前記選択モードであるとき、前記少なくとも１つの対象オブジェクトのうちのいずれも選択されない場合に、前記右手及び前記左手の両方によって同様の方向に同様の形状の領域を囲む動きが検知された場合には、該動きに基づいて前記仮想視点を回転させるステップをさらに含む、項目４又は５に記載の方法。
【００２５】
（項目１３）
前記同様の形状の領域を囲む動きが水平面に対して傾いている場合、水平面へと射影した該動きに基づいて前記仮想視点を回転させるステップをさらに含む、項目１２に記載の方法。
【００２６】
（項目１４）
前記仮想視点を回転させる際に、前記視界画像の視覚情報を低減させるステップをさらに含む、項目１２又は１３に記載の方法。
【００２７】
（項目１５）
前記仮想視点の回転は、第１速度での回転と前記第１速度より遅いか又はゼロである第２速度での回転との組み合わせである、項目１２から１４のいずれかに記載の方法。
【００２８】
（項目１６）
前記右手オブジェクト及び前記左手オブジェクトの両方の動作モードが前記選択モードであるとき、前記少なくとも１つの対象オブジェクトのうちのいずれも選択されない場合に、前記右手と前記左手が近づく動きが検知された場合には、前記視界画像に含まれる前記仮想空間の範囲を小さくするか又は大きくするステップをさらに含む、項目４、５及び１２から１５のいずれかに記載の方法。
【００２９】
（項目１７）
前記右手オブジェクト及び前記左手オブジェクトの両方の動作モードが前記選択モードであるとき、前記少なくとも１つの対象オブジェクトのうちのいずれも選択されない場合に、前記右手と前記左手が遠ざかる動きが検知された場合には、前記視界画像に含まれる前記仮想空間の範囲を小さくするか又は大きくするステップをさらに含む、項目４、５及び１２から１５のいずれかに記載の方法。
【００３０】
（項目１８）
前記視界画像に含まれる前記仮想空間の範囲を小さくするか又は大きくするステップは、前記仮想視点の位置を変化させることなく、前記仮想空間内の仮想カメラの大きさを変化させるステップを含む、項目１６又は１７に記載の方法。
【００３１】
（項目１９）
項目１から１８のいずれかに記載の方法をプロセッサに実行させるプログラム。
【００３２】
（項目２０）
プロセッサとメモリを備え、前記プロセッサの制御により、項目１から１８のいずれか１項に記載の方法が実行される、コンピュータ。
【００３３】
（項目２１）
ヘッドマウントデバイスと、ユーザの頭部以外の身体の一部の位置を検知するように構成されたセンサとを備えたシステムにおいて使用されるコンピュータであって、前記コンピュータはプロセッサを備え、前記プロセッサは、
前記身体の一部に関連付けられる操作オブジェクト及び少なくとも１つの対象オブジェクトを含む仮想空間を規定する仮想空間データを特定し、前記操作オブジェクトは、通常モード及び選択モードを含む少なくとも２つの動作モードで動かすことができ、
前記仮想空間における仮想視点を特定し、
前記仮想空間データと、前記仮想視点と、前記ヘッドマウントデバイスの向きとに応じて、視界画像を生成し、
前記身体の一部の動きに応じて、前記仮想空間内で前記操作オブジェクトを前記通常モードで動かし、
前記身体の一部の状態が所定の条件を満たす場合に、前記操作オブジェクトの動作モードを前記選択モードに切り替え、
前記選択モードに切り替えられた際に、前記操作オブジェクトにより前記少なくとも１つの対象オブジェクトのうちのいずれも選択されない場合、該選択モードの継続中、前記身体の一部の動き又は前記操作オブジェクトの動きに基づいて、前記仮想視点を動かし、
前記仮想視点に基づいて生成される視界画像を、前記ヘッドマウントデバイスに関連付けられる表示部に出力する
ように構成される、コンピュータ。
【００３４】
［本開示の実施形態の詳細］
以下、図面を参照しつつ、本開示の実施形態について説明する。以下の説明では、同様の要素には同様の符号を付してある。それらの名称及び機能も同様である。このような要素については重複する説明が省略される。
【００３５】
図１を参照して、ヘッドマウントデバイス（Ｈｅａｄ−Ｍｏｕｎｔｅｄ  Ｄｅｖｉｃｅ、ＨＭＤ）システム１００の構成について説明する。図１は、ＨＭＤシステム１００の構成を概略的に示す。一例では、ＨＭＤシステム１００は、家庭用のシステム又は業務用のシステムとして提供される。ＨＭＤは、表示部を備える所謂ヘッドマウントディスプレイであってもよく、表示部を有するスマートフォン等の端末を装着可能なヘッドマウント機器であってもよい。
【００３６】
ＨＭＤシステム１００は、ＨＭＤ１１０と、ＨＭＤセンサ１２０と、コントローラ１６０と、コンピュータ２００とを備える。ＨＭＤ１１０は、表示部１１２と、注視センサ１４０とを含む。コントローラ１６０は、モーションセンサ１３０を含んでもよい。
【００３７】
一例では、コンピュータ２００は、インターネット等のネットワーク１９２に接続可能であってもよく、ネットワーク１９２に接続されるサーバ１５０等のコンピュータと通信可能であってもよい。別の態様において、ＨＭＤ１１０は、ＨＭＤセンサ１２０の代わりにセンサ１１４を含んでもよい。
【００３８】
ＨＭＤ１１０は、ユーザ１９０の頭部に装着され、動作中に仮想空間をユーザに提供し得る。より具体的には、ＨＭＤ１１０は、右目用の画像及び左目用の画像を表示部１１２にそれぞれ表示する。ユーザの各目がそれぞれの画像を視認すると、ユーザは、両目の視差に基づき当該画像を３次元の画像として認識し得る。
【００３９】
表示部１１２は、例えば、非透過型の表示装置として実現される。一例では、表示部１１２は、ユーザの両目の前方に位置するように、ＨＭＤ１１０の本体に配置される。したがって、ユーザは、表示部１１２に表示される３次元画像を視認すると、仮想空間に没入することができる。ある実施形態において、仮想空間は、例えば、背景、ユーザが操作可能なオブジェクト、ユーザが選択可能なメニューの画像等を含む。ある実施形態において、表示部１１２は、スマートフォン等の情報表示端末が備える液晶表示部又は有機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）表示部として実現され得る。
【００４０】
一例では、表示部１１２は、右目用の画像を表示するためのサブ表示部と、左目用の画像を表示するためのサブ表示部とを含み得る。別の態様において、表示部１１２は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、表示部１１２は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
【００４１】
一例では、ＨＭＤ１１０は、複数の光源（図示せず）を含む。各光源は、例えば、赤外線を発するＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）により実現される。ＨＭＤセンサ１２０は、ＨＭＤ１１０の動きを検出するためのポジショントラッキング機能を有する。より具体的には、ＨＭＤセンサ１２０は、ＨＭＤ１１０が発する複数の赤外線を読み取り、現実空間内におけるＨＭＤ１１０の位置及び傾きを検出してもよい。
【００４２】
ある態様において、ＨＭＤセンサ１２０は、カメラにより実現されてもよい。この場合、ＨＭＤセンサ１２０は、カメラから出力されるＨＭＤ１１０の画像情報を用いて、画像解析処理を実行することにより、ＨＭＤ１１０の位置及び傾きを検出することができる。
【００４３】
別の態様において、ＨＭＤ１１０は、位置検出器として、ＨＭＤセンサ１２０の代わりに、センサ１１４を備えてもよい。ＨＭＤ１１０は、センサ１１４を用いて、ＨＭＤ１１０自身の位置及び傾きを検出し得る。例えば、センサ１１４が角速度センサ、地磁気センサ、加速度センサ、ジャイロセンサ等である場合、ＨＭＤ１１０は、ＨＭＤセンサ１２０の代わりに、これらの各センサのいずれかを用いて、自身の位置及び傾きを検出し得る。一例として、センサ１１４が角速度センサである場合、角速度センサは、現実空間におけるＨＭＤ１１０の３軸周りの角速度を経時的に検出する。ＨＭＤ１１０は、各角速度に基づいて、ＨＭＤ１１０の３軸周りの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、ＨＭＤ１１０の傾きを算出する。また、ＨＭＤ１１０は、透過型表示装置を備えていても良い。この場合、当該透過型表示装置は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。また、視界画像は、仮想空間を構成する画像の一部に、現実空間を提示する構成を含んでいてもよい。例えば、ＨＭＤ１１０に搭載されたカメラで撮影した画像を視界画像の一部に重畳して表示させてもよいし、当該透過型表示装置の一部の透過率を高く設定することにより、視界画像の一部から現実空間を視認可能にしてもよい。
【００４４】
注視センサ１４０は、ユーザ１９０の右目及び左目の視線が向けられる方向（視線）を検出する。当該方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ１４０は、当該アイトラッキング機能を有するセンサにより実現される。ある態様において、注視センサ１４０は、右目用のセンサ及び左目用のセンサを含むことが好ましい。注視センサ１４０は、例えば、ユーザ１９０の右目及び左目に赤外光を照射するとともに、照射光に対する角膜及び虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ１４０は、検出した各回転角に基づいて、ユーザ１９０の視線を検知することができる。
【００４５】
サーバ１５０は、コンピュータ２００にプログラムを送信し得る。別の態様において、サーバ１５０は、他のユーザによって使用されるＨＭＤに仮想現実を提供するための他のコンピュータ２００と通信し得る。例えば、アミューズメント施設において、複数のユーザが参加型のゲームを行う場合、各コンピュータ２００は、各ユーザの動作に基づく信号を他のコンピュータ２００と通信して、同じ仮想空間において複数のユーザが共通のゲームを楽しむことを可能にする。
【００４６】
コントローラ１６０は、有線又は無線によりコンピュータ２００に接続される。コントローラ１６０は、ユーザ１９０からコンピュータ２００への命令の入力を受け付ける。ある態様において、コントローラ１６０は、ユーザ１９０によって把持可能に構成される。別の態様において、コントローラ１６０は、ユーザ１９０の身体又は衣類の一部に装着可能に構成される。別の態様において、コントローラ１６０は、コンピュータ２００から送信される信号に基づいて、振動、音、光のうちの少なくともいずれかを出力するように構成されてもよい。別の態様において、コントローラ１６０は、ユーザ１９０から、仮想空間に配置されるオブジェクトの位置や動きを制御するための操作を受け付ける。
【００４７】
ある態様において、モーションセンサ１３０は、ユーザの手に取り付けられて、ユーザの手の動きを検出する。例えば、モーションセンサ１３０は、手の回転速度、回転数等を検出する。検出された信号は、コンピュータ２００に送られる。モーションセンサ１３０は、例えば、手袋型のコントローラ１６０に設けられる。ある実施形態において、現実空間における安全のため、コントローラ１６０は、手袋型のようにユーザ１９０の手に装着されることにより容易に飛んで行かないものに装着されるのが望ましい。別の態様において、ユーザ１９０に装着されないセンサがユーザ１９０の手の動きを検出してもよい。ユーザ１９０の身体の様々な部分の位置、向き、動きの方向、動きの距離などを検知する光学式センサが用いられてもよい。例えば、ユーザ１９０を撮影するカメラの信号が、ユーザ１９０の動作を表す信号として、コンピュータ２００に入力されてもよい。モーションセンサ１３０とコンピュータ２００とは、一例として、無線により互いに接続される。無線の場合、通信形態は特に限られず、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）その他の公知の通信手法が用いられる。
【００４８】
図２を参照して、本開示の実施形態に係るコンピュータ２００について説明する。図２は、本開示の一実施形態によるコンピュータ２００の基本的なハードウェア構成の例を表すブロック図である。コンピュータ２００は、主たる構成要素として、プロセッサ２０２と、メモリ２０４と、ストレージ２０６と、入出力インターフェース２０８と、通信インターフェース２１０とを備える。各構成要素は、それぞれ、バス２１２に接続される。
【００４９】
プロセッサ２０２は、コンピュータ２００に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ２０４又はストレージ２０６に格納されているプログラムに含まれる一連の命令を実行する。ある態様において、プロセッサ２０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のデバイスとして実現される。
【００５０】
メモリ２０４は、プログラム及びデータを一時的に保存する。プログラムは、例えば、ストレージ２０６からロードされる。データは、コンピュータ２００に入力されたデータと、プロセッサ２０２によって生成されたデータとを含む。ある態様において、メモリ２０４は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリとして実現される。
【００５１】
ストレージ２０６は、プログラム及びデータを永続的に保持する。ストレージ２０６は、例えば、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ハードディスク装置、フラッシュメモリ等の不揮発性記憶装置として実現される。ストレージ２０６に格納されるプログラムは、ＨＭＤシステム１００において仮想空間を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、他のコンピュータ２００との通信を実現するためのプログラム等を含む。ストレージ２０６に格納されるデータは、仮想空間を規定するためのデータ及びオブジェクト等を含む。
【００５２】
別の態様において、ストレージ２０６は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに別の態様において、コンピュータ２００に内蔵されたストレージ２０６の代わりに、外部の記憶装置に保存されているプログラム及びデータを使用する構成が使用されてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のＨＭＤシステム１００が使用される場面において、プログラムやデータの更新を一括して行なうことが可能になる。
【００５３】
ある実施形態において、入出力インターフェース２０８は、ＨＭＤ１１０、ＨＭＤセンサ１２０及びモーションセンサ１３０との間で信号を通信する。ある態様において、入出力インターフェース２０８は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ、ＵＳＢ）、ＤＶＩ（Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）、ＨＤＭＩ（登録商標）（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）等の端子を用いて実現される。なお、入出力インターフェース２０８は上述のものに限られない。
【００５４】
ある実施形態において、入出力インターフェース２０８は、さらに、コントローラ１６０と通信し得る。例えば、入出力インターフェース２０８は、コントローラ１６０及びモーションセンサ１３０から出力された信号の入力を受ける。別の態様において、入出力インターフェース２０８は、プロセッサ２０２から出力された命令を、コントローラ１６０に送る。当該命令は、振動、音声出力、発光等をコントローラ１６０に指示する。コントローラ１６０は、当該命令を受信すると、その命令に応じて、振動、音声出力、発光等を実行する。
【００５５】
通信インターフェース２１０は、ネットワーク１９２に接続され、ネットワーク１９２に接続されている他のコンピュータ（例えば、サーバ１５０）と通信する。ある態様において、通信インターフェース２１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の有線通信インターフェース、あるいは、ＷｉＦｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＮＦＣ（Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）等の無線通信インターフェースとして実現される。なお、通信インターフェース２１０は上述のものに限られない。
【００５６】
ある態様において、プロセッサ２０２は、ストレージ２０６にアクセスし、ストレージ２０６に格納されている１つ以上のプログラムをメモリ２０４にロードし、当該プログラムに含まれる一連の命令を実行する。当該１つ以上のプログラムは、コンピュータ２００のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ２０２は、入出力インターフェース２０８を介して、仮想空間を提供するための信号をＨＭＤ１１０に送る。ＨＭＤ１１０は、その信号に基づいて表示部１１２に映像を表示する。
【００５７】
図２に示される例では、コンピュータ２００は、ＨＭＤ１１０の外部に設けられている。しかし、別の態様において、コンピュータ２００は、ＨＭＤ１１０に内蔵されてもよい。一例として、表示部１１２を含む携帯型の情報通信端末（例えば、スマートフォン）がコンピュータ２００として機能してもよい。
【００５８】
また、コンピュータ２００は、複数のＨＭＤ１１０に共通して用いられる構成であってもよい。このような構成によれば、例えば、複数のユーザに同一の仮想空間を提供することもできるので、各ユーザは同一の仮想空間で他のユーザと同一のアプリケーションを楽しむことができる。
【００５９】
ある実施形態において、ＨＭＤシステム１００では、グローバル座標系が予め設定されている。グローバル座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、ならびに、鉛直方向及び水平方向の双方に直交する前後方向にそれぞれ平行な、３つの基準方向（軸）を有する。本実施形態では、グローバル座標系は視点座標系の１つである。そこで、グローバル座標系における水平方向、鉛直方向（上下方向）、及び前後方向は、それぞれ、ｘ軸、ｙ軸、ｚ軸として規定される。より具体的には、グローバル座標系において、ｘ軸は現実空間の水平方向に平行である。ｙ軸は、現実空間の鉛直方向に平行である。ｚ軸は現実空間の前後方向に平行である。
【００６０】
ある態様において、ＨＭＤセンサ１２０は、赤外線センサを含む。赤外線センサが、ＨＭＤ１１０の各光源から発せられた赤外線をそれぞれ検出すると、ＨＭＤ１１０の存在を検出する。ＨＭＤセンサ１２０は、さらに、各点の値（グローバル座標系における各座標値）に基づいて、ＨＭＤ１１０を装着したユーザ１９０の動きに応じた、現実空間内におけるＨＭＤ１１０の位置及び傾きを検出する。より詳しくは、ＨＭＤセンサ１２０は、経時的に検出された各値を用いて、ＨＭＤ１１０の位置及び傾きの時間的変化を検出できる。
【００６１】
グローバル座標系は現実空間の座標系と平行である。したがって、ＨＭＤセンサ１２０によって検出されたＨＭＤ１１０の各傾きは、グローバル座標系におけるＨＭＤ１１０の３軸周りの各傾きに相当する。ＨＭＤセンサ１２０は、グローバル座標系におけるＨＭＤ１１０の傾きに基づき、ｕｖｗ視野座標系をＨＭＤ１１０に設定する。ＨＭＤ１１０に設定されるｕｖｗ視野座標系は、ＨＭＤ１１０を装着したユーザ１９０が仮想空間において物体を見る際の視点座標系に対応する。
【００６２】
図３を参照して、ｕｖｗ視野座標系について説明する。図３は、ある実施形態に従うＨＭＤ１１０に設定されるｕｖｗ視野座標系を概念的に表す図である。ＨＭＤセンサ１２０は、ＨＭＤ１１０の起動時に、グローバル座標系におけるＨＭＤ１１０の位置及び傾きを検出する。プロセッサ２０２は、検出された値に基づいて、ｕｖｗ視野座標系をＨＭＤ１１０に設定する。
【００６３】
図３に示されるように、ＨＭＤ１１０は、ＨＭＤ１１０を装着したユーザの頭部を中心（原点）とした３次元のｕｖｗ視野座標系を設定する。より具体的には、ＨＭＤ１１０は、グローバル座標系を規定する水平方向、鉛直方向、及び前後方向（ｘ軸、ｙ軸、ｚ軸）を、グローバル座標系内においてＨＭＤ１１０の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる３つの方向を、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ方向（ｕ軸）、ヨー方向（ｖ軸）、及びロール方向（ｗ軸）として設定する。
【００６４】
ある態様において、ＨＭＤ１１０を装着したユーザ１９０が直立し、かつ、正面を視認している場合、プロセッサ２０２は、グローバル座標系に平行なｕｖｗ視野座標系をＨＭＤ１１０に設定する。この場合、グローバル座標系における水平方向（ｘ軸）、鉛直方向（ｙ軸）、及び前後方向（ｚ軸）は、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ方向（ｕ軸）、ヨー方向（ｖ軸）及びロール方向（ｗ軸）に一致する。
【００６５】
ｕｖｗ視野座標系がＨＭＤ１１０に設定された後、ＨＭＤセンサ１２０は、ＨＭＤ１１０の動きに基づいて、設定されたｕｖｗ視野座標系におけるＨＭＤ１１０の傾き（傾きの変化量）を検出できる。この場合、ＨＭＤセンサ１２０は、ＨＭＤ１１０の傾きとして、ｕｖｗ視野座標系におけるＨＭＤ１１０のピッチ角（θｕ）、ヨー角（θｖ）及びロール角（θｗ）をそれぞれ検出する。ピッチ角（θｕ）は、ｕｖｗ視野座標系におけるピッチ方向周りのＨＭＤ１１０の傾き角度を表す。ヨー角（θｖ）は、ｕｖｗ視野座標系におけるヨー方向周りのＨＭＤ１１０の傾き角度を表す。ロール角（θｗ）は、ｕｖｗ視野座標系におけるロール方向周りのＨＭＤ１１０の傾き角度を表す。
【００６６】
ＨＭＤセンサ１２０は、検出されたＨＭＤ１１０の傾き角度に基づいて、ＨＭＤ１１０が動いた後のＨＭＤ１１０におけるｕｖｗ視野座標系を、ＨＭＤ１１０に設定する。ＨＭＤ１１０と、ＨＭＤ１１０のｕｖｗ視野座標系との関係は、ＨＭＤ１１０の位置及び傾きに関わらず、常に一定である。ＨＭＤ１１０の位置及び傾きが変わると、当該位置及び傾きの変化に連動して、グローバル座標系におけるＨＭＤ１１０のｕｖｗ視野座標系の位置及び傾きが変化する。
【００６７】
ある態様において、ＨＭＤセンサ１２０は、赤外線センサからの出力に基づいて取得される赤外線の光強度及び複数の点間の相対的な位置関係（例えば、各点間の距離等）に基づいて、ＨＭＤ１１０の現実空間内における位置を、ＨＭＤセンサ１２０に対する相対位置として特定してもよい。また、プロセッサ２０２は、特定された相対位置に基づいて、現実空間内（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系の原点を決定してもよい。
【００６８】
図４を参照して、仮想空間についてさらに説明する。図４は、ある実施形態に従う仮想空間４００を表現する一態様を概念的に表す図である。仮想空間４００は、中心４０６の３６０度方向の全体を覆う全天球状の構造を有する。図４では、説明を複雑にしないために、仮想空間４００のうちの上半分の天球が例示されている。仮想空間４００では各メッシュが規定される。各メッシュの位置は、仮想空間４００に規定されるＸＹＺ座標系における座標値として予め規定されている。コンピュータ２００は、仮想空間４００に展開可能なコンテンツ（静止画、動画等）を構成する各部分画像を、仮想空間４００において対応する各メッシュにそれぞれ対応付けて、ユーザによって視認可能な仮想空間画像が展開される仮想空間４００をユーザに提供する。
【００６９】
ある態様において、仮想空間４００では、中心４０６を原点とするｘｙｚ座標系が規定される。ｘｙｚ座標系は、例えば、グローバル座標系に平行である。ｘｙｚ座標系は視点座標系の一種であるため、ｘｙｚ座標系における水平方向、鉛直方向（上下方向）及び前後方向は、それぞれｘ軸、ｙ軸及びｚ軸として規定される。したがって、ｘｙｚ座標系のｘ軸（水平方向）がグローバル座標系のｘ軸と平行であり、ｘｙｚ座標系のｙ軸（鉛直方向）がグローバル座標系のｙ軸と平行であり、ｘｙｚ座標系のｚ軸（前後方向）がグローバル座標系のｚ軸と平行である。
【００７０】
ＨＭＤ１１０の起動時、すなわちＨＭＤ１１０の初期状態において、仮想カメラ４０４が、仮想空間４００の中心４０６に配置される。ある態様において、プロセッサ２０２は、仮想カメラ４０４が撮影する画像をＨＭＤ１１０の表示部１１２に表示する。仮想カメラ４０４は、現実空間におけるＨＭＤ１１０の動きに連動して、仮想空間４００を同様に移動する。これにより、現実空間におけるＨＭＤ１１０の位置及び向きの変化が、仮想空間４００において同様に再現され得る。
【００７１】
ＨＭＤ１１０の場合と同様に、仮想カメラ４０４には、ｕｖｗ視野座標系が規定される。仮想空間４００における仮想カメラ４０４のｕｖｗ視野座標系は、現実空間（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系に連動するように規定される。したがって、ＨＭＤ１１０の傾きが変化すると、それに応じて、仮想カメラ４０４の傾きも変化する。また、仮想カメラ４０４は、ＨＭＤ１１０を装着したユーザの現実空間における移動に連動して、仮想空間４００において移動することもできる。
【００７２】
コンピュータ２００のプロセッサ２０２は、仮想カメラ４０４の配置位置と、基準視線４０８とに基づいて、仮想空間４００における視認領域４１０を規定する。視認領域４１０は、仮想空間４００のうち、ＨＭＤ１１０を装着したユーザが視認する領域に対応する。
【００７３】
注視センサ１４０によって検出されるユーザ１９０の視線は、ユーザ１９０が物体を視認する際の視点座標系における方向である。ＨＭＤ１１０のｕｖｗ視野座標系は、ユーザ１９０が表示部１１２を視認する際の視点座標系に等しい。また、仮想カメラ４０４のｕｖｗ視野座標系は、ＨＭＤ１１０のｕｖｗ視野座標系に連動している。したがって、ある態様に従うＨＭＤシステム１００は、注視センサ１４０によって検出されたユーザ１９０の視線を、仮想カメラ４０４のｕｖｗ視野座標系におけるユーザの視線とみなすことができる。
【００７４】
図５を参照して、ユーザの視線の決定について説明する。図５は、ある実施形態に従うＨＭＤ１１０を装着するユーザ１９０の頭部を上から表した図である。
【００７５】
ある態様において、注視センサ１４０は、ユーザ１９０の右目及び左目の各視線を検出する。ある態様において、ユーザ１９０が近くを見ている場合、注視センサ１４０は、視線Ｒ１及びＬ１を検出する。別の態様において、ユーザ１９０が遠くを見ている場合、注視センサ１４０は、視線Ｒ２及びＬ２を検出する。この場合、ロール方向ｗに対して視線Ｒ２及びＬ２がなす角度は、ロール方向ｗに対して視線Ｒ１及びＬ１がなす角度よりも小さい。注視センサ１４０は、検出結果をコンピュータ２００に送信する。
【００７６】
コンピュータ２００が、視線の検出結果として、視線Ｒ１及びＬ１の検出値を注視センサ１４０から受信した場合には、その検出値に基づいて、視線Ｒ１及びＬ１の交点である注視点Ｎ１を特定する。一方、コンピュータ２００は、視線Ｒ２及びＬ２の検出値を注視センサ１４０から受信した場合には、視線Ｒ２及びＬ２の交点を注視点として特定する。コンピュータ２００は、特定した注視点Ｎ１の位置に基づき、ユーザ１９０の視線Ｎ０を特定する。コンピュータ２００は、例えば、ユーザ１９０の右目Ｒと左目Ｌとを結ぶ直線の中点と、注視点Ｎ１とを通る直線の延びる方向を、視線Ｎ０として検出する。視線Ｎ０は、ユーザ１９０が両目により実際に視線を向けている方向である。また、視線Ｎ０は、視認領域４１０に対してユーザ１９０が実際に視線を向けている方向に相当する。
【００７７】
別の態様において、ＨＭＤシステム１００は、ＨＭＤシステム１００を構成するいずれかの部分に、マイク及びスピーカを備えてもよい。ユーザは、マイクに発話することにより、仮想空間４００に対して、音声による指示を与えることができる。
【００７８】
また、別の態様において、ＨＭＤシステム１００は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、ＨＭＤシステム１００は、仮想空間４００においてテレビ番組を表示することができる。
【００７９】
さらに別の態様において、ＨＭＤシステム１００は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。
【００８０】
図６及び図７を参照して、視認領域４１０について説明する。図６は、仮想空間４００において視認領域４１０をｘ方向から見たｙｚ断面を表す図である。図７は、仮想空間４００において視認領域４１０をｙ方向から見たｘｚ断面を表す図である。
【００８１】
図６に示されるように、ｙｚ断面における視認領域４１０は、領域６０２を含む。領域６０２は、仮想カメラ４０４の配置位置と基準視線４０８と仮想空間４００のｙｚ断面とによって定義される。プロセッサ２０２は、仮想空間おける基準視線４０８を中心として極角αを含む範囲を、領域６０２として規定する。
【００８２】
図７に示されるように、ｘｚ断面における視認領域４１０は、領域７０２を含む。領域７０２は、仮想カメラ４０４の配置位置と基準視線４０８と仮想空間４００のｘｚ断面とによって定義される。プロセッサ２０２は、仮想空間４００における基準視線４０８を中心とした方位角βを含む範囲を、領域７０２として規定する。極角α及びβは、仮想カメラ４０４の配置位置と仮想カメラ４０４の向きとに応じて定まる。
【００８３】
ある態様において、ＨＭＤシステム１００は、コンピュータ２００からの信号に基づいて、視界画像を表示部１１２に表示させることにより、仮想空間における視界をユーザ１９０に提供する。視界画像は、仮想空間画像４０２のうち視認領域４１０に重畳する部分に相当する。ユーザ１９０が、頭に装着したＨＭＤ１１０を動かすと、その動きに連動して仮想カメラ４０４も動く。その結果、仮想空間４００における視認領域４１０の位置が変化する。これにより、表示部１１２に表示される視界画像は、仮想空間画像４０２のうち、仮想空間４００においてユーザが向いた方向の視認領域４１０に重畳する画像に更新される。ユーザは、仮想空間４００における所望の方向を視認することができる。
【００８４】
このように、仮想カメラ４０４の向き（傾き）は仮想空間４００におけるユーザの視線（基準視線４０８）に相当し、仮想カメラ４０４が配置される位置は、仮想空間４００におけるユーザの視点に相当する。したがって、仮想カメラ４０４を移動（配置位置を変える動作、向きを変える動作を含む）させることにより、表示部１１２に表示される画像が更新され、ユーザ１９０の視界（視点、視線を含む）が移動される。
【００８５】
ユーザ１９０は、ＨＭＤ１１０を装着している間、現実世界を視認することなく、仮想空間４００に展開される仮想空間画像４０２のみを視認できる。そのため、ＨＭＤシステム１００は、仮想空間４００への高い没入感覚をユーザに与えることができる。
【００８６】
ある態様において、プロセッサ２０２は、ＨＭＤ１１０を装着したユーザ１９０の現実空間における移動に連動して、仮想空間４００において仮想カメラ４０４を移動し得る。この場合、プロセッサ２０２は、仮想空間４００における仮想カメラ４０４の位置及び向きに基づいて、ＨＭＤ１１０の表示部１１２に投影される画像領域（すなわち、仮想空間４００における視認領域４１０）を特定する。
【００８７】
ある実施形態に従うと、仮想カメラ４０４は、２つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含んでもよい。また、ユーザ１９０が３次元の仮想空間４００を認識できるように、適切な視差が、２つの仮想カメラに設定されてもよい。
【００８８】
図８を参照して、コントローラ１６０の一例について説明する。図８は、ある実施形態に従うコントローラ１６０の概略構成を表す図である。
【００８９】
ある態様において、コントローラ１６０は、右コントローラと左コントローラとを含み得る。説明を簡単にするために、図８には右コントローラ８００のみが示される。右コントローラ８００は、ユーザ１９０の右手で操作される。左コントローラは、ユーザ１９０の左手で操作される。ある態様において、右コントローラ８００と左コントローラとは、別個の装置として対称に構成される。したがって、ユーザ１９０は、右コントローラ８００を把持した右手と、左コントローラを把持した左手とをそれぞれ自由に動かすことができる。別の態様において、コントローラ１６０は両手の操作を受け付ける一体型のコントローラであってもよい。以下、右コントローラ８００について説明する。
【００９０】
右コントローラ８００は、グリップ８０２と、フレーム８０４と、天面８０６とを備える。グリップ８０２は、ユーザ１９０の右手によって把持されるように構成されている。例えば、グリップ８０２は、ユーザ１９０の右手の掌と３本の指（中指、薬指、小指）とによって保持され得る。
【００９１】
グリップ８０２は、ボタン８０８及び８１０と、モーションセンサ１３０とを含む。ボタン８０８は、グリップ８０２の側面に配置され、右手の中指による操作を受け付ける。ボタン８１０は、グリップ８０２の前面に配置され、右手の人差し指による操作を受け付ける。ある態様において、ボタン８０８、８１０は、トリガー式のボタンとして構成される。モーションセンサ１３０は、グリップ８０２の筐体に内蔵されている。なお、ユーザ１９０の動作がカメラその他の装置によってユーザ１９０の周りから検出可能である場合には、グリップ８０２は、モーションセンサ１３０を備えなくてもよい。
【００９２】
フレーム８０４は、その円周方向に沿って配置された複数の赤外線ＬＥＤ８１２を含む。赤外線ＬＥＤ８１２は、コントローラ１６０を使用するプログラムの実行中に、当該プログラムの進行に合わせて赤外線を発光する。赤外線ＬＥＤ８１２から発せられた赤外線は、右コントローラ８００と左コントローラ（図示しない）との各位置や姿勢（傾き、向き）を検出するために使用され得る。図８に示される例では、２列に配置された赤外線ＬＥＤ８１２が示されているが、配列の数は図８に示されるものに限られない。１列あるいは３列以上の配列が使用されてもよい。
【００９３】
天面８０６は、ボタン８１４及び８１６と、アナログスティック８１８とを備える。ボタン８１４及び８１６は、プッシュ式ボタンとして構成される。ボタン８１４及び８１６は、ユーザ１９０の右手の親指による操作を受け付ける。アナログスティック８１８は、ある態様において、初期位置（ニュートラルの位置）から３６０度任意の方向への操作を受け付ける。当該操作は、例えば、仮想空間４００に配置されるオブジェクトを移動するための操作を含む。
【００９４】
ある態様において、右コントローラ８００及び左コントローラは、赤外線ＬＥＤ８１２等の部材を駆動するための電池を含む。電池は、１次電池及び２次電池のいずれであってもよく、その形状は、ボタン型、乾電池型等任意であり得る。別の態様において、右コントローラ８００と左コントローラは、例えば、コンピュータ２００のＵＳＢインターフェースに接続され得る。この場合、右コントローラ８００及び左コントローラは、ＵＳＢインターフェースを介して電力を供給され得る。
【００９５】
図９は、本開示の一実施形態による、ＨＭＤシステム１００における仮想空間４００の表示処理等を実現するための、コンピュータ２００の機能を示すブロック図である。コンピュータ２００は、主にＨＭＤセンサ１２０、モーションセンサ１３０、注視センサ１４０、コントローラ１６０からの入力に基づいて、表示部１１２への画像出力を制御する。
【００９６】
コンピュータ２００は、プロセッサ２０２と、メモリ２０４と、通信制御部２０５とを備える。プロセッサ２０２は、仮想空間特定部９０２と、ＨＭＤ動作検知部９０３と、視線検知部９０４と、基準視線決定部９０６と、視界領域決定部９０８と、仮想視点特定部９１０と、視界画像生成部９１２と、オブジェクト制御部９１４と、動作モード切り替え部９１６と、選択判定部９１８と、仮想視点制御部９２０と、動き判定部９２２と、仮想カメラ制御部９２４と、視界画像出力部９２６とを含み得る。メモリ２０４は様々な情報を格納するように構成され得る。一例では、メモリ２０４は、仮想空間データ９２８、オブジェクトデータ９３０、アプリケーションデータ９３２、その他のデータ９３４を含んでもよい。メモリ２０４はまた、ＨＭＤセンサ１２０、モーションセンサ１３０、注視センサ１４０、コントローラ１６０等からの入力に対応した出力情報を、ＨＭＤ１１０に関連付けられる表示部１１２へ提供するための演算に必要な各種データを含んでもよい。オブジェクトデータ９３０は、仮想空間内に配置される操作オブジェクト、対象オブジェクト等に関するデータを含んでもよい。表示部１１２は、ＨＭＤ１１０に内蔵されてもよいし、ＨＭＤ１１０に取り付け可能な別のデバイス（例えば、スマートフォン）のディスプレイであってもよい。
【００９７】
図９においてプロセッサ２０２内に含まれるコンポーネントは、プロセッサ２０２が実行する機能を具体的なモジュールとして表現する１つの例にすぎない。複数のコンポーネントの機能が単一のコンポーネントによって実現されてもよい。プロセッサ２０２がすべてのコンポーネントの機能を実行するように構成されてもよい。
【００９８】
図１０は、ユーザが没入する仮想空間の画像を表示部１１２に表示するための一般的な処理のフロー図である。
【００９９】
図９及び図１０を参照して、仮想空間の画像を提供するためのＨＭＤシステム１００の一般的な処理を説明する。仮想空間４００は、ＨＭＤセンサ１２０、注視センサ１４０及びコンピュータ２００等の相互作用によって提供され得る。
【０１００】
処理はステップ１００２において開始する。一例として、アプリケーションデータに含まれるゲームアプリケーションがコンピュータ２００によって実行されてもよい。ステップ１００４において、プロセッサ２０２（仮想空間特定部９０２）は、仮想空間データ９２８を参照するなどして、ユーザが没入する仮想空間４００を構成する天球状の仮想空間画像４０２を生成する。ＨＭＤセンサ１２０によってＨＭＤ１１０の位置や傾きが検知される。ＨＭＤセンサ１２０によって検知された情報はコンピュータ２００に送信される。ステップ１００６において、ＨＭＤ動作検知部９０３は、ＨＭＤ１１０の位置情報や傾き情報を取得する。ステップ１００８において、取得された位置情報及び傾き情報に基づいて視界方向が決定される。
【０１０１】
注視センサ１４０がユーザの左右の目の眼球の動きを検出すると、当該情報がコンピュータ２００に送信される。ステップ１０１０において、視線検知部９０４は、右目及び左目の視線が向けられる方向を特定し、視線方向Ｎ０を決定する。ステップ１０１２において、基準視線決定部９０６は、ＨＭＤ１１０の傾きにより決定された視界方向又はユーザの視線方向Ｎ０を基準視線４０８として決定する。基準視線４０８はまた、ＨＭＤ１１０の位置や傾きに追随する仮想カメラ４０４の位置及び傾きに基づいて決定されてもよい。
【０１０２】
ステップ１０１４において、視界領域決定部９０８は、仮想空間４００における仮想カメラ４０４の視界領域４１０を決定する。図４に示すように、視界領域４１０は、仮想空間画像４０２のうちユーザの視界を構成する部分である。視界領域４１０は基準視線４０８に基づいて決定される。視界領域４１０をｘ方向から見たｙｚ断面図及び視界領域４１０をｙ方向から見たｘｚ断面図は、既に説明した図６及び図７にそれぞれ示されている。
【０１０３】
ステップ１０１６において、視界画像生成部９１２は、視界領域４１０に基づいて視界画像を生成する。視界画像は、右目用と左目用の２つの２次元画像を含む。これらの２次元画像が表示部１１２に重畳される（より具体的には、右目用画像が右目用表示部に出力され、左目用画像が左目用表示部に出力される）ことにより、３次元画像としての仮想空間４００がユーザに提供される。ステップ１０１８において、視界画像出力部９２６は、視界画像に関する情報を表示部１１２に出力する。表示部１１２は、受信した視界画像の情報に基づいて、当該視界画像を表示する。処理はステップ１０２０において終了する。
【０１０４】
図１１は、本開示の一実施形態による方法１１００のフローチャートである。本開示の一実施形態において、コンピュータプログラムが、図１１に示される各ステップをプロセッサ２０２（又はコンピュータ２００）に実行させてもよい。また、本開示の別の実施形態は、方法１１００を実行するプロセッサ２０２（又はコンピュータ２００）として実施することができる。
【０１０５】
以下、本開示の実施形態について具体的に説明する。ここでは、本開示の実施形態を適用することができる具体例として、複数のユーザが、各ユーザのアバター、ゲームフィールド、当該ゲームフィールド内で行動する各ユーザのユニット等が配置された仮想空間に没入して楽しむことができるゲームを想定する。しかし、本開示の実施形態は、必ずしもこのような態様に限定されない。本開示の実施形態が、特許請求の範囲において規定される範囲に含まれる様々な態様を取り得ることは、当業者にとって明らかであろう。
【０１０６】
図１２は、本実施形態において想定されるゲームの態様を概略的に説明する図である。この例では、２人のユーザ１２１２Ａ及び１２１２Ｂ（以下、まとめて「ユーザ１２１２」とも呼ぶ）が当該ゲームをプレイする。ユーザ１２１２Ａ及び１２１２Ｂは、それぞれ、ＨＭＤ１１０Ａ及び１１０Ｂ（以下、まとめて「ＨＭＤ１１０」とも呼ぶ）を頭部に装着し、さらにコントローラ１６０Ａ及び１６０Ｂ（以下、まとめて「コントローラ１６０」とも呼ぶ）を装着する。一例では、コントローラ１６０は、図８に関して上述した構成を有する。この場合、各ユーザは当該コントローラを両手に装着する。但し、これはコントローラ１６０の例にすぎない。ユーザの身体の他の部分に装着可能な様々な態様のコントローラを本開示の実施形態に適用することができる。
【０１０７】
仮想空間１２００内には、ユーザ１２１２Ａ及び１２１２Ｂのそれぞれによって操作されるアバター１２１４Ａ及び１２１４Ｂ（以下、まとめて「アバター１２１４」とも呼ぶ）並びにゲームフィールド１２２２が配置される。ゲームフィールド１２２２上には、ユーザ１２１２Ａ及び１２１２Ｂの各々が有するユニット１２１６Ａ及び１２１６Ｂ（以下、まとめて「ユニット１２１６」とも呼ぶ）、基地１２２４Ａ及び１２２４Ｂ（以下、まとめて「基地１２２４」とも呼ぶ）等が配置される。ゲームのプレイ中、ユーザ１２１２は、自分のユニット１２１６が相手ユーザの基地１２２４に到達することができるように、様々な操作を行う。
【０１０８】
ユーザ１２１２は、アバター１２１４を介して、仮想空間１２２０内のゲームフィールド１２２２上で行われるゲームを楽しむことができる。アバター１２１４Ａ及び１２１４Ｂは、それぞれ、操作オブジェクト１２２０Ａ及び１２２０Ｂ（以下、まとめて「操作オブジェクト１２２０」とも呼ぶ）を有する。基本的に、操作オブジェクト１２２０は、コントローラ１６０が装着されたユーザ１２１２の身体の一部に対応する、アバター１２１４の身体の一部である。例えば、操作オブジェクト１２２０は、アバター１２１４の手である。これは操作オブジェクト１２２０の一例にすぎない。操作オブジェクト１２２０は、アバター１２１４の身体の別の部分であってもよい。例えば、コントローラ１６０が、ユーザ１２１２の足に装着されるように構成される場合、操作オブジェクト１２２０はアバター１２１４の足であってもよい。
【０１０９】
図１２に示されるように、アバター１２１４Ａ及び１２１４Ｂの位置にそれぞれ仮想カメラ１２０４Ａ１及び１２０４Ｂ１（以下、まとめて「仮想カメラ１２０４−１」とも呼ぶ）が配置されてもよい。また、ユニット１２１６Ａ及び１２１６Ｂの位置にそれぞれ仮想カメラ１２０４Ａ２及び１２０４Ｂ２（以下、まとめて「仮想カメラ１２０４−２」とも呼ぶ）が配置されてもよい。ユーザ１２１２は、仮想カメラ１２０４−１により（アバター１２１４の視点から）得られた仮想空間１２００の映像を見ることができるだけでなく、仮想カメラ１２０４−２により（ユニット１２１６の視点から）得られた仮想空間１２００の映像を見ることもできる。
【０１１０】
図１１に戻り、処理はステップ１１０２において開始する。プロセッサ２０２は、メモリ２０４に格納されているアプリケーションデータ９３２に含まれるゲームプログラムを読み出して実行する。
【０１１１】
処理はステップ１１０４に進み、仮想空間特定部９０２は、仮想空間データ９２８、オブジェクトデータ９３０等に基づいて、実行されたゲームのための仮想空間データを特定する。当該仮想空間データは、ユーザ１２１２の身体の一部（例えば、手）に関連付けられる操作オブジェクト１２２０及び少なくとも１つの対象オブジェクトを含む仮想空間を規定する。対象オブジェクトは、ゲームに使用するカード（後述）などのゲームに関連するアイテムのほか、仮想空間１２００内に存在する椅子、棚、ランプなどの様々なオブジェクト（図示せず）を含み得る。後述するように、操作オブジェクト１２２０は、通常モード及び選択モードを含む少なくとも２つの動作モードで動かすことができる。
【０１１２】
処理はステップ１１０６に進み、仮想視点特定部９１０は、仮想空間１２００における仮想視点を特定する。図１２の例において、当該仮想視点は、仮想カメラ１２０４−１又は１２０４−２の位置であってもよい。仮想視点は、ゲームの進行状況に応じて適宜決定されてもよい。
【０１１３】
処理はステップ１１０８に進み、視界画像生成部９１２は、仮想空間データと、仮想視点と、ＨＭＤの向きとに基づいて、視界画像を生成する。視界画像は、例えば、図１０に関連して既に説明された処理によって生成される。生成された視界画像は、視界画像出力部９２６によって、ＨＭＤ１１０に関連付けられる表示部１１２に出力され、表示部１１２によって表示される。ＨＭＤ１１０を装着したユーザ１２１２は、表示部１１２に表示された当該視界画像を見ることができる。
【０１１４】
図１３は、ステップ１１０８の処理により生成される視界画像の例を示す。この例においては、アバター１２１４Ａに関連付けられる仮想カメラ１２０４Ａ１が仮想視点として設定されている。図示されるように、仮想カメラ１２０４Ａ１により取得された視界画像１３００は、ユーザ１２１２Ａのアバター１２１４Ａの操作オブジェクト（ここでは、手）１２２０Ａ、相手ユーザ１２１２Ｂのアバター１２１４Ｂ、ゲームフィールド１２２２、ゲームフィールド１２２２上のユニット１２１６Ａ及び１２１６Ｂ、基地１２２４Ａ及び１２２４Ｂ、壁１３０４、ユーザ１２１２Ａが所有しているカードなどのゲーム内で使用できるアイテム１３０２−１及び１３０２−２等を含んでいる。この例では、操作オブジェクト１２２０Ａは、左手オブジェクト１２２０Ａ１及び右手オブジェクト１２２０Ａ２を含む。ユーザ１２１２Ａは、自分が仮想空間１２００内に入り込んでゲームフィールド１２２２上で行われるゲームに参加しているかのような没入感を得ることができる。
【０１１５】
処理はステップ１１１０に進み、動き判定部９２２は、ユーザの身体の一部の状態が所定の条件を満たすか否かを判定する。当該所定の条件は様々に設定することができ、メモリ２０４内のアプリケーションデータ９３０等に含まれていてもよい。例えば、所定の条件は、ユーザ１２１２Ａがコントローラ１６０Ａ（例えば、図８に示すコントローラ８００）のボタン（例えば、ボタン８０８及び／又は８１０）を押すことによってユーザ１２１２Ａの指が曲がることであってもよい。別の例として、所定の条件は、モーションセンサ１３０により検知されるユーザの動きが特定の動きを含むことであってもよい。以下では、所定の条件が、ユーザ１２１２Ａが指でコントローラ１６０Ａのボタンを押すことによってユーザ１２１２Ａの指が曲がることであると仮定して、本実施形態を説明する。
【０１１６】
なお、本実施形態において、ユーザの身体の一部の「動き」とは、当該身体の一部の静止状態での位置、向き、動いている状態での動きの方向、動きの距離等の様々な概念を含み得る。
【０１１７】
所定の条件が満たされない場合（ステップ１１１０の「Ｎ」）、処理はステップ１１１２に進む。本実施形態において、操作オブジェクト１２２０Ａは、通常モード及び選択モードを含む少なくとも２つのモードで動かすことができる。ここで、「通常モード」とは、単に操作オブジェクト１２２０Ａを動かすことができる状態を意味してもよい。他方、「選択モード」とは、操作オブジェクト１２２０Ａを用いてアイテム１３０２−１、１３０２−２などの対象オブジェクトを掴む動作のように、操作オブジェクト１２２０Ａ以外の何らかの対象に対して影響を与えることができる状態を意味してもよい。このほか、通常モード及び選択モードは、様々に定義されてもよい。動作モードの態様に関する情報は、メモリ２０４内のアプリケーションデータ９３２等に含まれていてもよい。
【０１１８】
ステップ１１１２において、動作モード切り替え部９１６は、操作オブジェクト１２２０Ａの動作モードを通常モードに設定する。処理はステップ１１１４に進み、オブジェクト制御部９１４は、ユーザ１２１２Ａの身体の一部の動きに応じて、操作オブジェクト１２２０Ａを動かす。処理はステップ１１２４に進み、視界画像出力部９２６は、視界画像生成部９１２によって生成された視界画像を表示部１１２に出力する。
【０１１９】
ステップ１１１０において所定の条件が満たされる場合（ステップ１１１０の「Ｙ」）、処理はステップ１１１６に進む。ステップ１１１６において、動作モード切り替え部９１６は、操作オブジェクト１２２０Ａの動作モードを選択モードに設定する。
【０１２０】
図１４は、ステップ１１１６の処理によって表示部１１２に表示される視界画像の例を示す。ユーザ１２１２Ａが左手の指でコントローラ１６０Ａのうちの左コントローラのボタンを押すと、ステップ１１１０において所定の条件が満たされたと判定され、ステップ１１１６において操作オブジェクト１２２０Ａの動作モードが選択モードに設定される。この場合、図１４に示すように、オブジェクト制御部９１４は、左手オブジェクト１２２０Ａ１の形態を、手を握った状態へと変化させてもよい。
【０１２１】
処理はステップ１１１８に進み、選択判定部９１８は、操作オブジェクト１２２０Ａによって対象オブジェクトが選択されたか否かを判定する。一例として、所定の条件が満たされた状態で操作オブジェクト１２２０Ａが対象オブジェクトから所定距離の範囲内に入ったとき、当該対象オブジェクトが選択されたと判定されてもよい。対象オブジェクトが選択されたか否かの判定を様々な方法で行うことができることは、当業者にとって明らかであろう。
【０１２２】
対象オブジェクトが選択されていないと判定された場合（ステップ１１１８の「Ｎ」）、処理はステップ１１２０に進む。ステップ１１２０において、仮想視点制御部９２０は、選択モードの継続中、ユーザ１２１２Ａの身体の一部の動き又は操作オブジェクト１２２０Ａの動きに基づいて、仮想視点（例えば、仮想カメラ１２０４Ａ１の位置）を動かす。処理はステップ１１２４に進み、視界画像出力部９２６は、仮想視点の動きに基づいて生成された視界画像を表示部１１２に出力する。
【０１２３】
図１５は、ステップ１１１８及び１１２０の処理によって表示部１１２に表示される視界画像の例を示す。選択モードの継続中、対象オブジェクトが選択されていないときにユーザ１２１２Ａが左手を後ろに引くと、モーションセンサ１３０はこの動きを検知する。オブジェクト制御部９１４は、検知された動きに基づいて、図１４において矢印で示されるように、左手オブジェクト１２２０Ａ１を後ろに動かす。仮想視点制御部９２０は、ユーザ１２１２Ａの左手の動き又は左手オブジェクト１２２０Ａ１の動きに基づいて、仮想視点を所定の方法で動かす。例えば、仮想視点制御部９２０は、左手又は左手オブジェクト１２２０Ａ１が後ろに動いたことに応答して、仮想視点を前方に動かしてもよい。この場合、前方に移動した仮想視点に基づいて、図１５に示す視界画像１５００が生成される。本実施形態によれば、自分の身体の一部の動きによって仮想空間１２００内を自由に移動できるという仮想体験をユーザに提供することができる。
【０１２４】
図１１に戻り、ステップ１１１８において対象オブジェクトが選択されたと判定された場合（ステップ１１１８の「Ｙ」）、処理はステップ１１２２に進む。ステップ１１２２において、仮想視点制御部９２０は、選択モードの継続中、ユーザ１２１２Ａの身体の一部の動き又は操作オブジェクト１２２０Ａの動きに基づいて、選択された対象オブジェクトを動かす。処理はステップ１１２４に進み、視界画像出力部９２６は、仮想視点の動きに基づいて生成された視界画像を表示部１１２に出力する。
【０１２５】
図１６は、対象オブジェクトが選択されたと判定されたときに表示部１１２に表示される視界画像の例を示す。選択モードの継続中、左手オブジェクト１２２０Ａ１がカード１３０２−２に重なるようにユーザが左手を動かすと、モーションセンサ１３０はこの動きを検知する。オブジェクト制御部９１４は、検知された動きに基づいて、図１６に示されるように、左手オブジェクト１２２０Ａ１によってカード１３０２−２を掴ませる。結果として、視界画像１６００が表示部１１２に表示される。
【０１２６】
図１７は、ステップ１１２２の処理によって表示部１１２に表示される視界画像の例を示す。ユーザ１２１２Ａが左手を右斜め前方に動かすと、モーションセンサ１３０はこの動きを検知する。オブジェクト制御部９１４は、検知された動きに基づいて、図１６において矢印で示されるように左手オブジェクト１２２０Ａ１及び対象オブジェクト１３０２−２を動かす。このとき、仮想視点制御部９２０は、仮想視点をまったく動かさなくてもよいし、多少動かしてもよい。結果として、図１７に示す視界画像１７００が生成され、表示部１１２に表示される。
【０１２７】
図１８は、ステップ１１２０における処理の例を模式的に示す図である。この例では、ユーザ１２１２Ａの左手の動き又はそれに応じた左手オブジェクト１２２０Ａ１の動きが、矢印で示されるように、視野の外部と内部とにまたがってなされている。このように、視野のロール軸に対する、ユーザの身体の一部の動き又は操作オブジェクトの動きの角度が、視野角の半分より大きい場合、仮想視点制御部９２０は、仮想視点の移動速度をゼロにするか、又は、当該動きが視野内でなされるときより低減してもよい。これにより、ＨＭＤ１１０Ａを装着したユーザ１２１２Ａの脳にとって予想しにくい視点移動を避けることができ、ユーザ１２１２Ａの酔いを防止することができる。同様の目的で、仮想視点制御部９２０は、ユーザの身体の一部の動き又は操作オブジェクトの動きのうち視野のロール軸に直交する方向の成分の少なくとも１つに基づく、仮想視点の移動速度の当該方向の成分を、ゼロにするか又は低減してもよい。例えば、プロセッサ２０２は、モーションセンサ１３０によって検知されたユーザ１２１２Ａの左手の動きに基づく左手オブジェクト１２２０Ａ１の動きの大きさを、ピッチ方向成分、ヨー方向成分及びロール方向成分に分解してもよい。仮想視点制御部９２０は、ピッチ方向成分及びヨー方向成分の動きに基づく、仮想視点の移動速度のこれらの方向の成分を、ゼロにするか又は実際の大きさより低減してもよい。
【０１２８】
図１９は、ステップ１１２０における処理の例を模式的に示す図である。この例では、ユーザ１２１２Ａが、右手及び左手にそれぞれ装着された右コントローラ及び左コントローラの両方の所定のボタンを押すことにより、左手オブジェクト１２２０Ａ１及び右手オブジェクト１２２０Ａ２の両方の動作モードが選択モードに設定されている。この状態において、モーションセンサ１３０によって右手及び左手の動きが検知された場合、仮想視点制御部９２０は、右手及び左手のうち先に動いた手の動き又は当該先に動いた手に対応する操作オブジェクトの動きに基づいて、仮想視点を動かしてもよい。
【０１２９】
ステップ１１２０において、仮想視点制御部９２０は、上述の例以外の様々な方法で仮想視点を移動させてもよい。一例では、選択モードにおいて、ユーザの身体の一部又は操作オブジェクトの連続的な動きが検知された場合、仮想視点制御部９２０は、仮想視点の移動速度を徐々に増加させてもよい。この例において、動き判定部９２２は、ある動きが検知された後、所定時間内に次の動きが検知された場合に、連続的な動きがなされたと判定してもよい。あるいは、動き判定部９２２は、所定時間内に所定回数以上の動きが検知された場合に、連続的な動きがなされたと判定してもよい。
【０１３０】
別の例において、仮想視点制御部９２０は、上記の連続的な動きの中の１つの動きに応じた仮想視点の移動速度を、該１つの動きの前に行われた動きに応じた仮想視点の移動速度に比べて増加させてもよい。
【０１３１】
別の例において、仮想視点制御部９２０は、連続的な動きに含まれる動きが一定速度以上の動きである場合、及び／又は、連続的な動きに含まれる複数の動きが一定時間間隔より小さい時間間隔を空けて行われる場合に、仮想視点の移動速度を増加させてもよい。
【０１３２】
別の例において、仮想視点制御部９２０は、連続的な動きに含まれる１つの動きが一定速度以上の動き及び／又は一定距離以上の動きである場合に、該１つの動きが行われている間、仮想視点の移動速度を徐々に上げてもよい。
【０１３３】
図２０は、ステップ１１２０における処理の例を模式的に示す図である。ユーザ１２１２Ａが右コントローラ及び左コントローラの両方の所定のボタンを押すことにより、左手オブジェクト１２２０Ａ１及び右手オブジェクト１２２０Ａ２の両方の動作モードが選択モードに設定されている。対象オブジェクトを選択することなく、矢印２００２及び２００４で示されるように右手及び左手の両方による同様の方向への同様の形状の領域を囲む動きが検知された場合、仮想視点制御部９２０は、該動きに基づいて仮想視点を回転させてもよい。ここで「同様の形状」は、円、楕円などのほか、多様な形状を含み得る。仮想視点が回転した結果として、視界画像２０００が生成されて表示部１１２に表示される。
【０１３４】
図２０に示す例において、同様の形状の領域を囲む動きが水平面に対して傾いている場合、プロセッサ２０２は、当該動きを水平面へと射影してもよい。仮想視点制御部９２０は、水平面へ射影された該動きに基づいて仮想視点を回転させてもよい。
【０１３５】
図２０に示す例において、視界画像生成部９１２は、仮想視点が回転されるときに、視界画像の視覚情報をぼかし処理などにより低減させてもよい。図２１は、視覚情報が低減された視界画像２１００の例を示す。これにより、仮想視点の回転中にユーザが酔いやすくなる影響を低減することができる。
【０１３６】
図２０に示す例において、仮想視点制御部９２０は、仮想視点を一定の速度で回転させなくてもよい。例えば、仮想視点の回転は、第１速度での回転と当該第１速度より遅いか又はゼロである第２速度での回転との組み合わせであってもよい。図２２は、仮想視点の回転角度と時間との間の関係の例を示すグラフである。図示されるように、仮想視点制御部９２０は、Ｔ０からＴ１までの時間間隔の間、仮想視点を角度θ０からθ１まで大きく回転し、次のＴ１からＴ２までの時間間隔の間、仮想視点を角度θ１からθ２まで小さく回転し、その後これらの回転を交互に繰り返してもよい。その他様々な態様で仮想視点を回転させてもよい。このような実施形態により、仮想視点を一定速度で回転させる場合と比較して、ユーザが酔いにくくなる効果を得ることができる。
【０１３７】
図２３は、ステップ１１２０における処理の例を模式的に示す図である。ユーザ１２１２Ａが右コントローラ及び左コントローラの両方の所定のボタンを押すことにより、左手オブジェクト１２２０Ａ１及び右手オブジェクト１２２０Ａ２の両方の動作モードが選択モードに設定されている。対象オブジェクトを選択することなく、右手と左手が近づく動きが検知された場合、仮想視点制御部９２０は、視界画像に含まれる仮想空間の範囲を小さくするか又は大きくしてもよい。これを実現するために、例えば、図２５に示すように、仮想視点制御部９２０は、仮想空間１２００における仮想カメラ４０４の大きさを変化させてもよい。例えば、右手と左手が近づく動きが検知された場合、仮想視点制御部９２０は、図２５上段に示すように、仮想カメラ４０４の大きさを拡大してもよい。仮想カメラ４０４の大きさを拡大することにより、仮想カメラ４０４により撮影することのできる視野が拡大する。図２３の視界画像２３００は、この場合に生成される視界画像の例である。図１９に示す視界画像１９００等と比較して、視界画像に含まれる仮想空間の範囲が大きくなっていることが分かる。別の例として、右手と左手が近づく動きが検知された場合、仮想視点制御部９２０は、図２５下段に示すように、仮想カメラ４０４の大きさを縮小してもよい。この場合には、仮想カメラ４０４により撮影することのできる視野は縮小し、視界画像に含まれる仮想空間の範囲は小さくなる。
【０１３８】
図２４は、ステップ１１２０における処理の例を模式的に示す図である。図２３の例とは逆に、右手と左手が遠ざかる動きが検知された場合、仮想視点制御部９２０は、視界画像に含まれる仮想空間の範囲を小さくするか又は大きくしてもよい。具体的な処理は図２３の場合と同様である。一例として、仮想視点制御部９２０は、仮想カメラ４０４の大きさを縮小又は拡大してもよい。視界画像２４００は、仮想カメラ４０４の大きさが縮小された場合に生成される視界画像の例である。図１９に示す視界画像１９００等と比較して、視界画像に含まれる仮想空間の範囲が小さくなっていることが分かる。
【０１３９】
図２３及び図２４に示す例において、仮想視点制御部９２０は、仮想カメラ４０４の大きさを拡大又は縮小するのとは別の方法によって、視界画像に含まれる仮想空間の範囲を変化させることができる。例えば、仮想カメラ４０４が右目用仮想カメラ及び左目用仮想カメラを含む場合、仮想視点制御部９２０は、これらの間の距離を大きくしたり小さくしたりしてもよい。右目用仮想カメラと左目用仮想カメラとの間の距離を大きくすることにより、視界画像に含まれる仮想空間の範囲を大きくすることができる。反対に、右目用仮想カメラと左目用仮想カメラとの間の距離を小さくすることにより、視界画像に含まれる仮想空間の範囲を小さくすることができる。
【０１４０】
図２６は、ステップ１１０８の処理により生成される視界画像の例を示す。この例において、ユーザ１２１２Ａは、ゲーム内の所定の操作により、ユニット１２１６Ａに関連付けられる仮想カメラ１２０４Ａ２を仮想視点として設定している。図示されるように、仮想カメラ１２０４Ａ２により取得された視界画像２６００は、ユニット１２１６Ａの操作オブジェクト（ここでは、両手）２６２０Ａ１及び２６２０Ａ２、相手ユーザのアバター１２１４Ｂ、相手ユーザのユニット１２１６Ｂ、ゲームフィールド１２２２、相手ユーザの基地１２２４Ｂ、壁１３０４などを含む。このように、本実施形態において、ユーザ１２１２Ａは、アバター１２１２Ａの視点から仮想空間内での仮想体験を楽しむことができるだけでなく、ゲームフィールド１２２２上で相手の基地１２２４Ｂを目指して進むユニット１２１６Ａの視点からも、仮想体験を楽しむことができる。図２６の場合にも、図１１から図２５にわたって説明した本開示の実施形態の処理を適用することができる。すなわち、ユーザ１２１２Ａは、自分の身体の一部の動きによってユニット１２１６Ａの左手オブジェクト２６２０Ａ１及び右手オブジェクト２６２０Ａ２を操作することができる。そして、ステップ１１２０の処理によって仮想視点が移動する場合、ユーザ１２１２Ａは、自分自身がユニット１２１６Ａとしてゲームフィールド１２２２上を（例えば、匍匐前進することによって）相手の基地１２２４Ｂへと移動しているような体験を得ることができる。そのため、本開示の実施形態によれば、エンタテイメント性の高い、仮想空間における仮想体験をユーザに提供することができる。
【０１４１】
本開示の実施形態は、主に、プロセッサ２０２（もしくはコンピュータ２００）又は方法１１００として実施されるものとして説明された。しかし、本開示の実施形態が、プロセッサ２０２に方法１１００を実行させるコンピュータプログラムとして実施することができることは、当業者にとって明らかであろう。
【０１４２】
本開示の実施形態が説明されたが、これらが例示にすぎず、本開示の範囲を限定するものではないことが理解されるべきである。本開示の趣旨及び範囲から逸脱することなく、実施形態の変更、追加、改良等を適宜行うことができることが理解されるべきである。本開示の範囲は、上述した実施形態のいずれによっても限定されるべきではなく、特許請求の範囲及びその均等物によってのみ規定されるべきである。
【符号の説明】
【０１４３】
１００…ＨＭＤシステム、１１０…ＨＭＤ、１１２…表示部、１１４…センサ、１２０…ＨＭＤセンサ、１３０…モーションセンサ、１４０…注視センサ、１５０…サーバ、１６０…コントローラ、１９０…ユーザ、１９２…ネットワーク、２００…コンピュータ、２０２…プロセッサ、２０４…メモリ、２０５…通信制御部、２０６…ストレージ、２０８…入出力インターフェース、２１０…通信インターフェース、２１２…バス、４００…仮想空間、４０２…仮想空間画像、４０４…仮想カメラ、４０６…中心、４０８…基準視線、４１０…視認領域、６０２、７０２…領域、８００…コントローラ、８０２…グリップ、８０４…フレーム、８０６…天面、８０８、８１０、８１４、８１６…ボタン、８１８…アナログスティック、９０２…仮想空間特定部、９０３…動作検知部、９０４…視線検知部、９０６…基準視線決定部、９０８…視界領域決定部、９１０…仮想視点特定部、９１２…視界画像生成部、９１４…オブジェクト制御部、９１６…動作モード切り替え部、９１８…選択判定部、９２０…仮想視点制御部、９２２…判定部、９２４…仮想カメラ制御部、９２６…視界画像出力部、９２８…仮想空間データ、９３０…オブジェクトデータ、９３２…アプリケーションデータ、９３４…その他のデータ、１２００…仮想空間、１２０４Ａ１、Ａ２、Ｂ１、Ｂ２…仮想カメラ、１２１２Ａ、Ｂ…ユーザ、１２１４Ａ、Ｂ…アバター、１２１６Ａ、Ｂ…ユニット、１２２０Ａ、Ｂ…操作オブジェクト、１２２２…ゲームフィールド、１２２４Ａ、Ｂ…基地、１３０２−１、２…対象オブジェクト、１３０４…壁、１６０Ａ、Ｂ…コントローラ、１２２０Ａ１、２６２０Ａ１…左手オブジェクト、１２２０Ａ２、２６２０Ａ…右手オブジェクト
【図１】
2018194889.tif 000003
【図２】
2018194889.tif 000004
【図３】
2018194889.tif 000005
【図４】
2018194889.tif 000006
【図５】
2018194889.tif 000007
【図６】
2018194889.tif 000008
【図７】
2018194889.tif 000009
【図８】
2018194889.tif 000010
【図９】
2018194889.tif 000011
【図１０】
2018194889.tif 000012
【図１１】
2018194889.tif 000013
【図１２】
2018194889.tif 000014
【図１３】
2018194889.tif 000015
【図１４】
2018194889.tif 000016
【図１５】
2018194889.tif 000017
【図１６】
2018194889.tif 000018
【図１７】
2018194889.tif 000019
【図１８】
2018194889.tif 000020
【図１９】
2018194889.tif 000021
【図２０】
2018194889.tif 000022
【図２１】
2018194889.tif 000023
【図２２】
2018194889.tif 000024
【図２３】
2018194889.tif 000025
【図２４】
2018194889.tif 000026
【図２５】
2018194889.tif 000027
【図２６】
2018194889.tif 000028