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