(57)【要約】【課題】仮想空間上におけるユーザの快適な操作を実現するための技術を提供する。【解決手段】コンピュータで実行される方法は、ヘッドマウントデバイスの動きを検知するステップ（Ｓ１５２０）と、仮想空間に、仮想空間におけるヘッドマウントデバイスのユーザの視座に追随するオブジェクトを配置するステップ（Ｓ１５１０）と、ユーザがオブジェクトを見つめていることを検知するステップ（Ｓ１５４０）と、ユーザがオブジェクトを予め定められた時間見つめていることに応じて、ヘッドマウントデバイスに、予め定められた画面を表示するステップ（Ｓ１５６０）とを備える。【選択図】図１５
2018120521.tif 000002
【特許請求の範囲】
【請求項１】
ヘッドマウントデバイスに仮想空間を提供するためにコンピュータで実行される方法であって、
仮想空間を定義するステップと、
前記ヘッドマウントデバイスに画像を表示して、前記ヘッドマウントデバイスのユーザに前記仮想空間における視界を提供するステップと、
前記ヘッドマウントデバイスの動きを検知するステップと、
前記ヘッドマウントデバイスに表示される画像を、前記検知された動きに連動して更新するステップと、
前記仮想空間に、前記仮想空間における前記ヘッドマウントデバイスのユーザの視座に追随するオブジェクトを配置するステップと、
前記ユーザが前記オブジェクトを見つめていることを検知するステップと、
前記ユーザが前記オブジェクトを予め定められた時間見つめていることに応じて、前記ヘッドマウントデバイスに、予め定められた画面を表示するステップとを備える、方法。
【請求項２】
前記オブジェクトを配置するステップは、前記ユーザの視座に対して予め定められた方向に前記オブジェクトを配置することを含む、請求項１に記載の方法。
【請求項３】
前記オブジェクトが見つめられることを検知するステップは、前記ユーザの視界に前記オブジェクトが含まれたことに応じて、前記オブジェクトが見つめられたと検知することを含む、請求項１または２に記載の方法。
【請求項４】
前記オブジェクトが見つめられることを検知するステップは、前記ユーザの視界の中央領域に前記オブジェクトが含まれたことに応じて、前記オブジェクトが見つめられたと検知することを含む、請求項３に記載の方法。
【請求項５】
前記ユーザの視線を検出するステップをさらに備え、
前記オブジェクトが見つめられることを検知するステップは、前記ユーザの視線が前記オブジェクトに注がれたことに応じて、前記オブジェクトが見つめられたと検知することを含む、請求項１または２に記載の方法。
【請求項６】
前記予め定められた画面は、メニューおよび前記仮想空間における地図のうち少なくとも一方を含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記ユーザが前記オブジェクトを見つめていることを検知したことに応じて、前記オブジェクトの表示態様を変更するステップをさらに備える、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記オブジェクトの表示態様を変更するステップは、前記オブジェクトの透過率を下げることを含む、請求項７に記載の方法。
【請求項９】
前記オブジェクトの表示態様を変更するステップは、前記オブジェクトの大きさを大きくすることを含む、請求項７に記載の方法。
【請求項１０】
請求項１〜９のいずれか１項に記載の方法をコンピュータに実現させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを格納したメモリと、
前記プログラムを実行するためのプロセッサとを備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、仮想空間を提供するための技術に関し、より特定的には、仮想空間において所望の画面を表示するための技術に関する。
【背景技術】
【０００２】
ヘッドマウントデバイス（ＨＭＤ：Head-Mounted  Device）装置を用いて仮想現実を提供する技術が知られている。一般的に、ユーザは、コンピュータに接続されたコントローラを手で操作して、仮想空間での移動などをコントロールすることができる。
【０００３】
しかしながら、コントローラがコンピュータに接続されていない場合もあり得る。このような場合にも、ユーザの自由な操作を実現するための様々な技術が提案されている。例えば、非特許文献１は、仮想空間上でのシューティングゲームにおいて、ユーザの視線を利用して、対象物への照準を合わせる技術を開示している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“視線ひとつでここまで体験は変わる。アイトラッキングシステム搭載ＶＲヘッドセット「ＦＯＶＥ」”、［online］、［平成２９年１月８日検索］、インターネット〈URL：http://www.gizmodo.jp/2016/09/tgs2016-vr-fove.html〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のようにコンピュータにコントローラなどの操作デバイスが接続されていない場合に、ユーザはＨＭＤのモニタに何らかの画面（例えば、メニュー画面）を表示させたいことがある。例えば、ユーザは、仮想空間上の予め定められ位置に配置されるオブジェクトを注視することで、所望の画面を開くことができる。
【０００６】
しかしながら、ユーザがこのオブジェクトを視認できない場合、ユーザは仮想空間上のオブジェクトを視認できる位置に移動した後に、オブジェクトを視認する必要がある。したがって、手で操作可能なコントローラを有さない場合においても、ユーザの任意のタイミングで所望の画面を表示する技術が必要とされている。
【０００７】
本開示は、上記のような問題を解決するためになされたものであって、ある局面における目的は、仮想空間上におけるユーザの快適な操作を実現するための技術を提供することである。
【課題を解決するための手段】
【０００８】
ある実施形態に従うと、ヘッドマウントデバイスに仮想空間を提供するためにコンピュータで実行される方法が提供される。この方法は、仮想空間を定義するステップと、ヘッドマウントデバイスに画像を表示して、ヘッドマウントデバイスのユーザに仮想空間における視界を提供するステップと、ヘッドマウントデバイスの動きを検知するステップと、ヘッドマウントデバイスに表示される画像を、検知された動きに連動して更新するステップと、仮想空間に、仮想空間におけるヘッドマウントデバイスのユーザの視座に追随するオブジェクトを配置するステップと、ユーザがオブジェクトを見つめていることを検知するステップと、ユーザがオブジェクトを予め定められた時間見つめていることに応じて、ヘッドマウントデバイスに、予め定められた画面を表示するステップとを備える。
【０００９】
開示された技術的特徴の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１０】
【図１】ＨＭＤシステムの構成の概略を表す図である。
【図２】ある局面に従うコンピュータのハードウェア構成の一例を表すブロック図である。
【図３】ある実施形態に従うＨＭＤに設定されるｕｖｗ視野座標系を概念的に表す模式図である。
【図４】ある実施形態に従う仮想空間を表現する一態様を概念的に表す模式図である。
【図５】ある実施形態に従うＨＭＤを装着するユーザの頭部を上から表した模式図である。
【図６】仮想空間において視認領域をＸ方向から見たＹＺ断面を表す図である。
【図７】仮想空間において視認領域をＹ方向から見たＸＺ断面を表す図である。
【図８】ある実施形態に従うコンピュータをモジュール構成として表わすブロック図である。
【図９】動き検知データのデータ構造例を説明するための図である。
【図１０】ＨＭＤシステムにおける処理を表すフローチャートである。
【図１１】追随オブジェクトを説明するための図（その１）である。
【図１２】追随オブジェクトを説明するための図（その２）である。
【図１３】追随オブジェクトを用いたメニュー表示について説明するための図である。
【図１４】メニュー画面の一例を示す図である。
【図１５】追随オブジェクトを用いてメニュー画面をモニタに表示するための処理を示すフローチャートである。
【図１６】他の局面に従う追随オブジェクトがユーザに見つめられていることの判断方法について説明するための図である。
【図１７】さらに他の局面に従う追随オブジェクトがユーザに見つめられていることの判断方法について説明するための図である。
【図１８】マップ画面の一例を示す図である。
【図１９】追随オブジェクトの表示態様の変更方法について説明するための図である。
【発明を実施するための形態】
【００１１】
以下、この技術的思想の実施形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。なお、以下で説明される各実施形態は、適宜選択的に組み合わされてもよい。
【００１２】
［ＨＭＤシステムの構成］
図１を参照して、ＨＭＤ（Head-Mounted  Device）システム１００の構成について説明する。図１は、ＨＭＤシステム１００の構成の概略を表す。ＨＭＤシステム１００は、家庭用のシステムとしてあるいは業務用のシステムとして提供される。
【００１３】
ＨＭＤシステム１００は、ＨＭＤ１１０と、ＨＭＤセンサ１２０と、コンピュータ２００とを備える。ＨＭＤ１１０は、モニタ１１２と、注視センサ１４０とを含む。
【００１４】
ある局面において、コンピュータ２００は、インターネットその他のネットワーク１９に接続可能であり、ネットワーク１９に接続されているサーバ１５０その他のコンピュータと通信可能である。別の局面において、ＨＭＤ１１０は、ＨＭＤセンサ１２０の代わりに、センサ１１４を含み得る。
【００１５】
ＨＭＤ１１０は、ユーザの頭部に装着され、動作中に仮想空間をユーザに提供し得る。より具体的には、ＨＭＤ１１０は、右目用の画像および左目用の画像をモニタ１１２にそれぞれ表示する。ユーザの各目がそれぞれの画像を視認すると、ユーザは、両目の視差に基づき当該画像を３次元の画像として認識し得る。ＨＭＤ１１０は、モニタを備える所謂ヘッドマウントディスプレイと、スマートフォンその他のモニタを有する端末を装着可能なヘッドマウント機器のいずれをも含み得る。
【００１６】
モニタ１１２は、例えば、非透過型の表示装置として実現される。ある局面において、モニタ１１２は、ユーザの両目の前方に位置するようにＨＭＤ１１０の本体に配置されている。したがって、ユーザは、モニタ１１２に表示される３次元画像を視認すると、仮想空間に没入することができる。ある実施形態において、仮想空間は、例えば、背景、ユーザが操作可能なオブジェクト、ユーザが選択可能なメニューの画像を含む。ある実施形態において、モニタ１１２は、所謂スマートフォンその他の情報表示端末が備える液晶モニタまたは有機ＥＬ（Electro  Luminescence）モニタとして実現され得る。
【００１７】
他の局面において、モニタ１１２は、透過型の表示装置として実現され得る。この場合、ＨＭＤ１１０は、図１に示されるようにユーザの目を覆う密閉型ではなく、メガネ型のような開放型であり得る。透過型のモニタ１１２は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。また、モニタ１１２は、仮想空間を構成する画像の一部と、現実空間とを同時に表示する構成を含んでいてもよい。例えば、モニタ１１２は、ＨＭＤ１１０に搭載されたカメラで撮影した現実空間の画像を表示してもよいし、一部の透過率を高く設定することにより現実空間を視認可能にしてもよい。
【００１８】
ある局面において、モニタ１１２は、右目用の画像を表示するためのサブモニタと、左目用の画像を表示するためのサブモニタとを含み得る。別の局面において、モニタ１１２は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、モニタ１１２は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
【００１９】
ＨＭＤセンサ１２０は、ＨＭＤ１１０の位置および傾きを検出し得る。ある局面において、ＨＭＤ１１０は、複数の光源（図示しない）を含む。各光源は例えば、赤外線を発するＬＥＤ（Light  Emitting  Diode）により実現される。ＨＭＤセンサ１２０は、ＨＭＤ１１０の動きを検出するためのポジショントラッキング機能を有する。より具体的には、ＨＭＤセンサ１２０は、ＨＭＤ１１０が発する複数の赤外線を読み取り、現実空間内におけるＨＭＤ１１０の位置および傾きを検出する。
【００２０】
なお、別の局面において、ＨＭＤセンサ１２０は、カメラにより実現されてもよい。この場合、ＨＭＤセンサ１２０は、カメラから出力されるＨＭＤ１１０の画像情報を用いて、画像解析処理を実行することにより、ＨＭＤ１１０の位置および傾きを検出することができる。
【００２１】
さらに別の局面において、ＨＭＤ１１０は、ＨＭＤ１１０の動きを検出するためのデバイスとして、ＨＭＤセンサ１２０の代わりにセンサ１１４を備えてもよい。ＨＭＤ１１０は、センサ１１４を用いて、ＨＭＤ１１０の傾きを検出し得る。例えば、センサ１１４は、ＨＭＤ１１０に設定される３軸（ヨー軸、ロール軸、ピッチ軸）まわりの角速度を経時的に検出するジャイロセンサであり得る。コンピュータ２００は、各角速度に基づいて、ＨＭＤ１１０の３軸まわりの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、ＨＭＤ１１０の傾きを算出する。他の例において、センサ１１４は、加速度センサ、地磁気センサその他のセンサを含み得る。
【００２２】
注視センサ１４０は、ユーザ１９０の右目および左目の視線が向けられる方向（視線）を検出する。当該方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ１４０は、当該アイトラッキング機能を有するセンサにより実現される。ある局面において、注視センサ１４０は、右目用のセンサおよび左目用のセンサを含むことが好ましい。注視センサ１４０は、例えば、ユーザ１９０の右目および左目に赤外光を照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ１４０は、検出した各回転角に基づいて、ユーザ１９０の視線を検知できる。
【００２３】
サーバ１５０は、コンピュータ２００にプログラムを送信し得る。別の局面において、サーバ１５０は、他のユーザによって使用されるＨＭＤに仮想現実を提供するための他のコンピュータ２００と通信し得る。例えば、アミューズメント施設において、複数のユーザが参加型のゲームを行なう場合、各コンピュータ２００は、各ユーザの動作に基づく信号を他のコンピュータ２００と通信して、同じ仮想空間において複数のユーザが共通のゲームを楽しむことを可能にする。
【００２４】
［ハードウェア構成］
図２を参照して、本実施形態に係るコンピュータ２００について説明する。図２は、ある局面に従うコンピュータ２００のハードウェア構成の一例を表すブロック図である。コンピュータ２００は、主たる構成要素として、プロセッサ１０と、メモリ１１と、ストレージ１２と、入出力インターフェイス１３と、通信インターフェイス１４とを備える。各構成要素は、それぞれ、バス１５に接続されている。
【００２５】
プロセッサ１０は、コンピュータ２００に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ１１またはストレージ１２に格納されているプログラムに含まれる一連の命令を実行する。ある局面において、プロセッサ１０は、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processor  Unit）、ＦＰＧＡ（Field-Programmable  Gate  Array）その他のデバイスとして実現される。
【００２６】
メモリ１１は、プログラムおよびデータを一時的に保存する。プログラムは、例えば、ストレージ１２からロードされる。データは、コンピュータ２００に入力されたデータと、プロセッサ１０によって生成されたデータとを含む。ある局面において、メモリ１１は、ＲＡＭ（Random  Access  Memory）その他の揮発メモリとして実現される。
【００２７】
ストレージ１２は、プログラムおよびデータを永続的に保持する。ストレージ１２は、例えば、ＲＯＭ（Read-Only  Memory）、ハードディスク装置、フラッシュメモリ、その他の不揮発記憶装置として実現される。ストレージ１２に格納されるプログラムは、ＨＭＤシステム１００において仮想空間を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、他のコンピュータ２００との通信を実現するためのプログラムを含む。ストレージ１２に格納されるデータは、仮想空間を規定するためのデータおよびオブジェクト等を含む。
【００２８】
なお、別の局面において、ストレージ１２は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに別の局面において、コンピュータ２００に内蔵されたストレージ１２の代わりに、外部の記憶装置に保存されているプログラムおよびデータを使用する構成が使用されてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のＨＭＤシステム１００が使用される場面において、プログラムやデータの更新を一括して行なうことが可能になる。
【００２９】
ある実施形態において、入出力インターフェイス１３は、ＨＭＤ１１０、およびＨＭＤセンサ１２０との間で信号を通信する。ある局面において、ＨＭＤ１１０に含まれるモニタ１１２およびセンサ１１４は、ＨＭＤ１１０のインターフェイスを介してコンピュータ２００との通信を行ない得る。ある局面において、入出力インターフェイス１３は、ＵＳＢ（Universal  Serial  Bus）、ＤＶＩ（Digital  Visual  Interface）、ＨＤＭＩ（登録商標）（High-Definition  Multimedia  Interface）その他の端子を用いて実現される。なお、入出力インターフェイス１３は上述のものに限られない。
【００３０】
通信インターフェイス１４は、ネットワーク１９に接続されて、ネットワーク１９に接続されている他のコンピュータ（例えば、サーバ１５０）と通信する。ある局面において、通信インターフェイス１４は、例えば、ＬＡＮ（Local  Area  Network）その他の有線通信インターフェイス、あるいは、ＷｉＦｉ（Wireless  Fidelity）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＮＦＣ（Near  Field  Communication）その他の無線通信インターフェイスとして実現される。なお、通信インターフェイス１４は上述のものに限られない。
【００３１】
ある局面において、プロセッサ１０は、ストレージ１２にアクセスし、ストレージ１２に格納されている１つ以上のプログラムをメモリ１１にロードし、当該プログラムに含まれる一連の命令を実行する。当該１つ以上のプログラムは、コンピュータ２００のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ１０は、入出力インターフェイス１３を介して、仮想空間を提供するための信号をＨＭＤ１１０に送る。ＨＭＤ１１０は、その信号に基づいてモニタ１１２に映像を表示する。
【００３２】
なお、図２に示される例では、コンピュータ２００は、ＨＭＤ１１０の外部に設けられる構成が示されているが、別の局面において、コンピュータ２００は、ＨＭＤ１１０に内蔵されてもよい。一例として、モニタ１１２を含む携帯型の情報通信端末（例えば、スマートフォン）がコンピュータ２００として機能してもよい。
【００３３】
また、コンピュータ２００は、複数のＨＭＤ１１０に共通して用いられる構成であってもよい。このような構成によれば、例えば、複数のユーザに同一の仮想空間を提供することもできるので、各ユーザは同一の仮想空間で他のユーザと同一のアプリケーションを楽しむことができる。
【００３４】
ある実施形態において、ＨＭＤシステム１００では、グローバル座標系が予め設定されている。グローバル座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、ならびに、鉛直方向および水平方向の双方に直交する前後方向にそれぞれ平行な、３つの基準方向（軸）を有する。本実施形態では、グローバル座標系は視点座標系の一つである。そこで、グローバル座標系における水平方向、鉛直方向（上下方向）、および前後方向は、それぞれ、ｘ軸、ｙ軸、ｚ軸と規定される。より具体的には、グローバル座標系において、ｘ軸は現実空間の水平方向に平行である。ｙ軸は、現実空間の鉛直方向に平行である。ｚ軸は現実空間の前後方向に平行である。
【００３５】
ある局面において、ＨＭＤセンサ１２０は、赤外線センサを含む。赤外線センサが、ＨＭＤ１１０の各光源から発せられた赤外線をそれぞれ検出すると、ＨＭＤ１１０の存在を検出する。ＨＭＤセンサ１２０は、さらに、各光源の位置（グローバル座標系における各座標値）に基づいて、ＨＭＤ１１０を装着したユーザ１９０の動きに応じた、現実空間内におけるＨＭＤ１１０の位置および傾きを検出する。より詳しくは、ＨＭＤセンサ１２０は、経時的に検出された各値を用いて、ＨＭＤ１１０の位置および傾きの時間的変化を検出できる。
【００３６】
他の局面において、センサ１１４は、３軸のジャイロセンサと、３軸の加速度センサとを有するモーションセンサであり得る。ＨＭＤ１１０は、センサ１１４の出力に基づいて、基準方向（例えば、重力（鉛直）方向）に対するＨＭＤ１１０の傾き角度を算出する。これにより、コンピュータ２００は、グローバル座標系におけるＨＭＤ１１０の傾きを取得できる。
【００３７】
グローバル座標系は現実空間の座標系と平行である。したがって、ＨＭＤセンサ１２０またはセンサ１１４によって検出されたＨＭＤ１１０の各傾きは、グローバル座標系におけるＨＭＤ１１０の３軸周りの各傾きに相当する。コンピュータ２００は、グローバル座標系におけるＨＭＤ１１０の傾きに基づき、ｕｖｗ視野座標系をＨＭＤ１１０に設定する。ＨＭＤ１１０に設定されるｕｖｗ視野座標系は、ＨＭＤ１１０を装着したユーザ１９０が仮想空間において物体を見る際の視点座標系に対応する。
【００３８】
［ｕｖｗ視野座標系］
図３を参照して、ｕｖｗ視野座標系について説明する。図３は、ある実施形態に従うＨＭＤ１１０に設定されるｕｖｗ視野座標系を概念的に表す模式図である。センサ１１４またはＨＭＤセンサ１２０は、ＨＭＤ１１０の起動時に、グローバル座標系におけるＨＭＤ１１０の傾きを検出する。プロセッサ１０は、検出された値に基づいて、ｕｖｗ視野座標系をＨＭＤ１１０に設定する。
【００３９】
図３に示されるように、ＨＭＤ１１０は、ＨＭＤ１１０を装着したユーザの頭部を中心（原点）とした３次元のｕｖｗ視野座標系を設定する。より具体的には、ＨＭＤ１１０は、グローバル座標系を規定する水平方向（ｘ軸）、鉛直方向（ｙ軸）、および前後方向（ｚ軸）を、グローバル座標系内においてＨＭＤ１１０の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる３つの方向を、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ軸（ｕ軸）、ヨー軸（ｖ軸）、およびロール軸（ｗ軸）として設定する。図３に示されるように、ヨー軸は、ユーザ１９０の高さ方向に延在する。
【００４０】
ある局面において、ＨＭＤ１１０を装着したユーザ１９０が直立し、かつ、正面を視認している場合、プロセッサ１０は、グローバル座標系に平行なｕｖｗ視野座標系をＨＭＤ１１０に設定する。この場合、グローバル座標系における水平方向（ｘ軸）、鉛直方向（ｙ軸）、および前後方向（ｚ軸）は、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ軸（ｕ軸）、ヨー軸（ｖ軸）、およびロール軸（ｗ軸）に一致する。
【００４１】
ｕｖｗ視野座標系がＨＭＤ１１０に設定された後、センサ１１４またはＨＭＤセンサ１２０は、ＨＭＤ１１０の動きに基づいて、設定されたｕｖｗ視野座標系におけるＨＭＤ１１０の傾き（傾きの変化量）を検出できる。この場合、センサ１１４またはＨＭＤセンサ１２０は、ＨＭＤ１１０の傾きとして、ｕｖｗ視野座標系におけるＨＭＤ１１０のピッチ角（θｕ）、ヨー角（θｖ）、およびロール角（θｗ）をそれぞれ検出する。ピッチ角（θｕ）は、ｕｖｗ視野座標系におけるピッチ軸まわりのＨＭＤ１１０の傾き角度を表す。ヨー角（θｖ）は、ｕｖｗ視野座標系におけるヨー軸まわりのＨＭＤ１１０の傾き角度を表す。ロール角（θｗ）は、ｕｖｗ視野座標系におけるロール軸まわりのＨＭＤ１１０の傾き角度を表す。ある局面において、センサ１１４は、これらピッチ角、ヨー角、ロール角についての角速度を取得可能に構成される。
【００４２】
コンピュータ２００は、センサ１１４またはＨＭＤセンサ１２０の出力に基づいて検出したＨＭＤ１１０の傾き角度に従って、ＨＭＤ１１０が動いた後のＨＭＤ１１０におけるｕｖｗ視野座標系を、ＨＭＤ１１０に設定する。ＨＭＤ１１０と、ＨＭＤ１１０のｕｖｗ視野座標系との関係は、ＨＭＤ１１０の位置および傾きに関わらず、常に一定である。ＨＭＤ１１０の位置および傾きが変わると、当該位置および傾きの変化に連動して、グローバル座標系におけるＨＭＤ１１０のｕｖｗ視野座標系の位置および傾きが変化する。
【００４３】
ある局面において、ＨＭＤセンサ１２０は、赤外線センサからの出力に基づいて取得される赤外線の光強度および複数の点間の相対的な位置関係（例えば、各点間の距離など）に基づいて、ＨＭＤ１１０の現実空間内における位置を、ＨＭＤセンサ１２０に対する相対位置として特定してもよい。また、プロセッサ１０は、特定された相対位置に基づいて、現実空間内（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系の原点を決定してもよい。
【００４４】
［仮想空間］
図４を参照して、仮想空間についてさらに説明する。図４は、ある実施形態に従う仮想空間２を表現する一態様を概念的に表す模式図である。仮想空間２は、中心２１の３６０度方向の全体を覆う全天球状の構造を有する。図４では、説明を複雑にしないために、仮想空間２のうちの上半分の天球が例示されている。仮想空間２では各メッシュが規定される。各メッシュの位置は、仮想空間２に規定されるＸＹＺ座標系における座標値として予め規定されている。コンピュータ２００は、仮想空間２に展開可能なコンテンツ（静止画、動画等）を構成する各部分画像を、仮想空間２において対応する各メッシュにそれぞれ対応付けて、ユーザによって視認可能な仮想空間画像２２が展開される仮想空間２をユーザに提供する。
【００４５】
ある局面において、仮想空間２では、中心２１を原点とするＸＹＺ座標系が規定される。ＸＹＺ座標系は、例えば、グローバル座標系に平行である。ＸＹＺ座標系は視点座標系の一種であるため、ＸＹＺ座標系における水平方向、鉛直方向（上下方向）、および前後方向は、それぞれＸ軸、Ｙ軸、Ｚ軸として規定される。したがって、ＸＹＺ座標系のＸ軸（水平方向）がグローバル座標系のｘ軸と平行であり、ＸＹＺ座標系のＹ軸（鉛直方向）がグローバル座標系のｙ軸と平行であり、ＸＹＺ座標系のＺ軸（前後方向）がグローバル座標系のｚ軸と平行である。
【００４６】
ＨＭＤ１１０の起動時、すなわちＨＭＤ１１０の初期状態において、仮想カメラ１が、仮想空間２の中心２１に配置される。ある局面において、プロセッサ１０は、仮想カメラ１が撮影する画像をＨＭＤ１１０のモニタ１１２に表示する。仮想カメラ１は、現実空間におけるＨＭＤ１１０の動きに連動して、仮想空間２を同様に移動する。これにより、現実空間におけるＨＭＤ１１０の位置および向きの変化が、仮想空間２において同様に再現され得る。
【００４７】
仮想カメラ１には、ＨＭＤ１１０の場合と同様に、ｕｖｗ視野座標系が規定される。仮想空間２における仮想カメラ１のｕｖｗ視野座標系は、現実空間（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系に連動するように規定されている。したがって、ＨＭＤ１１０の傾きが変化すると、それに応じて、仮想カメラ１の傾きも変化する。また、仮想カメラ１は、ＨＭＤ１１０を装着したユーザの現実空間における移動に連動して、仮想空間２において移動することもできる。
【００４８】
コンピュータ２００のプロセッサ１０は、仮想カメラ１の位置と、仮想カメラ１の傾き方向、換言すれば、仮想カメラ１の撮影方向を示す基準視線５とに基づいて、仮想空間２における視認領域２３を規定する。視認領域２３は、仮想空間２のうち、ＨＭＤ１１０を装着したユーザが視認する領域に対応する。上記のように、仮想カメラ１のｕｖｗ視野座標系はＨＭＤ１１０のｕｖｗ視野座標系に連動している。そのため、基準視線５は、センサ１１４またはＨＭＤ１２０の出力に基づいて定まるＨＭＤ１１０の傾きによって定まる。
【００４９】
注視センサ１４０によって検出されるユーザ１９０の視線は、ユーザ１９０が物体を視認する際の視点座標系における方向である。ＨＭＤ１１０のｕｖｗ視野座標系は、ユーザ１９０がモニタ１１２を視認する際の視点座標系に等しい。また、仮想カメラ１のｕｖｗ視野座標系は、ＨＭＤ１１０のｕｖｗ視野座標系に連動している。したがって、ある局面に従うＨＭＤシステム１００は、注視センサ１４０によって検出されたユーザ１９０の視線を、仮想カメラ１のｕｖｗ視野座標系におけるユーザの視線とみなすことができる。
【００５０】
［ユーザの視線］
図５を参照して、ユーザの視線の決定について説明する。図５は、ある実施形態に従うＨＭＤ１１０を装着するユーザ１９０の頭部を上から表した模式図である。
【００５１】
ある局面において、注視センサ１４０は、ユーザ１９０の右目および左目の各視線を検出する。ある局面において、ユーザ１９０が近くを見ている場合、注視センサ１４０は、視線Ｒ１およびＬ１を検出する。別の局面において、ユーザ１９０が遠くを見ている場合、注視センサ１４０は、視線Ｒ２およびＬ２を検出する。この場合、ロール軸ｗに対して視線Ｒ２およびＬ２が成す角度は、ロール軸ｗに対して視線Ｒ１およびＬ１が成す角度よりも小さい。注視センサ１４０は、検出結果をコンピュータ２００に送信する。
【００５２】
コンピュータ２００が、視線の検出結果として、視線Ｒ１およびＬ１の検出値を注視センサ１４０から受信した場合には、その検出値に基づいて、視線Ｒ１およびＬ１の交点である注視点Ｎ１を特定する。一方、コンピュータ２００は、視線Ｒ２およびＬ２の検出値を注視センサ１４０から受信した場合には、視線Ｒ２およびＬ２の交点を注視点として特定する。コンピュータ２００は、特定した注視点Ｎ１の位置に基づき、ユーザ１９０の視線Ｎ０を特定する。コンピュータ２００は、例えば、ユーザ１９０の右目Ｒと左目Ｌとを結ぶ直線の中点と、注視点Ｎ１とを通る直線の延びる方向を、視線Ｎ０として検出する。視線Ｎ０は、ユーザ１９０が両目により実際に視線を向けている方向である。また、視線Ｎ０は、視認領域２３に対してユーザ１９０が実際に視線を向けている方向に相当する。
【００５３】
また、別の局面において、ＨＭＤシステム１００は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、ＨＭＤシステム１００は、仮想空間２においてテレビ番組を表示することができる。
【００５４】
さらに別の局面において、ＨＭＤシステム１００は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。
【００５５】
［視界領域］
図６および図７を参照して、視認領域２３について説明する。図６は、仮想空間２において視認領域２３をＸ方向から見たＹＺ断面を表す。図７は、仮想空間２において視認領域２３をＹ方向から見たＸＺ断面を表す。
【００５６】
図６に示されるように、ＹＺ断面における視認領域２３は、領域２４を含む。領域２４は、仮想カメラ１の位置と基準視線５と仮想空間２のＹＺ断面とによって定義される。プロセッサ１０は、仮想空間における基準視線５を中心として極角αを含む範囲を、領域２４として規定する。
【００５７】
図７に示されるように、ＸＺ断面における視認領域２３は、領域２５を含む。領域２５は、仮想カメラ１の位置と基準視線５と仮想空間２のＸＺ断面とによって定義される。プロセッサ１０は、仮想空間２における基準視線５を中心とした方位角βを含む範囲を、領域２５として規定する。極角αおよびβは、仮想カメラ１の位置と仮想カメラ１の向きとに応じて定まる。
【００５８】
ある局面において、ＨＭＤシステム１００は、コンピュータ２００からの信号に基づいて、視界画像２６をモニタ１１２に表示させることにより、ユーザ１９０に仮想空間における視界を提供する。視界画像２６は、仮想空間画像２２のうち視認領域２３に重畳する部分に相当する。ユーザ１９０が、頭に装着したＨＭＤ１１０を動かすと、その動きに連動して仮想カメラ１も動く。その結果、仮想空間２における視認領域２３の位置が変化する。これにより、モニタ１１２に表示される視界画像２６は、仮想空間画像２２のうち、仮想空間２においてユーザが向いた方向の視認領域２３に重畳する画像に更新される。ユーザは、仮想空間２における所望の方向を視認することができる。
【００５９】
このように、仮想カメラ１の傾きは仮想空間２におけるユーザ１９０の頭の向いている方向（基準視線５）に相当する。また、仮想カメラ１が配置される位置は、仮想空間２におけるユーザの視座（物事を見る位置）に相当する。したがって、仮想カメラ１を移動（位置を変える動作、傾きを変える動作を含む）させることにより、モニタ１１２に表示される視界画像２６が更新され、ユーザ１９０の視界が移動される。
【００６０】
ユーザ１９０は、ＨＭＤ１１０を装着している間、現実世界を視認することなく、仮想空間２に展開される仮想空間画像２２のみを視認できる。そのため、ＨＭＤシステム１００は、仮想空間２への高い没入感覚をユーザに与えることができる。
【００６１】
ある実施形態に従うと、仮想カメラ１は、２つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含み得る。また、ユーザ１９０が３次元の仮想空間２を認識できるように、適切な視差が、２つの仮想カメラに設定される。以下では、仮想カメラ１が２つの仮想カメラを含み、２つの仮想カメラのロール軸が合成されることによって生成されるロール軸（ｗ）が、ＨＭＤ１１０のロール軸（ｗ）に適合されるように構成されているものとして、本開示に係る技術思想を例示する。
【００６２】
［ＨＭＤの制御装置］
図８を参照して、ＨＭＤ１１０の制御装置について説明する。ある実施形態において、制御装置は周知の構成を有するコンピュータ２００によって実現される。図８は、ある実施形態に従うコンピュータ２００をモジュール構成として表わすブロック図である。
【００６３】
図８に示されるように、コンピュータ２００は、表示制御モジュール２２０と、仮想空間制御モジュール２３０と、メモリモジュール２４０と、通信制御モジュール２５０とを備える。表示制御モジュール２２０は、サブモジュールとして、仮想カメラ制御モジュール２２１と、視界領域決定モジュール２２２と、視界画像生成モジュール２２３と、基準視線特定モジュール２２４とを含む。仮想空間制御モジュール２３０は、サブモジュールとして、仮想空間定義モジュール２３１と、仮想オブジェクト生成モジュール２３２と、オブジェクト制御モジュール２３３とを含む。
【００６４】
ある実施形態において、表示制御モジュール２２０と仮想空間制御モジュール２３０とは、プロセッサ１０によって実現される。別の実施形態において、複数のプロセッサ１０が表示制御モジュール２２０と仮想空間制御モジュール２３０として作動してもよい。メモリモジュール２４０は、メモリ１１またはストレージ１２によって実現される。通信制御モジュール２５０は、通信インターフェイス１４によって実現される。
【００６５】
表示制御モジュール２２０は、ＨＭＤ１１０のモニタ１１２における画像表示を制御する。仮想カメラ制御モジュール２２１は、仮想空間２に仮想カメラ１を配置する。仮想カメラ制御モジュール２２１は、仮想空間２における仮想カメラ１の位置と、仮想カメラ１の傾き（向き）を制御する。視界領域決定モジュール２２２は、ＨＭＤ１１０の傾き（すなわち、センサ１１４の出力）と、仮想カメラ１の位置に応じて、視認領域２３を規定する。視界画像生成モジュール２２３は、決定された視認領域２３に基づいて、モニタ１１２に表示される視界画像２６を生成する。
【００６６】
基準視線特定モジュール２２４は、センサ１１４またはＨＭＤセンサ１２０の出力に基づいて、ＨＭＤ１１０の傾きを特定する。また、基準視線特定モジュール２２４は、注視センサ１４０からの信号に基づいて、ユーザ１９０の視線を特定し得る。
【００６７】
仮想空間制御モジュール２３０は、ユーザ１９０に提供される仮想空間２を制御する。仮想空間定義モジュール２３１は、仮想空間２を表わす仮想空間データを生成することにより、ＨＭＤシステム１００における仮想空間２を規定する。
【００６８】
仮想オブジェクト生成モジュール２３２は、仮想空間２に配置されるオブジェクトを生成する。オブジェクトは、例えば、ゲームのストーリーの進行に従って配置される森、山その他を含む風景、動物等を含み得る。また、オブジェクトは、ユーザの視座（すなわち、仮想カメラ１の位置）に追随する追随オブジェクトを含む。コンピュータ２００は、追随オブジェクトがユーザに視認されたことに応じて、モニタ１１２に予め定められた画面を表示し得る。この制御の詳細は、図１１〜図１５を用いて説明される。
【００６９】
オブジェクト制御モジュール２３３は、仮想空間２に配置されるオブジェクトの動作などを制御する。例えば、オブジェクト制御モジュール２３３は、仮想カメラ１の位置に追随するように追随オブジェクトを配置し得る。具体例として、オブジェクト制御モジュール２３３は、仮想カメラ１の位置の上（Ｙ）方向に追随オブジェクトを配置し得る。
【００７０】
仮想空間制御モジュール２３０は、仮想空間２に配置されるオブジェクトのそれぞれが、他のオブジェクトと衝突した場合に、当該衝突を検出する。仮想空間制御モジュール２３０は、例えば、あるオブジェクトと、別のオブジェクトとが触れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行なう。仮想空間制御モジュール２３０は、オブジェクトとオブジェクトとが触れている状態から離れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行なう。仮想空間制御モジュール２３０は、オブジェクトとオブジェクトとが触れている状態であることを検出することができる。
【００７１】
メモリモジュール２４０は、コンピュータ２００が仮想空間２をユーザ１９０に提供するために使用されるデータを保持している。ある局面において、メモリモジュール２４０は、空間情報２４１と、オブジェクト情報２４２と、ユーザ情報２４３とを保持している。
【００７２】
空間情報２４１は、仮想空間２を提供するために規定された１つ以上のテンプレートを保持している。
【００７３】
オブジェクト情報２４２は、仮想空間２において再生されるコンテンツ、当該コンテンツで使用されるオブジェクト、およびオブジェクトを仮想空間２に配置するための情報（たとえば、位置情報）を保持している。当該コンテンツは、例えば、ゲーム、現実社会と同様の風景を表したコンテンツ等を含み得る。
【００７４】
オブジェクト情報２４２は、さらに動き検知データ２４４を含む。動き検知データ２４４は、センサ１１４またはＨＭＤセンサ１２０が検出するＨＭＤ１１０の傾きを示すデータであり得る。
【００７５】
図９は、動き検知データ２４４のデータ構造例を説明するための図である。図９に示される例において、動き検知データ２４４は、センサ１１４が検出するＨＭＤ１１０の各軸まわりの角速度である。動き検知データ２４４は、時刻と、ＨＭＤ１１０に設定される各軸（ピッチ軸（ｕ軸）、ヨー軸（ｖ軸）、ロール軸（ｗ軸））まわりの角速度とを互いに関連付けて保持する。この時刻は、角速度に対応するデータ（例えば、電圧値）をセンサ１１４が検出したタイミングである。
【００７６】
なお、動き検知データ２４４がＨＭＤ１２０の出力である場合、動き検知データ２４４は、ＨＭＤ１１０の位置（ＨＭＤセンサ１２０を基準とした相対位置）および傾きを示すデータであり得る。さらに他の局面において、動き検知データ２４４は、加速度センサの出力または地磁気センサの出力を含み得る。
【００７７】
図８を再び参照して、ユーザ情報２４３は、ＨＭＤシステム１００の制御装置としてコンピュータ２００を機能させるためのプログラム、オブジェクト情報２４２に保持される各コンテンツを使用するアプリケーションプログラム等を保持している。
【００７８】
メモリモジュール２４０に格納されているデータおよびプログラムは、ＨＭＤ１１０のユーザによって入力される。あるいは、プロセッサ１０が、当該コンテンツを提供する事業者が運営するコンピュータ（例えば、サーバ１５０）からプログラムあるいはデータをダウンロードして、ダウンロードされたプログラムあるいはデータをメモリモジュール２４０に格納する。
【００７９】
通信制御モジュール２５０は、ネットワーク１９を介して、サーバ１５０その他の情報通信装置と通信し得る。また、通信制御モジュール２５０は、ＨＭＤ１１０に搭載される種々のデバイスと通信し得る。
【００８０】
ある局面において、表示制御モジュール２２０および仮想空間制御モジュール２３０は、例えば、ユニティテクノロジーズ社によって提供されるＵｎｉｔｙ（登録商標）を用いて実現され得る。別の局面において、表示制御モジュール２２０および仮想空間制御モジュール２３０は、各処理を実現する回路素子の組み合わせとしても実現され得る。
【００８１】
コンピュータ２００における処理は、ハードウェアと、プロセッサ１０により実行されるソフトウェアとによって実現される。このようなソフトウェアは、ハードディスクその他のメモリモジュール２４０に予め格納されている場合がある。また、ソフトウェアは、ＣＤ−ＲＯＭその他のコンピュータ読み取り可能な不揮発性のデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、当該ソフトウェアは、インターネットその他のネットワークに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。このようなソフトウェアは、光ディスク駆動装置その他のデータ読取装置によってデータ記録媒体から読み取られて、あるいは、通信制御モジュール２５０を介してサーバ１５０その他のコンピュータからダウンロードされた後、記憶モジュールに一旦格納される。そのソフトウェアは、プロセッサ１０によって記憶モジュールから読み出され、実行可能なプログラムの形式でＲＡＭに格納される。プロセッサ１０は、そのプログラムを実行する。
【００８２】
［コンピュータ２００の制御構造］
図１０を参照して、コンピュータ２００における視界画像の更新方法について説明する。図１０は、ＨＭＤシステム１００における処理を表すフローチャートである。
【００８３】
ステップＳ１０１０において、コンピュータ２００のプロセッサ１０は、仮想空間定義モジュール２３１として、仮想空間２を定義する。より具体的には、プロセッサ１０は、仮想空間２の大きさや形状を定義し得る。
【００８４】
ステップＳ１０２０において、プロセッサ１０は、仮想カメラ１を仮想空間２に配置する。このとき、プロセッサ１０は、仮想カメラ１を仮想空間２において予め規定された中心２１に配置し得る。
【００８５】
ステップＳ１０３０にて、プロセッサ１０は、視界画像生成モジュール２２３として、初期の視界画像２６を表示するための視界画像データを生成する。生成された視界画像データは、視界画像生成モジュール２２３を介して通信制御モジュール２５０によってＨＭＤ１１０に送信される。
【００８６】
ステップＳ１０３２にて、ＨＭＤ１１０のモニタ１１２は、コンピュータ２００から受信した信号に基づいて、視界画像２６を表示する。ＨＭＤ１１０を装着したユーザ１９０は、視界画像２６を視認すると仮想空間２を認識し得る。
【００８７】
ステップＳ１０３４にて、センサ１１４は、ＨＭＤ１１０の動き（ＨＭＤ１１０の各軸まわりの角速度）を検知する。ＨＭＤ１１０の動きは、ユーザ１９０の頭の動きに連動している。センサ１１４は、検知結果を、コンピュータ２００に出力する。
【００８８】
ステップＳ１０４０にて、プロセッサ１０は、センサ１１４から入力された検知結果に基づいてＨＭＤ１１０の各軸まわりの角速度を算出する。プロセッサ１０は、算出された角速度に基づき、ＨＭＤ１１０の傾きを検知する。プロセッサ１０はさらに、仮想カメラ制御モジュール２２１として、検知した傾きに連動するように仮想カメラ１の傾き（すなわち、仮想カメラ１の基準視線５）を変更する。これにより、仮想カメラ１が撮影する視界画像２６が更新される。
【００８９】
ステップＳ１０５０において、プロセッサ１０は、視界画像生成モジュール２２３として、傾きを変更された仮想カメラ１が撮影する視界画像２６を表示するための視界画像データを生成し、生成した視界画像データをＨＭＤ１１０に出力する。
【００９０】
ステップＳ１０５２において、ＨＭＤ１１０のモニタ１１２は、受信した視界画像データに基づいて、更新後の視界画像を表示する。これにより、仮想空間２におけるユーザの視界が更新される。
【００９１】
［追随オブジェクトを用いたメニュー表示］
図１１〜図１４を参照して、追随オブジェクトを用いて予め定められた画面をモニタ１１２に表示するための方法について説明する。図１１は、追随オブジェクト１１００を説明するための図（その１）である。図１１に示される例において、仮想空間２には、仮想カメラ１、追随オブジェクト１１００および位置移動オブジェクト１１１０が配置されている。追随オブジェクト１１００は、仮想カメラ１の位置に対して上（Ｙ）方向に配置されている。
【００９２】
図１１に示される例において、位置移動オブジェクト１１１０は、仮想カメラ１の撮影範囲である視認領域２３に含まれているが、追随オブジェクト１１００は、視認領域２３に含まれていない。追随オブジェクト１１００が視認領域２３に含まれていない状態において、追随オブジェクト１１００の透過率（透明度）は高く設定され得る。一例として、透過率は１００％に設定され得る。透過率が１００％に設定された場合、プロセッサ１０が追随オブジェクト１１００を描画するためのデータを生成しなくてよいため、プロセッサ１０の処理負担が軽減され得る。
【００９３】
位置移動オブジェクト１１１０は、仮想カメラ１の位置を移動させるトリガとして機能する。ある局面において、仮想カメラ制御モジュール２２１は、注視センサ１４０によって検出されるユーザ１９０の注視点が予め定められた時間にわたり位置移動オブジェクト１１１０に向けられている場合、図１２のように仮想カメラ１を位置移動オブジェクト１１１０の位置に移動させ得る。これにより、ユーザ１９０は、手で操作可能なコントローラを有さない場合であっても、仮想空間２におけるユーザ１９０の視座（仮想カメラ１の位置）を変更し得る。
【００９４】
図１２は、追随オブジェクト１１００を説明するための図（その２）である。図１２において、追随オブジェクト１１００は、仮想カメラ１が移動したことに伴い、仮想カメラ１の上方向に移動する。これにより、仮想カメラ１のＸ座標位置と追随オブジェクト１１００のＸ座標位置とが、仮想カメラ１のＺ座標位置と追随オブジェクト１１００のＺ座標位置とが、それぞれ同じになる。
【００９５】
図１３は、追随オブジェクト１１００を用いたメニュー表示について説明するための図である。図１３の例において、仮想カメラ１は、上（Ｙ）方向を向いている。これにより、視認領域２３に、追随オブジェクト１１００が含まれる。プロセッサ１０は、オブジェクト制御モジュール２３３として、追随オブジェクト１１００が視認領域２３に含まれたことに応じて、追随オブジェクト１１００の透過率を下げる。追随オブジェクト１１００の透過率が下がることにより、ユーザ１９０は、追随オブジェクト１１００を視認できるようになる。他の局面において、プロセッサ１０は、追随オブジェクト１１００が視認領域２３（ユーザ１９０の視界）に含まれている時間に応じて、追随オブジェクト１１００の透過率を徐々に下げ得る。これにより、コンピュータ２００は、ユーザ１９０が追随オブジェクト１１００を見つめていることを検知していることを、ユーザ１９０にフィードバックし得る。
【００９６】
ある実施形態に従うプロセッサ１０は、予め定められた時間（例えば、２秒間）、ユーザ１９０の視界（視認領域２３）に追随オブジェクト１１００が含まれていることに応じて、予め定められた画面（例えば、メニュー画面）をモニタ１１２に表示する。
【００９７】
図１４は、メニュー画面の一例を示す。メニュー画面１４００は、チュートリアルボタン１４１０と、セッティングボタン１４２０と、終了ボタン１４３０と、戻るボタン１４４０とを含む。ある局面において、メニュー画面１４００は、仮想空間２上にオブジェクトとして配置され得る。他の局面において、メニュー画面１４００は、仮想空間上のオブジェクトとしてではなく、単に画面としてモニタ１１２に表示され得る。
【００９８】
ある局面において、プロセッサ１０は、注視センサ１４０によって検出されるユーザ１９０の注視点が予め定められた時間、これらのボタンのいずれかに向けられている場合、そのボタンが選択されたと判断し得る。プロセッサ１０は、ボタン１４４０が選択されたと判断した場合に、視認領域２３に対応する視界画像２６をモニタ１１２に再び表示し得る。
【００９９】
［制御の流れ］
図１５を参照して、上記一連のメニュー画面の表示方法について説明する。図１５は、追随オブジェクトを用いてメニュー画面をモニタ１１２に表示するための処理を示すフローチャートである。図１５に示される処理は、コンピュータ２００のプロセッサ１０がメモリ１１またはストレージ１２に格納される制御プログラムを実行することにより実現され得る。
【０１００】
ステップＳ１５０５において、プロセッサ１０は、仮想空間定義モジュール２３１として、仮想空間２を定義（作成）する。ステップＳ１５１０において、プロセッサ１０は、仮想オブジェクト生成モジュール２３２として、仮想カメラ１、追随オブジェクト１１００、その他のオブジェクトを仮想空間２に配置する。
【０１０１】
ステップＳ１５１５において、視界画像生成モジュール２２３として、仮想カメラ１が撮影する視界画像２６を表示するための視界画像データをモニタ１１２に出力する。
【０１０２】
ステップＳ１５２０において、プロセッサ１０は、基準視線特定モジュール２２４として、センサ１１４またはＨＭＤセンサ１２０の出力に基づいて、ＨＭＤ１１０の動き（傾き）を特定する。ＨＭＤ１１０の動きは、ユーザ１９０の頭の動きに連動している。ステップＳ１５２５において、プロセッサ１０は、基準視線特定モジュール２２４として、基準視線５を特定する。
【０１０３】
ステップＳ１５３０において、プロセッサ１０は、仮想カメラ１（すなわち、ユーザ１９０の視座）が移動したか否かを判断する。一例として、プロセッサ１０は、ステップＳ１５２０〜Ｓ１５５５の処理を１フレーム（例えば、１／３０秒）の間に行なうように構成される。プロセッサ１０は、現在の仮想カメラ１の位置と、メモリ１１に格納される１フレーム前の仮想カメラ１の位置とが同じであるか否かを判断する。プロセッサ１０は、これらの位置が同じでない場合に、仮想カメラ１が移動したと判断し得る。
【０１０４】
プロセッサ１０は、仮想カメラ１が移動したと判断した場合（ステップＳ１５３０においてＹＥＳ）、処理をステップＳ１５３５に進める。プロセッサ１０は、仮想カメラ１が移動していないと判断した場合（ステップＳ１５３０においてＮＯ）、処理をステップＳ１５４０に進める。
【０１０５】
ステップＳ１５３５において、プロセッサ１０は、オブジェクト制御モジュール２３３として、追随オブジェクト１１００を、ユーザ１９０の視座（仮想カメラ１の位置）の上（Ｙ）方向に移動する。なお、他の局面において、プロセッサ１０は、仮想カメラ１と追随オブジェクト１１００とを同時に同じ距離動かすように構成されてもよい。当該構成によれば、追随オブジェクト１１００は遅延なく仮想カメラ１に追随できる。
【０１０６】
ステップＳ１５４０において、プロセッサ１０は、追随オブジェクト１１００がユーザ１９０によって見つめられているか否かを判断する。一例として、プロセッサ１０は、視認領域２３（すなわち、ユーザ１９０の視界）に追随オブジェクト１１００が含まれている場合に、追随オブジェクト１１００がユーザ１９０によって見つめられていると判断する。
【０１０７】
プロセッサ１０は、追随オブジェクト１１００が見つめられていると判断した場合（ステップＳ１５４０においてＹＥＳ）、処理をステップＳ１５４５に進める。一方、プロセッサ１０は、追随オブジェクト１１００が見つめられていないと判断した場合（ステップＳ１５４０においてＮＯ）、処理をステップＳ１５５０に進める。
【０１０８】
ステップＳ１５４５において、プロセッサ１０は、オブジェクト制御モジュール２３３として、追随オブジェクト１１００の透過率を下げる。一例として、プロセッサ１０は、追随オブジェクト１１００の透過率を１０％下げ得る。これにより、ユーザ１９０は、追随オブジェクト１１００を視認し得る。
【０１０９】
ステップＳ１５５０において、プロセッサ１０は、視界画像生成モジュール２２３として、仮想カメラ１が撮影する視界画像２６をモニタ１１２に表示する。
【０１１０】
ステップＳ１５５５において、プロセッサ１０は、予め定められた時間（例えば、２秒間）にわたり追随オブジェクト１１００がユーザ１９０によって見つめられたか否かを判断する。プロセッサ１０は、予め定められた時間にわたり追随オブジェクト１１００が見つめられたと判断した場合（ステップＳ１５５５においてＹＥＳ）、処理をステップＳ１５６０に進める。一方、プロセッサ１０は、予め定められた時間にわたり追随オブジェクト１１００が見つめられていないと判断した場合（ステップＳ１５５５においてＮＯ）、処理をステップＳ１５２０に戻す。
【０１１１】
ステップＳ１５６０において、プロセッサ１０は、モニタ１１２にメニュー画面を表示する。なお、このメニュー画面を表示するためのデータはメモリモジュール２４０に予め格納されているものとする。
【０１１２】
上記によれば、ある実施形態に従うＨＭＤシステム１００は、追随オブジェクト１１００がユーザ１９０に見つめられていることに応じてメニュー画面を表示できる。そのため、ユーザ１９０は、手で操作するコントローラを有さなくとも、容易にメニュー画面を開くことができる。
【０１１３】
また、追随オブジェクト１１００は、ユーザ１９０の視座（仮想カメラ１の位置）に追随する。そのため、ユーザ１９０は、仮想空間２の任意の場所において、上（Ｙ）方向を見上げることによりメニュー画面を開くための追随オブジェクト１１００を視認できる。ＨＭＤシステム１００は、上記の構成を採用することにより、仮想空間２上におけるユーザ１９０の快適な操作を実現できる。
【０１１４】
また、追随オブジェクト１１００は、仮想カメラ１の上（Ｙ）方向に配置されているため、ユーザ１９０が意図的に上方向を向かない限り、追随オブジェクト１１００がユーザ１９０の視界（すなわち視認領域２３）に含まれることはない。その理由は、ユーザ１９０は、通常、正面を向いているためである。そのため、コンピュータ２００は、ユーザ１９０が頻繁に追随オブジェクト１１００を視認することによる、ユーザ１９０の仮想空間２への没入感の損失を抑制できる。
【０１１５】
また、コンピュータ２００は、単にユーザ１９０が上方向を向いたことを検知してメニュー画面を表示するのではなく、追随オブジェクト１１００がユーザ１９０に所定時間見つめられたことを検知してメニュー画面を表示する。そのため、コンピュータ２００は、ユーザ１９０のメニュー画面を開きたいという意思を反映してメニュー画面を表示できる。換言すれば、コンピュータ２００は、ユーザ１９０の意思に反してメニュー画面を表示することを抑制し得る。
【０１１６】
［その他の構成］
（追随オブジェクトがユーザに見つめられていることの判断方法）
＜ユーザの視界の中央領域に追随オブジェクトが含まれているか＞
上記の例において、プロセッサ１０は、ユーザ１９０の視界に追随オブジェクト１１００が含まれている場合に、追随オブジェクト１１００がユーザ１９０によって見つめられていると判断するように構成されている。以下、図１６，１７を用いて、その他の判断方法について説明する。
【０１１７】
図１６は、他の局面に従う追随オブジェクトがユーザに見つめられていることの判断方法について説明するための図である。ある局面において、プロセッサ１０は、ユーザ１９０の視界の中央領域に追随オブジェクト１１００が含まれていることに応じて、追随オブジェクト１１００がユーザ１９０に見つめられていると判断する。
【０１１８】
図６および図７で説明したように、視認領域２３は、基準視線５を中心としてＹＺ断面における極角α、およびＸＺ断面における極角βを含む範囲である。ユーザ１９０の視界の中央領域は、基準視線５を中心としてＹＺ断面における極角α１（＜α）、およびＸＺ断面における極角β１（＜β）を含む範囲として設定される。一例として、極角α１は極角αの半分、極角β１は極角βの半分にそれぞれ設定され得る。
【０１１９】
図１６の状態（Ａ）に示される視界画像１６００と、状態（Ｂ）に示される視界画像１６５０はそれぞれ、モニタ１１２に表示される画像、換言すれば、ユーザ１９０の視界である。状態（Ａ）において、視界画像１６００には追随オブジェクト１１００が含まれているが、中央領域１６１０には追随オブジェクト１１００が含まれていない。そのため、プロセッサ１０は、状態（Ａ）において、追随オブジェクト１１００がユーザ１９０によって見つめられていないと判断する。したがって、状態（Ａ）において、追随オブジェクト１１００の透過率は高く設定されている。
【０１２０】
一方、状態（Ｂ）において、中央領域１６１０に追随オブジェクト１１００が含まれている。そのため、プロセッサ１０は、状態（Ａ）において、追随オブジェクト１１００がユーザ１９０によって見つめられていると判断する。したがって、状態（Ｂ）において、追随オブジェクト１１００の透過率は低く設定され得る。上記の構成によっても、プロセッサ１０は、追随オブジェクト１１００がユーザ１９０によって見つめられているか否かを判断し得る。
【０１２１】
＜ユーザの注視点が追随オブジェクトに向けられているか＞
さらに他の局面において、プロセッサ１０は、注視センサ１４０によって検出されるユーザ１９０の注視点が、追随オブジェクト１１００に向けられていることに応じて、追随オブジェクト１１００がユーザ１９０に見つめられていると判断する。
【０１２２】
図１７は、さらに他の局面に従う追随オブジェクトがユーザに見つめられていることの判断方法について説明するための図である。視界画像１７００は、追随オブジェクト１１００と、ポイント１７１０とを含む。ポイント１７１０は、注視センサ１４０によって検出されたユーザ１９０の注視点を示す。
【０１２３】
状態（Ａ）において、ポイント１７１０が追随オブジェクト１１００に重畳されていない。換言すれば、ユーザ１９０の視線が追随オブジェクト１１００に注がれていない。そのため、プロセッサ１０は、状態（Ａ）において、追随オブジェクト１１００がユーザ１９０によって見つめられていないと判断する。したがって、追随オブジェクト１１００の透過率は高く設定されている。なお、この場合、追随オブジェクト１１００の透過率は１００％ではなく、ユーザ１９０が視認可能な程度に設定され得る。その理由は、ユーザ１９０が、視線を注ぐ対象をそもそも視認できなくなってしまうことを避けるためである。
【０１２４】
状態（Ｂ）において、ポイント１７１０が追随オブジェクト１１００に重畳されている。換言すれば、ユーザ１９０の視線が追随オブジェクト１１００に注がれている。そのため、プロセッサ１０は、状態（Ｂ）において、追随オブジェクト１１００がユーザ１９０によって見つめられていると判断する。したがって、追随オブジェクト１１００の透過率は低く設定されている。上記の構成によっても、プロセッサ１０は、追随オブジェクト１１００がユーザ１９０によって見つめられているか否かを判断し得る。当該構成によれば、ユーザ１９０が追随オブジェクト１１００を見つめていることを、より正確に検知し得る。
【０１２５】
（予め定められた画面）
上記の例では、プロセッサ１０は、追随オブジェクト１１００が所定時間にわたりユーザ１９０に見つめられたことに応じて、メニュー画面をモニタ１１２に表示するように構成されている。他の局面において、プロセッサ１０は、メニュー画面に代えてマップ画面を表示するように構成されてもよい。
【０１２６】
図１８は、マップ画面の一例を示す。図１８の例において、仮想空間２には、美術館が構築されている。マップ画面１８００には、仮想カメラ１（ユーザ１９０）の現在地を示すキャラクタ１８１０と、美術品１８２０および１８３０とが表示されている。また、マップ画面１８００には、移動ポイント１８４０〜１８６０がさらに表示されている。
【０１２７】
プロセッサ１０は、予め定められた時間（例えば、２秒間）にわたり、移動ポイント１８４０〜１８６０のいずれかにユーザ１９０の視線が注がれたことを検知した場合、そのポイントに仮想カメラ１を移動させ得る。例えば、ユーザ１９０は、美術品１８３０を見たい場合、移動ポイント１８６０を注視する。これにより、ユーザ１９０の視座（仮想カメラ１の位置）は、美術品１８３０の近くに移動する。当該構成によれば、ユーザ１９０は、仮想空間２の全体像を把握した上で、仮想空間２において所望の位置に容易に移動することができる。
【０１２８】
なお、追随オブジェクト１１００が所定時間にわたりユーザ１９０に見つめられたことに応じて表示される画面は、メニュー画面およびマップ画面に限られるものではない。
【０１２９】
（追随オブジェクト１１００の表示態様）
上記の例では、プロセッサ１０は、追随オブジェクト１１００がユーザ１９０に見つめられたことに応じて、追随オブジェクト１１００の透過率を変更するように構成されている。他の局面において、プロセッサ１０は、追随オブジェクト１１００がユーザ１９０に見つめられたことに応じて、追随オブジェクト１１００の大きさを変更するように構成されてもよい。
【０１３０】
図１９は、追随オブジェクト１１００の表示態様の変更方法について説明するための図である。図１９の例において、視認領域２３は追随オブジェクト１１００を含む。そのため、プロセッサ１０は、追随オブジェクト１１００がユーザ１９０に見つめられていると判断する。プロセッサ１０は、この判断に応じて、追随オブジェクト１１００を（破線から実線のように）大きくする。このとき、プロセッサ１０は、基準視線５（視認領域２３の中心）と追随オブジェクト１１００との間隔が狭まるほど、追随オブジェクト１１００を大きくし得る。当該構成によれば、ユーザ１９０は、自分が追随オブジェクト１１００を見つめていることを、容易に認識し得る。
【０１３１】
さらに他の局面において、プロセッサ１０は、追随オブジェクト１１００がユーザ１９０に見つめられたことに応じて、追随オブジェクト１１００を点滅させるように構成されてもよい。さらに他の局面において、プロセッサ１０は、追随オブジェクト１１００がユーザ１９０に見つめられたことに応じて、追随オブジェクト１１００の色を変更するように構成されてもよい。
【０１３２】
［構成］
以上に開示された技術的特徴は、以下のように要約され得る。
【０１３３】
（構成１）  ある実施形態に従うと、ＨＭＤ１１０に仮想空間２を提供するためにコンピュータ２００で実行される方法が提供される。この方法は、仮想空間２を定義するステップ（Ｓ１５０５）と、ＨＭＤ１１０に画像を表示して、ＨＭＤ１１０のユーザ１９０に仮想空間２における視界を提供するステップ（Ｓ１５１５）と、ＨＭＤ１１０の動きを検知するステップ（Ｓ１５２０）と、ＨＭＤ１１０に表示される画像を、検知された動きに連動して更新するステップ（Ｓ１５５０）と、仮想空間２に、仮想空間２におけるＨＭＤ１１０のユーザ１９０の視座（仮想カメラ１の位置）に追随する追随オブジェクト１１００を配置するステップ（Ｓ１５１０）と、ユーザ１９０が追随オブジェクト１１００を見つめていることを検知するステップ（Ｓ１５４０）と、ユーザ１９０が追随オブジェクト１１００を予め定められた時間見つめていることに応じて、ＨＭＤ１１０に、予め定められた画面（例えば、メニュー画面）を表示するステップ（Ｓ１５６０）とを備える。
【０１３４】
（構成２）  （構成１）において、追随オブジェクト１１００を配置するステップは、ユーザ１９０の視座に対して予め定められた方向（例えば、上（Ｙ）方向）に追随オブジェクト１１００を配置することを含む。
【０１３５】
（構成３）  （構成１）または（構成２）において、追随オブジェクト１１００が見つめられることを検知するステップは、ユーザ１９０の視界（視認領域２３、視界画像２６）に追随オブジェクト１１００が含まれたことに応じて、追随オブジェクト１１００が見つめられたと検知することを含む。
【０１３６】
（構成４）  （構成３）において、追随オブジェクト１１００が見つめられることを検知するステップは、ユーザ１９０の視界の中央領域に追随オブジェクト１１００が含まれたことに応じて、追随オブジェクト１１００が見つめられたと検知することを含む。
【０１３７】
（構成５）  （構成１）または（構成２）の方法は、注視センサ１４０によってユーザ１９０の視線（注視点）を検出するステップをさらに備える。追随オブジェクト１１００が見つめられることを検知するステップは、検出されるユーザ１９０の視線が追随オブジェクト１１００に注がれたことに応じて、追随オブジェクト１１００が見つめられたと検知することを含む。
【０１３８】
（構成６）  （構成１）〜（構成５）のいずれかにおいて、予め定められた画面は、メニュー画面および仮想空間２における地図（マップ画面）のうち少なくとも一方を含む。
【０１３９】
（構成７）  （構成１）〜（構成６）の方法は、ユーザ１９０が追随オブジェクト１１００を見つめていることを検知したことに応じて、追随オブジェクト１１００の表示態様を変更するステップ（Ｓ１５４５）をさらに備える。
【０１４０】
（構成８）  （構成７）において、追随オブジェクト１１００の表示態様を変更するステップは、追随オブジェクト１１００の透過率を下げることを含む。
【０１４１】
（構成９）  （構成７）において、追随オブジェクト１１００の表示態様を変更するステップは、追随オブジェクト１１００の大きさを大きくすることを含む。
【０１４２】
今回開示された実施形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４３】
１  仮想カメラ、２  仮想空間、５  基準視線、１０  プロセッサ、１１  メモリ、１２  ストレージ、１９  ネットワーク、２３  視認領域、２６，１６００，１７００  視界画像、１００  ＨＭＤシステム、１１２  モニタ、１１４  センサ、１２０  ＨＭＤセンサ、１４０  注視センサ、１５０  サーバ、１９０  ユーザ、２００  コンピュータ、２２０  表示制御モジュール、２２１  仮想カメラ制御モジュール、２２２  視界領域決定モジュール、２２３  視界画像生成モジュール、２２４  基準視線特定モジュール、２３０  仮想空間制御モジュール、２３１  仮想空間定義モジュール、２３２  仮想オブジェクト生成モジュール、２３３  オブジェクト制御モジュール、２４０  メモリモジュール、２４１  空間情報、２４２  オブジェクト情報、２４３  ユーザ情報、２４４  動き検知データ、２５０  通信制御モジュール、１１００  追随オブジェクト、１１１０  位置移動オブジェクト、１４００  メニュー画面、１６１０  中央領域、１８００  マップ画面、Ｎ１  注視点。
【図１】
2018120521.tif 000003
【図２】
2018120521.tif 000004
【図３】
2018120521.tif 000005
【図４】
2018120521.tif 000006
【図５】
2018120521.tif 000007
【図６】
2018120521.tif 000008
【図７】
2018120521.tif 000009
【図８】
2018120521.tif 000010
【図９】
2018120521.tif 000011
【図１０】
2018120521.tif 000012
【図１１】
2018120521.tif 000013
【図１２】
2018120521.tif 000014
【図１３】
2018120521.tif 000015
【図１４】
2018120521.tif 000016
【図１５】
2018120521.tif 000017
【図１６】
2018120521.tif 000018
【図１７】
2018120521.tif 000019
【図１８】
2018120521.tif 000020
【図１９】
2018120521.tif 000021