(57)【要約】【課題】仮想空間におけるＶＲ酔いを低減することができる技術を提供すること。【解決手段】オブジェクト９０１が移動する場合、コンピュータは、視界画像１００１の次に視界画像１００２を表示する。視界画像１００２は、オブジェクト９０１の移動経路を表わす軌跡オブジェクト９１０を含む。そして、コンピュータは、視界画像１００３を表示する。視界画像１００３は、オブジェクト９０１に相当するオブジェクトを含まない。すなわち、コンピュータは、オブジェクト９０１が視界画像１００１の外に移動する場合、オブジェクト９０１を含まない視界画像１００３を表示する前に、軌跡オブジェクト９１０を含む視界画像１００２を表示する。【選択図】図１
2018206339.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間を提供するために複数のヘッドマウントデバイスに接続されたコンピュータで実行される方法であって、
仮想空間を定義するステップと、
前記複数のヘッドマウントデバイスのうちの第１のヘッドマウントデバイスのユーザに対応する第１のアバターオブジェクトと第２のヘッドマウントデバイスのユーザに対応する第２のアバターオブジェクトとを前記仮想空間に配置するステップと、
前記第１のアバターオブジェクトの前記仮想空間における位置に応じた画像を前記第１のヘッドマウントデバイスに提示するステップと、
前記第２のアバターオブジェクトを移動するための操作に基づいて、前記第２のアバターオブジェクトの移動経路を表わす軌跡オブジェクトを前記第１のヘッドマウントデバイスに提示するステップとを含む、方法。
【請求項２】
前記第１のアバターオブジェクトを移動するための操作に基づいて、前記第１のヘッドマウントデバイスに提示されている画像を前記第１のアバターオブジェクトの移動後の位置に応じた画像に切り替えるステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記仮想空間は、前記第１のアバターオブジェクトおよび前記第２のアバターオブジェクト以外の他のオブジェクトを含み、
前記軌跡オブジェクトは、前記他のオブジェクトの外部を通るように設定される、請求項１または請求項２に記載の方法。
【請求項４】
前記仮想空間は、前記第１のアバターオブジェクトおよび前記第２のアバターオブジェクト以外の別のオブジェクトを含み、
前記軌跡オブジェクトは、前記第１のアバターオブジェクトから前記別のオブジェクトまでの視界を遮る割合が所定の値を下回るように設定される、請求項１〜請求項３のいずれか１項に記載の方法。
【請求項５】
請求項１〜請求項４のいずれか１項に記載の方法をコンピュータに実行させる、プログラム。
【請求項６】
請求項５に記載のプログラムを格納したメモリと、
前記プログラムを実行するためのプロセッサとを備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は仮想空間を提供する技術に関し、より特定的には、移動するオブジェクトを含む仮想空間を提供する技術に関する。
【背景技術】
【０００２】
ヘッドマウントデバイス（ＨＭＤ：Head-Mounted  Device）装置を用いて仮想現実を提供する技術が知られている。たとえば、特開２０１６−２１８７７４号公報（特許文献１）は、プレーヤの操作によって仮想空間内のオブジェクトを移動させる技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−２１８７７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
オブジェクトは、仮想空間では、現実空間と異なり、瞬間的に比較的遠い位置まで移動することができる。一方、そのようなオブジェクトを観察しているユーザは、当該オブジェクトの位置が急激に変更されることに対する違和感によっていわゆるＶＲ（Virtual  Reality）酔いを感じる場合があり得る。したがって、ユーザが感じるＶＲ酔いを低減させるための技術が求められている。
【０００５】
本開示のある局面の目的は、仮想空間におけるＶＲ酔いを低減することができる技術を提供することである。
【課題を解決するための手段】
【０００６】
ある実施の形態に従うと、仮想空間を提供するために複数のヘッドマウントデバイスに接続されたコンピュータで実行される方法が提供される。方法は、仮想空間を定義するステップと、複数のヘッドマウントデバイスのうちの第１のヘッドマウントデバイスのユーザに対応する第１のアバターオブジェクトと第２のヘッドマウントデバイスのユーザに対応する第２のアバターオブジェクトとを仮想空間に配置するステップと、第１のアバターオブジェクトの仮想空間における位置に応じた画像を第１のヘッドマウントデバイスに提示するステップと、第２のアバターオブジェクトを移動するための操作に基づいて、第２のアバターオブジェクトの移動経路を表わす軌跡オブジェクトを第１のヘッドマウントデバイスに提示するステップとを含む。
【図面の簡単な説明】
【０００７】
【図１】オブジェクトの移動の際の視界画像における変化を説明するための図である    。
【図２】チャットシステムによる各ユーザへの仮想空間の提供の態様を模式的に説明    するための図である。
【図３】ある実施の形態に従うＨＭＤ（Head-Mounted  Device）システム１００の構    成の概略を表す図である。
【図４】一局面に従うコンピュータ２００のハードウェア構成の一例を表すブロック    図である。
【図５】ある実施の形態に従うＨＭＤ１１０に設定されるｕｖｗ視野座標系を概念的    に表す図である。
【図６】ある実施の形態に従う仮想空間２を表現する一態様を概念的に表す図である    。
【図７】ある実施の形態に従うＨＭＤ１１０を装着するユーザ１９０の頭部を上から    表した図である。
【図８】仮想空間２において視認領域２３をＸ方向から見たＹＺ断面を表す図である    。
【図９】仮想空間２において視認領域２３をＹ方向から見たＸＺ断面を表す図である    。
【図１０】ある実施の形態に従うコントローラ１６０の概略構成を表す図である。
【図１１】右コントローラ８００を把持するユーザ１９０の右手に対応して仮想空間    に配置されるハンドオブジェクト８１０の一例を示す図である。
【図１２】ある実施の形態に従うコンピュータ２００をモジュール構成として表すブ    ロック図である。
【図１３】ある実施の形態に従うＨＭＤシステム１００において実行される処理の一    部を表わすシーケンスチャートである。
【図１４】メモリモジュール２４０におけるチャットモニタ情報の格納の一態様を表    わす図である。
【図１５】メモリモジュール２４０におけるオブジェクト情報の格納の一態様を表わ    す図である。
【図１６】仮想カメラとオブジェクトの相対的な位置が変化する態様の一例を説明す    るための図である。
【図１７】仮想カメラとオブジェクトの相対的な位置が変化する態様の他の例を説明    するための図である。
【図１８】図１７に示された仮想カメラ１とオブジェクト９０１の相対的な位置の変    化に従う視界画像の変化を示す図である。
【図１９】軌跡オブジェクトの生成について説明するための図である。
【図２０】軌跡オブジェクトの生成について説明するための図である。
【図２１】軌跡オブジェクトの生成について説明するための図である。
【図２２】プロセッサが実行する補完画像を表示するための処理のフローチャートで    ある。
【発明を実施するための形態】
【０００８】
以下に、図面を参照しつつ、仮想空間を提供するコンピュータの実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【０００９】
＜１．開示の概要＞
図１を参照して、仮想空間においてオブジェクトが移動する場合の、補完画像の表示について説明する。本実施の形態において、補完画像とは、移動するオブジェクトの軌跡を表わす画像（軌跡オブジェクト）を表示する画像をいう。図１は、オブジェクトの移動の際の視界画像における変化を説明するための図であり、視界画像１００１，１００２，１００３を含む。
【００１０】
図１を参照して、コンピュータは、まず視界画像１００１を表示する。視界画像１００１は、オブジェクト１１１０，１１２０とともにオブジェクト９０１を含む。オブジェクト１１１０は、たとえば、テーブルを表わすオブジェクトである。オブジェクト１１２０は、たとえば、スクリーンを表わすオブジェクトである。オブジェクト９０１は、たとえば、視界画像１００１を表示するＨＭＤのユーザとは異なるユーザに対応するアバターオブジェクトである。
【００１１】
次に、コンピュータは、視界画像１００１の次に視界画像１００２を表示する。視界画像１００２は、軌跡オブジェクト９１０を含む。視界画像１００２は、補完画像の一例である。
【００１２】
軌跡オブジェクト９１０は、たとえば、視界画像１００１におけるオブジェクト９０１の位置から延びる弾性体を表す。図１の例は、オブジェクト９０１が視界画像１００１が表示された時点の次の時点で左方に移動する。このことに対応して、軌跡オブジェクト９１０は右から左へ延びる弾性体を表す。
【００１３】
視界画像１００２内の軌跡オブジェクト９１０の右端の位置は、視界画像１００１内のオブジェクト９０１の位置に対応する。なお、軌跡オブジェクト９１０が後述するようにオブジェクト９０１の移動経路を表わす限りにおいては、軌跡オブジェクト９１０の端部の位置はオブジェクト９０１の位置に制限されない。
【００１４】
その後、コンピュータは、視界画像１００３を表示する。視界画像１００３は、オブジェクト９０１を含まない。
【００１５】
図１を参照して説明されたうように、コンピュータは、視界画像１００１内のオブジェクト９０１が視界画像１００１外へ移動する場合、オブジェクト９０１を含まない視界画像１００３を表示する前に、軌跡オブジェクト９１０を含む視界画像１００２を表示する。
【００１６】
＜２．チャットシステムの概要＞
本実施の形態では、提供される仮想空間の一例としてチャットシステムが挙げられる。
【００１７】
図２は、チャットシステムによる各ユーザへの仮想空間の提供の態様を模式的に説明するための図である。図２に示されるように、チャットシステム１０００は、コンピュータ２００Ａとコンピュータ２００Ｂとを含む。コンピュータ２００Ａは、仮想空間画像２２Ａを提供する。コンピュータ２００Ｂは、仮想空間画像２２Ｂを提供する。
【００１８】
コンピュータ２００Ａは、ヘッドマウントデバイス（ＨＭＤ）１１０Ａに接続されている。ＨＭＤ１１０Ａは、当該ＨＭＤ１１０Ａのユーザ１９０Ａの状態に対応した位置に仮想カメラを配置し、当該仮想カメラの視線に従った視界画像をモニタ１１２Ａに表示する。モニタ１１２Ａは、視界画像を表示するディスプレイの一例である。
【００１９】
コンピュータ２００Ｂは、ＨＭＤ１１０Ｂに接続されている。ＨＭＤ１１０Ｂは、当該ＨＭＤ１１０Ｂのユーザ１９０Ｂの状態に対応した位置に仮想カメラを配置し、当該仮想カメラの視線に従った視界画像をモニタ１１２Ｂに表示する。
【００２０】
コンピュータ２００Ａとコンピュータ２００Ｂは、同じ仮想空間画像を表示し得る。当該仮想空間には、ユーザ１９０Ａに対応するアバターオブジェクトとユーザ１９０Ｂに対応するアバターオブジェクトとが配置され得る。これにより、ユーザ１９０Ａとユーザ１９０Ｂは、同じ仮想空間（たとえば、仮想のチャットルームを表わす空間）において相手のユーザに対応するオブジェクトを視認し得る。ある実施の形態では、コンピュータ２００Ａによって表示される視界画像は、仮想空間画像からＨＭＤ１１０Ａのユーザの向きに従った範囲の画像が切り取られたものである。ある実施の形態では、コンピュータ２００Ｂによって表示される視界画像は、仮想空間画像からＨＭＤ１１０Ｂのユーザの向きに従った範囲の画像が切り取られたものである。
【００２１】
コンピュータ２００Ａ，２００Ｂは、ネットワーク１９を介してサーバ１５０に接続されている。サーバ１５０は、コンピュータ２００Ａ，２００Ｂを介してＨＭＤ１１０Ａ，１１０Ｂのユーザ１９０Ａ，１９０Ｂの挙動を取得し、各ユーザの挙動をコンピュータ２００Ａ，２００Ｂと共有する。これにより、コンピュータ２００Ａ，２００Ｂは、各ユーザの挙動が反映されたチャットシステムを提供できる。
【００２２】
より具体的には、コンピュータ２００Ａは、ユーザ１９０Ａの挙動だけでなく、コンピュータ２００Ｂのユーザであるユーザ１９０Ｂの挙動が反映されたチャットシステムを提供する。当該チャットシステムを表わす視界画像は、ユーザ１９０Ｂに対応するアバターオブジェクトを表示する。たとえば、図１の視界画像１００１は、コンピュータ２００Ａによって提供される。視界画像１００１内のオブジェクト９０１は、ユーザ１９０Ｂに対応する。
【００２３】
本明細書では、コンピュータ２００Ａとコンピュータ２００Ｂの共通した性質を言及する場合、「コンピュータ２００」と呼ぶ場合がある。また、ＨＭＤ１１０ＡとＨＭＤ１１０Ｂの共通した性質を言及する場合、「ＨＭＤ１１０」と呼ぶ場合がある。
【００２４】
本明細書では、コンピュータ２００とＨＭＤ１１０とを含むシステムとして、「ＨＭＤシステム」と呼ぶ場合がある。
【００２５】
＜３．ＨＭＤシステム＞
図３を参照して、ＨＭＤシステム１００の構成について説明する。図３は、ある実施の形態に従うＨＭＤシステム１００の構成の概略を表す図である。ある局面において、ＨＭＤシステム１００は、家庭用のシステムとしてあるいは業務用のシステムとして提供される。
【００２６】
ＨＭＤシステム１００は、ネットワーク１９を介して、遠隔地にある他のＨＭＤシステム１００Ａ，１００Ｂと通信することができる。ＨＭＤシステム１００Ａは、ユーザ１９０Ａによって使用され得る。ＨＭＤ１００Ｂは、ユーザ１９０Ｂによって使用され得る。ＨＭＤシステム１００Ａ，１００Ｂの構成は、ＨＭＤシステム１００の構成と同様である。ＨＭＤシステム１００の構成要素と同様の構成要素には、符号Ａ，Ｂが付されている。したがって、以下、適宜、ＨＭＤシステム１００の構成を参照して、各ＨＭＤシステムを説明する。
【００２７】
ＨＭＤシステム１００は、ＨＭＤ１１０と、ＨＭＤセンサ１２０と、コントローラ１６０と、コンピュータ２００とを備える。ＨＭＤ１１０は、モニタ１１２と、スピーカ１１５と、マイク１１９と、注視センサ１４０とを含む。コントローラ１６０は、モーションセンサ１３０を含み得る。
【００２８】
ある局面において、コンピュータ２００は、インターネットその他のネットワーク１９に接続可能であり、ネットワーク１９に接続されているサーバ１５０、コンピュータ２００Ａ，２００Ｂその他のコンピュータと通信可能である。他の局面において、ＨＭＤ１１０は、ＨＭＤセンサ１２０の代わりに、センサ１１４を含み得る。
【００２９】
ＨＭＤ１１０は、ユーザ１９０の頭部に装着され、動作中に仮想空間をユーザ１９０に提供し得る。より具体的には、ＨＭＤ１１０は、右目用の画像および左目用の画像をモニタ１１２にそれぞれ表示する。ユーザ１９０の各目がそれぞれの画像を視認すると、ユーザ１９０は、両目の視差に基づき当該画像を３次元の画像として認識し得る。
【００３０】
モニタ１１２は、たとえば、非透過型の表示装置として実現される。ある局面において、モニタ１１２は、ユーザ１９０の両目の前方に位置するようにＨＭＤ１１０の本体に配置されている。したがって、ユーザ１９０は、モニタ１１２に表示される３次元画像を視認すると、仮想空間に没入することができる。ある実施の形態において、仮想空間は、たとえば、背景、ユーザ１９０が操作可能なオブジェクト、ユーザ１９０が選択可能なメニューの画像を含む。
【００３１】
ある局面において、コンピュータ２００，２００Ａ，２００Ｂは、各々のユーザ１９０，１９０Ａ，１９０Ｂの動作に基づく信号を他のコンピュータとの間で通信する。例えば、コンピュータ２００は、仮想空間を提供するための映像信号を生成し、ＨＭＤ１１０に映像信号を送信する。ＨＭＤ１１０は、その映像信号をモニタ１１２に送信すると、モニタ１１２は、その受信した映像信号に基づく仮想空間画像を表示する。他のコンピュータとそのコンピュータに接続されているＨＭＤも、コンピュータ２００とＨＭＤ１１０の場合と同様である。
【００３２】
ＨＭＤシステム１００Ａ，１００Ｂのそれぞれは、ＨＭＤシステム１００と同様の構成を有する。すなわち、ＨＭＤシステム１００Ａ，１００Ｂのそれぞれは、ＨＭＤ１１０Ａ，１１０Ｂ、ＨＭＤセンサ１２０Ａ，１２０Ｂ、コントローラ１６０Ａ，１６０Ｂ、コンピュータ２００Ａ，２００Ｂのそれぞれを備える。ＨＭＤ１１０Ａ，１１０Ｂのそれぞれは、モニタ１１２Ａ，１１２Ｂ、スピーカ１１５Ａ，１１５Ｂ、マイク１１９Ａ，１１９Ｂ、注視センサ１４０Ａ，１４０Ｂのそれぞれを含む。コントローラ１６０Ａ，１６０Ｂのそれぞれは、モーションセンサ１３０Ａ，１３０Ｂのそれぞれを含み得る。ＨＭＤ１１０Ａ，１１０Ｂのそれぞれは、センサ１１４Ａ，１１４Ｂを含み得る。
【００３３】
ある実施の形態において、コンピュータ２００，２００Ａ，２００Ｂが、仮想空間を介して通信するためのＶＲ（Virtual  Reality）チャットアプリケーションを実行している時、コンピュータ２００，２００Ａ，２００Ｂは、各ＨＭＤ１１０，１１０Ａ，１１０Ｂによって提示される仮想空間を介した通信を実現する。仮想空間を介した通信では、映像と音声とが通信される。この時、各ユーザに対応するアバターオブジェクトが、仮想空間に提示される。例えば、ユーザ１９０が他のユーザ１９０Ａ，１９０Ｂと通信しているとき、ユーザ１９０が装着したＨＭＤ１１０は、ユーザ１９０Ａ，１９０Ｂに対応するアバターオブジェクトを提示する。ユーザ１９０は、仮想空間に没入した状態で、アバターオブジェクトを介して他のユーザ１９０Ａ，１９０Ｂと通信することができる。
【００３４】
ある実施の形態において、モニタ１１２は、所謂スマートフォンその他の情報表示端末が備える液晶モニタまたは有機ＥＬ（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）、フラッシュＲＯＭなどの半導体メモリなどの固定的にプログラムを担持する不揮発性のデータ記録媒体でもよい。
【０１３４】
ここでいうプログラムとは、プロセッサ１０により直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラムなどを含み得る。
【０１３５】
［２ユーザ間の通信によるコンピュータ間の動作］
ここで、二人のユーザ１９０，１９０Ａが仮想空間２を介して通信する場合のコンピュータ２００，２００Ａの動作について説明する。以下、コンピュータ２００Ａに接続されたＨＭＤ１１０Ａを装着したユーザ１９０Ａが、コンピュータ２００に接続されたＨＭＤ１１０を装着したユーザ１９０に発話する場合について説明する。
【０１３６】
（送信側）
ある局面において、ＨＭＤ１１０Ａを装着したユーザ１９０Ａは、ユーザ１９０とチャットするために、マイク１１９に向かって発話する。発話の音声信号は、ＨＭＤ１１０Ａに接続されているコンピュータ２００Ａに送信される。音声制御モジュール２２５は、音声信号を音声データに変換し、発話が検出された時を表わすタイムスタンプを音声データに関連付ける。タイムスタンプは、例えば、プロセッサ１０の内部クロックの時刻データである。ある局面において、音声信号が通信制御モジュール２５０によって音声データに変換される時の時刻データがタイムスタンプとして使用される。
【０１３７】
ユーザ１９０Ａが発話しているとき、ユーザ１９０Ａの視線の動きは、注視センサ１４０によって検出されている。注視センサ１４０による検出結果（アイトラッキングデータ）は、コンピュータ２００Ａに送られる。視線検出モジュール２３３は、その検出結果に基づいて、ユーザ１９０Ａの視線の変化を表わす各位置（例えば瞳孔の位置）を特定する。
【０１３８】
コンピュータ２００Ａは、音声データとアイトラッキングデータとをコンピュータ２００に送信する。音声データおよびアイトラッキングデータは、まず、サーバ１５０に送られる。サーバ１５０は、音声データおよびアイトラッキングデータの各ヘッダにある宛先を参照し、音声データおよびアイトラッキングデータをコンピュータ２００に送信する。このとき、音声データがコンピュータ２００に到達するタイミングと、アイトラッキングデータがコンピュータ２００に到達するタイミングとは、一致しない場合がある。
【０１３９】
（受信側）
コンピュータ２００は、コンピュータ２００Ａによって送信されたデータをサーバ１５０から受信する。ある局面において、コンピュータ２００のプロセッサ１０は、通信制御モジュール２５０から送られるデータに基づいて、音声データを受信したことを検知する。プロセッサ１０は、音声データの送信元（すなわちコンピュータ２００Ａ）を特定すると、チャット制御モジュール２３５として、ＨＭＤ１１０のモニタ１１２に、チャットの画面を表示させる。
【０１４０】
プロセッサ１０は、さらに、アイトラッキングデータを受信したことを検知する。プロセッサ１０は、アイトラッキングデータの送信元（すなわちコンピュータ２００Ａ）を特定すると、仮想オブジェクト生成モジュール２３２として、ユーザ１９０Ａのアバターオブジェクトを表示するためのデータを生成する。
【０１４１】
別の局面において、プロセッサ１０が、音声データよりも先にアイトラッキングデータを受信する場合があり得る。この場合、プロセッサ１０は、アイトラッキングデータから送信元識別番号を検出すると、アイトラッキングデータに対応して送信された音声データが存在すると判定する。プロセッサ１０は、そのアイトラッキングデータに含まれる送信元識別番号および時刻データと同じ送信元識別番号および時刻データを含む音声データを受信するまで、アバターオブジェクトを表示するためのデータの出力を待機する。
【０１４２】
さらに別の局面において、プロセッサ１０は、アイトラッキングデータよりも先に音声データを受信する場合があり得る。この場合、プロセッサ１０は、音声データから送信元識別番号を検出すると、その音声データに対応して送信されたアイトラッキングデータが存在すると判定する。プロセッサ１０は、その音声データに含まれる送信元識別番号および時刻データと同じ送信元識別番号および時刻データを含むアイトラッキングデータを受信するまで、音声データの出力を待機する。
【０１４３】
なお、上記の各局面において、比較対象となる時刻データは、完全に同一の時刻を示していなくてもよい。
【０１４４】
プロセッサ１０は、同じ時刻データを含む音声データおよびアイトラッキングデータの受信を確認すると、音声データをスピーカ１１５に出力し、アイトラッキングデータに基づく変更が反映されたアバターオブジェクトを表示するためのデータをモニタ１１２に出力する。その結果、ユーザ１９０は、ユーザ１９０Ａによって発せられた音声とアバターとを同じタイミングで認識できるので、信号の伝送遅延によるタイムラグ（たとえば、アバターオブジェクトの変化と音声出力のタイミングのずれ）を感じることなく、チャットを楽しむことができる。
【０１４５】
また、ユーザ１９０Ａが使用するコンピュータ２００Ａのプロセッサ１０も、上述の処理と同様に、音声データの出力タイミングと、ユーザ１９０の視線の動きが反映されたアバターオブジェクトの出力タイミングとの同期をとることができる。その結果、ユーザ１９０Ａも、ユーザ１９０によって発せられた音声の出力とアバターオブジェクトの変化とを同じタイミングで認識できるので、信号の伝送遅延によるタイムラグを感じることなく、チャットを楽しむことができる。
【０１４６】
＜４．制御構造＞
図１３を参照して、ＨＭＤシステム１００の制御構造について説明する。図１３は、ある実施の形態に従うＨＭＤシステム１００において実行される処理の一部を表わすシーケンスチャートである。
【０１４７】
ステップＳ１５１０にて、コンピュータ２００のプロセッサ１０は、仮想空間定義モジュール２３１として、仮想空間画像データを特定する。
【０１４８】
ステップＳ１５２０にて、プロセッサ１０は、仮想カメラ１を初期化する。例えば、プロセッサ１０は、仮想カメラ１を仮想空間２において予め規定された中心点に配置し、仮想カメラ１の視線をユーザ１９０が向いている方向に向ける。
【０１４９】
ステップＳ１５３０にて、プロセッサ１０は、視界画像生成モジュール２２３として、初期の視界画像を表示するための視界画像データを生成する。生成された視界画像データは、視界画像生成モジュール２２３を介して通信制御モジュール２５０によってＨＭＤ１１０に送られる。
【０１５０】
ステップＳ１５３２にて、ＨＭＤ１１０のモニタ１１２は、コンピュータ２００から受信した信号に基づいて、視界画像を表示する。ＨＭＤ１１０を装着したユーザ１９０は、視界画像を視認すると仮想空間２を認識し得る。
【０１５１】
ステップＳ１５３４にて、ＨＭＤセンサ１２０は、ＨＭＤ１１０から発信される複数の赤外線光に基づいて、ＨＭＤ１１０の位置と傾きを検知する。検知結果は、動き検知データとして、コンピュータ２００に送られる。
【０１５２】
ステップＳ１５４０にて、プロセッサ１０は、ＨＭＤ１１０の位置と傾きとに基づいて、ＨＭＤ１１０を装着したユーザ１９０の視界方向を特定する。プロセッサ１０は、アプリケーションプログラムを実行し、アプリケーションプログラムに含まれる命令に基づいて、仮想空間２においてオブジェクトを表示させる。ユーザ１９０は、そのアプリケーションプログラムの実行により仮想空間２において視認可能なコンテンツを楽しむ。
【０１５３】
ステップＳ１５４２にて、プロセッサ１０は、決定された仮想ユーザの状態に基づいて、視界画像を更新する。仮想ユーザとは、たとえば、プロセッサ１０が搭載されたコンピュータ２００に接続されたＨＭＤ１１０を装着したユーザである。そして、プロセッサ１０は、更新された視界画像を表示させるためのデータ（視界画像データ）をＨＭＤ１１０に出力する。
【０１５４】
ステップＳ１５４４にて、ＨＭＤ１１０のモニタ１１２は、受信した視界画像データに基づいて視界画像を更新し、更新後の視界画像を表示する。
【０１５５】
ステップＳ１５５０にて、コントローラ１６０は、ユーザ１９０の操作を検出する。検出された操作を示す信号は、コンピュータ２００に送られる。ある実施の形態では、当該信号は、ユーザ１９０が対応するアバターの仮想空間における位置を変更させる操作を含む。他の実施の形態では、当該信号は、ユーザ１９０に提供される視界画像が対応する仮想カメラ１の位置を変更させる操作を含む。
【０１５６】
ステップＳ１５５２にて、注視センサ１４０は、ユーザ１９０の視線を検出する。検出された視線についての検出値を示す信号は、コンピュータ２００に送られる。本明細書では、アバターの上に注視点が置かれることも、「アバターを指定する」こととして取り扱う。
【０１５７】
すなわち、本実施の形態では、コンピュータ２００は、ユーザ１９０がコントローラ１６０を操作することにより仮想手でアバターに触れたこと、および／または、ユーザ１９０の注視点がアバター上に置かれたことが、仮想ユーザがアバターを指定したと扱われる。
【０１５８】
ステップＳ１５５４にて、プロセッサ１０は、仮想ユーザがアバターを指定したことを示す入力をサーバ１５０へ送信する。
【０１５９】
サーバ１５０は、各コンピュータ２００のプロセッサ１０から、各仮想ユーザが仮想空間上のどのユーザを指定したかについての入力を受け付ける。当該入力が所定の条件を満たしたことに基づいて、サーバ１５０は、マッチングシステムに参加する複数のユーザのうち２以上のユーザをマッチングする。サーバ１５０は、マッチングされたユーザが使用するコンピュータ２００のプロセッサ１０に対して、所定の指示を送信する。
【０１６０】
ステップＳ１５６０にて、プロセッサ１０は、サーバ１５０から所定の指示を受信する。
【０１６１】
ステップＳ１５７０にて、プロセッサ１０は、サーバ１５０からの指示に応じて視界画面を更新し、更新後の視界画像を表示させるためのデータ（視界画像データ）をＨＭＤ１１０に出力する。
【０１６２】
ステップＳ１５７２にて、ＨＭＤ１１０のモニタ１１２は、受信した視界画像データに基づいて視界画像を更新し、更新後の視界画像を表示する。
【０１６３】
＜５．データ構造＞
図１４および図１５を参照して、メモリモジュール２４０のデータ構造について説明する。なお、図１４に示されるチャットモニタ情報および図１５に示されるオブジェクト情報は、各コンピュータ２００からサーバ１５０に送信される等により、サーバ１５０のチャット情報格納部５１２Ａに格納されていてもよい。
【０１６４】
［チャットモニタ情報］
図１４は、メモリモジュール２４０におけるチャットモニタ情報の格納の一態様を表わす図である。ある局面において、メモリモジュール２４０は、チャットモニタ情報２４４を保持している。チャットモニタ情報２４４は、ユーザＩＤ１６１０と、名前１６２０と、ステータス１６３０と、制御フラグ１６４０と、提示開始日時１６５０とを含む。
【０１６５】
ユーザＩＤ１６１０は、仮想空間２を共有するユーザを識別する。名前１６２０は、仮想空間２を共有する各ユーザに通知するために使用される。名前１６２０は、例えば、当該ユーザの実名、ペンネームのいずれであってもよい。ステータス１６３０は、当該ユーザが仮想空間２において開設されているチャットルームへのログイン状態を表わす。制御フラグ１６４０は、当該ユーザの識別情報（例えば、実名、ペンネーム等）が他のユーザに提示することを許可するか否かを制御する。提示開始日時１６５０は、仮想空間２において開設されたチャットルームのあるセッションにおいて、当該ユーザの識別情報が最初に提示された日時を表わす。ある局面において、提示開始日時１６５０は、チャットのセッションが終了するごとにリセットされる。したがって、次のセッションで識別情報の提示条件が再度成立した場合には、既に識別情報が提示されたユーザも、新たに識別情報が提示され得る。
【０１６６】
［オブジェクト情報］
図１５は、メモリモジュール２４０におけるオブジェクト情報の格納の一態様を表わす図である。ある局面において、メモリモジュール２４０は、オブジェクト情報２４２を保持している。オブジェクト情報２４２は、オブジェクトＩＤ１７１０と、位置情報１７２０と、関連ユーザＩＤ１７３０とを含む。
【０１６７】
オブジェクトＩＤ１７１０は、チャットルームに配置される各オブジェクトを識別する。たとえば、図１５の「スクリーン」「テーブル」のそれぞれは、図１等の「オブジェクト１１２０」「オブジェクト１１１０」のそれぞれに対応する。「アバター（Ａ）」「アバター（Ｂ）」のそれぞれは、図２を参照して説明されたユーザ１９０Ａ，１９０Ｂのそれぞれに対応するアバターオブジェクトに対応する。
【０１６８】
位置情報１７２０は、仮想空間における各オブジェクトの位置を識別する。図１５の例において、位置（１）〜位置（４）のそれぞれは、たとえば、仮想空間における三次元の座標を表わす。
【０１６９】
＜６．仮想カメラとオブジェクトの相対的な位置の変化＞
図１６〜図１８を参照して、仮想カメラとオブジェクトの相対的な位置が変化する２つの態様を説明する。
【０１７０】
図１６は、仮想カメラとオブジェクトの相対的な位置の変化の１つ目の態様を説明するための図である。１つ目の態様では、仮想カメラ１の位置は変化せず、仮想空間におけるオブジェクトの位置が変化する。
【０１７１】
より具体的には、図１６には、仮想空間についての２つの状態１６０１，１６０２が示されている。状態１６０１，１６０２は、それぞれ、図１において説明されたオブジェクト９０１，１１１０，１１２０を含む。
【０１７２】
状態１６０１では、オブジェクト９０１は視認領域２３内に位置する。一方、状態１６０２では、オブジェクト９０１は視認領域２３外に位置する。すなわち、状態１６０１と状態１６０２との間では、仮想空間においてオブジェクト９０１の位置が変更されている。なお、状態１６０１と状態１６０２との間で、仮想カメラ１の位置は変化していない。
【０１７３】
なお、図１の視界画像１００１は、仮想空間画像２２のうち、状態１６０１の視認領域２３に相当する。図１の視界画像１００３は、仮想空間画像２２のうち、状態１６０２の視認領域２３に相当する。
【０１７４】
図１７は、仮想カメラとオブジェクトの相対的な位置の変化の２つ目の態様を説明するための図である。２つ目の態様では、仮想空間におけるオブジェクトの位置は変化せず、仮想カメラ１の位置が変化する。
【０１７５】
図１７には、仮想空間についての２つの状態１７０１，１７０２が示されている。状態１７０１と状態１７０２との間で、オブジェクト９０１，１１１０，１１２０の位置は変化していないが、仮想カメラ１の位置は変化している。状態１７０１では、仮想カメラ１は仮想空間画像２２の下端近傍に位置するのに対し、状態１７０２では、仮想カメラ１は仮想空間画像２２の中央付近に位置している。これにより、オブジェクト９０１は、状態１７０１では視認領域２３内に位置するが、状態１７０２では視認領域２３外に位置する。
【０１７６】
図１８は、図１７に示された仮想カメラ１とオブジェクト９０１の相対的な位置の変化に従う視界画像の変化を示す図である。図１８には、状態１７０１に対応する視界画像１１０１と、状態１７０２に対応する視界画像１１０２とが示される。視界画像１１０１は、オブジェクト９０１，１１１０，１１２０を含む。一方、視界画像１１０２は、オブジェクト１１２０を含むが、オブジェクト９０１，１１１０を含まない。
【０１７７】
以上、図１６〜図１８を参照して、仮想空間における仮想カメラ１とオブジェクト９０１との間の相対的な位置の変更について説明した。なお、仮想空間では、仮想カメラ１とオブジェクト９０１の相対的な位置は、仮想カメラ１とオブジェクト９０１の双方の位置が変化した場合も変更され得る。
【０１７８】
＜７．軌跡オブジェクトの生成＞
図１９〜図２１を参照して、軌跡オブジェクト９１０（図１）の生成について説明する。
【０１７９】
図１９は、軌跡オブジェクト９１０の設定態様の一例を説明するための図である。図１９において、仮想空間画像５０１は、ｕｖ平面の仮想空間画像の一部を表わす。仮想空間画像５０２は、ｕｗ平面の仮想空間画像の一部を表わす。視界画像５１１，５１２のそれぞれは、仮想空間画像５０１，５０２のうち視界画像として表示される部分を表わす。
【０１８０】
仮想空間画像５０１，５０２において、オブジェクト９０１は移動する。オブジェクト９１０Ｘは、オブジェクト９０１の移動後の位置を表わす。
【０１８１】
コンピュータ２００は、オブジェクトの移動前後（オブジェクト９０１，９１０Ｘ）の位置に基づいて、オブジェクト９０１の移動経路を設定する。図１９では、移動経路の一例が、仮想空間画像５０１内の移動経路Ｌ２１および仮想空間画像５０２内の移動経路Ｌ２２として示されている。
【０１８２】
移動経路の一例は、移動経路Ｌ２１として示されるように、移動前後のオブジェクトを直線で結ぶ。他の例は、移動経路Ｌ２２として示されるように、移動前後のオブジェクトの位置を、視界画像中の他のオブジェクト（オブジェクト１１１０，１１２０）を避けるように結ぶ。
【０１８３】
軌跡オブジェクト９１０は、オブジェクト９０１のオブジェクト９１０Ｘで示される位置までの移動を表わし、移動経路Ｌ２１，Ｌ２２のそれぞれの少なくとも一部を含む。ある実施の形態では、軌跡オブジェクト９１０は、オブジェクト９１０Ｘに近くなるほど移動経路Ｌ２１，Ｌ２２に交わる方向の幅が広くなる。換言すれば、オブジェクト９１０Ｘに近くなるほど太くなる。これにより、移動の方向がより明確に表現される。
【０１８４】
ある実施の形態では、仮想空間画像５０２内に示されるように、軌跡オブジェクト９１０がオブジェクト１１１０の内部を通過しないように設定される。すなわち、コンピュータ２００は、オブジェクト１１１０に重ならないように軌跡オブジェクト９１０を設定する。軌跡オブジェクト９１０がオブジェクト１１１０の内部を通るように設定された場合、オブジェクト９０１がオブジェクト１１１０の内部を通って移動するような不自然な感覚をユーザに与え兼ねない。軌跡オブジェクト９１０がオブジェクト１１１０を避けるように設定されることにより、ユーザにこのような不自然な感覚を与えることが回避される。
【０１８５】
ある実施の形態では、仮想空間画像５０１内に示されるように、コンピュータ２００は、軌跡オブジェクト９１０をオブジェクト１１２０に重ならないように設定する。仮想空間画像５０１内の視界画像５１１は、当該視界画像５１１を提供されるＨＭＤ１１０のユーザに対応するアバターオブジェクトに対して設定される視界を表わす。軌跡オブジェクト９１０がオブジェクト１１２０に重ならないように設定されることにより、当該アバターオブジェクトのオブジェクト１１２０までの視界を遮ることが回避される。
【０１８６】
他の実施の形態では、軌跡オブジェクト９１０はオブジェクト１１２０にある程度は重なってもよい。コンピュータ２００は、たとえば、オブジェクト１１２０の表面と軌跡オブジェクト９１０とが重なる割合が一定の値（１０％）を下回るように軌跡オブジェクト９１０を設定する。
【０１８７】
図２０は、軌跡オブジェクト９１０の設定態様の他の例を説明するための図である。図１９に示された例では軌跡オブジェクト９１０が中空の図形であったのに対し、図２０に示された例では、軌跡オブジェクト９１０は、移動経路Ｌ２１，Ｌ２２上に位置する矢印として示されている。すなわち、軌跡オブジェクト９１０の形状は矢印であってもよい。
【０１８８】
また、軌跡オブジェクトは、図２１に示されるように複数の部分から構成されていてもよい。図２１では、仮想空間画像５０１，５０２のそれぞれに示されるように、軌跡オブジェクトはオブジェクト９１０Ａ，９１０Ｂ，９１０Ｃ，９１０Ｄの４つの部分を含む。オブジェクト９１０Ａ，９１０Ｂ，９１０Ｃ，９１０Ｄの４つの部分は、同時に表示されてもよいし、順次（たとえば、オブジェクト９０１から近い順に）表示されてもよい。
【０１８９】
なお、軌跡オブジェクトは、移動するアバターオブジェクトそのものによって構成されてもよい。すなわち、ある実施の形態では、図２１のオブジェクト９１０Ａ，９１０Ｂ，９１０Ｃ，９１０Ｄのそれぞれはオブジェクト９０１と同じ形態を有していてもよい。これにより、オブジェクト９０１（アバター）が位置Ａから位置Ｂまで移動する際（図２１のオブジェクト９０１の位置とオブジェクト９１０Ｘの位置のそれぞれがピンポイントで指定された場合）、コンピュータ２００は、位置Ａから位置Ｂまでの軌跡に沿ってオブジェクト９０１自身が順次移動するように、オブジェクト９０１を仮想空間内で表示する。図２１のオブジェクト９１０Ａ，９１０Ｂ，９１０Ｃ，９１０Ｄのそれぞれは、オブジェクト９０１を拡大または縮小された形態を有していてもよい。
【０１９０】
＜８．処理の流れ＞
図２２を参照して、視界画像が更新されるときに補完画像を表示するために実行される処理について説明する。図２２は、プロセッサ１０が実行する補完画像を表示するための処理のフローチャートである。図２２の処理は、図１３のステップＳ１５４２およびステップＳ１５７０のサブルーチンの処理に相当し、たとえばプロセッサ１０が所与のプログラムを実行することによって実現される。
【０１９１】
ステップＳ１００にて、プロセッサ１０は、仮想ユーザの状態に基づいて（ステップＳ１５４２）、または、サーバ１５０からの指示に応じて（ステップＳ１５７０）、更新後の視界画像を生成する。
【０１９２】
ステップＳ１１０にて、プロセッサ１０は、視界画像の更新が仮想カメラ１の移動によるものであるか否かを判断する。
【０１９３】
プロセッサ１０は、たとえば、ステップＳ１００における視界画像の更新が、図１７を参照して説明されたように仮想カメラ１の位置の変更に従ったものであれば、視界画像の更新が仮想カメラ１の移動によるものであると判断する。プロセッサ１０は、たとえば、ＨＭＤ１１０の位置と傾き（図１３のステップＳ１５３４）、コントローラ１６０に対する操作（Ｓ１５５０）、および／または、注視センサ１４０によって検出されるユーザ１９０の視線（Ｓ１５５２）に基づいて、仮想カメラ１を移動させるために視界画像を更新する。
【０１９４】
なお、仮想カメラ１の移動は、仮想カメラ１に対応するアバターオブジェクトの移動の一例である。ある実施の形態では、プロセッサ１０は、アバターオブジェクトの移動が指示されると、当該アバターオブジェクトの移動に従って仮想カメラを移動させる。これにより、視界画像として、当該アバターオブジェクトの移動後の位置に対応した視界画像が提供される。
【０１９５】
一方、プロセッサ１０は、たとえば、ステップＳ１００における視界画像の更新が、図１６を参照して説明されたようにオブジェクトの移動に従ったものであれば、視界画像の更新が仮想カメラ１の移動によるものではないと判断する。プロセッサ１０は、たとえば、サーバ１５０からオブジェクトを移動経路を表わす情報を受信すると（図１３のステップＳ１５６０）、仮想空間内で当該オブジェクトを移動させるために視界画像を更新する。
【０１９６】
より具体的には、たとえば、ユーザ１９０Ｂは、当該ユーザ１９０Ｂに対応するオブジェクトを移動させるためにコントローラ１６０Ｂを操作する。コントローラ１６０Ｂは、当該操作を示す信号をコンピュータ２００Ｂへ送信する。当該操作を示す信号は、コンピュータ２００Ｂおよびサーバ１５０を経由して、コンピュータ２００へと送信される。コンピュータ２００のプロセッサ１０は、当該信号を取得すると、上記オブジェクトを仮想空間内で移動させるために視界画像を更新する。
【０１９７】
ステップＳ１１０にて、プロセッサ１０は、視界画像の更新が仮想カメラ１の移動によるものであると判断すると（ステップＳ１１０にてＹＥＳ）、ステップＳ１７０へ制御を進める。そうでなければ（ステップＳ１１０にてＮＯ）、プロセッサ１０はステップＳ１２０へ制御を進める。
【０１９８】
ステップＳ１２０にて、プロセッサ１０は、更新された視界画像における各オブジェクトの位置を取得する。各オブジェクトの位置は、たとえばオブジェクト情報（図１５）を参照することにより取得される。
【０１９９】
ステップＳ１３０にて、プロセッサ１０は、オブジェクトの移動経路を設定する。移動経路を設定は、たとえば図１９または図２０に示された態様に従う。
【０２００】
ステップＳ１４０にて、プロセッサ１０は、軌跡オブジェクトを生成する。軌跡オブジェクトの生成は、たとえば図１９または図２０に示された態様に従う。
【０２０１】
ステップＳ１５０にて、プロセッサ１０は、補完画像を生成する。補完画像は、たとえば、ステップＳ１００にて生成された更新後の視界画像に、ステップＳ１４０にて生成された軌跡オブジェクトを合成することによって生成される。
【０２０２】
ステップＳ１６０にて、プロセッサ１０は、ステップＳ１５０にて生成された補完画像をモニタ１１２に表示する。より具体的には、補完画像を表示させるためのデータ（視界画像データ）をＨＭＤ１１０に出力する。補完画像の一例は、図１の視界画像１００２である。
【０２０３】
ステップＳ１７０にて、プロセッサ１０は、ステップＳ１００において更新された視界画像をモニタ１１２に表示する。より具体的には、更新後の視界画像を表示させるためのデータ（視界画像データ）をＨＭＤ１１０に出力する。更新後の画像の一例は、図１の視界画像１００３である。その後、プロセッサ１０は図２２の処理を終了する。
【０２０４】
以上説明された図２２の処理によれば、仮想空間においてオブジェクトが移動することによって視界画像が更新される場合、プロセッサ１０は、モニタ１１２に、補完画像を表示した後、更新後の視界画像を表示する。
【０２０５】
なお、補完画像の表示は、図１６を参照して説明されたように、仮想空間内でオブジェクトが移動することによって視界画像が更新される場合に実行される。図１７を参照して説明されたように、仮想カメラ１の移動によって視界画像が更新される場合には、補完画像の表示は省略されてもよい。このことは、プロセッサ１０が、ステップＳ１１０にて視界画像の更新が仮想カメラ１の移動によるものではない（ステップＳ１１０にてＮＯ）と判断したときにステップＳ１２０〜Ｓ１６０の制御を実行し、ステップＳ１１０にて視界画像の更新が仮想カメラ１の移動によるものである（ステップＳ１１０にてＹＥＳ）と判断したときにはステップＳ１２０〜Ｓ１６０の制御を実行しないことに対応する。
【０２０６】
＜９．開示の要約＞
本開示は、以下のように要約され得る。
【０２０７】
（１）  本開示では、コンピュータ２００Ａは、直接またはサーバ１５０を介して、複数のヘッドマウントデバイス（ＨＭＤ１１０，１１０Ａ，１１０Ｂ）に接続される。コンピュータ２００が仮想空間を提供するために実行する方法は、仮想空間を定義するステップ（図１３のステップＳ１５１０）を含む。当該方法は、図２等に示されるように、複数のヘッドマウントデバイスのうちの第１のヘッドマウントデバイス（ＨＭＤ１１０Ａ）のユーザに対応する第１のアバターオブジェクトと第２のヘッドマウントデバイス（ＨＭＤ１１０Ｂ）のユーザに対応する第２のアバターオブジェクト（オブジェクト９０１）とを仮想空間に配置するステップを含む。当該方法は、第１のアバターオブジェクトの仮想空間における位置に応じた画像（図１の視界画像１００１）を第１のヘッドマウントデバイスに提示するステップを含む。当該方法は、さらに、第２のアバターオブジェクトを移動するための操作に基づいて、第２のアバターオブジェクトの移動経路を表わす軌跡オブジェクト（軌跡オブジェクト９１０）を第１のヘッドマウントデバイスに提示するステップ（ステップＳ１６０）を含む。
【０２０８】
なお、本開示の方法によって規定されるステップの一部およびすべては、サーバ１５０のプロセッサ１５１等、コンピュータ２００のプロセッサ１０以外のプロセッサによって実行されてもよい。すなわち、プロセッサ１０は、視界画像を生成することなく、外部の装置から送信された視界画像を提示するように構成されていてもよい。
【０２０９】
本開示によれば、仮想空間において第２のアバターオブジェクトが移動する場合、第２のアバターオブジェクトの移動経路を表わす軌跡オブジェクトが表示される。これにより、ユーザは、軌跡オブジェクトによって、第２のアバターオブジェクトの移動先を予測できる。したがって、仮想空間において第２のアバターオブジェクトの位置が急激に変化した場合でも、ユーザにおけるＶＲ酔いが低減され得る。
【０２１０】
（２）  上記方法は、第１のアバターオブジェクトを移動するための操作（仮想カメラ１を移動するための操作）に基づいて、第１のヘッドマウントデバイスに提示されている画像を第１のアバターオブジェクトの移動後の位置に応じた画像に切り替えるステップを含んでもよい（ステップＳ１１０の後、ステップＳ１２０〜Ｓ１６０の実行無しに実行される、ステップＳ１７０）。
【０２１１】
（３）  仮想空間は、第１のアバターオブジェクトおよび第２のアバターオブジェクト以外の他のオブジェクト（オブジェクト１１１０）を含んでもよい。軌跡オブジェクトは、他のオブジェクトの外部を通るように設定されてもよい（仮想空間画像５０２内の軌跡オブジェクト９１０）。
【０２１２】
（４）  仮想空間は、第１のアバターオブジェクトおよび第２のアバターオブジェクト以外の別のオブジェクト（オブジェクト１１２０）を含んでもよい。軌跡オブジェクトは、第１のアバターオブジェクトから別のオブジェクトまでの視界を遮る割合が所定の値を下回るように設定されてもよい（仮想空間画像５０１内の軌跡オブジェクト９１０）。
【０２１３】
今回開示された各実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【０２１４】
１  仮想カメラ、２  仮想空間、５  基準視線、１０，１５１  プロセッサ、１１，１
５２  メモリ、１２  ストレージ、２２，２２Ａ，２２Ｂ，５０１，５０２  仮想空間画
像、２３  視認領域、１９０，１９０Ａ，１９０Ｂ  ユーザ、２００，２００Ａ，２００
Ｂ  コンピュータ、５１１，５１２，１００１，１００２，１００３  視界画像、９０１
，１１１０，１１２０  オブジェクト。
【図１】
2018206339.tif 000003
【図２】
2018206339.tif 000004
【図３】
2018206339.tif 000005
【図４】
2018206339.tif 000006
【図５】
2018206339.tif 000007
【図６】
2018206339.tif 000008
【図７】
2018206339.tif 000009
【図８】
2018206339.tif 000010
【図９】
2018206339.tif 000011
【図１０】
2018206339.tif 000012
【図１１】
2018206339.tif 000013
【図１２】
2018206339.tif 000014
【図１３】
2018206339.tif 000015
【図１４】
2018206339.tif 000016
【図１５】
2018206339.tif 000017
【図１６】
2018206339.tif 000018
【図１７】
2018206339.tif 000019
【図１８】
2018206339.tif 000020
【図１９】
2018206339.tif 000021
【図２０】
2018206339.tif 000022
【図２１】
2018206339.tif 000023
【図２２】
2018206339.tif 000024