(57)【特許請求の範囲】
【請求項１】
ヘッドマウントディスプレイ（以下、ＨＭＤ）を装着したユーザに仮想空間を提供する方法であって、
第１のモードにおいて、前記仮想空間内に配置されかつ前記ＨＭＤに連動する仮想カメラのロール方向に基づく視界画像を前記ＨＭＤに表示させるステップと、
第２のモードにおいて、前記ユーザの操作に基づき少なくとも回転方向を特定すると共に、前記操作が検出され続ける間、前記仮想カメラまたは前記仮想空間を前記回転方向に回転させ続けながら、前記ＨＭＤに前記視界画像を更新させるステップとを有し、
前記視界画像を前記ＨＭＤに表示させるステップにおいて、前記仮想空間に配置される操作オブジェクトを含む前記視界画像を前記ＨＭＤに表示させ、
前記第１のモードにおいて、前記操作オブジェクトが前記ユーザによって選択されたことを検出するステップと、
前記第１のモードにおいて、前記操作オブジェクトが選択されたことが検出された後、前記第２のモードに移行するステップと、
前記第２のモードにおいて、前記操作オブジェクトが選択されたことが検出された後、前記ユーザによって前記操作オブジェクトに指定された所定方向を特定するステップとをさらに有し、
前記視界画像を更新させるステップにおいて、前記所定方向に基づき前記回転方向を特定し、
前記第２のモードにおいて、前記操作オブジェクトを前記所定方向に弾性変形させるステップをさらに有する、方法。
【請求項２】
前記視界画像を更新させるステップにおいて、前記所定方向における水平方向の成分に基づき前記回転方向を特定する、請求項１に記載の方法。
【請求項３】
前記第２のモードにおいて、前記操作オブジェクトへの前記所定方向の指定が解除されたことを検出するステップと、
前記第２のモードにおいて、前記所定方向の指定が解除されたことが検出された場合、前記操作オブジェクトを元の形状に戻すと共に、前記操作オブジェクトの選択を解除する変更するステップと、
前記第２のモードにおいて、前記所定方向の指定が解除されたことが検出された場合、前記仮想カメラまたは前記仮想空間の回転を停止させると共に、前記第１のモードに移行するステップとをさらに有する、請求項２に記載の方法。
【請求項４】
前記第２のモードにおいて、前記操作オブジェクトが選択されたことが検出された後、基準座標系における前記ＨＭＤの傾きの変化量を特定するステップと、
前記所定方向を特定するステップにおいて、前記傾きの変化量に基づき前記所定方向を特定する、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記所定方向の指定が解除されたことを検出するステップにおいて、前記仮想カメラまたは仮想空間の回転が開始された後の前記ＨＭＤの傾きが、前記操作オブジェクトが選択されたことが検出された時点の前記ＨＭＤの傾きに一致した場合、前記所定方向の指定が解除されたことを検出する、請求項４に記載の方法。
【請求項６】
前記第２のモードにおいて、前記操作オブジェクトが選択されたことが検出された後、前記ユーザによって前記操作オブジェクトに指定された所定量を特定するステップと、
前記第２のモードにおいて、前記所定量に基づき、前記仮想カメラまたは前記仮想空間を回転させる際の回転速度を特定するステップとをさらに有し、
前記操作オブジェクトを弾性変形させるステップにおいて、前記操作オブジェクトを前記所定量だけ伸張させ、
前記視界画像を更新するステップにおいて、前記仮想カメラまたは仮想空間を前記回転速度で回転させ続ける、請求項１に記載の方法。
【請求項７】
前記第２のモードにおいて、前記所定量が閾値を超えた場合、前記操作オブジェクトを元の形状に戻し、かつ、前記操作オブジェクトの選択を解除するステップと、
前記第２のモードにおいて、前記所定量が閾値を超えた場合、前記仮想カメラまたは前記仮想空間の回転を停止させるステップと、
前記第２のモードにおいて、前記仮想カメラまたは前記仮想空間の回転が停止した後、前記第１のモードに移行するステップとをさらに有する、請求項６に記載の方法。
【請求項８】
前記第２のモードにおいて、前記操作オブジェクトが選択されたことが検出された後、基準座標系における前記ＨＭＤの傾きの変化量を特定するステップと、
前記所定量を特定するステップにおいて、前記傾きの変化量に基づき前記所定量を特定する、請求項６または７に記載の方法。
【請求項９】
前記第１のモードにおいて、前記操作オブジェクトの少なくとも一部が、前記仮想カメラの視界領域の外に位置することを検出するステップと、
前記第１のモードにおいて、前記操作オブジェクトの少なくとも一部が、前記視界領域の外に位置することが検出された場合、前記操作オブジェクトを前記視界領域の中に移動させるステップとをさらに有する、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
前記第１のモードにおいて、前記仮想空間に規定される機能区画をユーザが選択したことを検出するステップと、
前記第１のモードにおいて、前記仮想空間に規定される機能区画をユーザが選択したことが検出された場合、前記第２のモードに移行するステップをさらに有する、請求項１に記載の方法。
【請求項１１】
請求項１〜１０のいずれか１項に記載の方法の各ステップを、コンピュータに実行させるプログラム。
【請求項１２】
請求項１１に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、仮想空間を提供する方法、プログラム、および記録媒体に関する。
【背景技術】
【０００２】
特許文献１には、仮想空間において再生されるコンテンツを、ヘッドマウントディスプレイを通じてユーザに視認させるための技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２５８６１４号公報（２０１３年１２月２６日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した従来技術では、ユーザがＨＭＤを動かすと、仮想空間におけるユーザの視認箇所を変えることができるので、仮想空間に対するユーザの没入感を高めることができる。一方で、仮想空間における没入間を高めつつ、より簡単に仮想空間における任意の箇所をユーザが視認できるように仮想空間における操作性をより高めるための工夫が、求められている。
【０００５】
本開示は前記の課題を解決するためになされたものである。そして、その目的は、仮想空間における操作性をより高めることにある。
【課題を解決するための手段】
【０００６】
前記の課題を解決するために、本開示に係る仮想空間を提供する方法は、ヘッドマウントディスプレイ（以下、ＨＭＤ）を装着したユーザに仮想空間を提供する方法であって、第１のモードにおいて、仮想空間内に配置されかつＨＭＤに連動する仮想カメラのロール方向に基づく視界画像をＨＭＤに表示させるステップと、第２のモードにおいて、ユーザの操作に基づき少なくとも回転方向を特定すると共に、操作が検出され続ける間、仮想カメラまたは仮想空間の空間座標系を回転方向に回転させ続けながら、ＨＭＤに視界画像を更新させるステップとを有する。
【発明の効果】
【０００７】
本開示によれば、仮想空間における操作性をより高めることができる。
【図面の簡単な説明】
【０００８】
【図１】ＨＭＤシステムの構成を示す図である。
【図２】制御回路部のハード構成を示す図である。
【図３】ＨＭＤに設定される視野座標系を例示する図である。
【図４】ユーザに提供される仮想空間の概要を説明する図である。
【図５】視界領域の断面を示す図である。
【図６】ユーザの視線方向を決定する方法を例示する図である。
【図７】制御回路部の機能的構成を示すブロック図である。
【図８】ＨＭＤシステムが仮想空間をユーザに提供する処理の流れを示すシーケンス図である。
【図９】ＨＭＤシステムが、仮想空間内のプラットフォームを通じてユーザが選択した動画コンテンツを仮想空間において再生する処理の流れを示すシーケンス図である。
【図１０】仮想空間内のプラットフォームを通じた動画コンテンツの選択および再生を説明する図である。
【図１１】ＨＭＤシステムが回転モードに移行する際の処理の流れを示すシーケンス図である。
【図１２】制御回路部が回転モードにおいて仮想カメラの回転を開始する際の処理の流れを示すシーケンス図である。
【図１３】仮想カメラが回転した後の仮想空間および視界画像を示す図である。
【図１４】制御回路部が回転モードにおいて仮想カメラをさらに回転させるかまたは仮想カメラの回転を停止させる際の処理の流れを示すシーケンス図である。
【図１５】仮想カメラがさらに回転した後の仮想空間および視界画像を示す図である。
【図１６】仮想カメラの回転が停止した後の仮想空間および視界画像を示す図である。
【発明を実施するための形態】
【０００９】
［本発明の実施形態の詳細］
本発明の実施形態に係る仮想空間を提供する方法、および、プログラムの具体例を、以下に図面を参照しつつ説明する。本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
【００１０】
（ＨＭＤシステム１００の構成）
図１は、ＨＭＤシステム１００の構成を示す図である。この図に示すように、ＨＭＤシステム１００は、ＨＭＤ１１０、ＨＭＤセンサ１２０、制御回路部２００、およびコントローラ３００を備えている。
【００１１】
ＨＭＤ１１０は、ユーザの頭部に装着される。ＨＭＤ１１０は、非透過型の表示装置であるディスプレイ１１２、センサ１１４、および注視センサ１３０を備えている。ＨＭＤ１１０は、右目用画像および左目用画像をディスプレイ１１２にそれぞれ表示することにより、ユーザの両目の視差に基づきユーザに立体的に視認される３次元画像を、ユーザに視認させる。これにより仮想空間をユーザに提供する。ディスプレイ１１２がユーザの眼前に配置されているので、ユーザは、ディスプレイ１１２に表示される画像を通じて仮想空間に没入できる。仮想空間は、背景、ならびにユーザが操作可能な各種のオブジェクトおよびメニュー画像等を含み得る。
【００１２】
ディスプレイ１１２は、右目用画像を表示する右目用サブディスプレイと、左目用画像を表示する左目用サブディスプレイとを含んでもよい。または、ディスプレイ１１２は、右目用画像および左目用画像を共通の画面に表示する１つの表示装置であってもよい。このような表示装置として、たとえば、表示画像が一方の目にしか認識できないようにするシャッターを高速に切り替えることにより、右目用画像および左目用画像を独立して交互に表示する表示装置が挙げられる。
【００１３】
（制御回路部２００のハード構成）
図２は、制御回路部２００のハード構成を示す図である。制御回路部２００は、ＨＭＤ１１０に仮想空間を提供させるためのコンピュータである。図２に示すように、制御回路部２００は、プロセッサ、メモリ、ストレージ、入出力インターフェース、および通信インターフェースを備えている。これらは、データ伝送路としてのバスを通じて、制御回路部２００内において互いに接続されている。
【００１４】
プロセッサは、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-processing unit）、またはＧＰＵ（Graphics Processing Unit）等を含んで構成され、制御回路部２００およびＨＭＤシステム１００全体の動作を制御する。
【００１５】
メモリは、主記憶として機能する。メモリには、プロセッサによって処理されるプログラムおよび制御用データ（演算パラメータなど）が記憶される。メモリは、ＲＯＭ（Read Only Memory）またはＲＡＭ（Random Access Memory）等を含んで構成され得る。
【００１６】
ストレージは、補助記憶として機能する。ストレージには、ＨＭＤシステム１００全体の動作を制御するためのプログラム、各種のシミュレーションプログラム、ユーザ認証プログラム、および、仮想空間を規定するための各種のデータ（画像およびオブジェクト等）が格納されている。さらには、各種のデータを管理するためのテーブルを含むデータベースがストレージに構築されていてもよい。ストレージは、フラッシュメモリまたはＨＤＤ（Hard Disc Drive）等を含んで構成され得る。
【００１７】
入出力インターフェースは、ＵＳＢ（Universal Serial Bus）端子、ＤＶＩ（Digital Visual Interface）端子、ＨＤＭＩ（登録商標）（High-Definition Multimedia Interface）端子等の各種の有線接続端子、および、無線接続のための各種の処理回路を含んで構成されている。入出力インターフェースは、ＨＭＤ１１０と、ＨＭＤセンサ１２０を含む各種のセンサと、コントローラ３００とを互いに接続する。
【００１８】
通信インターフェースは、ネットワークＮＷを介して外部装置と通信するための各種の有線接続端子、および、無線接続のための各種の処理回路を含んで構成される。通信インターフェースは、ＬＡＮ（Local Area Network）またはインターネットを介して通信するための各種の通信規格およびプロトコルに適合するように、構成されている。
【００１９】
制御回路部２００は、ストレージに格納された所定のアプリケーションプログラムをメモリにロードして実行することによって、ユーザに仮想空間を提供する。プログラムの実行時に、メモリおよびストレージには、仮想空間内に配置される各種のオブジェクトを操作したり、各種のメニュー画像等を表示および制御したりするための各種のプログラムが格納される。
【００２０】
制御回路部２００は、ＨＭＤ１１０に搭載されていてもよいし、されていなくてもよい。すなわち制御回路部２００は、ＨＭＤ１１０から独立した別のハードウェア（たとえば、パーソナルコンピュータ、またはネットワークを通じてＨＭＤ１１０と通信可能なサーバ装置）であってもよい。制御回路部２００は、複数のハードウェアの協働によって１または複数の機能が実装される形態の装置であってもよい。または、制御回路部２００が有する全機能のうち一部の機能のみがＨＭＤ１１０に実装され、残りの機能が別のハードウェアに実装されていてもよい。
【００２１】
ＨＭＤシステム１００を構成するＨＭＤ１１０等の各要素には、予め、グローバル座標系（基準座標系、ｘｙｚ座標系）が設定されている。このグローバル座標系は、現実空間における、鉛直方向、鉛直方向と直交する横方向、ならびに、鉛直方向および横方向の双方と直交する前後方向にそれぞれ平行な、３つの基準方向（軸）を有する。本実施形態では、グローバル座標系は視点座標系の一種であるため、グローバル座標系における横方向、鉛直方向（上下方向）、および前後方向を、それぞれｘ軸、ｙ軸、ｚ軸とする。具体的には、グローバル座標系のｘ軸は現実空間の横方向に平行であり、ｙ軸は現実空間の鉛直方向に平行であり、ｚ軸は現実空間の前後方向に平行である。
【００２２】
ＨＭＤセンサ１２０は、ＨＭＤ１１０の動きを検出するためのポジション・トラッキング機能を有する。ＨＭＤセンサ１２０は、この機能によって、現実空間内におけるＨＭＤ１１０の位置および傾きを検出する。この検出を実現するために、ＨＭＤ１１０は、図示しない複数の光源を備えている。各光源は、たとえば赤外線を発するＬＥＤである。ＨＭＤセンサ１２０は、たとえば赤外線センサを含んで構成される。ＨＭＤセンサ１２０は、ＨＭＤ１１０の光源から照射された赤外線を、赤外線センサによって検出することによって、ＨＭＤ１１０の検出点を検出する。さらに、ＨＭＤ１１０の検出点の検出値に基づき、ユーザの動きに応じたＨＭＤ１１０の現実空間内における位置および傾きを検出する。ＨＭＤセンサ１２０は、検出値の経時的変化に基づき、ＨＭＤ１１０の位置および傾きの時間変化を決定することができる。
【００２３】
ＨＭＤセンサ１２０は、光学カメラを含んで構成されてもよい。この場合、ＨＭＤセンサ１２０は、光学カメラによって得られたＨＭＤ１１０の画像情報に基づき、ＨＭＤ１１０の位置および傾きを検出する。
【００２４】
ＨＭＤセンサ１２０の代わりに、ＨＭＤ１１０が、センサ１１４を用いて自身の位置および傾きを検出してもよい。この場合、センサ１１４は、たとえば角速度センサ、地磁気センサ、加速度センサ、またはジャイロセンサであればよい。ＨＭＤ１１０は、これらのうち少なくとも１つを用いる。センサ１１４が角速度センサである場合、センサ１１４は、ＨＭＤ１１０の動きに応じて、ＨＭＤ１１０の現実空間における３軸回りの角速度を経時的に検出する。ＨＭＤ１１０は、角速度の検出値に基づき、ＨＭＤ１１０の３軸回りの角度の時間的変化を決定し、さらに、角度の時間的変化に基づきＨＭＤ１１０の傾きを検出することができる。
【００２５】
ＨＭＤ１１０がセンサ１１４による検出値に基づきＨＭＤ１１０の位置および傾きを自ら検出する場合、ＨＭＤシステム１００にＨＭＤセンサ１２０は不要である。逆に、ＨＭＤ１１０から離れた位置に配置されるＨＭＤセンサ１２０がＨＭＤ１１０の位置および傾きを検出する場合、ＨＭＤ１１０にセンサ１１４は不要である。
【００２６】
上述したように、グローバル座標系は現実空間の座標系と平行である。そのため、ＨＭＤセンサ１２０によって検出されたＨＭＤ１１０の各傾きは、グローバル座標系におけるＨＭＤ１１０の３軸周りの各傾きに相当する。ＨＭＤセンサ１２０は、グローバル座標系におけるＨＭＤセンサ１２０の傾きの検出値に基づき、ｕｖｗ視野座標系をＨＭＤ１１０に設定する。ＨＭＤ１１０に設定されるｕｖｗ視野座標系は、ＨＭＤ１１０を装着したユーザが物体を見る際の視点座標系に対応する。
【００２７】
（ｕｗｖ視野座標系）
図３は、ＨＭＤ１１０に設定されるｕｗｖ視野座標系を例示する図である。ＨＭＤセンサ１２０は、ＨＭＤ１１０の起動時に、グローバル座標系におけるＨＭＤ１１０の位置および傾きを検出する。そして、傾きの検出値に基づく３次元のｕｖｗ視野座標系を、ＨＭＤ１１０に設定する。図３に示すように、ＨＭＤセンサ１２０は、ＨＭＤ１１０を装着したユーザの頭部を中心（原点）とした３次元のｕｖｗ視野座標系を、ＨＭＤ１１０に設定する。具体的には、グローバル座標系を規定する横方向、鉛直方向、および前後方向（ｘ軸、ｙ軸、ｚ軸）を、グローバル座標系内においてＨＭＤ１１０の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって得られる新たな３つの方向を、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ方向（ｕ軸）、ヨー方向（ｖ軸）、およびロール方向（ｗ軸）として設定する。
【００２８】
図３に示すように、ＨＭＤセンサ１２０は、ＨＭＤ１１０を装着したユーザが直立しかつ正面を視認している場合、グローバル座標系に平行なｕｖｗ視野座標系をＨＭＤ１１０に設定する。この場合、グローバル座標系の横方向（ｘ軸）、鉛直方向（ｙ軸）、および前後方向（ｚ軸）が、そのまま、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ方向（ｕ軸）、ヨー方向（ｖ軸）、およびロール方向（ｗ軸）に一致する。
【００２９】
ＨＭＤセンサ１２０は、ＨＭＤ１１０にｕｖｗ視野座標系を設定した後、ＨＭＤ１１０の動きに応じて、現在設定中のｕｖｗ視野座標系におけるＨＭＤ１１０の傾き（傾きの変化量）を検出することができる。この場合、ＨＭＤセンサ１２０は、ＨＭＤ１１０の傾きとして、現在設定中のｕｖｗ視野座標系におけるＨＭＤ１１０のピッチ角（θｕ）、ヨー角（θｖ）、およびロール角（θｗ）をそれぞれ検出する。ピッチ角（θｕ）は、ｕｖｗ視野座標系におけるピッチ方向周りのＨＭＤ１１０の傾き角度である。ヨー角（θｖ）は、ｕｖｗ視野座標系におけるヨー方向周りのＨＭＤ１１０の傾き角度である。ロール角（θｗ）は、ｕｖｗ視野座標系におけるロール方向周りのＨＭＤ１１０の傾き角度である。
【００３０】
ＨＭＤセンサ１２０は、ＨＭＤ１１０の傾きの検出値に基づき、動いた後のＨＭＤ１１０におけるｕｖｗ視野座標系を、新たにＨＭＤ１１０に設定する。ＨＭＤ１１０と、ＨＭＤ１１０のｕｖｗ視野座標系との関係は、ＨＭＤ１１０の位置および傾きによらず常に一定である。ＨＭＤ１１０の位置および傾きが変わると、それの変化に連動して、グローバル座標系におけるＨＭＤ１１０のｕｖｗ視野座標系の位置および傾きが同様に変化する。
【００３１】
ＨＭＤセンサ１２０は、赤外線センサによって取得される赤外線の光強度および複数の検出点間の相対位置関係（検出点間の距離等）に基づき、ＨＭＤ１１０の現実空間内における位置を、ＨＭＤセンサ１２０に対する相対位置として特定してもよい。また、特定した相対位置に基づき、現実空間内（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系の原点を決定してもよい。また、ＨＭＤセンサ１２０は、複数の検出点間の相対位置関係に基づきＨＭＤ１１０の現実空間内における傾きを検出し、さらに、その検出値に基づき現実空間内（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系の向きを決定してもよい。
【００３２】
（仮想空間２の概要）
図４は、ユーザに提供される仮想空間２の概要を説明する図である。この図に示すように、仮想空間２は、中心２１の３６０°方向全体を覆う全天球状の構造を有する。図４には、仮想空間２の全体のうち上半分の天球のみを例示する。仮想空間２には、略正方形または略長方形の複数のメッシュが関連付けられている。仮想空間２における各メッシュの位置は、仮想空間２に規定される空間座標系（ＸＹＺ座標系）における座標として、予め規定されている。制御回路部２００は、仮想空間２に展開可能なコンテンツ（静止画、動画等）を構成する各部分画像を、仮想空間２における対応する各メッシュに対応付けることによって、ユーザによって視認可能な仮想空間画像２２が展開される仮想空間２をユーザに提供する。
【００３３】
仮想空間２には、中心２１を原点とするＸＹＺ空間座標系が規定されている。ＸＹＺ座標系は、たとえばグローバル座標系に平行である。ＸＹＺ座標系は視点座標系の一種であるため、ＸＹＺ座標系における横方向、鉛直方向（上下方向）、および前後方向を、それぞれＸ軸、Ｙ軸、Ｚ軸とする。すなわち、ＸＹＺ座標系のＸ軸（横方向）がグローバル座標系のｘ軸と平行であり、ＸＹＺ座標系のＹ軸（上下方向）がグローバル座標系のｙ軸と平行であり、ＸＹＺ座標系のＺ軸（前後方向）がグローバル座標系のｚ軸と平行である。
【００３４】
ＨＭＤ１１０の起動時（初期状態）において、仮想空間２の中心２１に仮想カメラ１が配置されている。仮想カメラ１は、現実空間内におけるＨＭＤ１１０の動きに連動して、仮想空間２内において同様に動く。これにより、現実空間内におけるＨＭＤ１１０の位置および向きの変化が、仮想空間２内において同様に再現される。
【００３５】
仮想カメラ１には、ＨＭＤ１１０と同様にｕｖｗ視野座標系が規定される。仮想空間２内における仮想カメラ１のｕｖｗ視野座標系は、現実空間（グローバル座標系）内におけるＨＭＤ１１０のｕｖｗ視野座標系に変動するように規定されている。したがって、ＨＭＤ１１０の傾きが変化すると、それに連動して仮想カメラ１の傾きも変化する。仮想カメラ１は、ＨＭＤ１１０を装着したユーザの現実空間における移動に連動して、仮想空間２において移動することもできる。
【００３６】
仮想空間２における仮想カメラ１の位置および傾きに応じて、仮想空間２における仮想カメラ１の向きが決まる。これにより、仮想空間２に展開される仮想空間画像２２をユーザが視認する際の基準となる視線（基準視線５）が決まる。制御回路部２００は、基準視線５に基づき、仮想空間２における視界領域２３を決定する。視界領域２３は、仮想空間２のうち、ＨＭＤ１１０を装着したユーザの視界に対応する領域である。
【００３７】
図５は、視界領域２３の断面を示す図である。図５の（ａ）に、仮想空間２において視界領域２３をＸ方向から見たＹＺ断面を示す。図５の（ｂ）に、仮想空間２において視界領域２３をＹ方向から見たＸＺ断面を示す。視界領域２３は、基準視線５と仮想空間２のＹＺ断面とによって定義される範囲である第１領域２４（図５の（ａ）参照）と、基準視線５と仮想空間２のＸＺ断面とによって定義される範囲である第２領域２５（図５の（ｂ）参照）とを有する。制御回路部２００は、仮想空間２における基準視線５を中心として極角αを含む範囲を、第１領域２４として設定する。また、仮想空間２における基準視線５を中心とした方位角βを含む範囲を、第２領域２５として設定する。
【００３８】
ＨＭＤシステム１００は、仮想空間画像２２のうち視界領域２３に重畳する部分である視界画像２６をＨＭＤ１１０のディスプレイ１１２に表示させることによって、ユーザに仮想空間２を提供する。ユーザがＨＭＤ１１０を動かせば、それに連動して仮想カメラ１も動き、その結果、仮想空間２における視界領域２３の位置が変化する。これによりディスプレイ１１２に表示される視界画像２６が、仮想空間画像２２のうち、仮想空間２においてユーザが向いた箇所（＝視界領域２３）に重畳する画像に更新される。したがってユーザは、仮想空間２における所望の箇所を視認することができる。
【００３９】
ユーザは、ＨＭＤ１１０を装着している間、現実世界を目にすることなく、仮想空間２に展開される仮想空間画像２２のみを視認する。そのためＨＭＤシステム１００は、仮想空間２への高い没入感をユーザに与えることができる。
【００４０】
制御回路部２００は、ＨＭＤ１１０を装着したユーザの現実空間における移動に連動して、仮想カメラ１を仮想空間２内において移動させてもよい。この場合、制御回路部２００は、仮想カメラ１の仮想空間２内における位置および向きに基づき、仮想空間２のうちＨＭＤ１１０のディスプレイ１１２に投影されることによってユーザが視認する視界領域２３を特定する。
【００４１】
仮想カメラ１は、右眼用画像を提供する右眼用仮想カメラと、左眼用画像を提供する左眼用仮想カメラとを含むことが好ましい。さらに、２つの仮想カメラには、ユーザが３次元の仮想空間２を認識できるように適切な視差が設定されていることが好ましい。本実施形態では、このような２つの仮想カメラのロール方向が合成されることによって生成されるロール方向（ｗ）がＨＭＤ１１０のロール方向（ｗ）に適合されるような仮想カメラ１のみを、代表して図示および説明するものとする。
【００４２】
（視線方向の検出）
注視センサ１３０は、ユーザの右目および左目の視線が向けられる方向（視線方向）を検出するアイトラッキング機能を有する。注視センサ１３０として、アイトラッキング機能を有する公知のセンサを採用することができる。注視センサ１３０は、右目用センサおよび左目用センサを備えていることが好ましい。注視センサ１３０は、たとえば、ユーザの右目および左目に赤外光を照射すると共に、照射光に対する角膜および虹彩からの反射光を受光することによって、各眼球の回転角を検出するセンサでもよい。注視センサ１３０は、検出した各回転角に基づき、ユーザの視線方向を検知することができる。
【００４３】
注視センサ１３０によって検出されるユーザの視線方向は、ユーザが物体を視認する際の視点座標系における方向である。上述したように、ＨＭＤ１１０のｕｖｗ視野座標系は、ユーザがディスプレイ１１２を視認する際の視点座標系に等しい。また、仮想カメラ１のｕｖｗ視野座標系は、ＨＭＤ１１０のｕｖｗ視野座標系に連動している。したがってＨＭＤシステム１００では、注視センサ１３０によって検出されたユーザの視線方向を、仮想カメラ１のｕｖｗ視野座標系におけるユーザの視線方向と見なすことができる。
【００４４】
図６は、ユーザの視線方向を決定する方法を例示する図である。この図に示すように、注視センサ１３０は、ユーザＵの右目および左目の視線を検出する。ユーザＵが近くを見ている場合、注視センサ１３０は、ユーザＵの視線Ｒ１およびＬ１を検出する。ユーザが遠くを見ている場合、注視センサ１３０は、ユーザの視線Ｒ１およびＬ１よりも、ＨＭＤ１１０のロール方向（ｗ）とのなす角が小さい視線Ｒ２およびＬ２を特定する。注視センサ１３０は、検出値を制御回路部２００に送信する。
【００４５】
制御回路部２００は、視線の検出値として視線Ｒ１およびＬ１を受信した場合、両者の交点である注視点Ｎ１を特定する。一方、視線Ｒ２およびＬ２を受信した場合も、両者の交点である注視点Ｎ１（不図示）を特定する。制御回路部２００は、特定した注視点Ｎ１に基づき、ユーザＵの視線方向Ｎ０を検出する。制御回路部２００は、たとえば、ユーザＵの右目Ｒと左目Ｌとを結ぶ直線の中点と、注視点Ｎ１とを通る直線の伸びる方向を、視線方向Ｎ０として検出する。視線方向Ｎ０は、ユーザＵが両目により実際に視線を向けている方向である。視線方向Ｎ０はまた、視界領域２３に対してユーザＵが実際に視線を向けている方向でもある。
【００４６】
ＨＭＤシステム１００は、ＨＭＤシステム１００を構成するいずれかの要素に、マイクおよびスピーカを備えていてもよい。これにより、ユーザは仮想空間２内に対して、音声による指示を与えることができる。また、仮想空間内の仮想テレビにテレビ番組の放送を受信するために、ＨＭＤシステム１００はいずれかの要素にテレビジョン受像機を含んでいてもよい。また、ユーザが取得した電子メール等を表示させるための、通信機能等を含んでいてもよい。
【００４７】
（コントローラ３００）
コントローラ３００は、ユーザの操作に基づく各種の指令を制御回路部２００に対して送信ことができるデバイスである。コントローラ３００は、有線または無線通信が可能な携帯端末であり得る。コントローラ３００は、たとえば、スマートフォン、ＰＤＡ（Personal Digital Assistant）、タブレット型コンピュータ、ゲーム用コンソール、汎用のＰＣ（Personal Computer）等であればよい。コントローラ３００は、タッチパネルを備えるデバイスであることが好ましく、互いにバス接続されたプロセッサ、メモリ、ストレージ、通信部、表示部と入力部が一体として構成されたタッチパネル、を備える任意の端末が採用され得る。ユーザは、コントローラ３００のタッチパネルに対し、タップ、スワイプ、およびホールドを含む各種のタッチ動作を入力することによって、仮想空間２に配置される各種のオブジェクトおよびＵＩ（User Interface）に対して影響を及ぼすことができる。
【００４８】
（制御回路部２００の機能的構成）
図７は、制御回路部２００の機能的構成を示すブロック図である。制御回路部２００は、ＨＭＤセンサ１２０、注視センサ１３０、およびコントローラ３００から受信した各種のデータを用いることによって、ユーザに提供される仮想空間２を制御すると共に、ＨＭＤ１１０のディスプレイ１１２への画像表示を制御する。図７に示すように、制御回路部２００は、検出部２１０、表示制御部２２０、仮想空間制御部２３０、記憶部２４０、および通信部２５０を備えている。制御回路部２００は、図２に示す各ハードウェアの協働によって、検出部２１０、表示制御部２２０、仮想空間制御部２３０、記憶部２４０、および通信部２５０として機能する。検出部２１０、表示制御部２２０、および仮想空間制御部２３０は、主としてプロセッサおよびメモリの協働によってその機能が実現され得る。記憶部２４０は、主としてメモリおよびストレージの協働によってその機能が実現され得る。通信部２５０は、主としてプロセッサおよび通信インターフェースの協働によってその機能が実現され得る。
【００４９】
検出部２１０は、制御回路部２００に接続される各種のセンサ（ＨＭＤセンサ１２０等）から検出値を受信する。また、必要に応じて、受信した検出値を用いた所定の処理を実行する。検出部２１０は、ＨＭＤ検出部２１１、視線検出部２１２、および操作受付部２１３を備えている。ＨＭＤ検出部２１１は、ＨＭＤ１１０およびＨＭＤセンサ１２０から検出値をそれぞれ受信する。視線検出部２１２は、注視センサ１３０から検出値を受信する。操作受付部２１３は、コントローラ３００に対するユーザの操作に応じて送信された指令を受信することによって、当該操作を受け付ける。
【００５０】
表示制御部２２０は、ＨＭＤ１１０のディスプレイ１１２への画像表示を制御する。表示制御部２２０は、仮想カメラ制御部２２１、視界領域決定部２２２、および視界画像生成部２２３を備えている。仮想カメラ制御部２２１は、仮想空間２内に仮想カメラ１を配置すると共に、仮想空間２内における仮想カメラ１の挙動を制御する。視界領域決定部２２２は、視界領域２３を決定する。視界画像生成部２２３は、決定された視界領域２３に基づき、ディスプレイ１１２に表示される視界画像２６を生成する。
【００５１】
仮想空間制御部２３０は、ユーザに提供される仮想空間２を制御する。仮想空間制御部２３０は、仮想空間規定部２３１、視線管理部２３２、コンテンツ特定部２３３、操作オブジェクト制御部２３４、および回転制御部２３５を備えている。仮想空間規定部２３１は、ユーザに提供される仮想空間２を表す仮想空間データを生成することによって、ＨＭＤシステム１００における仮想空間２を規定する。視線管理部２３２は、仮想空間２におけるユーザの視線を管理する。コンテンツ特定部２３３は、仮想空間２における再生対象のコンテンツを特定する。操作オブジェクト制御部２３４は、仮想空間２における操作オブジェクト２７を制御する。回転制御部２３５は、操作オブジェクト２７への操作に基づく仮想カメラ１または仮想空間２の回転を制御する。
【００５２】
記憶部２４０は、制御回路部２００が仮想空間２をユーザに提供するために用いる各種のデータを格納している。記憶部２４０は、雛形格納部２４１およびコンテンツ格納部２４２を備えている。雛形格納部２４１は、各種の雛形データを格納している。コンテンツ格納部２４２は、各種のコンテンツを格納している。
【００５３】
雛形データは、仮想空間２の雛形を表すデータである。雛形データは、仮想空間２の空間構造を規定する空間構造データを有する。空間構造データは、たとえば、中心２１を中心とする３６０°の全天球の空間構造を規定するデータである。雛形データは、仮想空間２のＸＹＺ座標系を規定するデータをさらに有する。雛形データは、天球を構成する各メッシュのＸＹＺ座標系における位置を特定する座標データをさらに有する。また、雛形データは、仮想空間２内にオブジェクトを配置可能であるか否かを示すフラグをさらに有する。
【００５４】
コンテンツは、仮想空間２において再生可能なコンテンツである。コンテンツの例として、たとえば、プラットフォームコンテンツおよび視聴用コンテンツが挙げられる。
【００５５】
プラットフォームコンテンツは、ユーザが視聴したい視聴用コンテンツを仮想空間２においてユーザに選択させるための環境（プラットフォーム）に関するコンテンツである。このプラットフォームコンテンツが仮想空間２において再生されることによって、コンテンツ選択用のプラットフォームがユーザに提供される。プラットフォームコンテンツは、背景画像、および、オブジェクトを規定するデータを少なくとも有する。
【００５６】
視聴用コンテンツは、たとえば静止画コンテンツまたは動画コンテンツである。静止画コンテンツは、背景画像を有する。動画コンテンツは、各フレームの画像（静止画）を少なくとも有する。動画コンテンツは、さらに音声データを有してもよい。
【００５７】
動画コンテンツは、たとえば、全天球カメラによって生成されるコンテンツである。全天球カメラは、当該カメラのレンズを中心とした現実空間の全方向を一度に撮影することによって、全方向の画像を一度に生成することができるカメラである。全天球カメラによって得られる動画コンテンツを構成する各画像は歪んでいるが、動画コンテンツが仮想空間２において再生されるとき、各画像の歪みは、ＨＭＤ１１０のディスプレイ１１２を構成するレンズによってキャンセルされることによって解消される。したがって動画コンテンツの再生時、ユーザは仮想空間２内において歪みのない自然な画像を視認することができる。
【００５８】
各コンテンツには、ＨＭＤ１１０の初期状態（起動時）にユーザに見せる画像を向いた初期方向が、予め規定されている。全天球カメラによって生成される動画コンテンツに規定される初期方向は、通常、動画コンテンツの撮影に用いた全天球カメラに規定される所定の撮影方向に一致する。この初期方向を、撮影方向とは異なる方向に変更することもできる。具体的には、全天球カメラによる撮影後、得られた動画コンテンツを適宜編集することによって、撮影方向からずれた方向を初期方向として動画コンテンツに規定することができる。
【００５９】
通信部２５０は、ネットワークＮＷを介して外部機器４００（たとえばサーバ）との間でデータを送受信する。
【００６０】
（仮想空間２の提供処理）
図８は、ＨＭＤシステム１００が仮想空間２をユーザに提供する処理の流れを示すシーケンス図である。仮想空間２は、基本的に、ＨＭＤ１１０および制御回路部２００の協働によってユーザに提供される。図８に示す処理が開始されると、まず、Ｓ１において、仮想空間規定部２３１が、ユーザに提供される仮想空間２を表す仮想空間データを生成することによって、仮想空間２を規定する。生成の手順は次の通りである。まず仮想空間規定部２３１は、仮想空間２の雛形データを雛形格納部２４１から取得することによって、仮想空間２の原型を定義する。仮想空間規定部２３１は、さらに、仮想空間２において再生されるコンテンツを、コンテンツ格納部２４２から取得する。仮想空間規定部２３１は、取得した雛形データに、取得したコンテンツを適合することによって、仮想空間２を規定する仮想空間データを生成する。仮想空間規定部２３１は、仮想空間データにおいて、仮想空間２の天球を構成する各メッシュの管理データに、コンテンツに含まれる背景画像を構成する各部分画像を適宜関連付ける。仮想空間規定部２３１は、コンテンツに規定される初期方向を仮想空間２のＸＹＺ座標系におけるＺ方向に合致させるように、各部分画像と各メッシュとを関連付けることが好ましい。
【００６１】
仮想空間規定部２３１は、さらに、必要に応じて、コンテンツに含まれる各オブジェクトの管理データを、仮想空間データに追加する。その際、各管理データに、対応するオブジェクトが仮想空間２において配置される位置を表す座標を、設定する。これにより各オブジェクトが、仮想空間２における当該座標の位置にそれぞれ配置される。
【００６２】
その後、ユーザによってＨＭＤ１１０が起動されると、Ｓ２において、ＨＭＤセンサ１２０が、ＨＭＤ１１０の初期状態における位置および傾きを検出して、Ｓ３において、検出値を制御回路部２００に出力する。ＨＭＤ検出部２１１は、この検出値を受信する。この後、Ｓ４において、仮想カメラ制御部２２１は、仮想空間２において仮想カメラ１を初期化する。
【００６３】
初期化の手順は次の通りである。まず仮想カメラ制御部２２１は、仮想空間２内における初期位置（図４における中心２１等）に、仮想カメラ１を配置する。次に、仮想空間２における仮想カメラ１の向きを設定する。その際、仮想カメラ制御部２２１は、ＨＭＤセンサ１２０からの検出値に基づき初期状態のＨＭＤ１１０のｕｖｗ視野座標系を特定すると共に、ＨＭＤ１１０のｕｖｗ視野座標系に一致するｕｖｗ視野座標系を仮想カメラ１に設定することによって、仮想カメラ１の向きを設定すればよい。仮想カメラ制御部２２１は、仮想カメラ１にｕｖｗ視野座標系を設定する際、仮想カメラ１のロール方向（ｗ軸）をＸＹＺ座標系のＺ方向（Ｚ軸）に適合させる。具体的には、仮想カメラ制御部２２１は、仮想カメラ１のロール方向をＸＺ平面に投影して得られる方向を、ＸＹＺ座標系のＺ方向に一致させると共に、ＸＺ平面に対する仮想カメラ１のロール方向の傾きを、水平面に対するＨＭＤ１１０のロール方向の傾きに一致させる。このような適合処理によって、初期状態の仮想カメラ２のロール方向がコンテンツの初期方向に適合されるので、コンテンツの再生開始後におけるユーザが最初に向く水平方向の向きを、コンテンツの初期方向に一致させることができる。
【００６４】
仮想カメラ１の初期化処理が終わると、視界領域決定部２２２は、仮想カメラ１のｕｖｗ視野座標系に基づき、仮想空間２における視界領域２３を決定する。具体的には、仮想カメラ１のｕｖｗ視野座標系のロール方向（ｗ軸）をユーザの基準視線５として特定し、この基準視線５に基づき視界領域２３を決定する。Ｓ５において、視界画像生成部２２３は、仮想空間データを処理することによって、仮想空間２に展開される仮想空間画像２２の全体のうち、仮想空間２における視界領域２３に投影される部分に相当する視界画像２６を生成（レンダリング）する。Ｓ６において、視界画像生成部２２３は、生成した視界画像２６を初期視界画像としてＨＭＤ１１０に出力する。Ｓ７において、ＨＭＤ１１０は、受信した初期視界画像をディスプレイ１１２に表示する。これによりユーザは初期視界画像を視認する。
【００６５】
その後、Ｓ８において、ＨＭＤセンサ１２０が、ＨＭＤ１１０の現在の位置および傾きを検出して、Ｓ９において、これらの検出値を制御回路部２００に出力する。ＨＭＤ検出部２１１は、各検出値を受信する。仮想カメラ制御部２２１は、ＨＭＤ１１０の位置および傾きの検出値に基づき、ＨＭＤ１１０における現在のｕｖｗ視野座標系を特定する。さらに、Ｓ１０において、仮想カメラ制御部２２１は、ＸＹＺ座標系におけるｕｖｗ視野座標系のロール方向（ｗ軸）を、ＨＭＤ１１０の視界方向として特定する。
【００６６】
本実施形態では、Ｓ１１において、仮想カメラ制御部２２１が、特定したＨＭＤ１１０の視界方向を、仮想空間２におけるユーザの基準視線５として特定する。Ｓ１２において、仮想カメラ制御部２２１は、特定した基準視線５に基づき、仮想カメラ１を制御する。仮想カメラ制御部２２１は、基準視線５の位置（起点）および方向が仮想カメラ１の初期状態と同一であれば、仮想カメラ１の位置および方向をそのまま維持する。一方、基準視線５の位置（起点）および／または方向が、仮想カメラ１の初期状態から変化していれば、仮想空間２内における仮想カメラ１の位置および／または傾きを、変化後の基準視線５に応じた位置および／または傾きに変更する。また、制御後の仮想カメラ１に対してｕｖｗ視野座標系を再設定する。
【００６７】
Ｓ１３において、視界領域決定部２２２は、特定した基準視線５に基づき、仮想空間２における視界領域２３を決定する。その後、Ｓ１４において、視界画像生成部２２３は、仮想空間データを処理することによって、仮想空間２に展開される仮想空間画像２２の全体のうち、仮想空間２における視界領域２３に投影（重畳）される部分である視界画像２６を生成（レンダリング）する。Ｓ１５において、視界画像生成部２２３は、生成した視界画像２６を更新用の視界画像としてＨＭＤ１１０に出力する。Ｓ１６において、ＨＭＤ１１０は、受信した視界画像２６をディスプレイ１１２に表示することによって、視界画像２６を更新する。これにより、ユーザがＨＭＤ１１０を動かせば、それに連動して視界画像２６が更新される。
【００６８】
（プラットフォームの提供およびコンテンツの再生処理）
本実施形態では、ＨＭＤシステム１００は、仮想空間２においてユーザが視聴したいコンテンツを仮想空間２においてユーザに選択するための環境（プラットフォーム）を、ユーザに提供する。ユーザが、仮想空間２に展開されるプラットフォームを通じて、視聴したいコンテンツを選択すれば、制御回路部２００は、選択されたコンテンツの仮想空間２における再生を開始する。以下に、プラットフォームの提供およびコンテンツの再生処理の詳細について、説明する。
【００６９】
図９は、ＨＭＤシステム１００が、仮想空間２内のプラットフォームを通じてユーザが選択した動画コンテンツを仮想空間２において再生する処理の流れを示すシーケンス図である。図１０は、仮想空間２内のプラットフォームを通じた動画コンテンツの選択および再生を説明する図である。図９に示す処理が開始されると、まず、Ｓ２１において、仮想空間規定部２３１が、プラットフォーム提供用の仮想空間２を表す仮想空間データを生成することによって、プラットフォーム提供用の仮想空間２を規定する。生成の手順は次の通りである。まず仮想空間規定部２３１は、プラットフォームに対応した仮想空間２の雛形データを、雛形格納部２４１から取得する。ここでは、オブジェクトが使用可能な仮想空間２の雛形データが取得される。
【００７０】
仮想空間規定部２３１は、さらに、仮想空間２において提供されるプラットフォームに関するプラットフォームコンテンツを、コンテンツ格納部２４２から取得する。仮想空間規定部２３１は、取得した雛形データに、取得したプラットフォームコンテンツを適合することによって、プラットフォームを提供するための仮想空間２を規定する仮想空間データを生成する。仮想空間規定部２３１は、仮想空間データにおいて、仮想空間２の天球を構成する各メッシュの管理データに、プラットフォームコンテンツに含まれる背景画像を構成する各部分画像を適宜関連付ける。
【００７１】
仮想空間規定部２３１は、さらに、プラットフォームコンテンツに含まれる各オブジェクトの管理データを、仮想空間データに追加する。これにより各オブジェクトが、プラットフォームを提供する仮想空間２における所定の位置にそれぞれ配置される。各オブジェクトのうち１つは、ユーザによって操作される操作オブジェクトである。詳しくは後述するが、操作オブジェクト２７は、仮想カメラ１または仮想空間２を回転させるために用いられる。残りは、視聴用コンテンツの概要画像（サムネイル）を表示するために用いられるサムネイルオブジェクトである。仮想空間規定部２３１は、次に、コンテンツ格納部２４２に格納される一定数の視聴用コンテンツ（ここでは動画コンテンツ）のサムネイルを、それぞれ取得する。仮想空間規定部２３１は、取得した各サムネイルを、仮想空間データ内のいずれかのサムネイルオブジェクトの管理データに関連付ける。これにより、仮想空間２に配置される各サムネイルオブジェクトに、サムネイルが関連付けられる。以下では、説明の便宜のために、仮想空間２に配置される、サムネイルが関連付けられたサムネイルオブジェクトのことを、単にサムネイルと表記する場合がある。
【００７２】
対応するサムネイルがオブジェクトに関連付けられた各視聴用コンテンツは、ユーザが仮想空間２において再生させるために選択可能な動画コンテンツの候補（候補動画コンテンツ）である。ユーザは、サムネイルをの選択を通じて、対応する候補動画コンテンツを選択することができる。制御回路部２００は、プラットフォームにおいてユーザによって選択された候補動画コンテンツを、仮想空間２において再生させる動画コンテンツとして特定する。
【００７３】
図１０の（ａ）に、プラットフォーム提供用の仮想空間２の一例を示す。この図には、１つの操作オブジェクト２７および４つのサムネイルＳＮ１〜ＳＮ４が配置される、プラットフォーム提供用の仮想空間２を示す。これらのサムネイルＳＮ１〜ＳＮ４は、いずれも、対応する動画コンテンツの概要画像（サムネイル）が関連付けられたオブジェクトである。操作オブジェクト２７の形状は、基本的に円形である。詳しくは後述するが、操作オブジェクト２７は、ユーザによる操作オブジェクト２７への操作に応じて弾性変形（伸張）する。
【００７４】
図１０の（ａ）に示す仮想空間２を表す仮想空間データの生成後、Ｓ２２において、視界画像生成部２２３は、ユーザの基準視線５に基づき視界画像２６を生成する。この生成方法は図８を参照して説明した方法と同一である。ここでは、プラットフォームに対応した視界画像２６が生成される。図１０の（ａ）では、サムネイルＳＮ１〜Ｎ４のうち、ユーザの基準視線５によって規定される視界領域２３の内部に、操作オブジェクト２７、サムネイルＳＮ１、およびＳＮ２が配置されている。一方、サムネイルＳＮ３およびＳＮ４は、視界領域２３の外部に配置されている。そのため視界画像生成部２２３は、操作オブジェクト２７、サムネイルＳＮ１、ＳＮ２を含む視界画像２６を生成する。詳しくは後述するが、視界画像生成部２２３は、さらに注視点２８を含む視界画像２６を生成する。注視点２８は、ユーザが視界画像２６におけるどの位置に視線を当てているのかを示す情報である。
【００７５】
Ｓ２３において、視界画像生成部２２３は、生成した視界画像２６をＨＭＤ１１０に出力する。Ｓ２４においてＨＭＤ１１０は、受信した視界画像２６をディスプレイ１１２に表示する。ユーザは、プラットフォームの視界画像２６を視認する。サムネイルが関連付けられたオブジェクトが視界画像２６に含まれる場合、視界画像２６の表示時、当該オブジェクトに関連付けられたサムネイルがディスプレイ１１２に表示される。これによりユーザは、サムネイルを含む視界画像２６を視認する。また、操作オブジェクト２７が視界画像２６に含まれる場合、視界画像２６の表示時、操作オブジェクト２７がディスプレイ１１２に表示される。これによりユーザは、操作オブジェクト２７を含む視界画像２６を視認する。
【００７６】
図１０の（ｂ）に、プラットフォームの視界画像２６の一例を示す。この図に示す視界画像２６は、操作オブジェクト２７、注視点２８、サムネイルＳＮ１、およびサムネイルＳＮ２を含む。したがってユーザは、仮想空間２において、操作オブジェクト２７、注視点２８、サムネイルＳＮ１、およびサムネイルＳＮ２を視認する。
【００７７】
視界画像生成部２２３は、基準視線５および視線方向Ｎ０に基づき視界画像２６における注視点２８の位置を決定する。ユーザが正面を視認している場合、すなわち、基準視線５が視線方向Ｎ０に一致する場合、視界画像生成部２２３は、視界画像２６の生成時に、基準視線５に基づき視界画像２６の中央に注視点２８を配置する。ユーザが正面を視認したまま視線を変えない場合、基準視線５は視線方向Ｎ０に一致するので、注視点２８は常に視界画像２６の中央に配置される。
【００７８】
一方、視界画像生成部２２３は、ユーザが視線を動かしたために視線方向Ｎ０が基準視線５からずれた場合、現在の視線方向Ｎ０に基づき、視界画像２６における注視点２８の位置を決定する。具体的には、視界領域２３における視線方向Ｎ０が交わる交点を特定し、次に、視界画像２６におけるこの交点に対応する位置に注視点２８が当てられた視界画像２６を生成する。
【００７９】
ユーザがＨＭＤ１１０を動かさずに（基準視線５が固定されたまま）視線だけを動かすと、その視線の動きに追随して、視界画像２６における注視点２８の位置が変更される。これにより、視界画像２６においてユーザが視線を当てた位置に注視点２８が表示されるように、視界画像２６が更新される。言い換えると、ユーザは、視線の動きによって、視界画像２６内において注視点２８を自在に動かすことができる。したがってユーザは、注視点２８を確認することによって、視界画像２６におけるどの箇所に視線を当てているのかを正確に把握することができる。
【００８０】
図９には示さないが、この後、ユーザがＨＭＤ１１０を動かせば、その動きに連動して視界画像２６が更新される。たとえば、ユーザがＨＭＤ１１０を動かすことによって、視界領域２３の位置が、サムネイルＳＮ１およびＳＮ３を含む位置に変化すれば、サムネイルＳＮ１およびＳＮ３を含む視界画像２６がディスプレイ１１２に表示される。したがってユーザは、ＨＭＤ１１０を適宜動かすことによって、視聴したい動画コンテンツのサムネイルを、自身の視界のうちに収めることができる。
【００８１】
プラットフォームの視界画像２６が表示された後、Ｓ２５において、注視センサ１３０は、ユーザの右目の視線および左目の視線をそれぞれ検出し、Ｓ２６において、各検出値を制御回路部２００に送信する。視線検出部２１２が、この検出値を受信する。Ｓ２７において、視線検出部２１２は、受信した検出値を用いて、仮想カメラ１のｕｖｗ視野座標系におけるユーザの視線方向Ｎ０を特定する。
【００８２】
Ｓ２８において、視線管理部２３２は、視線方向Ｎ０と、視界領域２３に含まれる各サムネイルとに基づき、視界画像２６に含まれる特定のサムネイルに規定時間以上ユーザの視線（注視点２８）が当たったか否かを判定する。より詳細には、視線管理部２３２は、視界領域２３における視線方向Ｎ０が交わる点が、視界領域２３に含まれる特定のサムネイルの表示範囲（配置範囲）に含まれているか否かを判定する。この判定結果がＹＥＳであれば、視界画像２６に含まれる特定のサムネイルに視線が当たったと判定し、ＮＯであれば、視線は特定のサムネイルに当たっていないと判定する。
【００８３】
Ｓ２８がＮｏの場合、図９の処理はＳ２５の直前に戻る。この後、Ｓ２８がＹＥＳになるまで、Ｓ２５〜Ｓ２８の処理が繰り返される。一方、Ｓ２８がＹＥＳの場合、Ｓ２９において、コンテンツ特定部２３３は、規定時間以上視線が当たったと判定されたサムネイルに対応するコンテンツを特定する。たとえばユーザがサムネイルＳＮ１に視線を当てれば、視界画像２６においてサムネイルＳＮ１に注視点２８が重畳される。さらに、ユーザがサムネイルＳＮ１に規定時間以上視線を当てれば、サムネイルＳＮ１に対応するコンテンツとして、サムネイルＳＮ１の管理データに関連付けられる動画コンテンツを特定する。
【００８４】
この後、Ｓ３０において、仮想空間規定部２３１は、特定された動画コンテンツを再生するための仮想空間データを生成することによって、動画コンテンツ再生用の仮想空間２を規定する。生成の手順は次の通りである。まず仮想空間規定部２３１は、動画コンテンツに対応した仮想空間２の雛形データを、雛形格納部２４１から取得する。
【００８５】
仮想空間規定部２３１は、コンテンツ特定部２３３によって特定された動画コンテンツを、コンテンツ格納部２４２から取得する。仮想空間規定部２３１は、取得した雛形データに、取得した動画コンテンツを適合することによって、動画コンテンツ再生用の仮想空間２を規定する仮想空間データを生成する。仮想空間規定部２３１は、仮想空間データにおいて、仮想空間２の天球を構成する各メッシュの管理データに、動画コンテンツに含まれる最初のフレームの画像を構成する各部分画像を適宜関連付ける。
【００８６】
ここで生成される仮想空間データによって規定される仮想空間２においては、オブジェクトを配置することが想定されていない。さらに、動画コンテンツには、オブジェクトを規定する管理データが含まれない。そのためＳ３０において、仮想空間規定部２３１は、オブジェクトの管理データを含まない仮想空間データを生成する。
【００８７】
動画コンテンツ再生用の仮想空間２を表す仮想空間データの生成後、Ｓ３１において、視界画像生成部２２３は、ユーザの基準視線５に基づき視界画像２６を生成する。この生成方法は図８を参照して説明した方法と同一である。ここでは、動画コンテンツの視界画像２６が生成される。Ｓ３２において、視界画像生成部２２３は、生成した視界画像２６をＨＭＤ１１０に出力する。Ｓ３３においてＨＭＤ１１０は、受信した視界画像２６をディスプレイ１１２に表示することによって、視界画像２６を更新する。これにより仮想空間２における動画コンテンツの再生が開始され、ユーザは動画コンテンツの視界画像２６を視認する。
【００８８】
図９には示さないが、この後、ユーザがＨＭＤ１１０を動かせば、その動きに連動して視界画像２６が更新される。したがってユーザは、ＨＭＤ１１０を適宜動かすことによって、動画コンテンツを構成する各フレームの全天球画像における所望の位置の部分画像（視界画像２６）を、視認することができる。
【００８９】
図１０の（ｃ）に、動画コンテンツの視界画像２６の一例を示す。この図に示す視界画像２６は、ユーザによって選択されたサムネイルＳＮ１に対応する動画コンテンツの視界画像２６である。このように、ユーザが、図１０の（ｂ）に示すプラットフォームの視界画像２６を視認中にサムネイルＳＮ１を視線によって選択すると、ディスプレイ１１２に表示されるプラットフォームの視界画像２６が、図１０の（ｃ）に示す動画コンテンツの視界画像２６に更新される。すなわちユーザは、仮想空間２において視線移動によってサムネイルＳＮ１を選択することによって、これに対応した動画コンテンツを仮想空間２において視聴することができる。
【００９０】
以上のように、ユーザは、仮想空間２において視聴したい動画コンテンツを、仮想空間２における動画コンテンツ選択用のプラットフォームを通じて選択することができる。したがってユーザは、ＨＭＤ１１０を装着する前に、制御回路部２００に接続される他の一般的なディスプレイを現実空間において視認しながら、仮想空間２において視聴したい動画コンテンツを選択する必要がない。これにより、仮想空間２に対するユーザの没入感をより一層高めることができる。
【００９１】
また、制御回路部２００は、動画コンテンツの再生中にユーザが所定の操作をＨＭＤシステム１００に対して（たとえばコントローラ３００を通じて）行えば、動画コンテンツが再生される仮想空間２をユーザに提供することを終了し、それから再び、動画コンテンツ選択用のプラットフォームが展開される仮想空間２をユーザに提供する。これによりユーザは、他のサムネイルを選択することによって、他の動画コンテンツを仮想空間２において視聴することができる。ユーザは、視聴したい動画コンテンツを切り替える際にＨＭＤ１１０を外す必要がないので、仮想空間２に対するユーザの没入感をより一層高めることができる。
【００９２】
（仮想カメラ１の回転制御）
本実施形態に係る制御回路部２００は、通常モード（第１のモード）または回転モード（第２のモード）において動作する。通常モードと回転モードとでは、制御回路部２００による仮想カメラ１の制御方法が相違する。通常モードにおいて、制御回路部２００は、ＨＭＤ１１０の傾きに連動させて仮想空間２における仮想カメラ１の傾きを制御する。したがって、通常モードにおいてユーザがＨＭＤ１１０を傾けると、それに連動して仮想カメラ１も傾き、その傾きに応じた視界画像２６がＨＭＤ１１０に表示される。
【００９３】
回転モードにおいて、制御回路部２００は、仮想空間２における仮想カメラ１の傾きを、ＨＭＤ１１０の傾きに連動させて制御しない。したがって、回転モードにおいてユーザがＨＭＤ１１０を傾けても、それに連動して仮想カメラ１は傾かない。その代わりに、制御回路部２００は、ユーザによる操作オブジェクト２７の操作に応じて、仮想空間２において仮想カメラ１を回転させる。本実施形態ではユーザはＨＭＤ１１０の動きによって操作オブジェクト２７を操作することができる。したがって、制御回路部２００は、回転モードおいて、ＨＭＤ１１０の傾きに応じて仮想カメラ１を回転させる。
【００９４】
通常モードでは、ユーザがＨＭＤ１１０の動きを止めると、仮想カメラ１の動きも止まる。したがって、視界画像２６の更新も止まる。一方、回転モードでは、ユーザがＨＭＤ１１０の動きを止めても、仮想カメラ１の回転は止まらない。すなわち、ユーザがＨＭＤ１１０を回転開始時の状態からさらに傾けた状態を維持し続ける限り、仮想カメラ１は回転し続ける。これにより、視界画像２６も更新され続ける。
【００９５】
図１１は、ＨＭＤシステム１００が回転モードに移行する際の処理の流れを示すシーケンス図である。以下では、プラットフォームが再生される仮想空間２がユーザに提供されている場合を例に挙げて説明する。
【００９６】
プラットフォームの視界画像２６が表示された後、Ｓ４１において、ＨＭＤセンサ１２０が、ＨＭＤ１１０の位置および傾きを検出して、Ｓ４２において、検出値を制御回路部２００に出力する。ＨＭＤ検出部２１１は、この検出値を受信する。仮想カメラ制御部２２１は、ＨＭＤ１１０の位置および傾きの検出値に基づき、上述した手順によって基準視線５を特定する。仮想カメラ制御部２２１は、特定した基準視線５に基づき、仮想カメラ１を制御する。
【００９７】
次に、Ｓ４３において、操作オブジェクト制御部２３４は、仮想空間２において操作オブジェクト２７に基準視線５が規定時間以上当たったか否かを判定する。Ｓ４３においてＮＯの場合、視界領域決定部２２２は、特定した基準視線５に基づき、仮想空間２における視界領域２３を決定する。その後、Ｓ４４において、視界画像生成部２２３は、視界画像２６を生成し、Ｓ４５においてＨＭＤ１１０に出力する。Ｓ４６において、ＨＭＤ１１０は、受信した視界画像２６をディスプレイ１１２に表示することによって、視界画像２６を更新する。これにより、通常モードにおいてユーザがＨＭＤ１１０を動かせば、それに連動して視界画像２６が更新される。
【００９８】
ユーザがＨＭＤ１１０を動かした場合、操作オブジェクト２７が視界領域２３に含まれていれば、操作オブジェクト２７は他のオブジェクトと同様に動かない。一方、ユーザがＨＭＤ１１０を動かすことによって、操作オブジェクト２７が視界領域２３から外れた場合、操作オブジェクト２７は視界領域２３内に戻るように動く。
【００９９】
これを実現する手順は次の通りである。まず操作オブジェクト制御部２３４は、操作オブジェクト２７の少なくとも一部が視界領域２３の外に位置することを検出する。次に操作オブジェクト制御部２３４は、操作オブジェクト２７の少なくとも一部が視界領域２３の外に位置することを検出した場合、操作オブジェクト２７を視界領域２３の中に移動させる。具体的には、操作オブジェクト２７を規定するデータにおける、操作オブジェクト２７の位置（座標）を、現在の視界領域２３内のいずれかの座標に更新する。
【０１００】
操作オブジェクト２７が視界領域２３に戻る位置は、視界領域２３内の任意の位置であればよい。操作オブジェクト２７が移動する際に移動量が最も少なくなる位置であることが好ましい。たとえば、操作オブジェクト２７が視界領域２３の右側に位置するようになった場合、操作オブジェクト制御部２３４は、操作オブジェクト２７を視界領域２３の右端に移動させることが好ましい。
【０１０１】
これにより、通常モードおいて、視界領域２３に常に操作オブジェクト２７が含まれるので、視界領域２３に基づき生成される視界画像２６にも、常に操作オブジェクト２７が含まれる。したがってユーザは、操作オブジェクト２７を選択したい場合、操作オブジェクト２７を容易に見つけ出すことができる。また、後述するように基準視線５によって操作オブジェクト２７を選択する場合、基準視線５を操作オブジェクト２７に当てるためのＨＭＤ１１０の移動制御を、最小限にすることができる。
【０１０２】
一方、Ｓ４３においてＹＥＳの場合、操作オブジェクト制御部２３４は、Ｓ４７において、ユーザによって操作オブジェクト２７が選択されたことを検出する。このように、ユーザは、視線を操作オブジェクト２７に当てることによって、操作オブジェクト２７を選択することができる。操作オブジェクト２７の選択をトリガとして、Ｓ４８において、制御回路部２００は回転モードに移行する。これにより、ユーザは自らの意思で制御回路部２００を回転モードに移行させることができる。回転モードへの移行後、操作オブジェクト２７へのユーザの操作に応じて、仮想カメラ１の回転が開始される。
【０１０３】
図１２は、制御回路部２００が回転モードにおいて仮想カメラ１の回転を開始する際の処理の流れを示すシーケンス図である。
【０１０４】
回転モードへの移行後、Ｓ５１において、ＨＭＤセンサ１２０が、ＨＭＤ１１０の位置および傾きを検出して、Ｓ５２において、検出値を制御回路部２００に出力する。ＨＭＤ検出部２１１は、この検出値を受信する。Ｓ５３において、操作オブジェクト制御部２３４は、ＨＭＤ１１０の傾きが変化したか否かを判定する。Ｓ５３においてＮＯの場合、図１２の処理はＳ５１の前に戻る。したがって、操作オブジェクト２７の選択後、ユーザがＨＭＤ１１０をさらに傾けるまで、Ｓ５１〜Ｓ５３の工程が繰り返される。
【０１０５】
一方、Ｓ５３においてＹＥＳの場合、Ｓ５４において、操作オブジェクト制御部２３４は、ＨＭＤ１１０の傾きの変化量を特定する。Ｓ５５において、操作オブジェクト制御部２３４は、特定した傾きの変化量に基づき、ユーザによって指定された操作オブジェクト２７の伸張方向（所定方向）および伸張量（所定量）を特定する。Ｓ５６において、操作オブジェクト制御部２３４は、操作オブジェクト２７を、特定した伸張方向に、特定した伸張量だけ伸張させる。その際、操作オブジェクト制御部２３４は、操作オブジェクト２７の根本から伸張方向の終端部に向かって徐々に操作オブジェクト２７が細くなるように、操作オブジェクト２７を伸張する。また、操作オブジェクト２７の伸張方向の終端部に基準視線５が重畳するように、操作オブジェクト２７の表示状態を変更する。
【０１０６】
その後、Ｓ５７において、回転制御部２３５は、操作オブジェクト２７の伸張方向に基づき仮想カメラ１の回転方向を決定すると共に、操作オブジェクト２７の伸張量に基づき仮想カメラ１の回転速度を決定する。その際、操作オブジェクト制御部２３４は、伸張方向における水平方向の成分に平行な方向を、仮想カメラ１の回転方向として特定することが好ましい。これにより、仮想カメラ１は仮想空間２におけるＹ軸周りにのみ回転する。また、仮想カメラ１が仮想空間２におけるＺ軸周りに回転することを防止することができる。これにより、視界画像２６の更新時に仮想空間２の地面が上下に移動するユーザが視認することを防止できるので、仮想空間２におけるユーザの酔い発生を防止することができる。
【０１０７】
Ｓ５８において、仮想カメラ制御部２２１は、決定された回転方向に決定された回転速度で仮想カメラ１の回転を開始する。仮想カメラ１が回転すると、仮想空間２における仮想カメラ１のロール方向が変わるので、視界領域２３が変更される。操作オブジェクト制御部２３４は、仮想カメラ１の回転時に操作オブジェクト２７が常に視界領域２３の中央に配置されるように、操作オブジェクト２７を制御する。具体的には、操作オブジェクト２７の管理データにおいて、操作オブジェクト２７の座標を視界領域２３の中央の座標に更新する。これにより仮想カメラ１のｕｖｗ視野座標系における操作オブジェクト２７の位置が固定された状態で、仮想カメラ１および操作オブジェクト２７がいずれも仮想空間２において回転する。
【０１０８】
視界領域決定部２２２は、一定時間回転後の仮想カメラ１の向き（ロール方向）に基づき視界領域２３を決定する。そして、Ｓ５９において、視界画像生成部２２３は、決定された視界領域２３に基づき視界画像２６を生成し、Ｓ６０においてＨＭＤ１１０に送信する。Ｓ６１おいて、ＨＭＤ１１０は、受信した視界画像２６をディスプレイ１１２に表示することによって、視界画像２６を更新する。これにより、仮想カメラ１の回転前の視界画像２６が、仮想カメラ１の回転後の視界画像２６に更新される。
【０１０９】
図１３は、仮想カメラ１が回転した後の仮想空間２および視界画像２６を示す図である。図１３の（ａ）に仮想空間２を示し、図１３の（ｂ）に視界画像２６を示す。以下では、操作オブジェクト２７の選択後、ユーザが首を左側にねじることによって、操作オブジェクト２７を左側に伸張させる操作を操作オブジェクト２７に対して行った例を説明する。この場合、操作オブジェクト２７の伸張方向はユーザから見て左側の方向なので、仮想カメラ１の回転方向として、Ｙ軸を自転軸とした左回りの回転方向が決定される。したがって仮想カメラ１は、Ｙ軸を自転軸として左回りに回転する。
【０１１０】
仮想カメラ１が左回りに回転することによって、視界領域２３の位置が、仮想空間２において左回りにずれる。これにより、図１３の（ａ）に示すように、視界領域２３におけるサムネイルＳＮ１およびサムネイルＳＮ２の位置が、回転開始前の位置よりも相対的に右側にずれるようになる。仮想カメラ１は回転中であるので、操作オブジェクト２７は伸張している。
【０１１１】
図１３の（ｂ）に示すように、仮想カメラ１が回転した後の視界領域２３に基づく視界画像２６には、サムネイルＳＮ１およびサムネイルＳＮ２が含まれる。視界領域２３におけるサムネイルＳＮ１およびサムネイルＳＮ２の位置が仮想カメラ１の回転開始前よりも右側にずれていることから、これに対応して、視界画像２６におけるサムネイルＳＮ１およびサムネイルＳＮ２の位置も、仮想カメラ１の回転開始前よりも右側にずれている。したがってユーザは、仮想カメラ１が左回りの回転を開始したことを把握することができる。
【０１１２】
仮想カメラ１の回転開始後、ユーザが左側に首をねじり続けている間、仮想カメラ１は左回りに回転し続ける。一方、ユーザが、首をねじることを止めて、顔を正面に向けると、仮想カメラ１の回転は停止される。以下では、これらの処理の流れを説明する。
【０１１３】
図１４は、制御回路部２００が回転モードにおいて仮想カメラ１をさらに回転させるかまたは仮想カメラ１の回転を停止させる際の処理の流れを示すシーケンス図である。
【０１１４】
仮想カメラ１の回転中に、Ｓ７１において、ＨＭＤセンサ１２０が、ＨＭＤ１１０の位置および傾きを検出して、Ｓ７２において、検出値を制御回路部２００に出力する。ＨＭＤ検出部２１１は、この検出値を受信する。Ｓ７３において、操作オブジェクト制御部２３４は、ＨＭＤ１１０の現在の傾きが、操作オブジェクト２７の選択時のＨＭＤ１１０の傾き一致するか否かを判定する。Ｓ７３においてＮＯの場合、Ｓ７４において、仮想カメラ制御部２２１は、仮想カメラ１をさらに回転させる。
【０１１５】
その後、視界領域決定部２２２は、一定時間回転後の仮想カメラ１の向き（ロール方向）に基づき視界領域２３を決定する。そして、Ｓ７５において、視界画像生成部２２３は、決定された視界領域２３に基づき視界画像２６を生成し、Ｓ７６においてＨＭＤ１１０に送信する。Ｓ７７において、ＨＭＤ１１０は、受信した視界画像２６をディスプレイ１１２に表示することによって、視界画像２６を更新する。これにより、仮想カメラ１を一定時間回転した後の視界画像２６が、仮想カメラ１をさらに回転した後の視界画像２６に更新される。
【０１１６】
Ｓ７７の後、図１４に示す処理はＳ７１の前に戻る。したがって、仮想カメラ１の回転開始後、ユーザがＨＭＤ１１０の傾きを元に戻す（操作オブジェクト２７の選択時の傾きに戻す）まで、Ｓ７１〜Ｓ７７の工程が繰り返される。すなわち、操作オブジェクト２７に対するユーザの操作が検出され続ける限り、仮想カメラ制御部２２１は仮想カメラ１を回転させ続ける。
【０１１７】
図１５は、仮想カメラ１がさらに回転した後の仮想空間２および視界画像２６を示す図である。図１５の（ａ）に仮想空間２を示し、図１５の（ｂ）に視界画像２６を示す。仮想カメラ１が左回りにさらに回転することによって、視界領域２３の位置も、仮想空間２においてさらに左回りにずれる。これにより視界領域２３は、仮想空間２におけるサムネイルＳＮ１、サムネイルＳＮ３、およびサムネイルＳＮ４を含む位置に配置されるようになる。仮想カメラ１が回転中であるので、操作オブジェクト２７も依然として伸張したままである。
【０１１８】
図１５の（ｂ）に示すように、仮想カメラ１がさらに回転した後の視界領域２３に基づく視界画像２６には、サムネイルＳＮ１、サムネイルＳＮ３、およびサムネイルＳＮ４が含まれる。したがってユーザは、仮想カメラ１の回転中に、サムネイルＳＮ４が新たに自身の視界に入ったことを把握する。以下では、この時点で仮想カメラ１の回転を停止させるための操作を操作オブジェクト２７に対して行う例を説明する。
【０１１９】
Ｓ７３においてＹＥＳの場合、Ｓ７８において、操作オブジェクト制御部２３４は、ユーザによる操作オブジェクト２７への伸張方向および伸張量の指定が解除されたことを検出する。これにより操作オブジェクト制御部２３４は、Ｓ７９において、操作オブジェクト２７の形状を元の円形に戻す。次にＳ８０において、操作オブジェクト制御部２３４は、操作オブジェクト２７の選択を解除する。次にＳ８１において、仮想カメラ制御部２２１は、仮想カメラ１の回転を停止させる。
【０１２０】
仮想カメラ１の回転停止後、Ｓ８２において、制御回路部２００は、通常モードに移行する。これにより視界領域決定部２２２は、仮想カメラ１の回転が停止した時点での仮想カメラ１の向きに基づき視界領域２３を特定する。視界画像生成部２２３は、Ｓ８３において、視界領域２３に基づき視界画像２６を生成し、Ｓ８４において視界画像２６をＨＭＤ１１０に出力する。ＨＭＤ１１０は、Ｓ８５において、受信した視界画像２６をディスプレイ１１２に表示することによって、視界画像２６を更新する。
【０１２１】
図１６は、仮想カメラ１の回転が停止した後の仮想空間２および視界画像２６を示す図である。図１６の（ａ）に仮想空間２を示し、図１６の（ｂ）に視界画像２６を示す。図１６には、図１５に示す状態まで仮想カメラ１が回転した直後に、仮想カメラ１の回転が停止した場合の例を示す。仮想カメラ１の回転停止後、仮想空間２における操作オブジェクト２７の形状は元の円形に戻っている。これに対応して、視界画像２６に含まれる操作オブジェクト２７の形状も、元の円形に戻っている。操作オブジェクト２７は選択されておらず、さらに制御回路部２００は通常モードで動作している。したがってユーザは、通常通り、視線を動かすことによって視界画像２６内の所望のサムネイルを選択することができる。
【０１２２】
図１６の（ｂ）に示す視界画像２６には、仮想空間２においてサムネイルＳＮ１から離れた位置にあるサムネイルＳＮ４が含まれる。したがってユーザは、仮想カメラ１の回転前には視認できなかったサムネイルＳＮ４を、簡単な操作によって容易に自身の視野に収めることができる。また、ユーザは、サムネイルＳＮ４に視線を当てることによって、サムネイルＳＮ４に対応した動画コンテンツの視聴を開始することができる。
【０１２３】
以上のように、本発明に係るＨＭＤシステム１００は、通常モードでは仮想空間２に対するユーザの没入感を高めることができる。さらに、回転モードでは、ユーザは、通常モードに比べてより簡単な操作で、仮想空間２における所望の箇所を視認することができる。ＨＭＤシステム１００が通常モードおよび回転モードの両方に対応していることによって、仮想空間２におけるユーザの没入間を高めつつ、仮想空間２における操作性をより高めることができる。また、各サムネイルを仮想空間２における幅広い範囲にそれぞれ配置することができるので、仮想空間２をより有効に活用することができる。
【０１２４】
制御回路部２００は、回転モードにおいて、操作オブジェクト２７の伸張量が閾値を超えた場合、仮想カメラ１の回転を停止してもよい。具体的には、操作オブジェクト制御部２３４は、第２のモードにおいて、操作オブジェクト２７の伸張量が閾値を超えた場合、操作オブジェクトを元の形状に戻し、かつ、操作オブジェクトの選択を解除する。操作オブジェクト制御部２３４は、操作オブジェクト２７を元の形状に戻す前に、伸張した操作オブジェクト２７を切るように操作オブジェクト２７の表示状態を変更してもよい。仮想カメラ制御部２２１は、操作オブジェクト２７の伸張量が閾値を超えた場合、仮想カメラ１の回転を停止する。この後、制御回路部２００は、通常モードに移行する。この場合も、ユーザは簡単な操作で仮想カメラ１の停止させることができる。
【０１２５】
（仮想空間２を回転させる例）
制御回路部２００は、回転モードにおいて、操作オブジェクト２７に対するユーザの操作に基づき、仮想カメラ１ではなく仮想空間２を回転させてもよい。この場合、回転制御部２３５は、特定した回転方向および回転速度を、仮想空間規定部２３１に通知する。仮想空間規定部２３１は、通知された回転方向および回転速度で仮想空間２を回転させる。ここでいう「回転」とは、仮想空間２の中心２１を通る軸を自転軸とした仮想空間２の自転を意味する。
【０１２６】
仮想空間規定部２３１は、仮想空間２のＸＹＺ座標系をグローバル座標系において回転させることによって、仮想空間２を回転させる。このとき、仮想空間データに含まれるＸＹＺ座標系を規定するデータを処理することによって、回転後のＸＹＺ座標系を規定するデータに更新する。仮想空間２における各メッシュの位置はＸＹＺ座標系における座標として各メッシュの管理データに規定されているので、ＸＹＺ座標系がグローバル座標系において回転することによって、各メッシュもグローバル座標系において同様に回転する。同様に、仮想空間２に配置されるサムネイルＳＮ１〜ＳＮ４の位置も、ＸＹＺ座標系における座標として各サムネイルの管理データに規定されているので、ＸＹＺ座標系がグローバル座標系において回転することによって、サムネイルＳＮ１〜ＳＮ４もグローバル座標系において同様に回転する。
【０１２７】
仮想空間規定部２３１は、仮想空間２を回転させる際、仮想カメラ１を仮想空間２と共に回転させない。すなわち、グローバル座標系における仮想カメラ１の位置および傾きを固定したまま、仮想空間２を回転させる。したがって、仮想空間２が回転すると、仮想空間２における仮想カメラ１のロール方向が相対的に変化する（仮想空間２に対して相対的に回転する）。その結果、視界領域２３の位置も相対的に変化するので、その変化に追随して視界領域２３に基づく視界画像２６も変化する。
【０１２８】
仮想空間２が鉛直方向を自転軸として左回りに回転すると、仮想空間２における視界領域２３の位置は、仮想空間２において相対的に右回りの方向に移動する。これにより視界画像２６は、ユーザから見て右から左に流れるように更新される。逆に、仮想空間２が鉛直方向を自転軸として右回りに回転すると、仮想空間２における視界領域２３の位置は、仮想空間２において相対的に左回りの方向に移動する。これにより視界画像２６は、ユーザから見て左から右に流れるように更新される。
【０１２９】
仮想空間規定部２３１は、仮想空間２を回転させる際、操作オブジェクト２７は仮想空間２と共に回転させないように制御する。具体的には、仮想カメラ１のｕｖｗ視野座標系における基準視線５と操作オブジェクトとの位置関係を維持したまま、仮想空間２を回転させる。言い換えると、仮想空間２の回転時、視界領域２３において基準視線５が交わる点に操作オブジェクト２７が常に配置されるように、仮想空間２における操作オブジェクト２７の位置を更新する。この結果、回転モードにおいて仮想空間２がどれだけ回転しても、視界画像２６には必ず操作オブジェクト２７が含まれる。ユーザは、仮想空間２の回転中において、伸張した操作オブジェクト２７を常に視認することによって、現在、操作オブジェクト２７に対する操作に基づき仮想空間２が回転していることを認識することができる。
【０１３０】
ユーザによって指定された操作オブジェクト２７の伸張方向に基づく仮想空間２の回転方向は、同じ伸張方向が指定された場合の仮想カメラ１の回転方向と逆であることが好ましい。これにより、視界画像２６が流れる方向を、仮想カメラ１の回転時と仮想空間２の回転時とで一致させることができる。したがって、仮想カメラ１または仮想空間２のいずれを回転させる場合でも、操作オブジェクト２７に対するユーザの同一の操作に基づく視界画像２６の流れる方向に一貫性を持たせることができる。
【０１３１】
（視線による操作オブジェクト２７の操作）
通常モードにおいて、ユーザは、ＨＭＤ１１０ではなく視線を動かすことによって、操作オブジェクト２７を選択したり操作したりしてもよい。この場合、ユーザは、視界画像２６に含まれる操作オブジェクト２７に視線を向けることによって、視界画像２６において注視点２８を操作オブジェクト２７に当てる。視線管理部２３２は、注視点２８が操作オブジェクト２７に規定時間以上当たった否かを判定する。この判定結果が真である場合、操作オブジェクト制御部２３４は、操作オブジェクト２７がユーザによって選択されたことを検出する。これにより、制御回路部２００は回転モードに移行する。
【０１３２】
視線による操作オブジェクト２７の選択後、ユーザは、視線移動によって操作オブジェクト２７を操作することができる。この場合、ユーザは、操作オブジェクト２７が選択されているときに、視線をいずれかの方向に変化させる。視線管理部２３２は、視線変化前後の各視線方向Ｎ０に基づき、視線方向Ｎ０の移動方向および移動量を特定する。操作オブジェクト制御部２３４は、視線方向Ｎ０の移動方向に基づき操作オブジェクト２７の伸張方向を決定し、さらに、視線方向Ｎ０の移動量に基づき操作オブジェクト２７の伸張量を決定する。伸張方向および伸張量の決定後の操作オブジェクト２７の伸張および仮想カメラ１（または仮想空間２）の回転方法は、上述した例と同一である。
【０１３３】
以上の例では、ユーザは、ＨＭＤ１１０を動かすことなく、視線を変化させる（眼球を動かす）ことによって、仮想カメラ１または仮想空間２を所望の方向に回転させることができる。たとえば、回転モードにおいてユーザが正面右側に視線を移せば、仮想カメラ１を右回り（仮想空間２を左回り）に回転させることができる。一方、回転モードにおいてユーザが正面左側に視線を移せば、仮想カメラ１を左回り（仮想空間２を右回り）に回転させることができる。これらのようにユーザは、より簡単な操作で、仮想空間２における所望の箇所を自身の視界に収めることができる。
【０１３４】
（コントローラ３００による回転制御）
ユーザは、コントローラ３００を操作することによって、操作オブジェクト２７を選択したり操作したりこともできる。この場合、通常モードにおいて、操作オブジェクト制御部２３４は、ユーザがコントローラ３００に対して操作オブジェクト２７を選択するための操作を行った場合、ユーザによって操作オブジェクト２７が選択されたことを検出する。また、回転モードにおいて、操作オブジェクト制御部２３４は、ユーザがコントローラ３００を操作することによって操作オブジェクト２７の伸張方向および伸張量を操作オブジェクト２７に指定する操作を行った場合、これらの伸張方向および伸張量を特定する。伸張方向および伸張量の決定後の操作オブジェクト２７の伸張および仮想カメラ１（または仮想空間２）の回転方法は、上述した例と同一である。
【０１３５】
以上の例では、ユーザは、ＨＭＤ１１０を動かすことなく、かつ視線を変化させることなく、コントローラ３００を操作することによって、仮想カメラ１または仮想空間２を所望の方向に回転させることができる。たとえば、回転モードにおいてユーザが操作オブジェクト２７を右側に伸張させるための操作をコントローラ３００に対して行えば、仮想カメラ１を右回り（仮想空間２を左回り）に回転させることができる。一方、回転モードにおいてユーザが操作オブジェクト２７を左側に伸張するための操作をコントローラ３００に対して行えば、仮想カメラ１を左回り（仮想空間２を右回り）に回転させることができる。
【０１３６】
コントローラ３００は、ユーザが右手で持つ右コントローラと、ユーザが左手で持つ左コントローラとからなるものであってもよい。この場合、制御回路部２００は、右コントローラの位置および傾きの検知値、ならびに、右コントローラが備える各ボタンへのユーザの押下操作の検出結果に基づき、ユーザの仮想右手を仮想空間２に生成することができる。同様に、制御回路部２００は、左コントローラの位置および傾きの検知値、ならびに、左コントローラが備える各ボタンへのユーザの押下操作の検出結果に基づき、ユーザの仮想左手を仮想空間２に生成することができる。仮想右手および仮想左手は、いずれもオブジェクトである。
【０１３７】
この態様では、ユーザは、仮想右手または仮想左手によって操作オブジェクト２７に作用を与えることによって、操作オブジェクト２７を選択したり操作したりすることができる。たとえばユーザが、仮想右手を操作オブジェクト２７に接触させるように右手を動かした場合、操作オブジェクト制御部２３４は、操作オブジェクト２７がユーザによって選択されたことを検出する。この後、ユーザが、仮想右手で操作オブジェクト２７をつまむための操作をコントローラ３００に対して行う（たとえば右コントローラのいずれかのボタンを押下する）と共に、仮想右手によって操作オブジェクト２７を所定方向にドラッグするように右手を動かした場合、操作オブジェクト制御部２３４は、右手を動かす前後の右コントローラの位置の各検知値に基づき、操作オブジェクト２７の伸張方向および伸張量を特定する。伸張方向および伸張量の決定後の操作オブジェクト２７の伸張および仮想カメラ１（または仮想空間２）の回転方法は、上述した例と同一である。
【０１３８】
以上の例では、ユーザは、ＨＭＤ１１０を動かすことなく、かつ視線を変化させることなく、右コントローラを操作することによって、仮想カメラ１または仮想空間２を所望の方向に回転させることができる。たとえば、回転モードにおいて、ユーザが、仮想右手によって操作オブジェクト２７を右方向にドラッグするように右コントローラを操作すれば、仮想カメラ１を右回り（仮想空間２を左回り）に回転させることができる。一方、回転モードにおいて、ユーザが、仮想右手によって操作オブジェクト２７を左側にドラッグするように右コントローラを操作すれば、仮想カメラ１を左回り（仮想空間２を右回り）に回転させることができる。これらの場合、ユーザは、より直感的に、仮想カメラ１または仮想空間２を回転させることができる。
【０１３９】
（機能区画による回転制御）
プラットフォームが展開される仮想空間２を構成する天球面におけるいずれかの位置に、機能区画が規定されていてもよい。機能区画は、所定の機能を割り当てることができる領域である。以下では、機能区画をユーザが選択した場合に、制御回路部２００が回転モードに移行する例を説明する。以下の例では、機能区画には、ユーザの視線（視界方向または視線方向Ｎ０）が機能区画に当たったか否かを検出する機能が割り当てられている。さらに、機能区画には、ユーザの視線が機能区画に当たった時間を検出する機能も割り当てられている。
【０１４０】
視線管理部２３２は、通常モードにおいて機能区画に対してユーザの視線（基準視線５または視線方向Ｎ０）が規定時間以上当たったことを検出した場合、機能区画をユーザが選択したことを検出する。これにより制御回路部２００は、回転モードに移行する。この後、ユーザによる何らかの操作に基づき、制御回路部２００は仮想カメラ１または仮想空間２の回転を開始する。たとえば制御回路部２００は、規定時間以上の注視によってユーザが選択した機能区画からユーザの視線が外れたか否かを判定する。制御回路部２００は、ユーザの視線が機能区画から外れたと判定した場合、視線が外れた方向を特定する。そして、視線が外れた方向を視線の移動方向として特定し、さらに、特定した視線の移動方向に基づく回転方向に仮想カメラ１または仮想空間２を回転させる。本例のように機能区画を活用すれば、操作オブジェクト２７を規定することができない仮想空間２がユーザに提供される場合も、ユーザの操作に基づき仮想カメラ１または仮想空間２を回転させることができる。
【０１４１】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態も、本発明の技術的範囲に含まれる。各実施形態にそれぞれ開示された技術的手段を組み合わせることによって、新しい技術的特徴を形成することもできる。
【０１４２】
〔ソフトウェアによる実現例〕
制御回路部２００の制御ブロック（検出部２１０、表示制御部２２０、仮想空間制御部２３０、記憶部２４０、および通信部２５０）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０１４３】
後者の場合、制御ブロックは、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、前記プログラムおよび各種データがコンピュータ（又はＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、前記プログラムを展開するＲＡＭ（Random Access Memory）等を備えている。そして、コンピュータ（又はＣＰＵ）が前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記記録媒体としては、「一時的でない有形の媒体」、たとえば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路等を用いることができる。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して前記コンピュータに供給されてもよい。なお、本発明は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１４４】
〔付記事項〕
（項目１）ヘッドマウントディスプレイ（以下、ＨＭＤ）を装着したユーザに仮想空間を提供する方法であって、第１のモードにおいて、前記仮想空間内に配置されかつ前記ＨＭＤに連動する仮想カメラのロール方向に基づく視界画像を前記ＨＭＤに表示させるステップと、第２のモードにおいて、前記ユーザの操作に基づき少なくとも回転方向を特定すると共に、前記操作が検出され続ける間、前記仮想カメラまたは前記仮想空間を前記回転方向に回転させ続けながら、前記ＨＭＤに表示させる前記視界画像を更新するステップとを有する、方法。仮想空間における操作性を高めることができる。
【０１４５】
（項目２）
前記視界画像を前記ＨＭＤに表示させるステップにおいて、前記仮想空間に配置される操作オブジェクトを含む前記視界画像を前記ＨＭＤに表示させ、前記第１のモードにおいて、前記操作オブジェクトが前記ユーザによって選択されたことを検出するステップと、前記第１のモードにおいて、前記操作オブジェクトが選択されたことが検出された後、前記第２のモードに移行するステップとをさらに有する、項目１の方法。ユーザの意思により、第２のモードに移行することができる。
【０１４６】
（項目３）前記第２のモードにおいて、前記操作オブジェクトが選択されたことが検出された後、前記ユーザによって前記操作オブジェクトに指定された所定方向を特定するステップと、前記第２のモードにおいて、前記操作オブジェクトを前記所定方向に弾性変形させるステップとをさらに有し、前記回転方向を決定するステップにおいて、前記所定方向に基づき前記回転方向を決定する、項目２の方法。操作オブジェクトに対するユーザの操作に基づき、仮想カメラまたは仮想空間を回転させることができる。
【０１４７】
（項目４）
前記回転方向を決定するステップにおいて、前記所定方向における水平方向の成分に基づき前記回転方向を決定する、項目３の方法。ユーザが仮想空間において酔うことを防止できる。
【０１４８】
（項目５）
前記第２のモードにおいて、前記操作オブジェクトへの前記所定方向の指定が解除されたことを検出するステップと、前記第２のモードにおいて、前記所定方向の指定が解除されたことが検出された場合、前記操作オブジェクトを元の形状に戻すと共に、前記操作オブジェクトの選択を解除する変更するステップと、前記第２のモードにおいて、前記所定方向の指定が解除されたことが検出された場合、前記仮想カメラまたは前記仮想空間の回転を停止させると共に、前記第１のモードに移行するステップとをさらに有する、項目４の方法。ユーザは簡単な操作で仮想カメラまたは仮想空間の回転を停止させることができる。
【０１４９】
（項目６）
前記第２のモードにおいて、前記操作オブジェクトが選択されたことが検出された後、基準座標系における前記ＨＭＤの傾きの変化量を特定するステップと、前記所定方向を特定するステップにおいて、前記傾きの変化量に基づき前記所定方向を特定する、項目３〜５のいずれかの方法。ユーザはＨＭＤを傾ける方向を変えることによって仮想カメラまたは仮想空間の回転速方法を調整することができる。
【０１５０】
（項目７）
前記所定方向の指定が解除されたことを検出するステップにおいて、前記仮想カメラまたは仮想空間の回転が開始された後の前記ＨＭＤの傾きが、前記操作オブジェクトが選択されたことが検出された時点の前記ＨＭＤの傾きに一致した場合、前記所定方向の指定が解除されたことを検出する、項目６の方法。ユーザは簡単な操作によって仮想カメラまたは仮想空間の回転を停止させることができる。
【０１５１】
（項目８）
前記第２のモードにおいて、前記操作オブジェクトが選択されたことが検出された後、前記ユーザによって前記操作オブジェクトに指定された所定量を特定するステップと、前記第２のモードにおいて、前記所定量に基づき、前記仮想カメラまたは前記仮想空間を回転させる際の回転速度を決定するステップとをさらに有し、前記操作オブジェクトを弾性変形させるステップにおいて、前記操作オブジェクトを前記所定量だけ伸張させ、前記視界画像を更新するステップにおいて、前記仮想カメラまたは仮想空間を前記回転速度で回転させ続ける、項目３〜７のいずれかの方法。ユーザは所望の回転速度で仮想カメラまたは仮想空間を回転させることができる。
【０１５２】
（項目９）
前記第２のモードにおいて、前記所定量が閾値を超えた場合、前記操作オブジェクトを元の形状に戻し、かつ、前記操作オブジェクトの選択を解除するステップと、前記第２のモードにおいて、前記所定量が閾値を超えた場合、前記仮想カメラまたは前記仮想空間の回転を停止させるステップと、前記第２のモードにおいて、前記仮想カメラまたは前記仮想空間の回転が停止した後、前記第１のモードに移行するステップとをさらに有する、項目８の方法。ユーザは簡単な操作で仮想カメラまたは仮想空間の回転を停止させることができる。
【０１５３】
（項目１０）
前記第２のモードにおいて、前記操作オブジェクトが選択されたことが検出された後、基準座標系における前記ＨＭＤの傾きの変化量を特定するステップをさらに備えており、、前記所定量を特定するステップにおいて、前記傾きの変化量に基づき前記所定量を特定する、項目８または９の方法。ユーザはＨＭＤを傾ける度合いを変えることによって仮想カメラまたは仮想空間の回転速方法を調整することができる。
【０１５４】
（項目１１）
前記第１のモードにおいて、前記操作オブジェクトの少なくとも一部が、前記仮想カメラの視界領域の外に位置することを検出するステップと、前記第１のモードにおいて、前記操作オブジェクトの少なくとも一部が、前記視界領域の外に位置することが検出された場合、前記操作オブジェクトを前記視界領域の中に移動させるステップとをさらに有する、項目２〜１０のいずれかの１つの方法。ユーザがオブジェクトを見つけ出しやすくなる。
【０１５５】
（項目１２）
前記第１のモードにおいて、前記仮想空間に規定される機能区画をユーザが選択したことを検出するステップと、前記第１のモードにおいて、前記仮想空間に規定される機能区画をユーザが選択したことが検出された場合、前記第２のモードに移行するステップをさらに有する、項目１の方法。オブジェクトを用いることができない仮想空間が提供される場合も、ユーザの操作に基づき仮想カメラまたは仮想空間を回転させることができる。
【０１５６】
（項目１３）
項目１〜１２のいずれかの方法の各ステップを、コンピュータに実行させるプログラム。
【０１５７】
（項目１４）
項目１３のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【符号の説明】
【０１５８】
１  仮想カメラ、２  仮想空間、５  基準視線、２１  中心、２２  仮想空間画像、２３  視界領域、２４  第１領域、２５  第２領域、２６  視界画像、１００  ＨＭＤシステム、１１０  ＨＭＤ、１１２  ディスプレイ、１１４  センサ、１２０  ＨＭＤセンサ、１３０  注視センサ、２００  制御回路部、２１０  検出部、２１１  ＨＭＤ検出部、２１２  視線検出部、２１３  操作受付部、２２０  表示制御部、２２１  仮想カメラ制御部、２２２  視界領域決定部、２２３  視界画像生成部、２３０  仮想空間制御部、２３１  仮想空間規定部、２３１  視線管理部、２３２  コンテンツ特定部、２３３  操作オブジェクト制御部、  記憶部、２４１  雛形格納部、２４２  コンテンツ格納部、２５０  通信部、３００  コントローラ
【図１】
0006262283.tif 000002
【図２】
0006262283.tif 000003
【図３】
0006262283.tif 000004
【図４】
0006262283.tif 000005
【図５】
0006262283.tif 000006
【図６】
0006262283.tif 000007
【図７】
0006262283.tif 000008
【図８】
0006262283.tif 000009
【図９】
0006262283.tif 000010
【図１０】
0006262283.tif 000011
【図１１】
0006262283.tif 000012
【図１２】
0006262283.tif 000013
【図１３】
0006262283.tif 000014
【図１４】
0006262283.tif 000015
【図１５】
0006262283.tif 000016
【図１６】
0006262283.tif 000017