(57)【要約】      （修正有）【課題】ＨＭＤを装着したユーザによって選択されたアバターオブジェクトに関わらず、当該ユーザの頭の傾きに応じて視認される画像の不具合を解消する。【解決手段】プロセッサが実行する処理は、アバターオブジェクトの外観を定義するステップＳ１４２０と、アバターオブジェクトの頭部に相当する位置に、仮想空間におけるユーザの視座を設定するステップＳ１４３０と、視座に基づきアバターオブジェクトの頭部以外の外観を描画対象とする画像データを生成するステップＳ１４４０と、画像データに基づく画像をＨＭＤに提示するステップＳ１４５０とを含む。【選択図】図１４
2019066906.tif 000002
【特許請求の範囲】
【請求項１】
ヘッドマウントデバイスを用いて仮想現実を提供するためにコンピュータで実行されるプログラムであって、前記プログラムは前記コンピュータに、
仮想空間を定義するステップと、
前記ヘッドマウントデバイスを装着したユーザに対応するアバターオブジェクトの外観を定義するステップと、
前記ヘッドマウントデバイスを装着したユーザに対応するアバターオブジェクトの頭部に相当する位置に、前記仮想空間における前記ユーザの視座を設定し、前記ユーザの視座に基づいて、前記頭部以外の前記アバターオブジェクトの外観を描画対象に含めた画像を前記ヘッドマウントデバイスに表示するステップとを実行させる、プログラム。
【請求項２】
前記プログラムは前記コンピュータに、前記ヘッドマウントデバイスの姿勢を表す信号の入力を受け付けるステップをさらに実行させ、
前記表示するステップは、前記ヘッドマウントデバイスの姿勢に応じて、前記仮想空間における前記ユーザの視座を設定するステップを含む、請求項１に記載のプログラム。
【請求項３】
前記プログラムは前記コンピュータに、前記ヘッドマウントデバイスを装着したユーザに対応するアバターオブジェクトの鼻の一部または口の一部を表すオブジェクトを描画対象に含めた画像を前記ヘッドマウントデバイスに表示するステップをさらに実行させる、請求項１または２に記載のプログラム。
【請求項４】
前記プログラムは前記コンピュータに、予め準備された装着物が前記アバターオブジェクトの目の周りに存在していることに基づいて、前記装着物のうち視界に入る少なくとも一部を定義するステップをさらに実行させ、
前記頭部以外の外観を前記ヘッドマウントデバイスに表示するステップは、前記視界に入る少なくとも一部を前記ヘッドマウントデバイスに表示するステップを含む、請求項１〜３のいずれかに記載のプログラム。
【請求項５】
前記プログラムは前記コンピュータに、前記仮想空間において、鏡オブジェクトを定義するステップをさらに実行させ、
前記鏡オブジェクトは、前記仮想空間における前記鏡オブジェクトの配置位置に基づいて配置される仮想カメラに基づいて、当該仮想カメラの視野領域の画像を前記鏡オブジェクトにより提示し、
前記表示するステップは、前記鏡オブジェクトについての当該仮想カメラの視野領域内に前記ヘッドマウントデバイスのユーザに対応するアバターオブジェクトが含まれる場合に、前記アバターオブジェクトの頭部を含む外観を描画対象として前記鏡オブジェクトに前記仮想カメラの前記視野領域の画像を提示するステップを含む、請求項１から４のいずれかに記載のプログラム。
【請求項６】
前記プログラムは前記コンピュータに、
他のヘッドマウントデバイスが接続された他のコンピュータとの通信を確立するステップと、
前記仮想空間において前記他のヘッドマウントデバイスのユーザに対応するアバターオブジェクトの外観を定義するステップとを実行させ、
前記表示するステップは、前記ユーザの視座に基づいて、前記他のヘッドマウントデバイスのユーザに対応するアバターオブジェクトの頭部を含む外観を描画対象に含めた画像を前記ヘッドマウントデバイスに表示するステップを含む、請求項１〜５のいずれかに記載のプログラム。
【請求項７】
アバターオブジェクトが動作可能な範囲は、前記ヘッドマウントデバイスの傾きに応じて予め定められており、
前記ユーザの視座は、前記仮想空間における仮想カメラの位置として定義され、
前記仮想カメラは、前記ヘッドマウントデバイスの傾きに応じて回転する、請求項１〜５のいずれかに記載のプログラム。
【請求項８】
請求項１〜７のいずれかに記載のプログラムを格納したメモリと、
前記プログラムを実行するプロセッサとを備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は仮想現実空間における表示の制御に関し、より特定的には、仮想現実空間で使用されるアバターの表示を制御する技術に関する。
【背景技術】
【０００２】
ヘッドマウントデバイス（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）、フラッシュＲＯＭなどの半導体メモリなどの固定的にプログラムを担持する不揮発性のデータ記録媒体でもよい。
【０１００】
ここでいうプログラムとは、プロセッサ１０により直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラムなどを含み得る。
【０１０１】
［ＨＭＤシステムの制御構造］
図１０を参照して、ＨＭＤシステム１００の制御構造について説明する。図１０は、ある実施の形態に従うＨＭＤシステム１００において実行される処理の一部を表すシーケンスチャートである。
【０１０２】
図１０に示されるように、ステップＳ１０１０にて、コンピュータ２００のプロセッサ１０は、仮想空間定義モジュール２３１として、仮想空間画像データを特定し、仮想空間２を定義する。
【０１０３】
ステップＳ１０２０にて、プロセッサ１０は、仮想カメラ１を初期化する。たとえば、プロセッサ１０は、メモリのワーク領域において、仮想カメラ１を仮想空間２において予め規定された中心点に配置し、仮想カメラ１の視線をユーザ１９０が向いている方向に向ける。
【０１０４】
ステップＳ１０３０にて、プロセッサ１０は、視界画像生成モジュール２２３として、初期の視界画像を表示するための視界画像データを生成する。生成された視界画像データは、通信制御モジュール２５０によってＨＭＤ１１０に出力される。
【０１０５】
ステップＳ１０３２にて、ＨＭＤ１１０のモニタ１１２は、コンピュータ２００から受信した視界画像データに基づいて、視界画像を表示する。ＨＭＤ１１０を装着したユーザ１９０は、視界画像を視認すると仮想空間２を認識し得る。
【０１０６】
ステップＳ１０３４にて、ＨＭＤセンサ１２０は、ＨＭＤ１１０から発信される複数の赤外線光に基づいて、ＨＭＤ１１０の位置と傾きを検知する。検知結果は、動き検知データとして、コンピュータ２００に出力される。
【０１０７】
ステップＳ１０４０にて、プロセッサ１０は、ＨＭＤ１１０の動き検知データに含まれる位置と傾きとに基づいて、ＨＭＤ１１０を装着したユーザ１９０の視界方向を特定する。
【０１０８】
ステップＳ１０５０にて、プロセッサ１０は、アプリケーションプログラムを実行し、アプリケーションプログラムに含まれる命令に基づいて、仮想空間２にオブジェクトを提示する。このとき提示されるオブジェクトは、他アバターオブジェクトを含む。
【０１０９】
ステップＳ１０６０にて、コントローラ１６０は、モーションセンサ１３０から出力される信号に基づいて、ユーザ１９０の操作を検出し、その検出された操作を表す検出データをコンピュータ２００に出力する。なお、他の局面において、ユーザ１９０によるコントローラ１６０の操作は、ユーザ１９０の周囲に配置されたカメラからの画像に基づいて検出されてもよい。
【０１１０】
ステップＳ１０６５にて、プロセッサ１０は、コントローラ１６０から取得した検出データに基づいて、ユーザ１９０によるコントローラ１６０の操作を検出する。
【０１１１】
ステップＳ１０７０にて、プロセッサ１０は、手オブジェクトを仮想空間２に提示するための視界画像データを生成する。
【０１１２】
ステップＳ１０８０にて、プロセッサ１０は、ユーザ１９０によるコントローラ１６０の操作に基づく視界画像データを生成する。生成された視界画像データは、通信制御モジュール２５０によってＨＭＤ１１０に出力される。
【０１１３】
ステップＳ１０９２にて、ＨＭＤ１１０は、受信した視界画像データに基づいて視界画像を更新し、更新後の視界画像をモニタ１１２に表示する。
【０１１４】
［技術思想］
図１１および図１２を参照して、本開示に係る技術思想について説明する。図１１は、ＨＭＤ１１０を装着したユーザ１９０と仮想カメラ１の姿勢との対応を表わす図である。状態（Ａ）に示されるように、ユーザ１９０が水平方向の正面を向いている場合には、仮想カメラ１も同様の方向を向いている。状態（Ｂ）に示されるように、ユーザ１９０が首を曲げると、仮想カメラ１もその傾きに応じた方向を向く。
【０１１５】
状態（Ｃ）に示されるように、ユーザ１９０が腰を曲げると、仮想カメラ１もその傾きに応じた方向を向く。状態（Ｄ）に示されるように、ユーザ１９０が首と腰を曲げると、仮想カメラ１は、首の傾きと腰の傾きとの合計の傾きに応じた方向を向く。
【０１１６】
図１１に示される例では、人（＝ユーザ１９０）が仮想空間２を視認する場合である。仮想カメラ１は、人の目に相当するものとして目の位置に配置される。人の目は顔の前面についているので、ＨＭＤ１１０を装着したユーザ１９０が下を向いた場合、仮想カメラ１も下を向く。このとき、ユーザ１９０がそのアバターオブジェクトとして人のアバターオブジェクトを選択している場合、仮想カメラ１は下を向くことにより、仮想空間２における当該アバターオブジェクトの足下を表示する。
【０１１７】
仮想空間２におけるチャットその他のコミュニケーションでは、ユーザ１９０は、人以外のアバターオブジェクト、例えば、動物をアバターオブジェクトとして選択できる。アバターオブジェクトによっては、例えば、ワニや馬またはアニメーションの怪獣のように、目が顔の前面についていない場合がある。そこで、以下では、ユーザ１９０が、馬のアバターオブジェクトを選択した場合を想定する。
【０１１８】
図１２は、馬オブジェクト１２１０とユーザ１９０の頭部をそれぞれ表わす図である。分図（Ａ）において、馬オブジェクト１２１０の目１２１１は、仮想空間２において、仮想カメラ１に相当する。分図（Ｂ）において、ユーザ１９０の目１２２１は、仮想カメラ１に相当する。
【０１１９】
ＨＭＤ１９０を装着したユーザ１９０が首あるいは腰を下方に曲げると、仮想カメラ１は、その位置を中心として、下方に回転する。ＨＭＤ１１０のモニタ１１２には、下方の視界画像が提示される。このとき、ユーザ１９０がアバターオブジェクトとして馬オブジェクトを選択している場合、仮想カメラ１は、馬オブジェクト１２１０の頭部の内側を向くことになり得る。そうすると、その状態で画像を正確に描写すると頭部の内側が描写されることになり適切ではない。
【０１２０】
図１３を参照して、アバターオブジェクト制御モジュール２６０の構成について説明する。図１３は、ある実施の形態に従うアバターオブジェクト制御モジュール２６０の構成の一例を表わすブロック図である。アバターオブジェクト制御モジュール２６０は、外観定義モジュール１３１０と、装着物定義モジュール１３２０と、描画データ生成モジュール１３３０とを含む。
【０１２１】
外観定義モジュール１３１０は、アバターオブジェクトの外観を定義する。例えば、外観定義モジュール１３１０は、メモリモジュール２４０にアクセスして、ユーザ１９０によって選択されたアバターに関連付けられている外観データを参照する。
【０１２２】
装着物定義モジュール１３２０は、アバターオブジェクトの装着物を定義する。装着物は、例えば、眼鏡、帽子、マスクのように頭部のどこかに装着されるものをいう。
【０１２３】
描画データ生成モジュール１３３０は、外観定義モジュール１３１０によって定義されたデータと、装着物定義モジュール１３２０によって定義された装着物のデータとを用いて、モニタ１１２にアバターオブジェクトを描画するためのデータを生成する。
【０１２４】
（１）ある局面において、プロセッサ１０は、外観定義モジュール１３１０として、ＨＭＤ１１０を装着したユーザ１９０に対応するアバターオブジェクトの外観を定義する。たとえば、プロセッサ１０は、アバターオブジェクトを表現するために予め準備されたデータをメモリモジュール２４０から読み出して、そのデータを用いて、アバターオブジェクトの外観を描画するためのデータをワーク領域に生成する。プロセッサ１０は、描画データ生成モジュールとして、ＨＭＤ１１０を装着したユーザ１９０に対応するアバターオブジェクトの頭部に相当する位置に、仮想空間２におけるユーザ１９０の視座を設定し、ユーザ１９０の視座に基づいて、頭部以外のアバターオブジェクトの外観を描画対象に含めた画像をＨＭＤ１１０に表示するためのデータを生成する。このデータがコンピュータ２００からＨＭＤ１１０に送られると、モニタ１１２は、ユーザ１９０の頭の傾きに応じて、バターオブジェクトの外観を表示し得る。
【０１２５】
（２）ある局面において、プロセッサ１０は、ＨＭＤ１１０の姿勢を表す信号の入力を受け付ける。プロセッサ１０は、ＨＭＤ１１０の姿勢に応じて、仮想空間におけるユーザ１９０の視座を設定する。例えば、ＨＭＤ１１０を装着したユーザ１９０が正面を向いている場合、モニタ１１２は、仮想空間２においてユーザが正面を向いている状態を表わす画像を表示する。他方、ユーザ１９０が首をかしげて下方を向いた場合、モニタ１１２は、ユーザ１９０が選択しているアバターの胴体部分あるいは足の部分を表示する。この場合、仮想カメラ１がその位置で下方に回転したとしても、アバターの体内を描画せず、外観を表示する。
【０１２６】
（３）ある局面において、プロセッサ１０は、描画データ生成モジュール１３３０として、ＨＭＤ１１０を装着したユーザ１９０に対応するアバターオブジェクトの鼻の一部または口の一部を表すオブジェクトを描画対象に含めた画像をＨＭＤ１１０に表示するためのデータを生成し、そのデータをＨＭＤ１１０に出力する。例えば、ユーザ１９０が河童オブジェクトを選択している場合、プロセッサ１０は、河童の口の先頭部分がモニタ１１２に表示されるように描画データを生成する。
【０１２７】
（４）ある局面において、プロセッサ１０は、装着物定義モジュール１３２０として、予め準備された装着物がアバターオブジェクトの目の周りに存在していることに基づいて、装着物のうち視界に入る少なくとも一部を定義する。プロセッサ１０は、視界に入る少なくとも一部をＨＭＤ１１０に表示する。装着物は、例えば、眼鏡、マスク等、アバターオブジェクトの顔の前面に着用可能なものをいう。
【０１２８】
（５）ある局面において、プロセッサ１０は、仮想空間２において、鏡オブジェクトを定義する。鏡オブジェクトは、仮想空間２における鏡オブジェクトの配置位置に基づいて配置される仮想カメラ１に基づいて、当該仮想カメラの視野領域の画像を鏡オブジェクトにより提示する。プロセッサ１０は、鏡オブジェクトについての仮想カメラ１の視野領域内にＨＭＤ１１０のユーザ１９０に対応するアバターオブジェクトが含まれる場合に、アバターオブジェクトの頭部を含む外観を描画対象として鏡オブジェクトに仮想カメラ１の視野領域の画像を提示する。このような構成によれば、鏡オブジェクトに提示される像は、ユーザ１９０が選択したアバターオブジェクトの外観を提示する。したがって、ユーザ１９０は、鏡オブジェクトの鏡面において、自らの外観を視認するので、違和感を覚えなくなる。
【０１２９】
（６）ある局面において、プロセッサ１０は、通信制御モジュール２５０を介して、他のＨＭＤ１１０が接続された他のコンピュータとの通信を確立する。プロセッサ１０は、仮想空間２において他のＨＭＤ１１０のユーザ１９０に対応するアバターオブジェクトの外観を定義する。プロセッサ１０は、ユーザ１９０の視座に基づいて、他のＨＭＤ１１０のユーザ１９０に対応するアバターオブジェクトの頭部を含む外観を描画対象に含めた画像をＨＭＤ１１０に表示する。このような構成によれば、ユーザ１９０が他のユーザとアバターを用いて対話している場合、相手のアバターを普通に認識できる。
【０１３０】
（７）ある局面において、アバターオブジェクトが動作可能な範囲は、ＨＭＤ１１０の傾きに応じて予め定められている。プロセッサ１０は、ユーザ１９０の視座を、仮想空間２における仮想カメラ１の位置として定義する。仮想カメラ１は、ＨＭＤ１１０の傾きに応じて回転する。
【０１３１】
［制御構造］
図１４を参照して、コンピュータ２００の制御構造について説明する。図１４は、プロセッサ１０が実行する処理の一部を表わすフローチャートである。
【０１３２】
ステップＳ１４１０にて、プロセッサ１０は、ＨＭＤ１１０によって提供される仮想空間２を定義する。
【０１３３】
ステップＳ１４２０にて、プロセッサ１０は、アバターオブジェクトの外観を定義する。アバターオブジェクトはユーザ１９０によって選択可能である。選択可能なアバターオブジェクトとは、人以外に、動物、アニメーションのキャラクタなどを含む。人以外のアバターオブジェクトは、目の前方に、口や鼻等の突起物を有する場合もある。別の局面において、アバターオブジェクトは、眼鏡その他の付属物を頭部に装着している場合がある。
【０１３４】
ステップＳ１４３０にて、プロセッサ１０は、アバターオブジェクトの頭部に相当する位置に、仮想空間におけるユーザ１９０の視座を設定する。より具体的には、ユーザ１９０に相当するカメラ１を当該頭部に相当する位置に関連付ける。
【０１３５】
ステップＳ１４４０にて、プロセッサ１０は、視座に基づきアバターオブジェクトの頭部以外の外観を描画対象とする画像データを生成する。頭部以外の外観は、例えば、当該アバターオブジェクトの胴体部分、手足等を含む。さらに、アバターオブジェクトが人以外の動物で視線の前方に突起部分を有するものである場合、その突起部分を表示するためのデータも生成する。例えば、アバターとしてワニが選択されている場合、プロセッサ１０は、ワニの口先部分は視認可能な態様でモニタ１１２に表示するためのデータを生成する。
【０１３６】
このとき、ユーザ１１０が下を向くと、仮想カメラ１も下を向くことになる。仮想カメラ１がその場所を回転中心として下方を向くと、目の直下を視認することになる。この場合、描画することは適切ではないので、プロセッサ１０は、頭部以外の下方の部位、すなわち、足、しっぽ等の胴体部分を描画する。
【０１３７】
ステップＳ１４５０にて、プロセッサ１０は、画像データに基づく画像をＨＭＤ１１０に提示する。ユーザ１９０が正面を向いている場合、ＨＭＤ１１０において検出されるＨＭＤ１１０の姿勢に基づき、モニタ１１２は正面に存在する（チャット相手に対応する）アバターオブジェクトを視認する。ユーザ１９０が馬オブジェクトを選択している場合、モニタ１１２で視認される画像は、馬オブジェクトの鼻の先端部分を表示してもよい。ユーザ１９０は、アバターを使用している場合でも違和感を覚えにくくなる。
【０１３８】
［表示態様］
図１５および図１６を参照して、ある実施の形態に従うモニタ１１２の表示態様について説明する。図１５は、ユーザ１９０が馬のアバターオブジェクトを選択した場合にモニタ１１２に表示される画像の変化を表わす図である。図１６は、他のＨＭＤ１１０を装着した他のユーザがモニタ１１２において馬オブジェクト１２１０を視認している態様を表わす図である。
【０１３９】
図１５の状態（Ａ）に示されるように、ＨＭＤ１１０を装着したユーザ１９０が正面を向いている時、モニタ１１２は、仮想空間２における正面の視界画像を提示する。例えば、ユーザ１９０が、ＨＭＤ１１０を装着した他のユーザと仮想空間２を介したコミュニケーションをとっている場合、ユーザ１９０の視界画像には、他のユーザが使用するアバターオブジェクト（例えば、河童オブジェクト１５１０）が提示される。河童オブジェクト１５１０は、口１５１１と、足１５１２とを含む。
【０１４０】
この場合において、ユーザ１９０が少し頭を下方に傾けると、状態（Ｂ）に示されるように、モニタ１１２は、ユーザ１９０の自分の足元（馬の足下）を提示する。すなわち、ユーザ１９０が装着したＨＭＤ１１０の傾きに応じて仮想カメラ１は、下方に回転するが、プロセッサ１０は、この回転に応じた描画を行なう際、仮想カメラ１の回転に伴う馬の頭部の内側を描画しない。例えば、プロセッサ１０は、ピッチ角（図３）の回転を検知した場合、ユーザ１９０が選択しているアバターオブジェクトに関わらず、人の頭が下方に回転した場合と同様の描画処理を実行する。これにより、ユーザ１９０によって選択されたアバターオブジェクトに応じて正確に描画することによる不都合な描画が行なわれることが防止され得る。
【０１４１】
図１６を参照して、馬オブジェクト１２１０を視認する他のユーザは、状態（Ａ）に示されるように、馬オブジェクト１２１０を正面に視認する。この場合、別の局面において、状態（Ｂ）に示されるように、河童オブジェクト１５１０の口１５１１の先端が表示されてもよい。このようにすると、河童オブジェクト１５１０を使用する他のユーザは、自らの部位（口１５１１）を少し認識できるので、現実空間における場合と同様の感覚で仮想現実を楽しむことができる。
【０１４２】
図１７を参照して、仮想空間２に鏡オブジェクトが提示された場合の表示について説明する。図１７は、モニタ１１２に鏡オブジェクトが提示されている一態様を表わす図である。
【０１４３】
状態（Ａ）に示されるように、ある局面において、ユーザ１９０は、チャット相手の馬オブジェクト１２１０を視認している。その後、ユーザ１９０あるいはチャット相手がコントローラ１６０を操作して、鏡オブジェクト１７００を仮想空間２に提示すると、鏡オブジェクト１７００は、ユーザ１９０のアバターオブジェクトの像を写す。例えば、ユーザ１９０が河童オブジェクト１５００を選択している場合、鏡オブジェクト１７００は、河童オブジェクト１５１０の像を写す。このようにすると、一人称視点としての視界画像がモニタ１１２に表示されている場合において、ＨＭＤ１１０を装着したユーザ１９０が頭を下方に向けた場合、アバターオブジェクトの体内は描画されないが、仮想空間２に配置された鏡オブジェクト１７００は、ユーザ１９０のアバターオブジェクトの外観全体を表示する。これにより、仮想空間２において鏡が配置される場合における没入感の低下が防止され得る。
【０１４４】
以上開示された様々な技術的特徴は、一例として以下のように要約され得る。
（構成１）  ＨＭＤ１１０を用いて仮想現実を提供するためにコンピュータ２００で実行されるプログラムが提供される。プログラムはコンピュータ２００に、仮想空間２を定義するステップと、ＨＭＤ１１０を装着したユーザ１９０に対応するアバターオブジェクトの外観を定義するステップと、ＨＭＤ１１０を装着したユーザ１９０に対応するアバターオブジェクトの頭部に相当する位置に、仮想空間２におけるユーザ１９０の視座を設定し、ユーザ１９０の視座に基づいて、頭部以外のアバターオブジェクトの外観を描画対象に含めた画像をＨＭＤ１１０に表示するステップとを実行させる。
（構成２）  プログラムはコンピュータ２００に、ＨＭＤ１１０の姿勢を表す信号の入力を受け付けるステップをさらに実行させる。表示するステップは、ＨＭＤ１１０の姿勢に応じて、仮想空間２におけるユーザ１９０の視座を設定するステップを含む。
（構成３）  プログラムはコンピュータ２００に、ＨＭＤ１１０を装着したユーザ１９０に対応するアバターオブジェクトの鼻の一部または口の一部を表すオブジェクトを描画対象に含めた画像をＨＭＤ１１０に表示するステップをさらに実行させる。
（構成４）  プログラムはコンピュータ２００に、予め準備された装着物がアバターオブジェクトの目の周りに存在していることに基づいて、装着物のうち視界に入る少なくとも一部を定義するステップをさらに実行させる。頭部以外の外観をＨＭＤ１１０に表示するステップは、視界に入る少なくとも一部をＨＭＤ１１０に表示するステップを含む。
（構成５）  プログラムはコンピュータ２００に、仮想空間２において、鏡オブジェクト１７００を定義するステップをさらに実行させる。鏡オブジェクト１７００は、仮想空間２における鏡オブジェクト１７００の配置場所に基づいて配置される仮想カメラ１に基づいて、仮想カメラ１の視野領域の画像を鏡オブジェクトにより提示する。表示するステップは、鏡オブジェクトについての当該仮想カメラの視野領域内にＨＭＤ１１０のユーザ１９０に対応するアバターオブジェクトが含まれる場合に、アバターオブジェクトの頭部を含む外観を描画対象として鏡オブジェクトに仮想カメラの視野領域の画像を提示するステップを含む。
（構成６）  プログラムはコンピュータ２００に、他のＨＭＤ１１０が接続された他のコンピュータ２００との通信を確立するステップと、仮想空間２において他のＨＭＤ１１０のユーザに対応するアバターオブジェクトの外観を定義するステップとを実行させる。表示するステップは、ユーザ１９０の視座に基づいて、他のＨＭＤ１１０のユーザに対応するアバターオブジェクトの頭部を含む外観を描画対象に含めた画像をＨＭＤ１１０に表示（構成７）ある局面において、アバターオブジェクトが動作可能な範囲は、ＨＭＤ１１０の傾きに応じて予め定められている。ユーザの視座は、仮想空間２における仮想カメラ１の位置として定義される。仮想カメラ１、ＨＭＤ１１０の傾きに応じて回転する。
【０１４５】
以上のようにして、本実施の形態によれば、ユーザ１９０が下方を向いた場合に、アバターオブジェクトの内部が描画されないので、ユーザ１９０は違和感を覚えにくくなる。
【０１４６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４７】
１  仮想カメラ、２  仮想空間、５  基準視線、１０  プロセッサ、１１  メモリ、１２  ストレージ、１３  入出力インターフェース、１４  通信インターフェース、１５  バス、１９  ネットワーク、２１  中心、２２  仮想空間画像、２３  視界領域、２４，２５  領域、３０  グリップ、３１  フレーム、３２  天面、３３，３４，３６，３７  ボタン、３８  アナログスティック、１００  システム、１１０，１９０  ユーザ、１１２  モニタ、１１４，１２０  センサ、１１５  スピーカ、１１９  マイク、１３０  モーションセンサ、１４０  注視センサ、１５０  サーバ、１６０  コントローラ、２００  コンピュータ。
【図１】
2019066906.tif 000003
【図２】
2019066906.tif 000004
【図３】
2019066906.tif 000005
【図４】
2019066906.tif 000006
【図５】
2019066906.tif 000007
【図６】
2019066906.tif 000008
【図７】
2019066906.tif 000009
【図８】
2019066906.tif 000010
【図９】
2019066906.tif 000011
【図１０】
2019066906.tif 000012
【図１１】
2019066906.tif 000013
【図１２】
2019066906.tif 000014
【図１３】
2019066906.tif 000015
【図１４】
2019066906.tif 000016
【図１５】
2019066906.tif 000017
【図１６】
2019066906.tif 000018
【図１７】
2019066906.tif 000019
【手続補正書】
【提出日】平成30年12月19日(2018.12.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ヘッドマウントデバイスを用いて仮想現実を提供するためにコンピュータで実行されるプログラムであって、前記プログラムは前記コンピュータに、
仮想空間を定義するステップと、
前記ヘッドマウントデバイスを装着したユーザに対応するアバターオブジェクトの外観を定義するステップと、
前記ヘッドマウントデバイスを装着したユーザに対応するアバターオブジェクトの頭部に相当する位置に、前記仮想空間における前記ユーザの視座として仮想カメラを設定するステップと、
前記ヘッドマウントデバイスの姿勢を表す信号の入力を受け付けて、当該信号の入力に応答して、前記姿勢の変化に応じて前記仮想カメラの設定を更新するステップと、
前記仮想空間に配置されるオブジェクトおよび前記仮想カメラの設定に従って、前記仮想カメラの視界に応じた画像を描画する際に、前記ヘッドマウントデバイスの姿勢が所定の方向を向いているか否かにかかわらず、前記アバターオブジェクトについて前記アバターオブジェクトの頭部以外を描画対象として描画するステップと、
前記描画により生成された画像を前記ヘッドマウントデバイスに表示するステップとを実行させる、プログラム。
【請求項２】
前記プログラムは前記コンピュータに、前記ヘッドマウントデバイスを装着したユーザに対応するアバターオブジェクトの鼻の一部または口の一部を表すオブジェクトを描画対象に含めた画像を前記ヘッドマウントデバイスに表示するステップをさらに実行させる、請求項１に記載のプログラム。
【請求項３】
前記プログラムは前記コンピュータに、予め準備された装着物が前記アバターオブジェクトの目の周りに存在していることに基づいて、前記装着物のうち視界に入る少なくとも一部を定義するステップをさらに実行させ、
前記頭部以外の外観を前記ヘッドマウントデバイスに表示するステップは、前記視界に入る少なくとも一部を前記ヘッドマウントデバイスに表示するステップを含む、請求項１または２に記載のプログラム。
【請求項４】
前記プログラムは前記コンピュータに、前記仮想空間において、鏡オブジェクトを定義するステップをさらに実行させ、
前記鏡オブジェクトは、前記仮想空間における前記鏡オブジェクトの配置位置に基づいて配置される仮想カメラに基づいて、当該仮想カメラの視野領域の画像を前記鏡オブジェクトにより提示し、
前記表示するステップは、前記鏡オブジェクトについての当該仮想カメラの視野領域内に前記ヘッドマウントデバイスのユーザに対応するアバターオブジェクトが含まれる場合に、前記アバターオブジェクトの頭部を含む外観を描画対象として前記鏡オブジェクトに前記仮想カメラの前記視野領域の画像を提示するステップを含む、請求項１から３のいずれかに記載のプログラム。
【請求項５】
前記プログラムは前記コンピュータに、
他のヘッドマウントデバイスが接続された他のコンピュータとの通信を確立するステップと、
前記仮想空間において前記他のヘッドマウントデバイスのユーザに対応するアバターオブジェクトの外観を定義するステップとを実行させ、
前記表示するステップは、前記ユーザの視座に基づいて、前記他のヘッドマウントデバイスのユーザに対応するアバターオブジェクトの頭部を含む外観を描画対象に含めた画像を前記ヘッドマウントデバイスに表示するステップを含む、請求項１〜４のいずれかに記載のプログラム。
【請求項６】
アバターオブジェクトが動作可能な範囲は、前記ヘッドマウントデバイスの傾きに応じて予め定められており、
前記ユーザの視座は、前記仮想空間における仮想カメラの位置として定義され、
前記仮想カメラは、前記ヘッドマウントデバイスの傾きに応じて回転する、請求項１〜４のいずれかに記載のプログラム。
【請求項７】
請求項１〜６のいずれかに記載のプログラムを格納したメモリと、
前記プログラムを実行するプロセッサとを備える、情報処理装置。
【請求項８】
ヘッドマウントデバイスを用いて仮想現実を提供するためにコンピュータが実行する方法であって、前記方法は前記コンピュータが、
仮想空間を定義するステップと、
前記ヘッドマウントデバイスを装着したユーザに対応するアバターオブジェクトの外観を定義するステップと、
前記ヘッドマウントデバイスを装着したユーザに対応するアバターオブジェクトの頭部に相当する位置に、前記仮想空間における前記ユーザの視座として仮想カメラを設定するステップと、
前記ヘッドマウントデバイスの姿勢を表す信号の入力を受け付けて、当該信号の入力に応答して、前記姿勢の変化に応じて前記仮想カメラの設定を更新するステップと、
前記仮想空間に配置されるオブジェクトおよび前記仮想カメラの設定に従って、前記仮想カメラの視界に応じた画像を描画する際に、前記ヘッドマウントデバイスの姿勢が所定の方向を向いているか否かにかかわらず、前記アバターオブジェクトについて前記アバターオブジェクトの頭部以外を描画対象として描画するステップと、
前記描画により生成された画像を前記ヘッドマウントデバイスに表示するステップとを実行する、方法。