(57)【要約】【課題】仮想空間を提供する際に、ユーザの仮想空間への没入感を確保しつつ、ＶＲ酔い（映像酔い）を抑制する技術を提供すること。【解決手段】ヘッドマウントデバイスに仮想空間を提供するためにコンピュータで実行される方法は、仮想空間を定義するステップ（ステップＳ１６１０）と、ヘッドマウントデバイスに画像を表示して、ヘッドマウントデバイスのユーザに仮想空間における視界を提供するステップ（ステップＳ１６１０）と、ヘッドマウントデバイスに表示する画像を更新して、ユーザの視界を移動させるステップとを備える。視界を移動させるステップは、視界を第１の速度で移動させるステップ（ステップＳ１６３０）と、視界を第１の速度よりも遅い第２の速度で移動させるステップ（ステップＳ１６４０）とを含む。【選択図】図１６
2018072604.tif 000002
【特許請求の範囲】
【請求項１】
ヘッドマウントデバイスに仮想空間を提供するためにコンピュータで実行される方法であって、
仮想空間を定義するステップと、
前記ヘッドマウントデバイスに画像を表示して、前記ヘッドマウントデバイスのユーザに前記仮想空間における視界を提供するステップと、
前記ヘッドマウントデバイスに表示する画像を更新して、前記ユーザの視界を移動させるステップとを備え、
前記視界を移動させるステップは、
前記視界を第１の速度で移動させるステップと、
前記視界を前記第１の速度よりも遅い第２の速度で移動させるステップとを含む、方法。
【請求項２】
前記第２の速度は、ゼロを含む、請求項１に記載の方法。
【請求項３】
前記視界を前記第２の速度で移動させるステップは、前記視界を前記第１の速度で移動させるステップの後に実行される、請求項１または２に記載の方法。
【請求項４】
前記視界を前記第１の速度で移動させるステップおよび前記視界を前記第２の速度で移動させるステップは、前記ユーザの操作を受け付けるコントローラの入力に基づいて実行される、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記視界を前記第１の速度で移動させるステップと、前記視界を前記第２の速度で移動させるステップとが、前記コントローラの一の入力に応答して実行される、請求項４に記載の方法。
【請求項６】
前記コントローラから前記視界を移動させるための入力を受け続けている間、前記視界を前記第１の速度で移動させるステップおよび前記視界を前記第２の速度で移動させるステップは繰り返される、請求項４に記載の方法。
【請求項７】
前記視界を移動させるステップは、前記コントローラによる第１の入力に対応する前記視界を前記第１の速度で移動させるステップおよび前記視界を前記第２の速度で移動させるステップを完了する前に、前記コントローラによる第２の入力が与えられた場合に、前記第１の入力に対応する前記視界を前記第１の速度で移動させるステップおよび前記視界を前記第２の速度で移動させるステップを完了した後に、前記第２の入力に対応する前記視界を前記第１の速度で移動させるステップおよび前記視界を前記第２の速度で移動させるステップがさらに実行されること含む、請求項４または５に記載の方法。
【請求項８】
前記視界を移動させるステップは、前記コントローラによる第１の入力に対応する前記視界を前記第１の速度で移動させるステップおよび前記視界を前記第２の速度で移動させるステップを完了する前に、前記コントローラによる第２の入力が与えられた場合に、前記第１の入力に対応する前記視界を前記第１の速度で移動させるステップおよび前記視界を前記第２の速度で移動させるステップを中止して、前記第２の入力に対応する前記視界を前記第１の速度で移動させるステップおよび前記視界を前記第２の速度で移動させるステップが実行されること含む、請求項４または５に記載の方法。
【請求項９】
前記ヘッドマウントデバイスの動作を検出するステップをさらに備え、
前記視界を前記第１の速度で移動させるステップおよび前記視界を前記第２の速度で移動させるステップは、前記検出された動作に基づいて実行される、請求項１〜３のいずれか１項に記載の方法。
【請求項１０】
前記ユーザの動作を検出するステップをさらに備え、
前記視界を前記第１の速度で移動させるステップおよび前記視界を前記第２の速度で移動させるステップは、前記検出された動作に基づいて実行される、請求項１〜３のいずれか１項に記載の方法。
【請求項１１】
前記ユーザが視認する視野画像を撮影する仮想カメラを前記仮想空間に配置するステップをさらに備え、
前記視界を前記第１の速度で移動させるステップは、前記仮想カメラを前記第１の速度で移動させることを含み、
前記視界を前記第２の速度で移動させるステップは、前記仮想カメラを前記第２の速度で移動させることを含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項１２】
請求項１〜１１のいずれか１項に記載の方法をコンピュータに実現させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムを格納したメモリと、
前記プログラムを実行するためのプロセッサとを備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は仮想現実を提供する技術に関し、より特定的には、仮想現実における映像酔いを低減する技術に関する。
【背景技術】
【０００２】
ヘッドマウントデバイス（ＨＭＤ：Head-Mounted  Device）装置を用いて仮想現実を提供する技術が知られている。仮想現実を提供する際、所謂ＶＲ（Virtual  Reality）酔いと呼ばれる映像酔いが生じる場合がある。そのため、このＶＲ酔いを低減するための技術が必要とされている。
【０００３】
ＶＲ酔いを低減するための技術に関し、例えば、特許第５，８６９，１７７号公報（特許文献１）は、「ユーザが没入する仮想空間の視野画像をヘッドマウント・ディスプレイに提供するときに、ＨＭＤの装着者が視認する情報量を抑える画像生成を行なう」技術を開示している（［要約］参照）。
【０００４】
また、国際公開第２０１５／０６８６５６号（特許文献２）は、「ある時刻において取得された位置および回転に関する情報を用いて、ヘッドマウントディスプレイに表示されるべき画像を生成し、別の時刻における更新された位置および回転に関する情報を用いて、生成された画像を補正する」技術を開示している（［要約］参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５，８６９，１７７号公報
【特許文献２】国際公開第２０１５／０６８６５６号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＶＲ酔いが生じる原因の一つとして、ユーザが実際に体験した記憶から予測される感覚と、実際に仮想空間で得られた感覚との間にズレが生じることが挙げられる（感覚不一致説）。そのため、ＶＲ酔いは、特に仮想空間におけるユーザの視界を移動させる際に生じやすい。そこで、ユーザの視界を目的地まで瞬間的に移動させて、移動過程をユーザに認識させないことにより、ＶＲ酔いを抑制する技術が提案されている。
【０００７】
しかしながら、ユーザの視界を目的地まで瞬間的に移動させる方法は、現実空間ではあり得ない移動方法であるため、ユーザの仮想空間への没入感を損ねる可能性がある。したがって、仮想空間を提供する際に、ユーザの仮想空間への没入感を確保しつつ、ＶＲ酔い（映像酔い）を抑制する技術が必要とされている。
【０００８】
本開示は、上記のような問題を解決するためになされたものであって、ある局面における目的は、仮想空間を提供する際に、ユーザの仮想空間への没入感を確保しつつ、ＶＲ酔い（映像酔い）を抑制する方法を提供することである。他の局面における目的は、仮想空間を提供する際に、ユーザの仮想空間への没入感を確保しつつ、ＶＲ酔いを抑制するプログラムを提供することである。
【課題を解決するための手段】
【０００９】
ある実施形態に従うと、ヘッドマウントデバイスに仮想空間を提供するためにコンピュータで実行される方法が提供される。この方法は、仮想空間を定義するステップと、ヘッドマウントデバイスに画像を表示して、ヘッドマウントデバイスのユーザに仮想空間における視界を提供するステップと、ヘッドマウントデバイスに表示する画像を更新して、ユーザの視界を移動させるステップとを備える。視界を移動させるステップは、視界を第１の速度で移動させるステップと、視界を第１の速度よりも遅い第２の速度で移動させるステップとを含む。
【００１０】
開示される技術的特徴の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１１】
【図１】ある実施の形態に従うＨＭＤシステムの構成の概略を表す図である。
【図２】一局面に従うコンピュータのハードウェア構成の一例を表すブロック図である。
【図３】ある実施の形態に従うＨＭＤに設定されるｕｖｗ視野座標系を概念的に表す図である。
【図４】ある実施の形態に従う仮想空間を表現する一態様を概念的に表す図である。
【図５】ある実施の形態に従うＨＭＤを装着するユーザの頭部を上から表した図である。
【図６】仮想空間において視認領域をＸ方向から見たＹＺ断面を表す図である。
【図７】仮想空間において視認領域をＹ方向から見たＸＺ断面を表す図である。
【図８】ある実施の形態に従うコントローラの概略構成を表す図である。
【図９】ある実施の形態に従うコンピュータをモジュール構成として表わすブロック図である。
【図１０】ＨＭＤシステムが実行する処理を表わすフローチャートである。
【図１１】仮想カメラの移動前の状態を説明する図である。
【図１２】仮想カメラの移動後の状態を説明する図である。
【図１３】ある実施形態に従う、コントローラの入力に対する仮想カメラの移動制御について説明する図である。
【図１４】ある実施形態に従う、コントローラの連続的な入力に対する仮想カメラ１の移動制御について説明する図である。
【図１５】ある実施形態に従う、コントローラの入力に対する仮想カメラの移動制御について説明する図である。
【図１６】ある実施形態に従う仮想カメラの移動制御を説明するフローチャートである。
【図１７】他の局面に従う、コントローラの入力に対する仮想カメラの移動制御について説明する図である。
【図１８】図１７に示される処理を実現するための制御のフローチャートである。
【図１９】他の局面に従う仮想カメラの移動制御について説明する図である。
【図２０】さらに他の局面に従う仮想カメラの移動制御について説明する図である。
【図２１】さらに他の局面に従う仮想カメラの移動制御について説明する図である。
【発明を実施するための形態】
【００１２】
以下、この発明の実施形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１３】
［ＨＭＤシステムの構成］
図１を参照して、ＨＭＤ（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）その他の無線通信インターフェイスとして実現される。なお、通信インターフェイス１４は上述のものに限られない。
【００３４】
ある局面において、プロセッサ１０は、ストレージ１２にアクセスし、ストレージ１２に格納されている１つ以上のプログラムをメモリ１１にロードし、当該プログラムに含まれる一連の命令を実行する。当該１つ以上のプログラムは、コンピュータ２００のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ１０は、入出力インターフェイス１３を介して、仮想空間を提供するための信号をＨＭＤ１１０に送る。ＨＭＤ１１０は、その信号に基づいてモニタ１１２に映像を表示する。
【００３５】
なお、図２に示される例では、コンピュータ２００は、ＨＭＤ１１０の外部に設けられる構成が示されているが、別の局面において、コンピュータ２００は、ＨＭＤ１１０に内蔵されてもよい。一例として、モニタ１１２を含む携帯型の情報通信端末（例えば、スマートフォン）がコンピュータ２００として機能してもよい。
【００３６】
また、コンピュータ２００は、複数のＨＭＤ１１０に共通して用いられる構成であってもよい。このような構成によれば、例えば、複数のユーザに同一の仮想空間を提供することもできるので、各ユーザは同一の仮想空間で他のユーザと同一のアプリケーションを楽しむことができる。
【００３７】
ある実施の形態において、ＨＭＤシステム１００では、グローバル座標系が予め設定されている。グローバル座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、ならびに、鉛直方向および水平方向の双方に直交する前後方向にそれぞれ平行な、３つの基準方向（軸）を有する。本実施の形態では、グローバル座標系は視点座標系の一つである。そこで、グローバル座標系における水平方向、鉛直方向（上下方向）、および前後方向は、それぞれ、ｘ軸、ｙ軸、ｚ軸と規定される。より具体的には、グローバル座標系において、ｘ軸は現実空間の水平方向に平行である。ｙ軸は、現実空間の鉛直方向に平行である。ｚ軸は現実空間の前後方向に平行である。
【００３８】
ある局面において、ＨＭＤセンサ１２０は、赤外線センサを含む。赤外線センサが、ＨＭＤ１１０の各光源から発せられた赤外線をそれぞれ検出すると、ＨＭＤ１１０の存在を検出する。ＨＭＤセンサ１２０は、さらに、各点の値（グローバル座標系における各座標値）に基づいて、ＨＭＤ１１０を装着したユーザ１９０の動きに応じた、現実空間内におけるＨＭＤ１１０の位置および傾きを検出する。より詳しくは、ＨＭＤセンサ１２０は、経時的に検出された各値を用いて、ＨＭＤ１１０の位置および傾きの時間的変化を検出できる。
【００３９】
グローバル座標系は現実空間の座標系と平行である。したがって、ＨＭＤセンサ１２０によって検出されたＨＭＤ１１０の各傾きは、グローバル座標系におけるＨＭＤ１１０の３軸周りの各傾きに相当する。ＨＭＤセンサ１２０は、グローバル座標系におけるＨＭＤ１１０の傾きに基づき、ｕｖｗ視野座標系をＨＭＤ１１０に設定する。ＨＭＤ１１０に設定されるｕｖｗ視野座標系は、ＨＭＤ１１０を装着したユーザ１９０が仮想空間において物体を見る際の視点座標系に対応する。
【００４０】
［ｕｖｗ視野座標系］
図３を参照して、ｕｖｗ視野座標系について説明する。図３は、ある実施の形態に従うＨＭＤ１１０に設定されるｕｖｗ視野座標系を概念的に表す図である。ＨＭＤセンサ１２０は、ＨＭＤ１１０の起動時に、グローバル座標系におけるＨＭＤ１１０の位置および傾きを検出する。プロセッサ１０は、検出された値に基づいて、ｕｖｗ視野座標系をＨＭＤ１１０に設定する。
【００４１】
図３に示されるように、ＨＭＤ１１０は、ＨＭＤ１１０を装着したユーザの頭部を中心（原点）とした３次元のｕｖｗ視野座標系を設定する。より具体的には、ＨＭＤ１１０は、グローバル座標系を規定する水平方向、鉛直方向、および前後方向（ｘ軸、ｙ軸、ｚ軸）を、グローバル座標系内においてＨＭＤ１１０の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる３つの方向を、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ方向（ｕ軸）、ヨー方向（ｖ軸）、およびロール方向（ｗ軸）として設定する。
【００４２】
ある局面において、ＨＭＤ１１０を装着したユーザ１９０が直立し、かつ、正面を視認している場合、プロセッサ１０は、グローバル座標系に平行なｕｖｗ視野座標系をＨＭＤ１１０に設定する。この場合、グローバル座標系における水平方向（ｘ軸）、鉛直方向（ｙ軸）、および前後方向（ｚ軸）は、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ方向（ｕ軸）、ヨー方向（ｖ軸）、およびロール方向（ｗ軸）に一致する。
【００４３】
ｕｖｗ視野座標系がＨＭＤ１１０に設定された後、ＨＭＤセンサ１２０は、ＨＭＤ１１０の動きに基づいて、設定されたｕｖｗ視野座標系におけるＨＭＤ１１０の傾き（傾きの変化量）を検出できる。この場合、ＨＭＤセンサ１２０は、ＨＭＤ１１０の傾きとして、ｕｖｗ視野座標系におけるＨＭＤ１１０のピッチ角（θｕ）、ヨー角（θｖ）、およびロール角（θｗ）をそれぞれ検出する。ピッチ角（θｕ）は、ｕｖｗ視野座標系におけるピッチ方向周りのＨＭＤ１１０の傾き角度を表す。ヨー角（θｖ）は、ｕｖｗ視野座標系におけるヨー方向周りのＨＭＤ１１０の傾き角度を表す。ロール角（θｗ）は、ｕｖｗ視野座標系におけるロール方向周りのＨＭＤ１１０の傾き角度を表す。
【００４４】
ＨＭＤセンサ１２０は、検出されたＨＭＤ１１０の傾き角度に基づいて、ＨＭＤ１１０が動いた後のＨＭＤ１１０におけるｕｖｗ視野座標系を、ＨＭＤ１１０に設定する。ＨＭＤ１１０と、ＨＭＤ１１０のｕｖｗ視野座標系との関係は、ＨＭＤ１１０の位置および傾きに関わらず、常に一定である。ＨＭＤ１１０の位置および傾きが変わると、当該位置および傾きの変化に連動して、グローバル座標系におけるＨＭＤ１１０のｕｖｗ視野座標系の位置および傾きが変化する。
【００４５】
ある局面において、ＨＭＤセンサ１２０は、赤外線センサからの出力に基づいて取得される赤外線の光強度および複数の点間の相対的な位置関係（例えば、各点間の距離など）に基づいて、ＨＭＤ１１０の現実空間内における位置を、ＨＭＤセンサ１２０に対する相対位置として特定してもよい。また、プロセッサ１０は、特定された相対位置に基づいて、現実空間内（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系の原点を決定してもよい。
【００４６】
［仮想空間］
図４を参照して、仮想空間についてさらに説明する。図４は、ある実施の形態に従う仮想空間２を表現する一態様を概念的に表す図である。仮想空間２は、中心２１の３６０度方向の全体を覆う全天球状の構造を有する。図４では、説明を複雑にしないために、仮想空間２のうちの上半分の天球が例示されている。仮想空間２では各メッシュが規定される。各メッシュの位置は、仮想空間２に規定されるＸＹＺ座標系における座標値として予め規定されている。コンピュータ２００は、仮想空間２に展開可能なコンテンツ（静止画、動画等）を構成する各部分画像を、仮想空間２において対応する各メッシュにそれぞれ対応付けて、ユーザによって視認可能な仮想空間画像２２が展開される仮想空間２をユーザに提供する。
【００４７】
ある局面において、仮想空間２では、中心２１を原点とするＸＹＺ座標系が規定される。ＸＹＺ座標系は、例えば、グローバル座標系に平行である。ＸＹＺ座標系は視点座標系の一種であるため、ＸＹＺ座標系における水平方向、鉛直方向（上下方向）、および前後方向は、それぞれＸ軸、Ｙ軸、Ｚ軸として規定される。したがって、ＸＹＺ座標系のＸ軸（水平方向）がグローバル座標系のｘ軸と平行であり、ＸＹＺ座標系のＹ軸（鉛直方向）がグローバル座標系のｙ軸と平行であり、ＸＹＺ座標系のＺ軸（前後方向）がグローバル座標系のｚ軸と平行である。
【００４８】
ＨＭＤ１１０の起動時、すなわちＨＭＤ１１０の初期状態において、仮想カメラ１が、仮想空間２の中心２１に配置される。ある局面において、プロセッサ１０は、仮想カメラ１が撮影する画像をＨＭＤ１１０のモニタ１１２に表示する。仮想カメラ１は、現実空間におけるＨＭＤ１１０の動きに連動して、仮想空間２を同様に移動する。これにより、現実空間におけるＨＭＤ１１０の位置および向きの変化が、仮想空間２において同様に再現され得る。
【００４９】
仮想カメラ１には、ＨＭＤ１１０の場合と同様に、ｕｖｗ視野座標系が規定される。仮想空間２における仮想カメラのｕｖｗ視野座標系は、現実空間（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系に連動するように規定されている。したがって、ＨＭＤ１１０の傾きが変化すると、それに応じて、仮想カメラ１の傾きも変化する。また、仮想カメラ１は、ＨＭＤ１１０を装着したユーザの現実空間における移動に連動して、仮想空間２において移動することもできる。
【００５０】
コンピュータ２００のプロセッサ１０は、仮想カメラ１の配置位置と、基準視線５とに基づいて、仮想空間２における視認領域２３を規定する。視認領域２３は、仮想空間２のうち、ＨＭＤ１１０を装着したユーザが視認する領域に対応する。
【００５１】
注視センサ１４０によって検出されるユーザ１９０の視線は、ユーザ１９０が物体を視認する際の視点座標系における方向である。ＨＭＤ１１０のｕｖｗ視野座標系は、ユーザ１９０がモニタ１１２を視認する際の視点座標系に等しい。また、仮想カメラ１のｕｖｗ視野座標系は、ＨＭＤ１１０のｕｖｗ視野座標系に連動している。したがって、ある局面に従うＨＭＤシステム１００は、注視センサ１４０によって検出されたユーザ１９０の視線を、仮想カメラ１のｕｖｗ視野座標系におけるユーザの視線とみなすことができる。
【００５２】
［ユーザの視線］
図５を参照して、ユーザの視線の決定について説明する。図５は、ある実施の形態に従うＨＭＤ１１０を装着するユーザ１９０の頭部を上から表した図である。
【００５３】
ある局面において、注視センサ１４０は、ユーザ１９０の右目および左目の各視線を検出する。ある局面において、ユーザ１９０が近くを見ている場合、注視センサ１４０は、視線Ｒ１およびＬ１を検出する。別の局面において、ユーザ１９０が遠くを見ている場合、注視センサ１４０は、視線Ｒ２およびＬ２を検出する。この場合、ロール方向ｗに対して視線Ｒ２およびＬ２がなす角度は、ロール方向ｗに対して視線Ｒ１およびＬ１がなす角度よりも小さい。注視センサ１４０は、検出結果をコンピュータ２００に送信する。
【００５４】
コンピュータ２００が、視線の検出結果として、視線Ｒ１およびＬ１の検出値を注視センサ１４０から受信した場合には、その検出値に基づいて、視線Ｒ１およびＬ１の交点である注視点Ｎ１を特定する。一方、コンピュータ２００は、視線Ｒ２およびＬ２の検出値を注視センサ１４０から受信した場合には、視線Ｒ２およびＬ２の交点を注視点として特定する。コンピュータ２００は、特定した注視点Ｎ１の位置に基づき、ユーザ１９０の視線Ｎ０を特定する。コンピュータ２００は、例えば、ユーザ１９０の右目Ｒと左目Ｌとを結ぶ直線の中点と、注視点Ｎ１とを通る直線の延びる方向を、視線Ｎ０として検出する。視線Ｎ０は、ユーザ１９０が両目により実際に視線を向けている方向である。また、視線Ｎ０は、視認領域２３に対してユーザ１９０が実際に視線を向けている方向に相当する。
【００５５】
別の局面において、ＨＭＤシステム１００は、ＨＭＤシステム１００を構成するいずれかのパーツに、マイクおよびスピーカを備えてもよい。ユーザは、マイクに発話することにより、仮想空間２に対して、音声による指示を与えることができる。
【００５６】
また、別の局面において、ＨＭＤシステム１００は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、ＨＭＤシステム１００は、仮想空間２においてテレビ番組を表示することができる。
【００５７】
さらに別の局面において、ＨＭＤシステム１００は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。
【００５８】
［視界領域］
図６および図７を参照して、視認領域２３について説明する。図６は、仮想空間２において視認領域２３をＸ方向から見たＹＺ断面を表す図である。図７は、仮想空間２において視認領域２３をＹ方向から見たＸＺ断面を表す図である。
【００５９】
図６に示されるように、ＹＺ断面における視認領域２３は、領域２４を含む。領域２４は、仮想カメラ１の配置位置と基準視線５と仮想空間２のＹＺ断面とによって定義される。プロセッサ１０は、仮想空間おける基準視線５を中心として極角αを含む範囲を、領域２４として規定する。
【００６０】
図７に示されるように、ＸＺ断面における視認領域２３は、領域２５を含む。領域２５は、仮想カメラ１の配置位置と基準視線５と仮想空間２のＸＺ断面とによって定義される。プロセッサ１０は、仮想空間２における基準視線５を中心とした方位角βを含む範囲を、領域２５として規定する。極角αおよびβは、仮想カメラ１の配置位置と仮想カメラ１の向きとに応じて定まる。
【００６１】
ある局面において、ＨＭＤシステム１００は、コンピュータ２００からの信号に基づいて、視界画像２６をモニタ１１２に表示させることにより、ユーザ１９０に仮想空間における視界を提供する。視界画像２６は、仮想空間画像２２のうち視認領域２３に重畳する部分に相当する。ユーザ１９０が、頭に装着したＨＭＤ１１０を動かすと、その動きに連動して仮想カメラ１も動く。その結果、仮想空間２における視認領域２３の位置が変化する。これにより、モニタ１１２に表示される視界画像２６は、仮想空間画像２２のうち、仮想空間２においてユーザが向いた方向の視認領域２３に重畳する画像に更新される。ユーザは、仮想空間２における所望の方向を視認することができる。
【００６２】
このように、仮想カメラ１の向き（傾き）は仮想空間２におけるユーザの視線（基準視線５）に相当し、仮想カメラ１が配置される位置は、仮想空間２におけるユーザの視点に相当する。したがって、仮想カメラ１を移動（配置位置を変える動作、向きを変える動作を含む）させることにより、モニタ１１２に表示される画像が更新され、ユーザ１９０の視界（視点、視線を含む）が移動される。
【００６３】
ユーザ１９０は、ＨＭＤ１１０を装着している間、現実世界を視認することなく、仮想空間２に展開される仮想空間画像２２のみを視認できる。そのため、ＨＭＤシステム１００は、仮想空間２への高い没入感覚をユーザに与えることができる。
【００６４】
ある局面において、プロセッサ１０は、ＨＭＤ１１０を装着したユーザ１９０の現実空間における移動に連動して、仮想空間２において仮想カメラ１を移動し得る。この場合、プロセッサ１０は、仮想空間２における仮想カメラ１の位置および向きに基づいて、ＨＭＤ１１０のモニタ１１２に投影される画像領域（すなわち、仮想空間２における視認領域２３）を特定する。
【００６５】
ある実施の形態に従うと、仮想カメラ１は、２つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含むことが望ましい。また、ユーザ１９０が３次元の仮想空間２を認識できるように、適切な視差が、２つの仮想カメラに設定されていることが好ましい。本実施の形態においては、仮想カメラ１が２つの仮想カメラを含み、２つの仮想カメラのロール方向が合成されることによって生成されるロール方向（ｗ）がＨＭＤ１１０のロール方向（ｗ）に適合されるように構成されているものとして、本開示に係る技術思想を例示する。
【００６６】
［コントローラ］
図８を参照して、コントローラ１６０の一例について説明する。図８は、ある実施の形態に従うコントローラ１６０の概略構成を表す図である。
【００６７】
図８に示されるように、ある局面において、コントローラ１６０は、右コントローラ８００と左コントローラとを含み得る。右コントローラ８００は、ユーザ１９０の右手で操作される。左コントローラは、ユーザ１９０の左手で操作される。ある局面において、右コントローラ８００と左コントローラとは、別個の装置として対称に構成される。したがって、ユーザ１９０は、右コントローラ８００を把持した右手と、左コントローラを把持した左手とをそれぞれ自由に動かすことができる。別の局面において、コントローラ１６０は両手の操作を受け付ける一体型のコントローラであってもよい。以下、右コントローラ８００について説明する。
【００６８】
右コントローラ８００は、グリップ３０と、フレーム３１と、天面３２とを備える。グリップ３０は、ユーザ１９０の右手によって把持されるように構成されている。例えば、グリップ３０は、ユーザ１９０の右手の掌と３本の指（中指、薬指、小指）とによって保持され得る。
【００６９】
グリップ３０は、ボタン３３，３４と、モーションセンサ１３０とを含む。ボタン３３は、グリップ３０の側面に配置され、右手の中指による操作を受け付ける。ボタン３４は、グリップ３０の前面に配置され、右手の人差し指による操作を受け付ける。ある局面において、ボタン３３，３４は、トリガー式のボタンとして構成される。モーションセンサ１３０は、グリップ３０の筐体に内蔵されている。なお、ユーザ１９０の動作がカメラその他の装置によってユーザ１９０の周りから検出可能である場合には、グリップ３０は、モーションセンサ１３０を備えなくてもよい。
【００７０】
フレーム３１は、その円周方向に沿って配置された複数の赤外線ＬＥＤ３５を含む。赤外線ＬＥＤ３５は、コントローラ１６０を使用するプログラムの実行中に、当該プログラムの進行に合わせて赤外線を発光する。赤外線ＬＥＤ３５から発せられた赤外線は、右コントローラ８００と左コントローラ（図示しない）との各位置や姿勢（傾き、向き）を検出するために使用され得る。図８に示される例では、二列に配置された赤外線ＬＥＤ３５が示されているが、配列の数は図８に示されるものに限られない。一列あるいは３列以上の配列が使用されてもよい。
【００７１】
天面３２は、ボタン３６，３７と、アナログスティック３８とを備える。ボタン３６，３７は、プッシュ式ボタンとして構成される。ボタン３６，３７は、ユーザ１９０の右手の親指による操作を受け付ける。アナログスティック３８は、ある局面において、初期位置（ニュートラルの位置）から３６０度任意の方向への操作を受け付ける。当該操作は、例えば、仮想空間２に配置されるオブジェクトを移動するための操作を含む。
【００７２】
ある局面において、右コントローラ８００および左コントローラは、赤外線ＬＥＤ３５その他の部材を駆動するための電池を含む。電池は、１次電池および２次電池のいずれであってもよく、その形状は、ボタン型、乾電池型など任意であり得る。別の局面において、右コントローラ８００と左コントローラは、例えば、コンピュータ２００のＵＳＢインターフェイスに接続され得る。この場合、右コントローラ８００および左コントローラは、ＵＳＢインターフェイスを介して電力を供給され得る。
【００７３】
［ＨＭＤの制御装置］
図９を参照して、ＨＭＤ１１０の制御装置について説明する。ある実施の形態において、制御装置は周知の構成を有するコンピュータ２００によって実現される。図９は、ある実施の形態に従うコンピュータ２００をモジュール構成として表わすブロック図である。
【００７４】
図９に示されるように、コンピュータ２００は、表示制御モジュール２２０と、仮想空間制御モジュール２３０と、メモリモジュール２４０と、通信制御モジュール２５０とを備える。表示制御モジュール２２０は、サブモジュールとして、仮想カメラ制御モジュール２２１と、視界領域決定モジュール２２２と、視界画像生成モジュール２２３と、基準視線特定モジュール２２４とを含む。仮想空間制御モジュール２３０は、サブモジュールとして、仮想空間定義モジュール２３１と、仮想オブジェクト生成モジュール２３２と、操作オブジェクト制御モジュール２３３とを含む。
【００７５】
ある実施の形態において、表示制御モジュール２２０と仮想空間制御モジュール２３０とは、プロセッサ１０によって実現される。別の実施の形態において、複数のプロセッサ１０が表示制御モジュール２２０と仮想空間制御モジュール２３０として作動してもよい。メモリモジュール２４０は、メモリ１１またはストレージ１２によって実現される。通信制御モジュール２５０は、通信インターフェイス１４によって実現される。
【００７６】
ある局面において、表示制御モジュール２２０は、ＨＭＤ１１０のモニタ１１２における画像表示を制御する。
【００７７】
仮想カメラ制御モジュール２２１は、仮想空間２に仮想カメラ１を配置する。また、仮想カメラ制御モジュール２２１は、仮想空間２における仮想カメラ１の配置位置と、仮想カメラ１の向き（傾き）を制御する。視界領域決定モジュール２２２は、ＨＭＤ１１０を装着したユーザの頭の向きと、仮想カメラ１の配置位置に応じて、視認領域２３を規定する。視界画像生成モジュール２２３は、決定された視認領域２３に基づいて、モニタ１１２に表示される視界画像２６を生成する。
【００７８】
基準視線特定モジュール２２４は、注視センサ１４０からの信号に基づいて、ユーザ１９０の視線を特定する。
【００７９】
仮想空間制御モジュール２３０は、ユーザ１９０に提供される仮想空間２を制御する。仮想空間定義モジュール２３１は、仮想空間２を表わす仮想空間データを生成することにより、ＨＭＤシステム１００における仮想空間２を規定する。
【００８０】
仮想オブジェクト生成モジュール２３２は、仮想空間２に配置される対象物を生成する。対象物は、例えば、ゲームのストーリーの進行に従って配置される森、山その他を含む風景、動物等を含み得る。
【００８１】
操作オブジェクト制御モジュール２３３は、仮想空間２においてユーザの操作を受け付けるための操作オブジェクトを仮想空間２に配置する。ユーザは、操作オブジェクトを操作することにより、例えば、仮想空間２に配置されるオブジェクトを操作する。ある局面において、操作オブジェクトは、例えば、ＨＭＤ１１０を装着したユーザの手に相当する手オブジェクト、ユーザの足に相当する足オブジェクト、ユーザの指に相当する指オブジェクト、ユーザが使用するスティックに相当するスティックオブジェクト等を含み得る。操作オブジェクトが指オブジェクトの場合、特に、操作オブジェクトは、当該指が指し示す方向（軸方向）の軸の部分に対応している。
【００８２】
仮想空間制御モジュール２３０は、仮想空間２に配置されるオブジェクトのそれぞれが、他のオブジェクトと衝突した場合に、当該衝突を検出する。仮想空間制御モジュール２３０は、例えば、あるオブジェクトと、別のオブジェクトとが触れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行なう。仮想空間制御モジュール２３０は、オブジェクトとオブジェクトとが触れている状態から離れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行なう。仮想空間制御モジュール２３０は、オブジェクトとオブジェクトとが触れている状態であることを検出することができる。具体的には、操作オブジェクト制御モジュール２３３は、操作オブジェクトと、他のオブジェクトとが触れたときに、これら操作オブジェクトと他のオブジェクトとが触れたことを検出して、予め定められた処理を行なう。
【００８３】
メモリモジュール２４０は、コンピュータ２００が仮想空間２をユーザ１９０に提供するために使用されるデータを保持している。ある局面において、メモリモジュール２４０は、空間情報２４１と、オブジェクト情報２４２と、ユーザ情報２４３とを保持している。
【００８４】
空間情報２４１は、仮想空間２を提供するために規定された１つ以上のテンプレートを保持している。
【００８５】
オブジェクト情報２４２は、仮想空間２において再生されるコンテンツ、当該コンテンツで使用されるオブジェクト、およびオブジェクトを仮想空間２に配置するための情報（たとえば、位置情報）を保持している。当該コンテンツは、例えば、ゲーム、現実社会と同様の風景を表したコンテンツ等を含み得る。
【００８６】
ユーザ情報２４３は、ＨＭＤシステム１００の制御装置としてコンピュータ２００を機能させるためのプログラム、オブジェクト情報２４２に保持される各コンテンツを使用するアプリケーションプログラム等を保持している。
【００８７】
メモリモジュール２４０に格納されているデータおよびプログラムは、ＨＭＤ１１０のユーザによって入力される。あるいは、プロセッサ１０が、当該コンテンツを提供する事業者が運営するコンピュータ（例えば、サーバ１５０）からプログラムあるいはデータをダウンロードして、ダウンロードされたプログラムあるいはデータをメモリモジュール２４０に格納する。
【００８８】
通信制御モジュール２５０は、ネットワーク１９を介して、サーバ１５０その他の情報通信装置と通信し得る。
【００８９】
ある局面において、表示制御モジュール２２０および仮想空間制御モジュール２３０は、例えば、ユニティテクノロジーズ社によって提供されるＵｎｉｔｙ（登録商標）を用いて実現され得る。別の局面において、表示制御モジュール２２０および仮想空間制御モジュール２３０は、各処理を実現する回路素子の組み合わせとしても実現され得る。
【００９０】
コンピュータ２００における処理は、ハードウェアと、プロセッサ１０により実行されるソフトウェアとによって実現される。このようなソフトウェアは、ハードディスクその他のメモリモジュール２４０に予め格納されている場合がある。また、ソフトウェアは、ＣＤ−ＲＯＭその他のコンピュータ読み取り可能な不揮発性のデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、当該ソフトウェアは、インターネットその他のネットワークに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。このようなソフトウェアは、光ディスク駆動装置その他のデータ読取装置によってデータ記録媒体から読み取られて、あるいは、通信制御モジュール２５０を介してサーバ１５０その他のコンピュータからダウンロードされた後、記憶モジュールに一旦格納される。そのソフトウェアは、プロセッサ１０によって記憶モジュールから読み出され、実行可能なプログラムの形式でＲＡＭに格納される。プロセッサ１０は、そのプログラムを実行する。
【００９１】
図９に示されるコンピュータ２００を構成するハードウェアは、一般的なものである。したがって、本実施の形態に係る最も本質的な部分は、コンピュータ２００に格納されたプログラムであるともいえる。なお、コンピュータ２００のハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【００９２】
なお、データ記録媒体としては、ＣＤ−ＲＯＭ、ＦＤ（Flexible  Disk）、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク（ＭＯ（Magnetic  Optical  Disc）／ＭＤ（Mini  Disc）／ＤＶＤ（Digital  Versatile  Disc））、ＩＣ（Integrated  Circuit）カード（メモリカードを含む）、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Electronically  Programmable  Read-Only  Memory）、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）、フラッシュＲＯＭなどの半導体メモリ等の固定的にプログラムを担持する不揮発性のデータ記録媒体でもよい。
【００９３】
なお、ここでいうプログラムとは、プロセッサ１０により直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含み得る。
【００９４】
［制御構造］
図１０を参照して、本実施の形態に係るコンピュータ２００の制御構造について説明する。図１０は、ＨＭＤシステム１００が実行する処理を表わすフローチャートである。
【００９５】
図１０を参照して、ステップＳ１０１０にて、コンピュータ２００のプロセッサ１０は、仮想空間定義モジュール２３１として、仮想空間画像データを特定し、仮想空間２を定義する。
【００９６】
ステップＳ１０２０にて、プロセッサ１０は、仮想カメラ１を初期化する。例えば、プロセッサ１０は、メモリのワーク領域において、仮想カメラ１を仮想空間２において予め規定された中心２１に配置し、仮想カメラ１の向きをユーザ１９０の視線に一致させる。
【００９７】
ステップＳ１０３０にて、プロセッサ１０は、視界画像生成モジュール２２３として、初期の視界画像２６を表示するための視界画像データを生成する。生成された視界画像データは、視界画像生成モジュール２２３を介して通信制御モジュール２５０によってＨＭＤ１１０に送信される。
【００９８】
ステップＳ１０３２にて、ＨＭＤ１１０のモニタ１１２は、コンピュータ２００から受信した信号に基づいて、視界画像２６を表示する。ＨＭＤ１１０を装着したユーザ１９０は、視界画像２６を視認すると仮想空間２を認識し得る。
【００９９】
ステップＳ１０３４にて、ＨＭＤセンサ１２０は、ＨＭＤ１１０が発する複数の赤外線光に基づいて、ＨＭＤ１１０の傾きを検知する。検知結果は、動き検知データとして、コンピュータ２００に送信される。
【０１００】
ステップＳ１０４０にて、プロセッサ１０は、ＨＭＤセンサ１２０から入力されたＨＭＤ１１０の傾き（動き検知データ）に基づいて、仮想カメラ１の基準視線５を特定する。
【０１０１】
ステップＳ１０４２にて、コントローラ１６０は、現実空間におけるユーザ１９０の操作を検出する。例えば、ある局面において、コントローラ１６０は、ユーザ１９０によってアナログスティックが前方に倒されたことを検出する。別の局面において、コントローラ１６０は、ユーザ１９０によってボタンが押下されたことを検出する。コントローラ１６０は、検出内容を示す検出信号をコンピュータ２００に送信する。
【０１０２】
ステップＳ１０５０にて、プロセッサ１０は、仮想カメラ制御モジュール２２１として、検出信号に従い、特定した基準視線５の方向に仮想カメラ１を移動させる。
【０１０３】
ステップＳ１０６０にて、プロセッサ１０は、視界画像生成モジュール２２３として、移動後の仮想カメラ１が撮影する視界画像２６を表示するための視界画像データを生成し、生成した視界画像データをＨＭＤ１１０に出力する。
【０１０４】
ステップＳ１０６２にて、ＨＭＤ１１０のモニタ１１２は、受信した視界画像データに基づいて視界画像２６を更新し、更新後の視界画像を表示する。これにより、仮想空間２におけるユーザ１９０の視界が移動される。次に、図１１および図１２を用いて、仮想カメラ１の移動に伴う視界画像の更新について説明する。
【０１０５】
［視界画像の更新］
図１１は、仮想カメラ１の移動前の状態を説明する図である。分図（Ａ）に示されるようにある局面において、ＨＭＤ１１０を装着したユーザ１９０は、仮想空間２における視界画像１１００を視認している。視界画像１１００には、木オブジェクト１４１０と山オブジェクト１４２０とが含まれる。このとき、分図（Ｂ）に示されるように、仮想カメラ１は、視界画像１１００に対応する視認領域２３を撮影している。
【０１０６】
図１１に示される状態において、ユーザ１９０は、コントローラ１６０に移動指示を与える。一例として、ユーザ１９０は、コントローラ１６０に含まれるアナログスティックを前方に倒す。これにより、図１１に示される状態から図１２に示される状態へと移行する。
【０１０７】
図１２は、仮想カメラ１の移動後の状態を説明する図である。プロセッサ１０は、コントローラ１６０から入力される検出信号に応じて、仮想カメラ１を移動させる。より具体的には、プロセッサ１０は、移動前の仮想カメラ１の基準視線５を移動方向として特定し、特定した移動方向に、仮想カメラ１を移動させる。
【０１０８】
図１２の分図（Ｂ）において、仮想カメラ１の配置位置（すなわち、ユーザ１９０の視点）は、図１１の分図（Ｂ）に示される状態よりも前方に移動している。ユーザは、移動後の仮想カメラ１が撮影する視界画像１２００を視認する。次に、図１３〜図１６を用いて、仮想カメラ１の移動制御について説明する。
【０１０９】
［仮想カメラの移動に関する制御構造］
図１３は、ある実施形態に従う、コントローラ１６０の入力に対する仮想カメラ１の移動制御について説明する図である。横軸は時間を、縦軸は仮想カメラ１の移動距離をそれぞれ表す。
【０１１０】
図１３を参照して、時刻Ｔ０において、プロセッサ１０は、コントローラ１６０から仮想カメラ１を移動させるための一の入力を受け付ける。一の入力は、モニタ１１２が画像を更新する時間（１フレーム）の間にコントローラ１６０から入力される検出信号であり得る。例えば、ユーザ１９０がコントローラ１６０のボタンを押下した後すぐに元の状態に戻したり、コントローラ１６０のアナログスティックを所望の方向に倒した後すぐに元の状態に戻したりすることにより、プロセッサ１０はコントローラ１６０から一の検出信号を受け付ける。
【０１１１】
プロセッサ１０は、コントローラ１６０から一の入力を受け付けたことに応じて、第１動作と第２動作とを実行する。ある実施形態において、第１動作は仮想カメラ１を高速移動させることを、第２動作は仮想カメラ１の移動を停止させることをいう。
【０１１２】
図１３に示される例において、プロセッサ１０は、時刻Ｔ０から時刻Ｔ１の間（ｔ１秒間）に距離ｄだけ仮想カメラ１を高速移動させる第１動作を実行する。この時の仮想カメラ１の移動速度を第１の速度（＝ｄ／ｔ１）と定義する。続いて、プロセッサ１０は、時刻Ｔ１から時刻Ｔ２までの間（ｔ２秒間）、仮想カメラ１の移動を停止する第２動作を実行する。
【０１１３】
第１の速度は、ユーザが瞬間移動のように感じる程度の速度に設定され得る。これにより、ユーザは、仮想カメラ１が第１の速度で移動している間の視界画像２６をほぼ認識しない。その結果、ＨＭＤシステム１００は、第１動作に対するユーザのＶＲ酔いを抑制し得る。
【０１１４】
また、距離ｄは、ユーザが仮想空間２への没入感を失わない程度の距離に設定される。距離ｄが長すぎるとユーザの仮想空間２への没入感が損なわれる可能性が高くなり、距離ｄが短すぎると仮想カメラ１が目的地に到達するまでに要する時間が長くなるためである。
【０１１５】
時刻Ｔ３において、プロセッサ１０は、コントローラ１６０から再び一の入力を受け付ける。これに応じて、プロセッサ１０は、第１動作と第２動作とを再び実行する。
【０１１６】
上記のように、ある実施形態に従うＨＭＤシステム１００は、仮想カメラ１を高速移動させた後、仮想カメラ１を停止させる動作を繰り返しながら、仮想カメラ１をユーザの目的地まで移動させ得る。これにより、ユーザ１９０は、自身の視界（視点）が瞬間移動を繰り返しながら断続的に移動するように感じる。その結果、ＨＭＤシステム１００は、仮想カメラ１をユーザ１９０の目的地まで移動させるにあたり、ユーザ１９０のＶＲ酔いを抑制し得る。さらに、ユーザは、主に仮想カメラ１の移動が停止するときに、目的地までの移動過程を視認する。そのため、ＨＭＤシステム１００は、仮想カメラ１をユーザ１９０の目的地まで移動させるにあたり、ユーザの仮想空間２への没入感を確保し得る。
【０１１７】
なお、本願発明者は、仮想カメラを連続的に移動させた場合に比して仮想カメラを断続的に移動させた場合の方が、ユーザのＶＲ酔いの度合いが低いことを既知のＶＲ酔い測定方法を用いて確認した。
【０１１８】
なお、ある実施形態において、第２動作を実行する期間（ｔ２秒）は、第１動作を実行する期間（ｔ１秒）よりも長く設定され得る。第２動作を実行する期間が短すぎると、ユーザ１９０は、自身の視界（視点）が連続的に移動しているように感じ得るためである。
【０１１９】
図１４は、ある実施形態に従う、コントローラ１６０の連続的な入力に対する仮想カメラ１の移動制御について説明する図である。図１４を参照して、ある局面において、プロセッサ１０は、コントローラ１６０から仮想カメラ１を移動させるための入力を時刻Ｔ０から時刻Ｔ１３にわたって連続的に受け付ける。例えば、ユーザ１９０がコントローラ１６０のボタンを押下し続けたり、コントローラ１６０のアナログスティックを所望の方向に倒し続けたりすることにより、プロセッサ１０はコントローラ１６０から連続的な入力（検出信号）を受け付ける。
【０１２０】
時刻Ｔ０において、プロセッサ１０は、コントローラ１６０から検出信号を受信したことに応じて、第１動作と第２動作とを実行する。この第２動作は時刻Ｔ１１に終了する。
【０１２１】
時刻Ｔ１１において、プロセッサ１０は、コントローラ１６０から検出信号を受信し続けていることに応じて、再び第１動作と第２動作とを実行する。時刻Ｔ１２から時刻Ｔ１４においても、この仮想カメラ１の移動と停止とのサイクルを繰り返す。
【０１２２】
時刻Ｔ１４において、プロセッサ１０は、コントローラ１６０からの検出信号を受信していないため、仮想カメラ１を移動しない。このように、ある実施形態に従うプロセッサ１０は、第２動作の終了時点においてコントローラ１６０から検出信号が入力されているか否かを判断し、入力されている場合に第１動作と第２動作とを再び実行する。
【０１２３】
上記のように、ある実施形態に従うプロセッサ１０は、コントローラ１６０から仮想カメラ１を移動させるための連続的な入力を受け付けている間、第１動作と第２動作とを含むサイクルを繰り返す。このような仮想カメラ１の移動制御によっても、ユーザ１９０の仮想空間２への没入感を確保しつつ、ユーザ１９０のＶＲ酔いを抑制し得る。
【０１２４】
図１５は、ある実施形態に従う、コントローラ１６０の入力に対する仮想カメラ１の移動制御について説明する図である。
【０１２５】
時刻Ｔ０において、プロセッサ１０は、コントローラ１６０から検出信号を受信したことに応じて、第１動作と第２動作とを実行する。より具体的には、プロセッサ１０は、時刻Ｔ０から時刻Ｔ２１にわたり第１動作を実行し、時刻Ｔ２１から時刻Ｔ２３にわたり第２動作を実行する。
【０１２６】
時刻Ｔ２３において、プロセッサ１０は、第２動作の実行中（時刻Ｔ２１〜Ｔ２３）に、コントローラ１６０から検出信号を受信したか否かを判断する。図１５に示される例において、プロセッサ１０は、時刻Ｔ２２に検出信号を受信したと判断し、時刻Ｔ２３から時刻Ｔ２５にわたり第１動作と第２動作とを再び実行する。
【０１２７】
時刻Ｔ２５において、プロセッサ１０は、２回目の第２動作（時刻Ｔ２４〜Ｔ２５）の実行中に、検出信号を受信していないと判断し、仮想カメラ１を移動しない。
【０１２８】
上記のように、ある実施形態に従うプロセッサ１０は、第２動作の実行中にコントローラ１６０から仮想カメラ１を移動させるための検出信号を受信した場合に、再び第１動作と第２動作とを含むサイクルを実行するように構成される。これにより、プロセッサ１０は、例えばユーザ１９０がコントローラ１６０のボタンを連打する場合に、仮想カメラ１を規則的に移動させることができる。このような仮想カメラ１の移動制御によっても、ユーザ１９０の仮想空間２への没入感を確保しつつ、ユーザ１９０のＶＲ酔いを抑制し得る。
【０１２９】
なお、他の局面において、プロセッサ１０は、第１動作および第２動作の実行中に検出信号を受信した場合に、第１動作と第２動作とを含むサイクルを再び実行するように構成されてもよい。
【０１３０】
図１６は、ある実施形態に従う仮想カメラ１の移動制御を説明するフローチャートである。図１６に示される各処理は、コンピュータ２００のプロセッサ１０が、メモリモジュール２４０に格納されているプログラムを実行することにより実現される。
【０１３１】
ステップＳ１６１０にて、プロセッサ１０は、仮想空間定義モジュール２３１として、仮想空間２を定義して、ユーザ１９０が装着しているＨＭＤ１１０に仮想空間２を提供する。
【０１３２】
ステップＳ１６２０にて、プロセッサ１０は、ＨＭＤセンサ１２０の出力に基づいて、ＨＭＤ１１０の傾き、すなわち、基準視線５を移動方向として特定する。
【０１３３】
ステップＳ１６３０にて、プロセッサ１０は、コントローラ１６０からの入力（第１の入力）に応じて、仮想カメラ１を特定した移動方向に第１の速度で移動させる第１動作を実行する。
【０１３４】
ステップＳ１６４０にて、プロセッサ１０は、仮想カメラ１の移動を停止させる第２動作を実行する。
【０１３５】
ステップＳ１６５０にて、プロセッサ１０は、第２動作を実行すべき予め定められた時間（ｔ２秒）が経過したか否かを判断する。プロセッサ１０は、予め定められた時間が経過したと判断した場合（ステップＳ１６５０においてＹＥＳ）、一連の仮想カメラ１を移動させる処理を終了する。そうでない場合（ステップＳ１６５０においてＮＯ）、プロセッサ１０は、処理をステップＳ１６６０に進める。
【０１３６】
ステップＳ１６６０にて、プロセッサ１０は、第１の入力に従う第１動作および第２動作を完了する前に、コントローラ１６０から次の入力（第２の入力）を受信したか否かを判断する。プロセッサ１０は、第１の入力に従う第１動作および第２動作を完了する前に第２の入力を受信したと判断した場合（ステップＳ１６６０においてＹＥＳ）、処理をステップＳ１６７０に進める。そうでない場合（ステップＳ１６６０においてＮＯ）、プロセッサ１０は、処理をステップＳ１６４０に戻す。
【０１３７】
ステップＳ１６７０にて、プロセッサ１０は、予め定められた時間が経過するまで仮想カメラ１の移動を停止する第２動作を継続する。プロセッサ１０は、予め定められた時間が経過したことに応じて、処理をステップＳ１６３０に戻す。
【０１３８】
上記によれば、ある実施形態に従うＨＭＤシステム１００は、ユーザ１９０が操作するコントローラ１６０の出力に応じて、仮想カメラ１をユーザ１９０の目的地まで断続的に移動させることができる。これにより、ユーザ１９０は、自身の視界（視点）が瞬間移動を繰り返しながら断続的に移動するように感じる。その結果、ＨＭＤシステム１００は、仮想カメラ１をユーザ１９０の目的地まで移動させるにあたり、ユーザ１９０のＶＲ酔いを抑制するとともに、ユーザ１９０の仮想空間２への没入感を確保し得る。
【０１３９】
なお、上記の実施形態において、プロセッサ１０は基準視線５を移動方向として特定しているが、他の局面において、コントローラ１６０のアナログスティックが倒された方向を移動方向として特定してもよい。
【０１４０】
図１７は、他の局面に従う、コントローラ１６０の入力に対する仮想カメラ１の移動制御について説明する図である。
【０１４１】
時刻Ｔ０において、プロセッサ１０は、コントローラ１６０から検出信号を受信したことに応じて、時刻Ｔ３１まで第１動作を実行し、その後に時刻Ｔ３３まで第２動作を実行しようとする。図１７の例において、第２動作の実行中である時刻Ｔ３２において、コントローラ１６０から次の検出信号がプロセッサ１０に入力される。この場合、時刻Ｔ３２において、プロセッサ１０は、実行中の第２動作を中止して、２回目の第１動作と第２動作とを実行する。
【０１４２】
プロセッサ１０は、２回目の第２動作の実行中である時刻Ｔ３４にコントローラ１６０から次の検出信号を再び受信する。これに応じて、プロセッサ１０は、２回目の第２動作を中止して、３回目の第１動作と第２動作とを実行する。
【０１４３】
図１８は、図１７に示される処理を実現するための制御のフローチャートである。図１８に示される処理は、図１６に示される処理からステップＳ１６７０の処理を削除した残りの処理と同一であるため、その詳細は繰り返さない。
【０１４４】
ステップＳ１６６０にて、プロセッサ１０は、第１の入力に従う第１動作および第２動作を完了する前に、コントローラ１６０から次の入力（第２の入力）を受信したか否かを判断する。プロセッサ１０は、第１の入力に従う第１動作および第２動作を完了する前に第２の入力を受信したと判断した場合（ステップＳ１６６０においてＹＥＳ）、第１の入力に従う第１動作および第２動作を中止して、処理をステップＳ１６３０に戻す。
【０１４５】
上記によれば、プロセッサ１０は、例えばユーザ１９０がコントローラ１６０のボタンを連打する場合に、図１５および１６に示される処理に比して仮想カメラ１を高速に移動させることができる。
【０１４６】
ある実施形態において、プロセッサ１０は、コントローラ１６０からの入力が連続的な入力であるか否かを判断し得る。例えば、コントローラ１６０からの入力が予め定められた時間（例えば、モニタ１１２の３フレームに相当する時間）にわたり継続する場合、プロセッサ１０は、当該入力が連続的な入力であると判断し得る。
【０１４７】
このプロセッサ１０は、コントローラ１６０からの入力が連続的であると判断した場合には、図１６で説明した処理を実行し、コントローラ１６０からの入力が連続的でないと判断した場合には、図１８で説明した処理を実行し得る。これにより、プロセッサ１０は、例えば、ユーザ１９０がコントローラ１６０のボタンを押し続けているときに仮想カメラ１を規則的に移動させ、ユーザ１９０がコントローラ１６０のボタンを連打しているときに仮想カメラ１をより高速に移動させることができる。
【０１４８】
［その他の構成］
（その１）
上記の実施形態において、プロセッサ１０は、第１動作において仮想カメラ１を高速移動させることにより、ユーザ１９０に自身の視界（視点）が瞬間移動したかのように感じさせる構成であった。他の局面において、プロセッサ１０は、第１動作において、実際に仮想カメラ１を高速移動ではなく瞬間移動させてもよい。
【０１４９】
図１９は、他の局面に従う仮想カメラ１の移動制御について説明する図である。図１９に示される例において、プロセッサ１０は、時刻Ｔ０から時刻Ｔ４３にわたって、コントローラ１６０からの入力を受け付ける。
【０１５０】
時刻Ｔ０において、プロセッサ１０は、コントローラ１６０から検出信号を受信したことに応じて、仮想カメラ１の配置位置を距離ｄだけ離れた位置に変更して仮想カメラ１を瞬間移動させる第１動作を実行する。これにより、ユーザ１９０の視点（視界）は、時刻Ｔ０を含むフレームを境に距離ｄだけ離れた位置に変更される。プロセッサ１０は、第１動作を実行した後、時刻Ｔ４１までの間（ｔ２秒間）、仮想カメラ１の移動を停止する第２動作を実行する。
【０１５１】
時刻Ｔ４１において、プロセッサ１０は、コントローラ１６０から検出信号を受信し続けていることに応じて、第１動作と、第２動作とを再び実行する。時刻Ｔ４２においても、プロセッサ１０は、プロセッサ１０は、コントローラ１６０から検出信号を受信し続けていることに応じて、第１動作と、第２動作とを再び実行する。
【０１５２】
上記によれば、ある実施形態に従うＨＭＤシステム１００は、ユーザ１９０に視界（視点）の移動過程を認識させないことにより、ユーザ１９０のＶＲ酔いをさらに抑制し得る。
【０１５３】
（その２）
上記の実施形態では、プロセッサ１０は、コントローラ１６０からの入力に応じて、仮想カメラ１を高速移動させる第１動作と、仮想カメラ１の移動を停止させる第２動作とを実行するように構成される。他の局面において、プロセッサ１０は、第２動作において、仮想カメラ１を停止させるのではなく低速移動させてもよい。
【０１５４】
図２０は、さらに他の局面に従う仮想カメラ１の移動制御について説明する図である。図２０に示される例において、プロセッサ１０は、時刻Ｔ０から時刻Ｔ５４にわたって、コントローラ１６０からの入力を受け付ける。
【０１５５】
時刻Ｔ０において、プロセッサ１０は、コントローラ１６０から検出信号を受信したことに応じて、時刻Ｔ０から時刻Ｔ５１までの間（ｔ１秒間）に距離ｄ１だけ仮想カメラ１を高速移動させる第１動作を実行する。続いて、プロセッサ１０は、時刻Ｔ５１から時刻Ｔ５２までの間（ｔ２秒間）に距離ｄ２だけ仮想カメラ１を低速移動させる第２動作を実行する。
【０１５６】
この実施形態において、第１動作に従う仮想カメラ１の移動速度（第１の速度）は、第２動作に従う仮想カメラ１の移動速度（第２の速度）よりも速く設定される。これにより、ユーザ１９０は、自身の視界（視点）が断続的に移動するように感じて、ＶＲ酔いを起こしにくくなり得る。
【０１５７】
（その３）
上記の実施形態では、プロセッサ１０は、コントローラ１６０からの入力に応じて、仮想カメラ１を高速移動させる第１動作を実行した後に、仮想カメラ１の移動を停止または仮想カメラ１を低速移動させる第２動作を実行する構成であった。他の局面において、プロセッサ１０は、コントローラ１６０からの入力に応じて、第２動作を実行した後に第１動作を実行するように構成されてもよい。
【０１５８】
（その４）
上記の実施形態では、プロセッサ１０は、コントローラ１６０からの入力に応じて、仮想カメラ１を異なる２つの移動速度（ゼロを含む）で移動させる構成であった。他の局面において、プロセッサ１０は、コントローラ１６０からの入力に応じて、仮想カメラ１を異なる３以上の移動速度によって移動させるように構成されてもよい。
【０１５９】
図２１は、さらに他の局面に従う仮想カメラ１の移動制御について説明する図である。図２１に示される例において、プロセッサ１０は、時刻Ｔ０から時刻Ｔ６３にわたって、コントローラ１６０からの入力を受け付ける。
【０１６０】
時刻Ｔ０において、プロセッサ１０は、コントローラ１６０から検出信号を受信したことに応じて、時刻Ｔ０から時刻Ｔ６１までの間に距離ｄだけ仮想カメラ１を移動させる。このとき、プロセッサ１０は、仮想カメラ１の移動速度を高速から低速へと連続的に変化させながら仮想カメラ１を移動させる。
【０１６１】
時刻Ｔ６１およびＴ６２において、プロセッサ１０は、コントローラ１６０から検出信号を受信し続けていることに応じて、仮想カメラ１の移動速度を連続的に変化させながら仮想カメラ１を移動させる処理を繰り返す。
【０１６２】
このような仮想カメラ１の移動制御によっても、ユーザ１９０の仮想空間２への没入感を確保しつつ、ユーザ１９０のＶＲ酔いを抑制し得る。
【０１６３】
（その５）
上記の実施形態では、プロセッサ１０は、仮想カメラ１の配置位置を移動させる際において、換言すれば、ユーザ１９０の視点を移動させる際において、ユーザのＶＲ酔いを抑制するための構成であった。他の局面において、プロセッサ１０は、仮想カメラ１の向きを変更する際に、上記説明した処理を実行して、ユーザ１９０のＶＲ酔いを抑制してもよい。
【０１６４】
仮想カメラ１の向きを変更する制御の具体例を説明する。プロセッサ１０は、ＨＭＤセンサ１２０の出力に基づいて、ＨＭＤ１１０が傾いたことを検出する。これに応じてプロセッサ１０は、仮想カメラ１の向きを第１の角速度で変更する第１動作と、仮想カメラ１の向きの変更を停止する第２動作とを繰り返して、仮想カメラ１の向きを目的の角度に変更する。
【０１６５】
上記によれば、ある実施形態に従うＨＭＤシステム１００は、仮想カメラ１の向き、すなわち、ユーザ１９０の視線を断続的に移動させる。これにより、ＨＭＤシステム１００は、仮想空間２におけるユーザ１９０の視線を移動させるにあたり、ユーザ１９０のＶＲ酔いを抑制するとともに、ユーザ１９０の仮想空間２への没入感を確保し得る。
【０１６６】
（その６）
上記の実施形態では、プロセッサ１０は、コントローラ１６０からの入力に応じて仮想カメラ１を移動させる構成であった。他の局面において、プロセッサ１０は、ＨＭＤセンサ１２０が出力するＨＭＤ１１０の位置情報に基づいて仮想カメラ１を移動させる構成であってもよい。
【０１６７】
（その７）
さらに他の局面において、プロセッサ１０は、現実空間におけるユーザの動作に基づいて、仮想カメラ１を移動させる構成であってもよい。一例として、プロセッサ１０は、カメラが撮影する画像データを解析し、ユーザ１９０が予め定められた動作（例えば、両手を前後に降る動作）を行なっている間、仮想カメラ１を移動させるように構成される。
【０１６８】
［構成］
以上に開示された技術的特徴は、以下のように要約され得る。
【０１６９】
（構成１）
ＨＭＤ１１０に仮想空間を提供するためにプロセッサ１０で実行される方法が提供される。この方法は、仮想空間２を定義するステップ（ステップＳ１６１０）と、ＨＭＤ１１０のモニタ１１２に視界画像２６を表示して、ＨＭＤ１１０のユーザに仮想空間における視界を提供するステップ（ステップＳ１６１０）と、ＨＭＤ１１０に表示する画像を更新して、ユーザの視界（視線および視点を含む）を移動させるステップとを備える。視界を移動させるステップは、視界を第１の速度で移動させるステップ（ステップＳ１６３０）と、視界を第１の速度よりも遅い第２の速度で移動させるステップ（ステップＳ１６４０）とを含む。
【０１７０】
（構成２）
（構成１）において、第２の速度は、ゼロを含む。換言すれば、視界を第２の速度で移動させるステップは、視界の移動を停止することを含む（ステップＳ１６４０）。
【０１７１】
（構成３）
（構成１）または（構成２）において、視界を第２の速度で移動させるステップは、視界を第１の速度で移動させるステップの後に実行される。
【０１７２】
（構成４）
（構成１）〜（構成３）において、視界を第１の速度で移動させるステップおよび視界を第２の速度で移動させるステップは、ユーザの操作を受け付けるコントローラ１６０の入力に基づいて実行される。
【０１７３】
（構成５）
（構成４）において、視界を第１の速度で移動させるステップと、視界を第２の速度で移動させるステップとが、コントローラ１６０の一の入力（たとえば、モニタ１１２の１フレームにおいてコントローラ１６０が出力する信号）に応答して実行される。
【０１７４】
（構成６）
（構成４）において、プロセッサ１０は、コントローラ１６０から視界を移動させるための入力を受け続けている間、視界を第１の速度で移動させるステップおよび視界を第２の速度で移動させるステップを繰り返す。
【０１７５】
（構成７）
（構成４）または（構成５）において、視界を移動させるステップは、コントローラ１６０による第１の入力に対応する視界を第１の速度で移動させるステップおよび視界を第２の速度で移動させるステップを完了する前に、コントローラ１６０による第２の入力が与えられた場合に、第１の入力に対応する視界を第１の速度で移動させるステップおよび視界を第２の速度で移動させるステップを完了した後に（ステップＳ１６７０）、第２の入力に対応する視界を第１の速度で移動させるステップおよび視界を第２の速度で移動させるステップがさらに実行されること含む。
【０１７６】
（構成８）
（構成４）または（構成５）において、視界を移動させるステップは、コントローラ１６０による第１の入力に対応する視界を第１の速度で移動させるステップおよび視界を第２の速度で移動させるステップを完了する前に、コントローラ１６０による第２の入力が与えられた場合に、第１の入力に対応する視界を第１の速度で移動させるステップおよび視界を第２の速度で移動させるステップを中止して（図１８のステップＳ１６６０のＹＥＳ）、第２の入力に対応する視界を第１の速度で移動させるステップおよび視界を第２の速度で移動させるステップが実行されること含む。
【０１７７】
（構成９）
（構成１）〜（構成３）において、プロセッサ１０は、ＨＭＤ１１０の動作を検出するステップをさらに実行する。視界を第１の速度で移動させるステップおよび視界を第２の速度で移動させるステップは、検出されたＨＭＤ１１０の動作に基づいて実行される。
【０１７８】
（構成１０）
（構成１）〜（構成３）において、プロセッサ１０は、ユーザの動作を検出するステップをさらに実行する。視界を第１の速度で移動させるステップおよび視界を第２の速度で移動させるステップは、検出された動作に基づいて実行される。
【０１７９】
（構成１１）
（構成１）〜（構成１０）において、プロセッサ１０は、ユーザが視認する視界画像２６を撮影する仮想カメラ１を仮想空間２に配置するステップをさらに実行する。視界を第１の速度で移動させるステップは、仮想カメラ１を第１の速度で移動させることを含む。視界を第２の速度で移動させるステップは、仮想カメラ１を第２の速度で移動させることを含む。
【０１８０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１８１】
１  仮想カメラ、２  仮想空間、５  基準視線、１０  プロセッサ、１１  メモリ、１２  ストレージ、１４  通信インターフェイス、１９  ネットワーク、２３  視認領域、２６，１１００，１２００  視界画像、３３，３４，３６，３７  ボタン、３８  アナログスティック、１００  システム、１１０  装置、１１２  モニタ、１１４，１２０  センサ、１３０  モーションセンサ、１４０  注視センサ、１５０  サーバ、１６０  コントローラ、１９０  ユーザ、２００  コンピュータ、２２０  表示制御モジュール、２２１  仮想カメラ制御モジュール、２２２  視界領域決定モジュール、２２３  視界画像生成モジュール、２２４  基準視線特定モジュール、２３０  仮想空間制御モジュール、２３１  仮想空間定義モジュール、２３２  仮想オブジェクト生成モジュール、２３３  操作オブジェクト制御モジュール、２４０  メモリモジュール、２４１  空間情報、２４２  オブジェクト情報、２４３  ユーザ情報、２５０  通信制御モジュール。
【図１】
2018072604.tif 000003
【図２】
2018072604.tif 000004
【図３】
2018072604.tif 000005
【図４】
2018072604.tif 000006
【図５】
2018072604.tif 000007
【図６】
2018072604.tif 000008
【図７】
2018072604.tif 000009
【図８】
2018072604.tif 000010
【図９】
2018072604.tif 000011
【図１０】
2018072604.tif 000012
【図１１】
2018072604.tif 000013
【図１２】
2018072604.tif 000014
【図１３】
2018072604.tif 000015
【図１４】
2018072604.tif 000016
【図１５】
2018072604.tif 000017
【図１６】
2018072604.tif 000018
【図１７】
2018072604.tif 000019
【図１８】
2018072604.tif 000020
【図１９】
2018072604.tif 000021
【図２０】
2018072604.tif 000022
【図２１】
2018072604.tif 000023
【手続補正書】
【提出日】平成29年12月14日(2017.12.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ヘッドマウントデバイスに仮想空間を提供するためにコンピュータで実行される方法であって、
仮想空間を定義するステップと、
前記ヘッドマウントデバイスに画像を表示して、前記ヘッドマウントデバイスのユーザに前記仮想空間における視点からの視界を提供するステップと、
前記ヘッドマウントデバイスの動きを検出するステップと、
前記検出されたヘッドマウントデバイスの動きに連動して、前記視点の向きを制御するステップと、
前記ユーザの操作を受け付けるコントローラの入力に基づいて、前記視点の位置を前記仮想空間上で自由移動させるステップとを備え、
前記視点の位置を移動させるステップは、
前記視点の位置を第１の速度で移動させるステップと、
前記視点の位置を前記第１の速度よりも遅い第２の速度で移動させるステップとを含む、方法。
【請求項２】
前記第２の速度は、ゼロを含む、請求項１に記載の方法。
【請求項３】
前記視点の位置を前記第２の速度で移動させるステップは、前記視点の位置を前記第１の速度で移動させるステップの後に実行される、請求項１または２に記載の方法。
【請求項４】
前記視点の位置を前記第１の速度で移動させるステップと、前記視点の位置を前記第２の速度で移動させるステップとが、前記コントローラの一の入力に応答して実行される、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記コントローラから前記視点の位置を移動させるための入力を受け続けている間、前記視点の位置を前記第１の速度で移動させるステップおよび前記視点の位置を前記第２の速度で移動させるステップは繰り返される、請求項１〜３のいずれか１項に記載の方法。
【請求項６】
前記視点の位置を移動させるステップは、前記コントローラによる第１の入力に対応する前記視点の位置を前記第１の速度で移動させるステップおよび前記視点の位置を前記第２の速度で移動させるステップを完了する前に、前記コントローラによる第２の入力が与えられた場合に、前記第１の入力に対応する前記視点の位置を前記第１の速度で移動させるステップおよび前記視点の位置を前記第２の速度で移動させるステップを完了した後に、前記第２の入力に対応する前記視点の位置を前記第１の速度で移動させるステップおよび前記視点の位置を前記第２の速度で移動させるステップがさらに実行されること含む、請求項１〜４のいずれか１項に記載の方法。
【請求項７】
前記視点の位置を移動させるステップは、前記コントローラによる第１の入力に対応する前記視点の位置を前記第１の速度で移動させるステップおよび前記視点の位置を前記第２の速度で移動させるステップを完了する前に、前記コントローラによる第２の入力が与えられた場合に、前記第１の入力に対応する前記視点の位置を前記第１の速度で移動させるステップおよび前記視点の位置を前記第２の速度で移動させるステップを中止して、前記第２の入力に対応する前記視点の位置を前記第１の速度で移動させるステップおよび前記視点の位置を前記第２の速度で移動させるステップが実行されること含む、請求項１〜４のいずれか１項に記載の方法。
【請求項８】
前記検出されたヘッドマウントデバイスの動きに連動して、前記視点の位置を第３の速度で移動させることと、前記視点の位置を前記第３の速度よりも遅い第４の速度で移動させることとを含むステップをさらに備える、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記ユーザの動作を検出するステップと、
前記検出されたユーザの動作に基づいて、前記視点の位置を第３の速度で移動させることと、前記視点の位置を前記第３の速度よりも遅い第４の速度で移動させることとを含むステップとをさらに備える、請求項１〜７のいずれか１項に記載の方法。
【請求項１０】
前記ユーザが視認する視野画像を撮影する仮想カメラを前記仮想空間に配置するステップをさらに備え、
前記視点の位置を前記第１の速度で移動させるステップは、前記仮想カメラを前記第１の速度で移動させることを含み、
前記視点の位置を前記第２の速度で移動させるステップは、前記仮想カメラを前記第２の速度で移動させることを含む、請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
請求項１〜１０のいずれか１項に記載の方法をコンピュータに実現させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを格納したメモリと、
前記プログラムを実行するためのプロセッサとを備える、情報処理装置。