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