(57)【要約】【課題】仮想空間への没入感を改善する。【解決手段】制御回路部（２００）は、ユーザの第１操作（ステップＳ２１）に基づいて、仮想空間（２）に配置された仮想オブジェクトの属性を変更し（ステップＳ２３）、その後、第２操作が入力された時点（ステップＳ２６）の仮想オブジェクトの属性に基づいて、仮想カメラ（１）の移動先を特定する（ステップＳ２８）。【選択図】図１１
2018028765.tif 000002
【特許請求の範囲】
【請求項１】
頭部にヘッドマウントディスプレイ（以下、ＨＭＤ）を装着したユーザに仮想空間を提供する方法であって、
前記ＨＭＤの傾き、または、前記ユーザの視線方向に基づいて、前記ユーザの前記仮想空間における基準視線を特定するステップと、
前記仮想空間に配置され、前記基準視線に基づいて前記ユーザに視認させる視界領域を設定する仮想カメラを特定するステップと、
前記仮想カメラの移動先を指定する仮想オブジェクトを前記仮想空間に配置するステップと、
ユーザにより入力された第１操作を受け付け、前記第１操作に基づいて、前記仮想オブジェクトの前記仮想空間における位置に関する属性を変更するステップと、
前記第１操作よりも後にユーザにより入力された第２操作を受け付け、前記第２操作が入力された時点の前記属性に基づいて、前記仮想カメラの移動先を特定するステップと、
前記移動先に前記仮想カメラを移動させるステップとを有する、方法。
【請求項２】
前記仮想オブジェクトを、前記仮想カメラを囲むように配置し、
前記仮想空間における、前記仮想オブジェクトの外縁の位置を、前記第１操作に含まれる経時的情報に基づいて変更し、
前記第１操作の入力後に、前記仮想カメラの移動方向を特定するための入力を受け付け、
前記第２操作の入力時点における前記移動方向と前記外縁とに基づいて、前記属性を特定する、請求項１に記載の方法。
【請求項３】
前記ＨＭＤの前記傾きまたは前記ユーザの前記視線方向に基づいて、前記移動方向を特定する、請求項２に記載の方法。
【請求項４】
前記移動方向と前記外縁との交点の、前記仮想空間における位置に基づいて、前記属性を特定する、請求項２または３に記載の方法。
【請求項５】
前記仮想オブジェクトは円であり、該円の半径を前記経時的情報に基づいて変更する、請求項２から４のいずれか１項に記載の方法。
【請求項６】
前記第１操作は、前記ユーザの身体の一部に連動するように前記仮想空間内を動作する可動オブジェクトの動作を入力するものであり、
前記仮想オブジェクトが前記仮想空間内を移動するときの移動態様を、前記可動オブジェクトの動作に基づいて、前記仮想オブジェクトに特徴付け、
前記第２操作が入力された時点の前記移動態様に基づいて、前記属性を特定する、請求項１に記載の方法。
【請求項７】
前記移動態様を、前記可動オブジェクトの初速および初速ベクトルに少なくとも基づいて特徴付ける、請求項６に記載の方法。
【請求項８】
前記仮想オブジェクトは、前記第１操作に含まれる方向情報に基づいて前記仮想空間内を移動するアバターであり、
前記方向情報に基づいて前記アバターを前記仮想空間内の任意の位置に移動させることにより、前記属性を変更する、請求項１に記載の方法。
【請求項９】
前記アバターの正面方向を向く第２仮想カメラを、前記仮想空間における前記アバターの位置に配置するステップと、
前記視界領域に基づいて生成される視界画像中の一部の領域に、前記第２仮想カメラに基づく視界画像を配置して前記ＨＭＤに表示させるステップとをさらに含む、請求項８に記載の方法。
【請求項１０】
前記第１操作に基づいて前記仮想オブジェクトの向きを特定し、前記仮想オブジェクトの向きに基づいて前記仮想カメラの向きを設定するステップをさらに有する、請求項１から９のいずれか１項に記載の方法。
【請求項１１】
請求項１から１０のいずれか１項に記載の方法の各ステップを、コンピュータに実行させるプログラム。
【請求項１２】
請求項１１に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、仮想空間を提供する方法、プログラム、および記録媒体に関する。
【背景技術】
【０００２】
特許文献１には、ヘッドマウントディスプレイ（Ｈｅａｄ−Ｍｏｕｎｔｅｄ  Ｄｉｓ
ｐｌａｙ：ＨＭＤ）を用いてユーザに映像コンテンツを提供する際の視点を、三人称視点から映像コンテンツに登場する撮影対象からの視点である一人称視点に切り替えることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１２７９８７号公報（２０１４年７月７日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示されたような映像コンテンツをＨＭＤで楽しむ場合と異なり、ＨＭＤを装着したユーザの頭部の動きに連動させて視界を変更する仮想空間コンテンツを提供するに当たっては、視点位置を変更する際に仮想空間への没入感が損なわれないように留意する必要がある。例えば、ゲームを攻略する上での戦略を練る楽しみが失われないように、仮想空間の移動にある程度の制約を設けることが想定される。しかし、移動の制約を重要視するあまり、移動時の操作性が低下してしまっては、ゲームを進行する上でユーザにストレスを与えたり、仮想空間への没入感が損なわれたりすることになりかねない。
【０００５】
本開示は前記の課題を解決するためになされたものである。そして、その目的は、仮想空間への没入感を改善することにある。
【課題を解決するための手段】
【０００６】
課題を解決するために、本開示に係る仮想空間を提供する方法は、頭部にヘッドマウントディスプレイ（以下、ＨＭＤ）を装着したユーザに仮想空間を提供する方法であって、ユーザの仮想空間における基準視線を特定するステップと、仮想空間に配置され、基準視線に基づいてユーザに視認させる視界領域を設定する仮想カメラを特定するステップと、仮想カメラの移動先を指定するオブジェクトを仮想空間に配置するステップと、ユーザにより入力された第１操作を受け付け、第１操作にしたがって、オブジェクトの属性を変更するステップと、第１操作よりも後にユーザにより入力された第２操作を受け付け、第２操作が入力された時点のオブジェクトの属性に含まれる、仮想空間における位置に関する情報に基づいて、仮想カメラの移動先を特定するステップと、移動先に仮想カメラを移動させるステップとを有する。
【発明の効果】
【０００７】
本開示によれば、仮想空間への没入感を改善し得る。
【図面の簡単な説明】
【０００８】
【図１】ＨＭＤシステムの構成を示す図である。
【図２】制御回路部のハード構成を示す図である。
【図３】ＨＭＤに設定される視野座標系を例示する図である。
【図４】ユーザに提供される仮想空間の概要を説明する図である。
【図５】視界領域の断面を示す図である。
【図６】ユーザの視線方向を決定する方法を例示する図である。
【図７】右コントローラの構成を表す図である。
【図８】制御回路部の機能的構成を示すブロック図である。
【図９】ＨＭＤシステムが仮想空間をユーザに提供する処理の流れを示すシーケンス図である。
【図１０】仮想空間における仮想カメラの移動方法の一例を説明する図である。
【図１１】移動方法の一例を実現するＨＭＤシステム１００の処理の流れを説明するシーケンス図である。
【図１２】仮想空間における仮想カメラの移動方法の他の例を説明する図である。
【図１３】移動方法の他の例を実現するＨＭＤシステム１００の処理の流れを説明するシーケンス図である。
【図１４】仮想空間における仮想カメラの移動方法のさらに他の例を説明する図である。
【図１５】移動方法のさらに他の例を実現するＨＭＤシステム１００の処理の流れを説明するシーケンス図である。
【発明を実施するための形態】
【０００９】
［本発明の実施形態の詳細］
本発明の実施形態に係る仮想空間を提供する方法、および、プログラムの具体例を、以下に図面を参照しつつ説明する。本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
【００１０】
（ＨＭＤシステム１００の構成）
図１は、ＨＭＤシステム１００の構成を示す図である。この図に示すように、ＨＭＤシステム１００は、ＨＭＤ１１０、ＨＭＤセンサ１２０、コントローラセンサ１４０、制御回路部２００、およびコントローラ３００を備えている。
【００１１】
ＨＭＤ１１０は、ユーザの頭部に装着される。ＨＭＤ１１０は、非透過型の表示装置であるディスプレイ１１２、センサ１１４、および注視センサ１３０を備えている。ＨＭＤ１１０は、右目用画像および左目用画像をディスプレイ１１２にそれぞれ表示することにより、ユーザの両目の視差に基づきユーザに立体的に視認される３次元画像を、ユーザに視認させる。これにより仮想空間をユーザに提供する。ディスプレイ１１２がユーザの眼前に配置されているので、ユーザは、ディスプレイ１１２に表示される画像を通じて仮想空間に没入できる。これにより、ユーザは仮想現実（Virtual Reality：VR）を体験することができる。仮想空間は、背景、ならびにユーザが操作可能な各種のオブジェクトおよびメニュー画像等を含み得る。
【００１２】
ディスプレイ１１２は、右目用画像を表示する右目用サブディスプレイと、左目用画像を表示する左目用サブディスプレイとを含んでもよい。または、ディスプレイ１１２は、右目用画像および左目用画像を共通の画面に表示する１つの表示装置であってもよい。このような表示装置として、たとえば、表示画像が一方の目にしか認識できないようにするシャッターを高速に切り替えることにより、右目用画像および左目用画像を独立して交互に表示する表示装置が挙げられる。
【００１３】
また、本実施形態において、ＨＭＤ１１０には、透過型ディスプレイが適用されてもよい。つまり、ＨＭＤ１１０は、透過型ＨＭＤであってもよい。この場合、前記３次元画像を透過型ディスプレイに表示することによって、後述する仮想オブジェクトを現実空間に仮想的に配置することができる。これにより、ユーザは現実空間に仮想オブジェクトが配置された複合現実（Mixes Reality：MR）を体験することができる。本実施形態において、仮想現実や複合現実といった、ユーザが仮想オブジェクトと相互作用できる体験を仮想体験と称することがある。以下では、仮想現実を提供するための方法を一例として詳説する。
【００１４】
（制御回路部２００のハード構成）
図２は、制御回路部２００のハード構成を示す図である。制御回路部２００は、ＨＭＤ１１０に仮想空間を提供させるためのコンピュータである。図２に示すように、制御回路部２００は、プロセッサ、メモリ、ストレージ、入出力インターフェース、および通信インターフェースを備えている。これらは、データ伝送路としてのバスを通じて、制御回路部２００内において互いに接続されている。
【００１５】
プロセッサは、ＣＰＵ（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）またはインターネットを介して通信するための各種の通信規格およびプロトコルに適合するように、構成されている。
【００２０】
制御回路部２００は、ストレージに格納された所定のアプリケーションプログラムをメモリにロードして実行することによって、ユーザに仮想空間を提供する。プログラムの実行時に、メモリおよびストレージには、仮想空間内に配置される各種の仮想オブジェクトを操作したり、各種のメニュー画像等を表示および制御したりするための各種のプログラムが格納される。
【００２１】
制御回路部２００は、ＨＭＤ１１０に搭載されていてもよいし、されていなくてもよい。すなわち制御回路部２００は、ＨＭＤ１１０から独立した別のハードウェア（たとえば、パーソナルコンピュータ、またはネットワークを通じてＨＭＤ１１０と通信可能なサーバ装置）であってもよい。制御回路部２００は、複数のハードウェアの協働によって１または複数の機能が実装される形態の装置であってもよい。または、制御回路部２００が有する全機能のうち一部の機能のみがＨＭＤ１１０に実装され、残りの機能が別のハードウェアに実装されていてもよい。
【００２２】
ＨＭＤシステム１００を構成するＨＭＤ１１０等の各要素には、予め、グローバル座標系（基準座標系、ｘｙｚ座標系）が設定されている。このグローバル座標系は、現実空間における、鉛直方向、鉛直方向と直交する横方向、ならびに、鉛直方向および横方向の双方と直交する前後方向にそれぞれ平行な、３つの基準方向（軸）を有する。本実施形態では、グローバル座標系は視点座標系の一種であるため、グローバル座標系における横方向、鉛直方向（上下方向）、および前後方向を、それぞれｘ軸、ｙ軸、ｚ軸とする。具体的には、グローバル座標系のｘ軸は現実空間の横方向に平行であり、ｙ軸は現実空間の鉛直方向に平行であり、ｚ軸は現実空間の前後方向に平行である。
【００２３】
ＨＭＤセンサ１２０は、ＨＭＤ１１０の動きを検出するためのポジション・トラッキング機能を有する。ＨＭＤセンサ１２０は、この機能によって、現実空間内におけるＨＭＤ１１０の位置および傾きを検出する。この検出を実現するために、ＨＭＤ１１０は、図示しない複数の光源を備えている。各光源は、たとえば赤外線を発するＬＥＤである。ＨＭＤセンサ１２０は、たとえば赤外線センサを含んで構成される。ＨＭＤセンサ１２０は、ＨＭＤ１１０の光源から照射された赤外線を、赤外線センサによって検出することによって、ＨＭＤ１１０の検出点を検出する。さらに、ＨＭＤ１１０の検出点の検出値に基づき、ユーザの動きに応じたＨＭＤ１１０の現実空間内における位置および傾きを検出する。ＨＭＤセンサ１２０は、検出値の経時的変化に基づき、ＨＭＤ１１０の位置および傾きの時間変化を決定することができる。
【００２４】
ＨＭＤセンサ１２０は、光学カメラを含んで構成されてもよい。この場合、ＨＭＤセンサ１２０は、光学カメラによって得られたＨＭＤ１１０の画像情報に基づき、ＨＭＤ１１０の位置および傾きを検出する。
【００２５】
ＨＭＤセンサ１２０の代わりに、ＨＭＤ１１０が、センサ１１４を用いて自身の位置および傾きを検出してもよい。この場合、センサ１１４は、たとえば角速度センサ、地磁気センサ、加速度センサ、またはジャイロセンサであればよい。ＨＭＤ１１０は、これらのうち少なくとも１つを用いる。センサ１１４が角速度センサである場合、センサ１１４は、ＨＭＤ１１０の動きに応じて、ＨＭＤ１１０の現実空間における３軸回りの角速度を経時的に検出する。ＨＭＤ１１０は、角速度の検出値に基づき、ＨＭＤ１１０の３軸回りの角度の時間的変化を決定し、さらに、角度の時間的変化に基づきＨＭＤ１１０の傾きを検出することができる。
【００２６】
ＨＭＤ１１０がセンサ１１４による検出値に基づきＨＭＤ１１０の位置および傾きを自ら検出する場合、ＨＭＤシステム１００にＨＭＤセンサ１２０は不要である。逆に、ＨＭＤ１１０から離れた位置に配置されるＨＭＤセンサ１２０がＨＭＤ１１０の位置および傾きを検出する場合、ＨＭＤ１１０にセンサ１１４は不要である。
【００２７】
上述したように、グローバル座標系は現実空間の座標系と平行である。そのため、ＨＭＤセンサ１２０によって検出されたＨＭＤ１１０の各傾きは、グローバル座標系におけるＨＭＤ１１０の３軸周りの各傾きに相当する。ＨＭＤセンサ１２０は、グローバル座標系におけるＨＭＤセンサ１２０の傾きの検出値に基づき、ｕｖｗ視野座標系をＨＭＤ１１０に設定する。ＨＭＤ１１０に設定されるｕｖｗ視野座標系は、ＨＭＤ１１０を装着したユーザが物体を見る際の視点座標系に対応する。
【００２８】
（ｕｗｖ視野座標系）
図３は、ＨＭＤ１１０に設定されるｕｗｖ視野座標系を例示する図である。ＨＭＤセンサ１２０は、ＨＭＤ１１０の起動時に、グローバル座標系におけるＨＭＤ１１０の位置および傾きを検出する。そして、傾きの検出値に基づく３次元のｕｖｗ視野座標系を、ＨＭＤ１１０に設定する。図３に示すように、ＨＭＤセンサ１２０は、ＨＭＤ１１０を装着したユーザの頭部を中心（原点）とした３次元のｕｖｗ視野座標系を、ＨＭＤ１１０に設定する。具体的には、グローバル座標系を規定する横方向、鉛直方向、および前後方向（ｘ軸、ｙ軸、ｚ軸）を、グローバル座標系内においてＨＭＤ１１０の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって得られる新たな３つの方向を、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ方向（ｕ軸）、ヨー方向（ｖ軸）、およびロール方向（ｗ軸）として設定する。
【００２９】
図３に示すように、ＨＭＤセンサ１２０は、ＨＭＤ１１０を装着したユーザが直立しかつ正面を視認している場合、グローバル座標系に平行なｕｖｗ視野座標系をＨＭＤ１１０に設定する。この場合、グローバル座標系の横方向（ｘ軸）、鉛直方向（ｙ軸）、および前後方向（ｚ軸）が、そのまま、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ方向（ｕ軸）、ヨー方向（ｖ軸）、およびロール方向（ｗ軸）に一致する。
【００３０】
ＨＭＤセンサ１２０は、ＨＭＤ１１０にｕｖｗ視野座標系を設定した後、ＨＭＤ１１０の動きに応じて、現在設定中のｕｖｗ視野座標系におけるＨＭＤ１１０の傾き（傾きの変化量）を検出することができる。この場合、ＨＭＤセンサ１２０は、ＨＭＤ１１０の傾きとして、現在設定中のｕｖｗ視野座標系におけるＨＭＤ１１０のピッチ角（θｕ）、ヨー角（θｖ）、およびロール角（θｗ）をそれぞれ検出する。ピッチ角（θｕ）は、ｕｖｗ視野座標系におけるピッチ方向周りのＨＭＤ１１０の傾き角度である。ヨー角（θｖ）は、ｕｖｗ視野座標系におけるヨー方向周りのＨＭＤ１１０の傾き角度である。ロール角（θｗ）は、ｕｖｗ視野座標系におけるロール方向周りのＨＭＤ１１０の傾き角度である。
【００３１】
ＨＭＤセンサ１２０は、ＨＭＤ１１０の傾きの検出値に基づき、動いた後のＨＭＤ１１０におけるｕｖｗ視野座標系を、新たにＨＭＤ１１０に設定する。ＨＭＤ１１０と、ＨＭＤ１１０のｕｖｗ視野座標系との関係は、ＨＭＤ１１０の位置および傾きによらず常に一定である。ＨＭＤ１１０の位置および傾きが変わると、それの変化に連動して、グローバル座標系におけるＨＭＤ１１０のｕｖｗ視野座標系の位置および傾きが同様に変化する。
【００３２】
ＨＭＤセンサ１２０は、赤外線センサによって取得される赤外線の光強度および複数の検出点間の相対位置関係（検出点間の距離等）に基づき、ＨＭＤ１１０の現実空間内における位置を、ＨＭＤセンサ１２０に対する相対位置として特定してもよい。また、特定した相対位置に基づき、現実空間内（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系の原点を決定してもよい。また、ＨＭＤセンサ１２０は、複数の検出点間の相対位置関係に基づきＨＭＤ１１０の現実空間内における傾きを検出し、さらに、その検出値に基づき現実空間内（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系の向きを決定してもよい。
【００３３】
（仮想空間２の概要）
図４は、ユーザに提供される仮想空間２の概要を説明する図である。この図に示すように、仮想空間２は、中心２１の３６０°方向全体を覆う全天球状の構造を有する。図４には、仮想空間２の全体のうち上半分の天球のみを例示する。仮想空間２には、略正方形または略長方形の複数のメッシュが関連付けられている。仮想空間２における各メッシュの位置は、仮想空間２に規定される空間座標系（ＸＹＺ座標系）における座標として、予め規定されている。制御回路部２００は、仮想空間２に展開可能なコンテンツ（静止画、動画等）を構成する各部分画像を、仮想空間２における対応する各メッシュに対応付けることによって、ユーザによって視認可能な仮想空間画像２２が展開される仮想空間２をユーザに提供する。
【００３４】
仮想空間２には、中心２１を原点とするＸＹＺ空間座標系が規定されている。ＸＹＺ座標系は、たとえばグローバル座標系に平行である。ＸＹＺ座標系は視点座標系の一種であるため、ＸＹＺ座標系における横方向、鉛直方向（上下方向）、および前後方向を、それぞれＸ軸、Ｙ軸、Ｚ軸とする。すなわち、ＸＹＺ座標系のＸ軸（横方向）がグローバル座標系のｘ軸と平行であり、ＸＹＺ座標系のＹ軸（上下方向）がグローバル座標系のｙ軸と平行であり、ＸＹＺ座標系のＺ軸（前後方向）がグローバル座標系のｚ軸と平行である。
【００３５】
ＨＭＤ１１０の起動時（初期状態）において、仮想空間２の中心２１に仮想カメラ１が配置されている。仮想カメラ１は、現実空間内におけるＨＭＤ１１０の動きに連動して、仮想空間２内において同様に動く。これにより、現実空間内におけるＨＭＤ１１０の位置および向きの変化が、仮想空間２内において同様に再現される。
【００３６】
仮想カメラ１には、ＨＭＤ１１０と同様にｕｖｗ視野座標系が規定される。仮想空間２内における仮想カメラ１のｕｖｗ視野座標系は、現実空間（グローバル座標系）内におけるＨＭＤ１１０のｕｖｗ視野座標系に変動するように規定されている。したがって、ＨＭＤ１１０の傾きが変化すると、それに連動して仮想カメラ１の傾きも変化する。仮想カメラ１は、ＨＭＤ１１０を装着したユーザの現実空間における移動に連動して、仮想空間２において移動することもできる。
【００３７】
仮想空間２における仮想カメラ１の位置および傾きに応じて、仮想空間２における仮想カメラ１の向きが決まる。これにより、仮想空間２に展開される仮想空間画像２２をユーザが視認する際の基準となる視線（基準視線５）が決まる。制御回路部２００は、基準視線５に基づき、仮想空間２における視界領域２３を決定する。視界領域２３は、仮想空間２のうち、ＨＭＤ１１０を装着したユーザの視界に対応する領域である。
【００３８】
図５は、視界領域２３の断面を示す図である。図５の（ａ）に、仮想空間２において視界領域２３をＸ方向から見たＹＺ断面を示す。図５の（ｂ）に、仮想空間２において視界領域２３をＹ方向から見たＸＺ断面を示す。視界領域２３は、基準視線５と仮想空間２のＹＺ断面とによって定義される範囲である第１領域２４（図５の（ａ）参照）と、基準視線５と仮想空間２のＸＺ断面とによって定義される範囲である第２領域２５（図５の（ｂ）参照）とを有する。制御回路部２００は、仮想空間２における基準視線５を中心として極角αを含む範囲を、第１領域２４として設定する。また、仮想空間２における基準視線５を中心とした方位角βを含む範囲を、第２領域２５として設定する。
【００３９】
ＨＭＤシステム１００は、仮想空間画像２２のうち視界領域２３に重畳する部分である視界画像２６をＨＭＤ１１０のディスプレイ１１２に表示させることによって、ユーザに仮想空間２を提供する。ユーザがＨＭＤ１１０を動かせば、それに連動して仮想カメラ１も動き、その結果、仮想空間２における視界領域２３の位置が変化する。これによりディスプレイ１１２に表示される視界画像２６が、仮想空間画像２２のうち、仮想空間２においてユーザが向いた箇所（＝視界領域２３）に重畳する画像に更新される。したがってユーザは、仮想空間２における所望の箇所を視認することができる。
【００４０】
ユーザは、ＨＭＤ１１０を装着している間、現実世界を目にすることなく、仮想空間２に展開される仮想空間画像２２のみを視認する。そのためＨＭＤシステム１００は、仮想空間２への高い没入感をユーザに与えることができる。
【００４１】
制御回路部２００は、ＨＭＤ１１０を装着したユーザの現実空間における移動に連動して、仮想カメラ１を仮想空間２内において移動させてもよい。この場合、制御回路部２００は、仮想カメラ１の仮想空間２内における位置および向きに基づき、仮想空間２のうちＨＭＤ１１０のディスプレイ１１２に投影されることによってユーザが視認する視界領域２３を特定する。
【００４２】
仮想カメラ１は、右眼用画像を提供する右眼用仮想カメラと、左眼用画像を提供する左眼用仮想カメラとを含むことが好ましい。さらに、２つの仮想カメラには、ユーザが３次元の仮想空間２を認識できるように適切な視差が設定されていることが好ましい。本実施形態では、このような２つの仮想カメラのロール方向が合成されることによって生成されるロール方向（ｗ）がＨＭＤ１１０のロール方向（ｗ）に適合されるような仮想カメラ１のみを、代表して図示および説明するものとする。
【００４３】
（視線方向の検出）
注視センサ１３０は、ユーザの右目および左目の視線が向けられる方向（視線方向）を検出するアイトラッキング機能を有する。注視センサ１３０として、アイトラッキング機能を有する公知のセンサを採用することができる。注視センサ１３０は、右目用センサおよび左目用センサを備えていることが好ましい。注視センサ１３０は、たとえば、ユーザの右目および左目に赤外光を照射すると共に、照射光に対する角膜および虹彩からの反射光を受光することによって、各眼球の回転角を検出するセンサでもよい。注視センサ１３０は、検出した各回転角に基づき、ユーザの視線方向を検知することができる。
【００４４】
注視センサ１３０によって検出されるユーザの視線方向は、ユーザが物体を視認する際の視点座標系における方向である。上述したように、ＨＭＤ１１０のｕｖｗ視野座標系は、ユーザがディスプレイ１１２を視認する際の視点座標系に等しい。また、仮想カメラ１のｕｖｗ視野座標系は、ＨＭＤ１１０のｕｖｗ視野座標系に連動している。したがってＨＭＤシステム１００では、注視センサ１３０によって検出されたユーザの視線方向を、仮想カメラ１のｕｖｗ視野座標系におけるユーザの視線方向と見なすことができる。
【００４５】
図６は、ユーザの視線方向を決定する方法を例示する図である。この図に示すように、注視センサ１３０は、ユーザＵの右目および左目の視線を検出する。ユーザＵが近くを見ている場合、注視センサ１３０は、ユーザＵの視線Ｒ１およびＬ１を検出する。ユーザが遠くを見ている場合、注視センサ１３０は、ユーザの視線Ｒ１およびＬ１よりも、ＨＭＤ１１０のロール方向（ｗ）とのなす角が小さい視線Ｒ２およびＬ２を特定する。注視センサ１３０は、検出値を制御回路部２００に送信する。
【００４６】
制御回路部２００は、視線の検出値として視線Ｒ１およびＬ１を受信した場合、両者の交点である注視点Ｎ１を特定する。一方、視線Ｒ２およびＬ２を受信した場合も、両者の交点である注視点Ｎ１（不図示）を特定する。制御回路部２００は、特定した注視点Ｎ１に基づき、ユーザＵの視線方向Ｎ０を検出する。制御回路部２００は、たとえば、ユーザＵの右目Ｒと左目Ｌとを結ぶ直線の中点と、注視点Ｎ１とを通る直線の伸びる方向を、視線方向Ｎ０として検出する。視線方向Ｎ０は、ユーザＵが両目により実際に視線を向けている方向である。視線方向Ｎ０はまた、視界領域２３に対してユーザＵが実際に視線を向けている方向でもある。
【００４７】
ＨＭＤシステム１００は、ＨＭＤシステム１００を構成するいずれかの要素に、マイクおよびスピーカを備えていてもよい。これにより、ユーザは仮想空間２内に対して、音声による指示を与えることができる。また、仮想空間内の仮想テレビにテレビ番組の放送を受信するために、ＨＭＤシステム１００はいずれかの要素にテレビジョン受像機を含んでいてもよい。また、ユーザが取得した電子メール等を表示させるための、通信機能等を含んでいてもよい。
【００４８】
（コントローラ３００）
コントローラ３００は、ユーザの身体の一部の動きを検知することにより、仮想オブジェクトの動きを制御するために用いる装置の一例である。図１に示すように、コントローラ３００は、ユーザが右手に持って使用する右コントローラ３２０と、ユーザが左手に持って使用する左コントローラ３３０とからなる。右コントローラ３２０および左コントローラ３３０は、それぞれ別体の装置として構成される。ユーザは、右コントローラ３２０を持った右手と、左コントローラ３３０を持った左手とを動かすことにより、ユーザの手の動きに連動する仮想オブジェクト（以下、状況に応じて、可動オブジェクト、または具体的に、仮想手、仮想右手、仮想左手、などと称することがある。）を、自由に動かすことができる。なお、ユーザの頭部以外である身体の一部の動きを検知するための方法は、当該身体の一部に装着されるセンサを含むコントローラを用いる例に限られず、画像認識、その他任意の物理的、光学的な手法等を適用できる。例えば、外部カメラを用いてユーザの身体の一部の初期位置を特定し、継続的にユーザの身体の一部の位置を特定することにより、ユーザの頭部以外である身体の一部の動きを検知できる。以下の説明においては、コントローラ３００を用いたユーザの頭部以外である身体の一部の動きの検知について詳述する。
【００４９】
図１に示すように、右コントローラ３２０および左コントローラ３３０は、それぞれ、操作ボタン３０２、赤外線ＬＥＤ（Light Emitting Diode）３０４、センサ３０６、およびトランシーバ３０８を備えている。右コントローラ３２０および左コントローラ３３０は、赤外線ＬＥＤ３０４およびセンサ３０６のうちいずれか一方のみを備えていてもよい。図７は、右コントローラ３２０の構成を表す図である。以下の説明において、右コントローラ３２０および左コントローラ３３０は共通の構成を有するため、右コントローラ３２０の構成のみを説明する。
【００５０】
コントローラセンサ１４０は、右コントローラ３２０の動きを検出するためのポジション・トラッキング機能を有する。コントローラセンサ１４０は、現実空間内における右コントローラ３２０の位置および傾きを検出する。コントローラセンサ１４０は、右コントローラ３２０の赤外線ＬＥＤ３０４から発せられた赤外光を、それぞれ検出する。コントローラセンサ１４０は、赤外波長領域において画像を撮像する赤外カメラを備えており、この赤外カメラによって撮像した画像のデータに基づき、右コントローラ３２０の位置および傾きを検出する。
【００５１】
コントローラセンサ１４０の代わりに、右コントローラ３２０が、センサ３０６を用いて自身の位置および傾きを検出してもよい。この場合、右コントローラ３２０の三軸角速度センサ（センサ３０６）が、右コントローラ３２０の３つの直交する各軸回りの回転を検出する。右コントローラ３２０は、各検出値に基づき、右コントローラ３２０がどちらの方向にどれだけ回転したかを検出し、逐次検出した回転方向と回転量とを累積することによって、右コントローラ３２０の傾きを算出する。右コントローラ３２０は、三軸角速度センサの検出値に加えて、三軸磁気センサおよび／または三軸加速度センサからの検出値を併用してもよい。
【００５２】
操作ボタン３０２は、コントローラ３００に対するユーザからの操作入力を受け取るように構成された複数のボタン群である。本実施形態では、操作ボタン３０２は、プッシュ式ボタン、トリガー式ボタン、およびアナログスティックを含む。
【００５３】
プッシュ式ボタンは、親指で下向きに押下する動作によって操作するように構成されたボタンである。右コントローラ３２０は、プッシュ式ボタンとして、天面３２２上に親指ボタン３０２ａおよび３０２ｂを備えている。親指ボタン３０２ａおよび３０２ｂは、いずれも右手の親指によって操作（押下）される。右手の親指によって親指ボタン３０２ａおよび３０２ｂが押下され、または、天面３２２上に親指が配置されることにより、仮想右手の親指が伸ばした状態から曲げられた状態に変化される。
【００５４】
トリガー式ボタンは、人差し指または中指で引き金を引くような動作によって操作するように構成されたボタンである。右コントローラ３２０は、トリガー式ボタンとして、グリップ３２４の前面部分に人差し指ボタン３０２ｅを備えている。人差し指ボタン３０２ｅを右手の人差し指によって操作することにより、仮想右手の人差し指が伸ばした状態から曲げられた状態に変化される。また、グリップ３２４の側面部分に中指ボタン３０２ｆを備えている。中指ボタン３０２ｆを右手の中指によって操作することにより、仮想右手の中指、薬指、小指が伸ばした状態から曲げられた状態に変化される。
【００５５】
右コントローラ３２０は、親指ボタン３０２ａおよび３０２ｂ、人差し指ボタン３０２ｅ、ならびに中指ボタン３０２ｆの押下状態をそれぞれ検出し、これらの検出値を制御回路部２００に出力する。
【００５６】
本実施形態では、右コントローラ３２０の各ボタンの押下状態の検出値は、０から１のいずれかの値を取り得る。たとえば、ユーザが親指ボタン３０２ａをまったく押下していない場合、親指ボタン３０２ａの押下状態として「０」が検出される。一方、ユーザが親指ボタン３０２ａを完全に（最も深く）押下している場合、親指ボタン３０２ａの押下状態として「１」が検出される。これにより、仮想手における各指の曲がり具合を調整してもよい。例えば、「０」の状態を指が伸びている状態として定義し、「１」の状態を指が曲げられている状態として定義することにより、ユーザは直感的な動作によって仮想手の指を制御することができる。
【００５７】
アナログスティックは、所定のニュートラル位置から３６０°任意の方向へ傾けて操作することが可能なスティック型のボタンである。右コントローラ３２０の天面３２２上にアナログスティック３０２ｉが設けられる。アナログスティック３０２ｉは、右手の親指によって操作される。
【００５８】
右コントローラ３２０は、グリップ３２４の両側面から天面３２２とは反対側の方向へ延びて半円状のリングを形成するフレーム３２６を備えている。フレーム３２６の外表面には、複数の赤外線ＬＥＤ３０４が埋め込まれている。
【００５９】
赤外線ＬＥＤ３０４は、コンピュータゲームのプレイ中に赤外線を発光する。赤外線ＬＥＤ３０４から発せられた赤外光は、右コントローラ３２０の位置および傾きを検出するために利用される。
【００６０】
右コントローラ３２０は、赤外線ＬＥＤ３０４の代わりに、または赤外線ＬＥＤ３０４に加えて、さらにセンサ３０６を内蔵する。センサ３０６は、たとえば磁気センサ、角速度センサ、若しくは加速度センサのいずれか、またはこれらの組み合わせであってよい。センサ３０６によって、右コントローラ３２０の位置および傾きを検出することができる。
【００６１】
トランシーバ３０８は、右コントローラ３２０と、制御回路部２００との間でデータを送受信するように構成される。トランシーバ３０８は、ユーザが操作ボタン３０２を介して右コントローラ３２０に与えた操作入力に基づくデータを、制御回路部２００へ送信する。また、トランシーバ３０８は、赤外線ＬＥＤ３０４の発光を右コントローラ３２０に指示する命令を、制御回路部２００から受信する。さらに、トランシーバ３０８は、センサ３０６によって検出した各種の値に対応するデータを、制御回路部２００へ送信する。
【００６２】
右コントローラ３２０は、ユーザの手に振動による触覚フィードバックを伝えるためのバイブレータを備えていてもよい。この構成では、トランシーバ３０８は、上述した各データの送受信に加えて、バイブレータに触覚フィードバックを行わせるための命令を制御回路部２００から受信することができる。
【００６３】
（制御回路部２００の機能的構成）
図８は、制御回路部２００の機能的構成を示すブロック図である。制御回路部２００は、ＨＭＤセンサ１２０、コントローラセンサ１４０、注視センサ１３０、およびコントローラ３００から受信した各種のデータを用いることによって、ユーザに提供される仮想空間２を制御すると共に、ＨＭＤ１１０のディスプレイ１１２への画像表示を制御する。図８に示すように、制御回路部２００は、検出部２１０、表示制御部２２０、仮想空間制御部２３０、記憶部２４０、および通信部２５０を備えている。制御回路部２００は、図２に示す各ハードウェアの協働によって、検出部２１０、表示制御部２２０、仮想空間制御部２３０、記憶部２４０、および通信部２５０として機能する。検出部２１０、表示制御部２２０、および仮想空間制御部２３０は、主としてプロセッサおよびメモリの協働によってその機能が実現され得る。記憶部２４０は、主としてメモリおよびストレージの協働によってその機能が実現され得る。通信部２５０は、主としてプロセッサおよび通信インターフェースの協働によってその機能が実現され得る。
【００６４】
検出部２１０は、制御回路部２００に接続される各種のセンサ（ＨＭＤセンサ１２０等）から検出値を受信する。また、必要に応じて、受信した検出値を用いた所定の処理を実行する。検出部２１０は、ＨＭＤ検出部２１１、視線検出部２１２、およびコントローラ検出部２１３を備えている。ＨＭＤ検出部２１１は、ＨＭＤ１１０およびＨＭＤセンサ１２０から検出値をそれぞれ受信する。視線検出部２１２は、注視センサ１３０から検出値を受信する。コントローラ検出部２１３は、コントローラセンサ１４０、右コントローラ３２０、および左コントローラ３３０から、それぞれの検出値を受信する。
【００６５】
表示制御部２２０は、ＨＭＤ１１０のディスプレイ１１２への画像表示を制御する。表示制御部２２０は、仮想カメラ制御部２２１、視界領域決定部２２２、および視界画像生成部２２３を備えている。仮想カメラ制御部２２１は、仮想空間２内に仮想カメラ１を配置すると共に、仮想空間２内における仮想カメラ１の挙動を制御する。視界領域決定部２２２は、視界領域２３を決定する。視界画像生成部２２３は、決定された視界領域２３に基づき、ディスプレイ１１２に表示される視界画像２６を生成する。
【００６６】
仮想空間制御部２３０は、ユーザに提供される仮想空間２を制御する。仮想空間制御部２３０は、仮想空間規定部２３１、仮想手制御部２３２、ユーザインターフェース（ＵＩ）オブジェクト制御部２３３、および、移動先特定部２３４を備えている。
【００６７】
仮想空間規定部２３１は、ユーザに提供される仮想空間２を表す仮想空間データを生成することによって、ＨＭＤシステム１００における仮想空間２を規定する。仮想手制御部２３２は、ユーザによる右コントローラ３２０および左コントローラ３３０の操作に応じたユーザの各仮想手（仮想右手および仮想左手）を仮想空間２内に配置すると共に、仮想空間２内における各仮想手の挙動を制御する。
【００６８】
ＵＩオブジェクト制御部２３３は、ＵＩオブジェクトを仮想空間２内に配置すると共に、仮想空間２におけるＵＩオブジェクトの挙動を制御する。ＵＩオブジェクトとは、仮想空間２に配置される仮想オブジェクトのうち、仮想カメラ１の移動先を指定するためのオブジェクトである。ＵＩオブジェクトは、仮想空間２における位置に関する属性を含む。属性は、仮想空間における座標情報などを含む。座標情報は、ＵＩオブジェクトの中心の座標、ＵＩオブジェクトの外縁の座標、複数のＵＩオブジェクトの交点の座標などを示す情報である。ＵＩオブジェクト制御部２３３は、ユーザによって入力される第１操作に基づいて、１以上のＵＩオブジェクトを配置し、配置したＵＩオブジェクトの上記座標情報を変更することにより、１以上の属性を変更する。
【００６９】
移動先特定部２３４は、ＵＩオブジェクトの属性に基づいて仮想カメラ１の移動先を特定する。移動先特定部２３４は、第１操作が入力された後、ユーザによって第２操作が入力された時点のＵＩオブジェクトの属性に基づいて、仮想空間２における、ＵＩオブジェクトの所定の位置の座標を特定する。そして、当該座標を仮想カメラ１の移動先として特定する。移動先特定部２３４は、特定した移動先の仮想空間２における座標を、仮想カメラ制御部２２１に出力する。
【００７０】
記憶部２４０は、制御回路部２００が仮想空間２をユーザに提供するために用いる各種のデータを格納している。記憶部２４０は、雛形格納部２４１、コンテンツ格納部２４２、および変更規則格納部２４３を備えている。雛形格納部２４１は、仮想空間２の雛形を表す各種の雛形データを格納している。コンテンツ格納部２４２は、仮想空間２において再生可能な各種のコンテンツを格納している。変更規則格納部２４３は、ＵＩオブジェクトの属性を変更するときの変更規則を格納している。ＵＩオブジェクト制御部２３３は、第１操作に応じて、前記変更規則にしたがってＵＩオブジェクトの属性を変更する。
【００７１】
雛形データは、仮想空間２の空間構造を規定する空間構造データを有する。空間構造データは、たとえば、中心２１を中心とする３６０°の全天球の空間構造を規定するデータである。雛形データは、仮想空間２のＸＹＺ座標系を規定するデータをさらに有する。雛形データは、天球を構成する各メッシュのＸＹＺ座標系における位置を特定する座標データをさらに有する。また、雛形データは、仮想空間２内に仮想オブジェクトを配置可能であるか否かを示すフラグをさらに有する。
【００７２】
コンテンツは、仮想空間２において再生可能なコンテンツである。本実施形態では、このコンテンツはゲームコンテンツである。コンテンツは、ゲームの背景画像、および、ゲームに登場する仮想オブジェクト（キャラクタ、アイテム等）を規定するデータを少なくとも有する。各コンテンツには、ＨＭＤ１１０の初期状態（起動時）にユーザに見せる画像を向いた初期方向が、予め規定されている。
【００７３】
通信部２５０は、ネットワークＮＷを介して外部機器４００（たとえばゲームサーバ）との間でデータを送受信する。
【００７４】
（仮想空間２の提供処理）
図９は、ＨＭＤシステム１００が仮想空間２をユーザに提供する処理の流れを示すシーケンス図である。仮想空間２は、基本的に、ＨＭＤ１１０および制御回路部２００の協働によってユーザに提供される。まず、ステップＳ１において、仮想空間規定部２３１が、ユーザに提供される仮想空間２を表す仮想空間データを生成することによって、仮想空間２を規定する。生成の手順は次の通りである。まず仮想空間規定部２３１は、仮想空間２の雛形データを雛形格納部２４１から取得することによって、仮想空間２の原型を定義する。仮想空間規定部２３１は、さらに、仮想空間２において再生されるコンテンツを、コンテンツ格納部２４２から取得する。本実施形態では、このコンテンツはゲームコンテンツである。
【００７５】
仮想空間規定部２３１は、取得した雛形データに、取得したコンテンツを適合することによって、仮想空間２を規定する仮想空間データを生成する。仮想空間規定部２３１は、仮想空間データにおいて、仮想空間２の天球を構成する各メッシュの管理データに、コンテンツに含まれる背景画像を構成する各部分画像を適宜関連付ける。仮想空間規定部２３１は、コンテンツに規定される初期方向を仮想空間２のＸＹＺ座標系におけるＺ方向に合致させるように、各部分画像と各メッシュとを関連付けることが好ましい。
【００７６】
仮想空間規定部２３１は、さらに、必要に応じて、コンテンツに含まれる各仮想オブジェクトの管理データを、仮想空間データに追加する。その際、各管理データに、対応する仮想オブジェクトが仮想空間２において配置される位置を表す座標を、設定する。これにより各仮想オブジェクトが、仮想空間２における当該座標の位置にそれぞれ配置される。
【００７７】
その後、ユーザによってＨＭＤ１１０が起動されると、ステップＳ２において、ＨＭＤセンサ１２０が、ＨＭＤ１１０の初期状態における位置および傾きを検出して、ステップＳ３において、検出値を制御回路部２００に出力する。ＨＭＤ検出部２１１は、この検出値を受信する。この後、ステップＳ４において、仮想カメラ制御部２２１は、仮想空間２において仮想カメラ１を初期化する。
【００７８】
初期化の手順は次の通りである。まず仮想カメラ制御部２２１は、仮想空間２内における初期位置（図４における中心２１等）に、仮想カメラ１を配置する。次に、仮想空間２における仮想カメラ１の向きを設定する。その際、仮想カメラ制御部２２１は、ＨＭＤセンサ１２０からの検出値に基づき初期状態のＨＭＤ１１０のｕｖｗ視野座標系を特定すると共に、ＨＭＤ１１０のｕｖｗ視野座標系に一致するｕｖｗ視野座標系を仮想カメラ１に設定することによって、仮想カメラ１の向きを設定すればよい。仮想カメラ制御部２２１は、仮想カメラ１にｕｖｗ視野座標系を設定する際、仮想カメラ１のロール方向（ｗ軸）をＸＹＺ座標系のＺ方向（Ｚ軸）に適合させる。具体的には、仮想カメラ制御部２２１は、仮想カメラ１のロール方向をＸＺ平面に投影して得られる方向を、ＸＹＺ座標系のＺ方向に一致させると共に、ＸＺ平面に対する仮想カメラ１のロール方向の傾きを、水平面に対するＨＭＤ１１０のロール方向の傾きに一致させる。このような適合処理によって、初期状態の仮想カメラ１のロール方向がコンテンツの初期方向に適合されるので、コンテンツの再生開始後におけるユーザが最初に向く水平方向の向きを、コンテンツの初期方向に一致させることができる。
【００７９】
仮想カメラ１の初期化処理が終わると、視界領域決定部２２２は、仮想カメラ１のｕｖｗ視野座標系に基づき、仮想空間２における視界領域２３を決定する。具体的には、仮想カメラ１のｕｖｗ視野座標系のロール方向（ｗ軸）をユーザの基準視線５として特定し、この基準視線５に基づき視界領域２３を決定する。ステップＳ５において、視界画像生成部２２３は、仮想空間データを処理することによって、仮想空間２に展開される仮想空間画像２２の全体のうち、仮想空間２における視界領域２３に投影される部分に相当する視界画像２６を生成（レンダリング）する。ステップＳ６において、視界画像生成部２２３は、生成した視界画像２６を初期視界画像としてＨＭＤ１１０に出力する。ステップＳ７において、ＨＭＤ１１０は、受信した初期視界画像をディスプレイ１１２に表示する。これによりユーザは初期視界画像を視認する。
【００８０】
その後、ステップＳ８において、ＨＭＤセンサ１２０が、ＨＭＤ１１０の現在の位置および傾きを検出して、ステップＳ９において、これらの検出値を制御回路部２００に出力する。ＨＭＤ検出部２１１は、各検出値を受信する。仮想カメラ制御部２２１は、ＨＭＤ１１０の位置および傾きの検出値に基づき、ＨＭＤ１１０における現在のｕｖｗ視野座標系を特定する。さらに、ステップＳ１０において、仮想カメラ制御部２２１は、ＸＹＺ座標系におけるｕｖｗ視野座標系のロール方向（ｗ軸）を、ＨＭＤ１１０の視界方向として特定する。
【００８１】
本実施形態では、ステップＳ１１において、仮想カメラ制御部２２１が、特定したＨＭＤ１１０の視界方向を、仮想空間２におけるユーザの基準視線５として特定する。ステップＳ１２において、仮想カメラ制御部２２１は、特定した基準視線５に基づき、仮想カメラ１を制御する。仮想カメラ制御部２２１は、基準視線５の位置（起点）および方向が仮想カメラ１の初期状態と同一であれば、仮想カメラ１の位置および方向をそのまま維持する。一方、基準視線５の位置（起点）および／または方向が、仮想カメラ１の初期状態から変化していれば、仮想空間２内における仮想カメラ１の位置および／または傾きを、変化後の基準視線５に応じた位置および／または傾きに変更する。また、制御後の仮想カメラ１に対してｕｖｗ視野座標系を再設定する。
【００８２】
ステップＳ１３において、視界領域決定部２２２は、特定した基準視線５に基づき、仮想空間２における視界領域２３を決定する。その後、ステップＳ１４において、視界画像生成部２２３は、仮想空間データを処理することによって、仮想空間２に展開される仮想空間画像２２の全体のうち、仮想空間２における視界領域２３に投影（重畳）される部分である視界画像２６を生成（レンダリング）する。ステップＳ１５において、視界画像生成部２２３は、生成した視界画像２６を更新用の視界画像としてＨＭＤ１１０に出力する。ステップＳ１６において、ＨＭＤ１１０は、受信した視界画像２６をディスプレイ１１２に表示することによって、視界画像２６を更新する。これにより、ユーザがＨＭＤ１１０を動かせば、それに連動して視界画像２６が更新される。
【００８３】
＜仮想カメラの移動方法−概要＞
制御回路部２００は、移動方法を実行することによって、ユーザに対して、仮想空間２を移動するための、操作性に優れたユーザインターフェースを提供する。制御回路部２００は、仮想カメラ１の移動先を指定する仮想オブジェクトを仮想空間２に配置する。仮想オブジェクトは、ユーザが移動先を指定するためのユーザインターフェースを実現するＵＩオブジェクトである。
【００８４】
制御回路部２００は、ユーザにより入力された第１操作を受け付け、第１操作に基づいて、仮想空間２におけるＵＩオブジェクトの位置に関する属性を変更する。制御回路部２００は、第１操作よりも後にユーザにより入力された第２操作を受け付けて、第２操作が入力された時点のＵＩオブジェクトの属性に基づいて、仮想カメラ１の移動先を特定する。制御回路部２００は、特定した移動先に仮想カメラ１を移動させる。
【００８５】
（移動方法の一例）
ＵＩオブジェクト制御部２３３は、ＵＩオブジェクトを、仮想カメラ１を囲むように配置する。検出部２１０が第１操作を受け付けると、ＵＩオブジェクト制御部２３３は、仮想空間２におけるＵＩオブジェクトの外縁の位置を、第１操作に含まれる経時的情報に基づいて変更する。第１操作の受け付け時点から時間が経過するのに伴って、ＵＩオブジェクトの大きさを変更してもよい。本方法において、ＵＩオブジェクトは、移動の距離を指定するためのオブジェクトである。
【００８６】
第１操作を受け付けた後、検出部２１０は、仮想カメラ１の移動方向を特定するための入力をユーザから受け付ける。検出部２１０は、受け付けた入力内容に基づいて、ＨＭＤ１１０の傾き、または、ユーザの視線方向を特定する。移動先特定部２３４は、特定された傾きまたは視線方向に基づいて、移動方向を特定してもよい。
【００８７】
移動先特定部２３４は、ユーザによって第２操作が入力されると、第２操作の入力時点における、移動方向とＵＩオブジェクトの外縁とに基づいて、ＵＩオブジェクトの属性を特定する。そして、特定した属性に基づいて、仮想カメラ１の移動先を特定する。移動先特定部２３４は、仮想空間２における、移動方向と外縁との交点の座標を、仮想カメラ１の移動先として特定してもよい。
【００８８】
図１０は、移動方法の一例を示す図であり、図１１は、該移動方法を実行するＨＭＤシステム１００の処理の流れを説明するフローチャートである。ＵＩオブジェクトは、例えば円オブジェクト４０である。第１操作および第２操作は、例えばコントローラ３００を介してなされる。移動方向を特定するための入力は、例えばＨＭＤ１１０を所望の方向に向けることによってなされる。
【００８９】
ステップＳ２１において、コントローラ検出部２１３は、コントローラ３００から受信した検出値に基づき、第１操作の入力有無を検出する。ステップＳ２１でＹＥＳの場合、ステップＳ２２において、ＵＩオブジェクト制御部２３３は、円オブジェクト４０を仮想空間２内に配置する。ＵＩオブジェクト制御部２３３は、円オブジェクト４０を、仮想カメラ１の位置が円オブジェクト４０の中心となるように配置してもよい。
【００９０】
ステップＳ２３において、ＵＩオブジェクト制御部２３３は、第２操作が入力されるまで（ステップＳ２６でＮＯ）、円オブジェクト４０の属性を変更する。ＵＩオブジェクト制御部２３３は、円オブジェクト４０の中心を仮想カメラ１の位置に維持したまま、経時的情報に基づいて、円オブジェクト４０の半径を徐々に延ばしてもよい。円オブジェクト４０は、仮想カメラ１を中心として、波紋が広がっていくように、ＨＭＤ１１０に提示されてもよい。経時的情報は、第１操作の検出値に基づいて、コントローラ検出部２１３によって特定される。経時的情報は、ボタンが押下された時点からの経過時間、ボタンが押下され続けている時間、ある期間中にボタンが押下された回数などである。
【００９１】
ステップＳ２４において、ＨＭＤ検出部２１１は、仮想カメラ１の移動方向を特定するための入力として、ＨＭＤセンサ１２０から送信される検出値を受信する。ＨＭＤ検出部２１１は、受信した検出値に基づいて、ＨＭＤ１１０の視界方向を特定する。
【００９２】
ステップＳ２４でＹＥＳの場合、ステップＳ２５において、移動先特定部２３４は、特定された視界方向に基づいて移動方向を特定する。該移動方向を示す視線４１は、レーザビームのような態様でＨＭＤ１１０に提示されてもよい。
【００９３】
ステップＳ２６において、コントローラ検出部２１３は、コントローラ３００から受信した検出値に基づき、第２操作の入力有無を検出する。ステップＳ２６でＹＥＳの場合、ステップＳ２７において、移動先特定部２３４は、第２操作が入力された時点の、円オブジェクト４０の属性を特定する。例えば、円オブジェクト４０の外縁と視線４１との交点５０を特定してもよい。
【００９４】
ステップＳ２８において、移動先特定部２３４は、仮想空間２における、特定した交点５０の座標を取得し、当該座標に基づいて仮想カメラ１の移動先を特定する。移動先特定部２３４は、取得した座標をそのまま移動先として特定してもよいし、該座標を基準にして所定の規則に基づいて算出した座標を移動先として特定してもよい。
【００９５】
ステップＳ２９において、仮想カメラ制御部２２１は、移動先特定部２３４が移動先として特定した座標が示す位置に仮想カメラ１を移動させる。
【００９６】
移動後の仮想カメラ１の位置に基づいて、図９に示されているステップＳ８〜ステップＳ１６の処理が実行され、ＨＭＤ１１０に表示される視界画像が更新される。該視界画像は、第２操作が入力されることによって仮想カメラ１の移動先が確定したときに、該移動先の位置にワープするように切り替わってもよい。
【００９７】
本方法によれば、ユーザは、第１操作を入力することにより、ＵＩオブジェクトの属性の変更を開始させる。そして、属性の変化を観察しながら移動したい方向に視線４１を向ける。属性が変更されている間、ユーザは自由に視線４１を送る方向を変更することができる。視線４１は、視線方向または視界方向である。ユーザは、所望の移動距離にＵＩオブジェクトの外縁が到達したタイミングで第２操作を入力することにより、ＵＩオブジェクトの外縁を確定させる。これにより、ＵＩオブジェクトの外縁と視線４１とに基づいて、仮想カメラ１の移動先が特定される。以上のとおり、ユーザは、第２操作による１度の操作によって、移動距離と移動方向とを同時に指定することができる。この結果、ＨＭＤシステム１００における、仮想空間の移動に係る操作性が向上し、仮想空間への没入感が改善される。
【００９８】
（移動方法の他の例）
本方法において、第１操作は、ユーザの身体の一部に連動するように仮想空間２内を動作する可動オブジェクトの動作を入力する操作である。ＵＩオブジェクト制御部２３３は、ＵＩオブジェクトが仮想空間２を移動するときの移動態様を、可動オブジェクトの動作に基づいて、当該ＵＩオブジェクトに特徴付ける。ＵＩオブジェクト制御部２３３は、移動態様に基づいて、仮想空間２におけるＵＩオブジェクトを移動させることにより、ＵＩオブジェクトの位置に関する属性を変更する。移動先特定部２３４は、第２操作が入力された時点の移動態様に基づいて、仮想空間２におけるＵＩオブジェクトの位置を特定する。移動先特定部２３４は、特定した位置の座標に基づいて仮想カメラ１の移動先を特定する。
【００９９】
図１２は、移動方法の他の例を示す図であり、図１３は、該移動方法を実現するＨＭＤシステム１００の処理の流れを説明するフローチャートである。可動オブジェクトは、例えば仮想手である。仮想手を動作させるための第１操作は、例えばユーザがコントローラ３００を所望の速度で所望の方向に動かしたり、傾けたりすることによってなされる。ＵＩオブジェクトは、例えば仮想手の動作に基づいて仮想空間２内を移動する、移動オブジェクト４２である。
【０１００】
ステップＳ４１において、コントローラ検出部２１３は、コントローラセンサ１４０から受信した検出値に基づき、第１操作の入力有無を検出する。ステップＳ４１でＹＥＳの場合、ステップＳ４２において、仮想手制御部２３２は、検出値に基づいて特定された、コントローラ３００の位置および傾きに基づいて、仮想手を動作させる。
【０１０１】
ステップＳ４３において、ＵＩオブジェクト制御部２３３は、移動オブジェクト４２の移動態様を、仮想手の動作に基づいて特定し、特定した移動態様を移動オブジェクト４２に特徴付ける。ＵＩオブジェクト制御部２３３は、動作した仮想手の初速および初速ベクトルに少なくとも基づいて、移動オブジェクト４２に移動態様を特徴付けてもよい。
【０１０２】
ステップＳ４４において、ＵＩオブジェクト制御部２３３は、移動態様に基づいて、仮想空間２に配置した移動オブジェクト４２を移動させることにより、移動オブジェクト４２の属性を変更する。ＵＩオブジェクト制御部２３３は、第２操作が入力されるまで（ステップＳ４５でＮＯ）、移動オブジェクト４２の移動を継続してもよい。
【０１０３】
ステップＳ４５において、コントローラ検出部２１３は、コントローラ３００から受信した検出値に基づき、第２操作の入力有無を検出する。ステップＳ４５でＹＥＳの場合、ステップＳ４６において、移動先特定部２３４は、第２操作が入力された時点の、仮想空間２における移動オブジェクト４２の位置を特定する。
【０１０４】
ステップＳ４７において、移動先特定部２３４は、移動オブジェクト４２の位置の仮想空間２における座標を取得し、当該座標に基づいて仮想カメラ１の移動先を特定する。移動先特定部２３４は、取得した座標をそのまま移動先として特定してもよいし、該座標を基準にして所定の規則に基づいて算出した座標を移動先として特定してもよい。ステップＳ４８以降は、上述のステップＳ２９以降と同様である。
【０１０５】
本方法によれば、ユーザは、第２操作による１度の操作によって、移動先を指定することができる。この結果、ＨＭＤシステム１００における、仮想空間の移動に係る操作性が向上し、仮想空間への没入感が改善される。
【０１０６】
（移動方法のさらに他の例）
本方法において、ＵＩオブジェクトは、第１操作に含まれる方向情報に基づいて仮想空間２内を移動するアバターである。ＵＩオブジェクト制御部２３３は、該方向情報に基づいて、アバターを仮想空間２内の任意の位置に移動させることにより、属性を変更する。移動先特定部２３４は、第２操作が入力された時点のアバターの位置の、仮想空間２における位置を特定する。移動先特定部２３４は、特定した位置の座標に基づいて仮想カメラ１の移動先を特定する。
【０１０７】
図１４は、移動方法のさらに他の例を示す図であり、図１５は、当該移動方法を実現するＨＭＤシステム１００の処理の流れを説明するフローチャートである。アバターを動かすための第１操作は、ユーザが、方向情報を入力することによってなされる。ＵＩオブジェクトは、該方向情報に基づいて仮想空間２内を移動する、アバター４３である。
【０１０８】
ステップＳ６１において、コントローラ検出部２１３は、コントローラ３００から受信した検出値に基づき、第１操作の入力有無を検出する。ステップＳ６１でＹＥＳの場合、ステップＳ６２において、ＵＩオブジェクト制御部２３３は、アバター４３を仮想空間２内に配置する。
【０１０９】
ステップＳ６３において、ＵＩオブジェクト制御部２３３は、第１操作に含まれる方向情報に基づいて、アバター４３を移動させる。さらに、方向情報に基づいて、アバター４３の向きを変更してもよい。
【０１１０】
ステップＳ６４において、コントローラ検出部２１３は、コントローラ３００から受信した検出値に基づき、第２操作の入力有無を検出する。ステップＳ６４でＹＥＳの場合、ステップＳ６５において、移動先特定部２３４は、第２操作が入力された時点の、仮想空間２におけるアバター４３の位置を特定する。なお、必要に応じてさらに向きを特定してもよい。
【０１１１】
ステップＳ６６において、移動先特定部２３４は、アバター４３の位置の仮想空間２における座標を取得し、当該座標に基づいて仮想カメラ１の移動先を特定する。移動先特定部２３４は、取得した座標をそのまま移動先として特定してもよいし、該座標を基準にして所定の規則に基づいて算出した座標を移動先として特定してもよい。移動先特定部２３４は、必要に応じて、アバター４３の向きを仮想カメラ１の移動後の向きとしてさらに特定してもよい。
【０１１２】
ステップＳ６７において、仮想カメラ制御部２２１は、移動先特定部２３４が移動先として特定した座標が示す位置に仮想カメラ１を移動させる。仮想カメラ制御部２２１は、特定されたアバター４３の向きに基づいて、移動後の仮想カメラ１の向きを設定してもよい。以降は、移動後の仮想カメラ１の位置および向きに基づいて、上述の各移動方法と同様に、ＨＭＤ１１０に表示される視界画像が更新される。
【０１１３】
仮想カメラ制御部２２１は、アバター４３の正面方向を向く第２仮想カメラ（図示せず）を、アバター４３の位置に配置してもよい。表示制御部２２０は、視界画像中の一部の領域に、第２仮想カメラに基づく視界画像を配置して、ＨＭＤ１１０に表示させてもよい。
【０１１４】
本方法によれば、ユーザは、第２操作による１度の操作によって、移動先を指定することができる。この結果、ＨＭＤシステム１００における、仮想空間の移動に係る操作性が向上し、仮想空間への没入感が改善される。
【０１１５】
（変形例）
上述の各移動方法において、制御回路部２００は、視界方向ではなく視線方向Ｎ０を、基準視線５として特定してもよい。この場合、ユーザが視線を変化させるとそれに連動して仮想カメラ１の向きが変わるので、視界領域２３の位置も視線変化に連動して変化する。その結果、視界画像２６の内容が視線変化に応じて変化することになる。
【０１１６】
上述の移動方法の一例において、視線検出部２１２が、注視センサ１３０から受信した検出値に基づいて、ユーザの視線方向Ｎ０を特定することにより、移動方向を特定するための入力を受け付けてもよい。
【０１１７】
当該移動方法は、基準視線５に基づいて、ユーザが注視した仮想空間２内のオブジェクトを選択するユーザインターフェースを採用するゲームなどに適用されることが想定される。当該ゲームにおいては、視線４１は、第１操作が入力される前のタイミングで、ＨＭＤ１１０に提示されてもよい。
【０１１８】
当該移動方法において、ＵＩオブジェクトは、円オブジェクト４０に限定されず、任意の形状で規定されてよい。また、ＵＩオブジェクトは、円オブジェクト４０のように平面で規定されてもよいし、球体などの立体で規定されてもよい。
【０１１９】
当該移動方法において、移動先特定部２３４は、ステップＳ２８において、仮想カメラ１の移動後の向きをさらに特定してもよい。
【０１２０】
上述の移動方法の他の例において、移動オブジェクト４２の属性は、向きに関する情報を含んでいてもよい。移動先特定部２３４は、ステップＳ４７において、第２操作が入力された時点の移動オブジェクト４２の向きを、仮想カメラ１の移動後の向きとして特定してもよい。
【０１２１】
上述の移動方法の他の例において、移動オブジェクト４２は、ボールやサイコロなど、任意の形状、体積、質量および質感を備えた物体の仮想オブジェクトである。変更規則格納部２４３には、移動オブジェクト４２および仮想空間２の環境に関する、物理法則に係る各種情報が記憶されている。各種情報とは、移動オブジェクト４２の形状、体積、質量および表面の質感、ならびに、仮想空間２の環境における重力加速度、摩擦係数および空気抵抗などである。ＵＩオブジェクト制御部２３３は、各種情報を考慮し、移動オブジェクト４２に特徴付けるべき移動態様を特定してもよい。一例として、物理法則は、現実空間における物理法則に相当する。ＵＩオブジェクト制御部２３３は、可動オブジェクトの初速および初速ベクトルに加えて、上述の各種情報を考慮して、移動オブジェクト４２の移動経路および移動速度を算出することにより、移動態様を特定してもよい。これにより、移動オブジェクト４２の移動態様を現実空間における移動態様に近づけることができる。
【０１２２】
上述の各移動方法において、ＵＩオブジェクト制御部２３３は、ＵＩオブジェクトの属性を第１操作にしたがって変更している間、当該属性によって特定される仮想カメラ１の移動経路を、メモリに一時的に記憶させておいてもよい。例えば、ＵＩオブジェクト制御部２３３は、第２操作が入力されるまでの期間、アバター４３の移動の軌跡４４（図１４）など一時的に記憶させる。視界画像生成部２２３は、軌跡４４に基づいて、移動過渡期の視界画像も生成し、これらの視界画像を、順次、ＨＭＤ１１０に出力してもよい。この結果、移動経路をたどって移動後の位置にたどり着くことをユーザに視認させることができる。なお、移動過渡期の各視界画像に対して、情報量を低減させる処理を施すことが好ましい。具体的には、視界画像の全体または一部の解像度を低下させることが好ましい。これにより、ユーザが映像酔いを起こしにくくなる。
【０１２３】
また、仮想オブジェクトとの接触による操作をＭＲ等に適用することによって仮想体験を提供する場合には、操作対象オブジェクトに換えてユーザの実際の頭部以外の身体の一部を物理的・光学的手法等によって検知し、当該身体の一部と仮想オブジェクトの位置関係に基づいて、当該身体の一部と仮想オブジェクトとの接触を判定してもよい。なお、透過型ＨＭＤを用いて仮想体験を提供する場合には、ユーザの基準視線は、非透過型ＨＭＤと同様に、ＨＭＤの動き、または、ユーザの視線を検知することによって特定してもよい。特定した基準視線に基づく判定領域の設定方法は上記実施形態で説明した通りである。
【０１２４】
〔ソフトウェアによる実現例〕
制御回路部２００の制御ブロック（検出部２１０、表示制御部２２０、仮想空間制御部２３０、記憶部２４０、および通信部２５０）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０１２５】
後者の場合、制御ブロックは、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、前記プログラムおよび各種データがコンピュータ（又はＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、前記プログラムを展開するＲＡＭ（Random Access Memory）等を備えている。そして、コンピュータ（又はＣＰＵ）が前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記記録媒体としては、「一時的でない有形の媒体」、たとえば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路等を用いることができる。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して前記コンピュータに供給されてもよい。なお、本発明は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１２６】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態も、本発明の技術的範囲に含まれる。各実施形態にそれぞれ開示された技術的手段を組み合わせることによって、新しい技術的特徴を形成することもできる。
【０１２７】
〔付記事項〕
本発明の一側面にかかる内容を列記すると以下の通りである。
【０１２８】
（項目１）頭部にヘッドマウントディスプレイ（以下、ＨＭＤ）を装着したユーザに仮想空間を提供する方法であって、前記ＨＭＤの傾き、または、前記ユーザの視線方向に基づいて、前記ユーザの前記仮想空間における基準視線を特定するステップと、前記仮想空間に配置され、前記基準視線に基づいて前記ユーザに視認させる視界領域を設定する仮想カメラを特定するステップと、前記仮想カメラの移動先を指定する仮想オブジェクトを前記仮想空間に配置するステップと、ユーザにより入力された第１操作を受け付け、前記第１操作に基づいて、前記仮想オブジェクトの前記仮想空間における位置に関する属性を変更するステップと、前記第１操作よりも後にユーザにより入力された第２操作を受け付け、前記第２操作が入力された時点の前記属性に基づいて、前記仮想カメラの移動先を特定するステップと、前記移動先に前記仮想カメラを移動させるステップとを有する、方法。これにより、仮想空間への没入感を改善することができる。
【０１２９】
（項目２）前記仮想オブジェクトを、前記仮想カメラを囲むように配置し、前記仮想空間における、前記仮想オブジェクトの外縁の位置を、前記第１操作に含まれる経時的情報に基づいて変更し、前記第１操作の入力後に、前記仮想カメラの移動方向を特定するための入力を受け付け、前記第２操作の入力時点における前記移動方向と前記外縁とに基づいて、前記属性を特定する、項目１の方法。
【０１３０】
（項目３）前記ＨＭＤの前記傾きまたは前記ユーザの前記視線方向に基づいて、前記移動方向を特定する、項目２の方法。
【０１３１】
（項目４）前記移動方向と前記外縁との交点の、前記仮想空間における位置に基づいて、前記属性を特定する、項目２または３の方法。
【０１３２】
（項目５）前記仮想オブジェクトは円であり、該円の半径を前記経時的情報に基づいて変更する、項目２〜４のいずれか１つの方法。
【０１３３】
（項目６）前記第１操作は、前記ユーザの身体の一部に連動するように前記仮想空間内を動作する可動オブジェクトの動作を入力するものであり、前記仮想オブジェクトが前記仮想空間内を移動するときの移動態様を、前記可動オブジェクトの動作に基づいて、前記仮想オブジェクトに特徴付け、前記第２操作が入力された時点の前記移動態様に基づいて、前記属性を特定する、項目１の方法。
【０１３４】
（項目７）前記移動態様を、前記可動オブジェクトの初速および初速ベクトルに少なくとも基づいて特徴付ける、項目６の方法。
【０１３５】
（項目８）前記仮想オブジェクトは、前記第１操作に含まれる方向情報に基づいて前記仮想空間内を移動するアバターであり、前記方向情報に基づいて前記アバターを前記仮想空間内の任意の位置に移動させることにより、前記属性を変更する、項目１の方法。
【０１３６】
（項目９）前記アバターの正面方向を向く第２仮想カメラを、前記仮想空間における前記アバターの位置に配置するステップと、前記視界領域に基づいて生成される視界画像中の一部の領域に、前記第２仮想カメラに基づく視界画像を配置して前記ＨＭＤに表示させるステップとをさらに含む、項目８の方法。
【０１３７】
（項目１０）前記第１操作に基づいて前記仮想オブジェクトの向きを特定し、前記仮想オブジェクトの向きに基づいて前記仮想カメラの向きを設定するステップをさらに有する、項目１〜９のいずれか１つの方法。
【０１３８】
（項目１１）項目１〜１２のいずれか１つの方法の各ステップを、コンピュータに実行させるプログラム。
【０１３９】
（項目１２）項目１１のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【符号の説明】
【０１４０】
１  仮想カメラ、２  仮想空間、５  基準視線、２１  中心、２２  仮想空間画像、２３  視界領域、２４  第１領域、２５  第２領域、２６  視界画像、４０  円オブジェクト、４１  視線オブジェクト、４２  移動オブジェクト、４３  アバター、４４  軌跡、５０  交点、１００  ＨＭＤシステム、１１０  ＨＭＤ、１１２  ディスプレイ、１１４、３０６  センサ、１２０  ＨＭＤセンサ、１３０  注視センサ、１４０  コントローラセンサ、２００  制御回路部、２１０  検出部、２１１  ＨＭＤ検出部、２１２  視線検出部、２１３  コントローラ検出部、２２０  表示制御部、２２１  仮想カメラ制御部、２２２  視界領域決定部、２２３  視界画像生成部、２３０  仮想空間制御部、２３１  仮想空間規定部、２３２  仮想手制御部、２３３  ＵＩオブジェクト制御部、２３４  移動先特定部、２４０  記憶部、２４１  雛形格納部、２４２  コンテンツ格納部、２４３  変更規則格納部、２５０  通信部、３００  コントローラ、３０２  操作ボタン、３０２ａ、３０２ｂ  親指ボタン、３０２ｅ  人差し指ボタン、３０２ｆ  中指ボタン、３０２ｉ  アナログスティック、３０４  赤外線ＬＥＤ、３０８  トランシーバ、３２０  右コントローラ、３２２  天面、３２４  グリップ、３２６  フレーム、３３０  左コントローラ、４００  外部機器
【図１】
2018028765.tif 000003
【図２】
2018028765.tif 000004
【図３】
2018028765.tif 000005
【図４】
2018028765.tif 000006
【図５】
2018028765.tif 000007
【図６】
2018028765.tif 000008
【図７】
2018028765.tif 000009
【図８】
2018028765.tif 000010
【図９】
2018028765.tif 000011
【図１０】
2018028765.tif 000012
【図１１】
2018028765.tif 000013
【図１２】
2018028765.tif 000014
【図１３】
2018028765.tif 000015
【図１４】
2018028765.tif 000016
【図１５】
2018028765.tif 000017
【手続補正書】
【提出日】平成29年4月7日(2017.4.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
頭部にヘッドマウントディスプレイ（以下、ＨＭＤ）を装着したユーザに仮想空間を提供する方法であって、
前記ＨＭＤの傾き、または、前記ユーザの視線方向に基づいて、前記ユーザの前記仮想空間における基準視線を特定するステップと、
前記仮想空間に配置され、前記基準視線に基づいて前記ユーザに視認させる視界領域を設定する仮想カメラを特定するステップと、
前記仮想カメラの移動先を指定する仮想オブジェクトを前記仮想空間に配置するステップと、
ユーザにより入力された第１操作を受け付け、前記第１操作に基づいて、前記仮想オブジェクトの前記仮想空間における位置に関する属性を変更するステップと、
前記第１操作よりも後にユーザにより入力された第２操作を受け付け、前記第２操作が入力された時点において前記属性を特定し、特定した前記属性に基づいて、前記仮想カメラの移動先を特定するステップと、
前記移動先に前記仮想カメラを移動させるステップとを有する、方法。
【請求項２】
前記仮想オブジェクトを、前記仮想カメラを囲むように配置し、
前記仮想空間における、前記仮想オブジェクトの外縁の位置を、前記第１操作に含まれる経時的情報に基づいて変更し、
前記第１操作の入力後に、前記仮想カメラの移動方向を特定するための入力を受け付け、
前記第２操作の入力時点における前記移動方向と前記外縁とに基づいて、前記属性を特定する、請求項１に記載の方法。
【請求項３】
頭部にヘッドマウントディスプレイ（以下、ＨＭＤ）を装着したユーザに仮想空間を提供する方法であって、
前記ＨＭＤの傾き、または、前記ユーザの視線方向に基づいて、前記ユーザの前記仮想空間における基準視線を特定するステップと、
前記仮想空間に配置され、前記基準視線に基づいて前記ユーザに視認させる視界領域を設定する仮想カメラを特定するステップと、
前記仮想カメラの移動先を指定する仮想オブジェクトを前記仮想空間に配置するステップと、
ユーザにより入力された第１操作を受け付け、前記第１操作に基づいて、前記仮想オブジェクトの前記仮想空間における位置に関する属性を変更するステップと、
前記第１操作よりも後にユーザにより入力された第２操作を受け付け、前記第２操作が入力された時点の前記属性に基づいて、前記仮想カメラの移動先を特定するステップと、
前記移動先に前記仮想カメラを移動させるステップとを有し、
前記仮想オブジェクトを、前記仮想カメラを囲むように配置し、
前記仮想空間における、前記仮想オブジェクトの外縁の位置を、前記第１操作に含まれる経時的情報に基づいて変更し、
前記第１操作の入力後に、前記仮想カメラの移動方向を特定するための入力を受け付け、
前記第２操作の入力時点における前記移動方向と前記外縁とに基づいて、前記属性を特定する、方法。
【請求項４】
前記ＨＭＤの前記傾きまたは前記ユーザの前記視線方向に基づいて、前記移動方向を特定する、請求項２または３に記載の方法。
【請求項５】
前記移動方向と前記外縁との交点の、前記仮想空間における位置に基づいて、前記属性を特定する、請求項２から４のいずれか１項に記載の方法。
【請求項６】
前記仮想オブジェクトは円であり、該円の半径を前記経時的情報に基づいて変更する、請求項２から５のいずれか１項に記載の方法。
【請求項７】
前記第１操作は、前記ユーザの身体の一部に連動するように前記仮想空間内を動作する可動オブジェクトの動作を入力するものであり、
前記仮想オブジェクトが前記仮想空間内を移動するときの移動態様を、前記可動オブジェクトの動作に基づいて、前記仮想オブジェクトに特徴付け、
前記第２操作が入力された時点の前記移動態様に基づいて、前記属性を特定する、請求項１に記載の方法。
【請求項８】
頭部にヘッドマウントディスプレイ（以下、ＨＭＤ）を装着したユーザに仮想空間を提供する方法であって、
前記ＨＭＤの傾き、または、前記ユーザの視線方向に基づいて、前記ユーザの前記仮想空間における基準視線を特定するステップと、
前記仮想空間に配置され、前記基準視線に基づいて前記ユーザに視認させる視界領域を設定する仮想カメラを特定するステップと、
前記仮想カメラの移動先を指定する仮想オブジェクトを前記仮想空間に配置するステップと、
ユーザにより入力された第１操作を受け付け、前記第１操作に基づいて、前記仮想オブジェクトの前記仮想空間における位置に関する属性を変更するステップと、
前記第１操作よりも後にユーザにより入力された第２操作を受け付け、前記第２操作が入力された時点の前記属性に基づいて、前記仮想カメラの移動先を特定するステップと、
前記移動先に前記仮想カメラを移動させるステップとを有し、
前記第１操作は、前記ユーザの身体の一部に連動するように前記仮想空間内を動作する可動オブジェクトの動作を入力するものであり、
前記仮想オブジェクトが前記仮想空間内を移動するときの移動態様を、前記可動オブジェクトの動作に基づいて、前記仮想オブジェクトに特徴付け、
前記第２操作が入力された時点の前記移動態様に基づいて、前記属性を特定する、方法。
【請求項９】
前記移動態様を、前記可動オブジェクトの初速および初速ベクトルに少なくとも基づいて特徴付ける、請求項７または８に記載の方法。
【請求項１０】
前記仮想オブジェクトは、前記第１操作に含まれる方向情報に基づいて前記仮想空間内を移動するアバターであり、
前記方向情報に基づいて前記アバターを前記仮想空間内の任意の位置に移動させることにより、前記属性を変更する、請求項１に記載の方法。
【請求項１１】
前記アバターの正面方向を向く第２仮想カメラを、前記仮想空間における前記アバターの位置に配置するステップと、
前記視界領域に基づいて生成される視界画像中の一部の領域に、前記第２仮想カメラに基づく視界画像を配置して前記ＨＭＤに表示させるステップとをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記第１操作に基づいて前記仮想オブジェクトの向きを特定し、前記仮想オブジェクトの向きに基づいて前記仮想カメラの向きを設定するステップをさらに有する、請求項１から１１のいずれか１項に記載の方法。
【請求項１３】
請求項１から１２のいずれか１項に記載の方法の各ステップを、コンピュータに実行させるプログラム。
【請求項１４】
請求項１３に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【手続補正書】
【提出日】平成29年7月6日(2017.7.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
頭部にヘッドマウントディスプレイ（以下、ＨＭＤ）を装着したユーザに仮想空間を提供する方法であって、
前記ＨＭＤの傾き、または、前記ユーザの視線方向に基づいて、前記ユーザの前記仮想空間における基準視線を特定するステップと、
前記仮想空間に配置され、前記基準視線に基づいて前記ユーザに視認させる視界領域を設定する仮想カメラを特定するステップと、
前記仮想カメラの移動先を指定する仮想オブジェクトを前記仮想空間に配置するステップと、
ユーザにより入力された第１操作を受け付け、前記第１操作に基づいて、前記仮想オブジェクトの前記仮想カメラの移動先を示す属性に対する変更を開始し、該変更を継続させるステップと、
前記属性が変更されている間にユーザにより入力された第２操作を受け付け、前記第２操作が入力された時点において前記属性を特定し、特定した前記属性に基づいて、前記仮想カメラの移動先を特定するステップと、
前記移動先に前記仮想カメラを移動させるステップとを有する、方法。
【請求項２】
前記仮想オブジェクトを、前記仮想カメラを囲むように配置し、
前記仮想空間における、前記仮想オブジェクトの外縁の位置を、前記第１操作に含まれる経時的情報に基づいて変更し、
前記第１操作の入力後に、前記仮想カメラの移動方向を特定するための入力を受け付け、
前記第２操作の入力時点における前記移動方向と前記外縁とに基づいて、前記属性を特定する、請求項１に記載の方法。
【請求項３】
頭部にヘッドマウントディスプレイ（以下、ＨＭＤ）を装着したユーザに仮想空間を提供する方法であって、
前記ＨＭＤの傾き、または、前記ユーザの視線方向に基づいて、前記ユーザの前記仮想空間における基準視線を特定するステップと、
前記仮想空間に配置され、前記基準視線に基づいて前記ユーザに視認させる視界領域を設定する仮想カメラを特定するステップと、
前記仮想カメラの移動先を指定する仮想オブジェクトを前記仮想空間に配置するステップと、
ユーザにより入力された第１操作を受け付け、前記第１操作に基づいて、前記仮想オブジェクトの前記仮想空間における位置に関する属性を変更するステップと、
前記第１操作よりも後にユーザにより入力された第２操作を受け付け、前記第２操作が入力された時点の前記属性に基づいて、前記仮想カメラの移動先を特定するステップと、
前記移動先に前記仮想カメラを移動させるステップとを有し、
前記仮想オブジェクトを、前記仮想カメラを囲むように配置し、
前記仮想空間における、前記仮想オブジェクトの外縁の位置を、前記第１操作に含まれる経時的情報に基づいて変更し、
前記第１操作の入力後に、前記仮想カメラの移動方向を特定するための入力を受け付け、
前記第２操作の入力時点における前記移動方向と前記外縁とに基づいて、前記属性を特定する、方法。
【請求項４】
前記ＨＭＤの前記傾きまたは前記ユーザの前記視線方向に基づいて、前記移動方向を特定する、請求項２または３に記載の方法。
【請求項５】
前記移動方向と前記外縁との交点の、前記仮想空間における位置に基づいて、前記属性を特定する、請求項２から４のいずれか１項に記載の方法。
【請求項６】
前記仮想オブジェクトは円であり、該円の半径を前記経時的情報に基づいて変更する、請求項２から５のいずれか１項に記載の方法。
【請求項７】
前記第１操作は、前記ユーザの身体の一部に連動するように前記仮想空間内を動作する可動オブジェクトの動作を入力するものであり、
前記仮想オブジェクトが前記仮想空間内を移動するときの移動態様を、前記可動オブジェクトの動作に基づいて、前記仮想オブジェクトに特徴付け、
前記第２操作が入力された時点の前記移動態様に基づいて、前記属性を特定する、請求項１に記載の方法。
【請求項８】
前記移動態様を、前記可動オブジェクトの初速および初速ベクトルに少なくとも基づいて特徴付ける、請求項７に記載の方法。
【請求項９】
前記第１操作に基づいて前記仮想オブジェクトの向きを特定し、前記仮想オブジェクトの向きに基づいて前記仮想カメラの向きを設定するステップをさらに有する、請求項１から８のいずれか１項に記載の方法。
【請求項１０】
請求項１から９のいずれか１項に記載の方法の各ステップを、コンピュータに実行させるプログラム。
【請求項１１】
請求項１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。