(57)【要約】【課題】仮想空間内での複数のユーザ間の交流を図り易くする方法を提供する。【解決手段】仮想空間２を介して通信するためにコンピュータ２００によって実行される方法は、仮想空間２を定義するステップ（Ｓ１１１０）と、他アバターオブジェクトを仮想空間２に提示するステップ（Ｓ１１５０）と、ユーザ１９０の発話に対応する音声データの入力を受け付けるステップ（Ｓ１２２０）と、他のユーザのコンピュータ２００に音声データを出力するステップ（Ｓ１２３０）と、応答データに応じて他アバターオブジェクトを動かすステップ（Ｓ１２２５）と、発話から他アバターオブジェクトが動くまでの時間Ｔに他アバターオブジェクトの視線を変更するステップ（Ｓ１２７０）とを含む。【選択図】図１２
2018106391.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間を介して通信するためにコンピュータによって実行される方法であって、
前記仮想空間を定義するステップと、
前記コンピュータのユーザが通信可能な１人以上の他のユーザにそれぞれ対応する１つ以上のアバターオブジェクトを前記仮想空間に提示するステップと、
前記コンピュータのユーザの発話に対応する音声データの入力を受け付けるステップと、
前記他のユーザのコンピュータに前記音声データを出力するステップと、
前記音声データの入力に応答して前記他のユーザのコンピュータから出力された応答データに応じて前記アバターオブジェクトを動かすステップと、
前記発話から前記アバターオブジェクトが動くまでの間に前記アバターオブジェクトの視線を変更するステップとを含む、方法。
【請求項２】
前記アバターオブジェクトの視線を変更するステップは、前記仮想空間を介して通信するコンピュータのユーザの当該仮想空間における視界のうち、予め決められた範囲内に含まれる前記アバターオブジェクトの視線を変更することを含む、請求項１に記載の方法。
【請求項３】
前記アバターオブジェクトの視線を変更するステップは、前記アバターオブジェクトの視線を前記仮想空間を介して通信するコンピュータのユーザ側に向けることを含む、請求項１または請求項２に記載の方法。
【請求項４】
前記仮想空間を介して通信するコンピュータのユーザの体の一部に対応するオブジェクトを当該仮想空間に提示するステップと、
前記体の一部の動作を検出するステップと、
前記体の一部の動作に基づき前記体の一部に対応するオブジェクトを動かすステップとをさらに含み、
前記アバターオブジェクトの視線を変更するステップは、前記アバターオブジェクトの視線を前記体の一部に対応するオブジェクトが指す方向に向けることを含む、請求項１または請求項２に記載の方法。
【請求項５】
前記発話の内容と関連するオブジェクトを前記仮想空間に提示するステップをさらに含み、
前記アバターオブジェクトの視線を変更するステップは、前記アバターオブジェクトの視線を前記発話の内容と関連するオブジェクトに向けることを含む、請求項１または請求項２に記載の方法。
【請求項６】
前記応答データは、
前記他のユーザの視線を追跡した結果を示すアイトラッキングデータと、
前記他のユーザの顔の動作を追跡した結果を示すフェイストラッキングデータと、
前記他のユーザの発話に対応する音声データとのいずれかを含む、請求項１〜請求項５のいずれか１項に記載の方法。
【請求項７】
仮想空間を介して通信するためにコンピュータによって実行される方法であって、
前記仮想空間を定義するステップと、
アバターオブジェクトを前記仮想空間に提示するステップと、
前記アバターオブジェクトの視線を変更するステップと、
前記仮想空間を介して通信するコンピュータのユーザの体の一部に対応するオブジェクトを当該仮想空間に提示するステップと、
前記体の一部の動作を検出するステップと、
前記体の一部の動作に基づき前記体の一部に対応するオブジェクトを動かすステップとを含み、
前記アバターオブジェクトの視線を変更するステップは、前記アバターオブジェクトの視線を前記体の一部に対応するオブジェクトが指す方向に向けることを含む、方法。
【請求項８】
請求項１〜請求項７のいずれか１項に記載の方法をコンピュータに実行させる、プログラム。
【請求項９】
請求項８に記載のプログラムを格納したメモリと、
前記プログラムを実行するためのプロセッサとを備える、コンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、仮想空間を提供するための技術に関し、より特定的には、仮想空間を介した通信の提供に関する。
【背景技術】
【０００２】
ヘッドマウントデバイス（ＨＭＤ（Head  Mount  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）、フラッシュＲＯＭなどの半導体メモリなどの固定的にプログラムを担持する不揮発性のデータ記録媒体でもよい。
【００９５】
ここでいうプログラムとは、プロセッサ１０により直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラムなどを含み得る。
【００９６】
［ネットワーク上でのユーザ間の交流］
図１０を参照して、ネットワーク１９上でのユーザ間の交流について説明する。図１０は、複数のコンピュータ２００のそれぞれによって提示される仮想空間２を表現する一態様を概念的に表す図である。
【００９７】
図１０に示されるように、各コンピュータ２００Ａ〜２００Ｆは、ネットワーク１９を介してサーバ１５０と通信可能である。各コンピュータ２００Ａ〜２００Ｆは、対応するＨＭＤ１１０Ａ〜１１０Ｆにおいて、仮想空間画像２２Ａ〜２２Ｆを提供する。各仮想空間画像２２Ａ〜２２Ｆでは、各コンピュータ２００Ａ〜２００Ｆのユーザに対応するアバターオブジェクト９０１〜９０４が提示される。
【００９８】
たとえば、アバターオブジェクト９０１は、ＨＭＤ１１０Ａのユーザ１９０に対応する。このため、ＨＭＤ１１０Ａのユーザ１９０が視認する仮想空間画像２２Ａでは、他のユーザに対応する他アバターオブジェクトとして、アバターオブジェクト９０２〜９０４が提示される。一方、アバターオブジェクト９０４は、ＨＭＤ１１０Ｂのユーザ１９０に対応する。このため、ＨＭＤ１１０Ｂのユーザ１９０が視認する仮想空間画像２２Ｂでは、他のユーザに対応する他アバターオブジェクトとして、アバターオブジェクト９０１〜９０３が提示される。
【００９９】
各ＨＭＤ１１０Ａ〜１１０Ｆは、各ユーザの位置および傾きに対応する動き検出データをサーバ１５０に送信する。サーバ１５０は、各ＨＭＤ１１０Ａ〜１１０Ｆから受信した動き検出データを、ネットワーク１９内の他のＨＭＤ１１０に送信する。他のＨＭＤ１１０は、当該動き検出データに応じて、他アバターオブジェクトの位置あるいは傾きを変更する。
【０１００】
また、各ＨＭＤ１１０Ａ〜１１０Ｆは、注視センサ１４０によるユーザ１９０の視線方向の検出結果を示すデータをサーバ１５０に送信する。サーバ１５０は、各ＨＭＤ１１０Ａ〜１１０Ｆから受信した視線方向の検出データを、ネットワーク１９内の他のＨＭＤ１１０に送信する。他のＨＭＤ１１０は、当該検出データに応じて、他アバターオブジェクトの視線を変更する。
【０１０１】
各ＨＭＤ１１０Ａ〜１１０Ｆは、各ユーザの発話に対応する音声データをサーバ１５０に送信する。サーバ１５０は、各ＨＭＤ１１０Ａ〜１１０Ｆから受信した音声データを、ネットワーク１９内の他のＨＭＤ１１０に送信する。他のＨＭＤ１１０は、当該音声データに応じて、他アバターオブジェクトの口の開き具合を変更する。また、他のＨＭＤ１１０は、当該音声データに基づく音声をスピーカ１１５から出力する。
【０１０２】
このように、あるユーザ１９０が現実空間において動いたり話したりすることで、仮想空間２において当該ユーザ１９０に対応するアバターオブジェクトの位置あるいは表情が変わる。これに応答するように、他のユーザが現実空間において動いたり話したりすることで、仮想空間２において当該他のユーザに対応するアバターオブジェクトの位置あるいは表情が変わる。このように、ネットワーク１９上での通信を利用することで、互いに異なるＨＭＤ１１０を装着するユーザ同士の交流が、仮想空間２において実現される。
【０１０３】
［ＨＭＤシステムの制御構造］
図１１を参照して、ＨＭＤシステム１００の制御構造について説明する。図１１は、ある実施の形態に従うＨＭＤシステム１００において実行される処理の一部を表すシーケンスチャートである。
【０１０４】
図１１に示されるように、ステップＳ１１１０にて、コンピュータ２００のプロセッサ１０は、仮想空間定義モジュール２３１として、仮想空間画像データを特定し、仮想空間を定義する。
【０１０５】
ステップＳ１１２０にて、プロセッサ１０は、仮想カメラ１を初期化する。たとえば、プロセッサ１０は、メモリのワーク領域において、仮想カメラ１を仮想空間２において予め規定された中心点に配置し、仮想カメラ１の視線をユーザ１９０が向いている方向に向ける。
【０１０６】
ステップＳ１１３０にて、プロセッサ１０は、視界画像生成モジュール２２３として、初期の視界画像を表示するための視界画像データを生成する。生成された視界画像データは、通信制御モジュール２５０によってＨＭＤ１１０に出力される。
【０１０７】
ステップＳ１１３２にて、ＨＭＤ１１０のモニタ１１２は、コンピュータ２００から受信した視界画像データに基づいて、視界画像を表示する。ＨＭＤ１１０を装着したユーザ１９０は、視界画像を視認すると仮想空間２を認識し得る。
【０１０８】
ステップＳ１１３４にて、ＨＭＤセンサ１２０は、ＨＭＤ１１０から発信される複数の赤外線光に基づいて、ＨＭＤ１１０の位置と傾きを検知する。検知結果は、動き検知データとして、コンピュータ２００に出力される。
【０１０９】
ステップＳ１１４０にて、プロセッサ１０は、ＨＭＤ１１０の動き検知データに含まれる位置と傾きとに基づいて、ＨＭＤ１１０を装着したユーザ１９０の視界方向を特定する。
【０１１０】
ステップＳ１１５０にて、プロセッサ１０は、アプリケーションプログラムを実行し、アプリケーションプログラムに含まれる命令に基づいて、仮想空間２にオブジェクトを提示する。このとき提示されるオブジェクトは、他アバターオブジェクトを含む。
【０１１１】
ステップＳ１１６０にて、コントローラ１６０は、モーションセンサ１３０から出力される信号に基づいて、ユーザ１９０の操作を検出し、その検出された操作を表す検出データをコンピュータ２００に出力する。なお、他の局面において、ユーザ１９０によるコントローラ１６０の操作は、ユーザ１９０の周囲に配置されたカメラからの画像に基づいて検出されてもよい。
【０１１２】
ステップＳ１１６５にて、プロセッサ１０は、コントローラ１６０から取得した検出データに基づいて、ユーザ１９０によるコントローラ１６０の操作を検出する。
【０１１３】
ステップＳ１１７０にて、プロセッサ１０は、手オブジェクトを仮想空間２に提示するための視界画像データを生成する。
【０１１４】
ステップＳ１１８０にて、プロセッサ１０は、ユーザ１９０によるコントローラ１６０の操作に基づく視界画像データを生成する。生成された視界画像データは、通信制御モジュール２５０によってＨＭＤ１１０に出力される。
【０１１５】
ステップＳ１１９２にて、ＨＭＤ１１０は、受信した視界画像データに基づいて視界画像を更新し、更新後の視界画像をモニタ１１２に表示する。
【０１１６】
図１２および図１３を参照して、ある実施の形態に従うＨＭＤシステム１００の制御構造について説明する。図１２は、ある実施の形態に従うＨＭＤシステム１００において実行される詳細な処理の一部を表すシーケンスチャートである。図１３は、複数のコンピュータ２００間における通信の一部を表すシーケンスチャートである。図１２および図１３においては、ＨＭＤ１１０ａに接続されたコンピュータ２００ａと、ＨＭＤ１１０ｂに接続されたコンピュータ２００ｂとの間で行なわれる通信の一例を示す。なお、コンピュータ２００ａあるいはコンピュータ２００ｂによって実行される処理は、各コンピュータ２００に含まれるプロセッサ１０によって実行される。
【０１１７】
図１２に示されるように、ステップＳ１２１０にて、ＨＭＤ１１０ａのユーザ１９０がマイク１１９を用いて発話すると、当該発話に対応する音声データが、ステップＳ１２１５にてコンピュータ２００ａに出力される。ステップＳ１２２０にて、コンピュータ２００ａは、音声データの入力を受け付ける。
【０１１８】
ステップＳ１２２５にて、コンピュータ２００ａは、音声データの受信対象となる他アバターオブジェクトを特定する。ステップＳ１２３０にて、コンピュータ２００ａは、特定した他アバターオブジェクトに対応するオブジェクトデータと、音声データとを、サーバ１５０に出力する。
【０１１９】
ステップＳ１２３５にて、サーバ１５０は、受信したオブジェクトデータに基づき音声データの受信対象となるコンピュータ２００ｂを特定する。ステップＳ１２４０にて、サーバ１５０は、特定したコンピュータ２００ｂに音声データを出力する。
【０１２０】
図１３に示されるように、ステップＳ１３１０にて、コンピュータ２００ｂは、サーバ１５０から受信した音声データをＨＭＤ１１０ｂに出力する。このとき、ＨＭＤ１１０ｂのスピーカ１１５は、音声データに基づく音声を出力する。当該音声を聞いたＨＭＤ１１０ｂのユーザが当該音声に応答するための動作を行なうと、ステップＳ１３２０にて、当該動作に対応する応答データがコンピュータ２００ｂに出力される。ＨＭＤ１１０ｂのユーザによる応答動作は、発話、視線を動かすこと、および顔を動かすことなどを含む。応答動作が発話である場合、応答データは当該発話に対応する音声データを含む。応答動作が視線を動かすことである場合、応答データは視線を追跡した結果を示すアイトラッキングデータを含む。応答動作が顔を動かすことである場合、応答データは顔の動作を追跡した結果を示すフェイストラッキングデータを含む。ステップＳ１３３０にて、コンピュータ２００ｂは、受信した応答データをサーバ１５０に出力する。
【０１２１】
図１２に示されるように、ステップＳ１２４５にて、サーバ１５０は、受信した応答データをコンピュータ２００ａに出力する。
【０１２２】
ある局面において、応答データが音声データである場合、ステップＳ１２５０にて、コンピュータ２００ａは、応答データに応じた音声データを生成して、ＨＭＤ１１０ａに当該音声データを出力する。
【０１２３】
ステップＳ１２６０にて、ＨＭＤ１１０ａは、受信した音声データに基づく音声をスピーカ１１５から出力する。
【０１２４】
ステップＳ１２５５にて、コンピュータ２００ａは、応答データに応じた視界画像を生成して、当該視界画像に対応する視界画像データをＨＭＤ１１０ａに出力する。たとえば、ある局面において、応答データが音声データである場合、コンピュータ２００ａは、コンピュータ２００ｂのユーザに対応する他アバターオブジェクトの口を動かすような視界画像を生成する。別の局面において、応答データがアイトラッキングデータである場合、コンピュータ２００ａは、コンピュータ２００ｂのユーザに対応する他アバターオブジェクトの視線を動かすような視界画像を生成する。さらに別の局面において、応答データがフェイストラッキングデータである場合、コンピュータ２００ａは、コンピュータ２００のユーザに対応する他アバターオブジェクトの顔を動かすような視界画像を生成する。
【０１２５】
ステップＳ１２６５にて、ＨＭＤ１１０ａは、受信した視界画像データに基づいて視界画像を更新し、更新後の視界画像をモニタ１１２に表示する。
【０１２６】
図１２および図１３に示されるように、コンピュータ２００ａのユーザが発話してから、当該発話に応答してコンピュータ２００ｂのユーザに対応する他アバターオブジェクトが動作するまでの時間Ｔは、コンピュータ２００ａとコンピュータ２００ｂとの間の通信時間に少なくとも依存する。
【０１２７】
そこで、コンピュータ２００ａは、時間Ｔの間のステップＳ１２７０にて、他アバターオブジェクトの視線を変更した視界画像を生成して、当該視界画像に対応する視界画像データをＨＭＤ１１０ａに出力する。ステップＳ１２７５にて、ＨＭＤ１１０ａは、受信した視界画像データに基づいて視界画像を更新し、更新後の視界画像をモニタ１１２に表示する。これにより、時間Ｔの間に、他アバターオブジェクトの視線が変更される。
【０１２８】
［コンピュータの制御構造］
図１４を参照して、コンピュータ２００の制御構造について説明する。図１４は、ある実施の形態の一局面においてコンピュータ２００のプロセッサ１０が実行する詳細な処理を表すフローチャートである。
【０１２９】
図１４に示されるように、ステップＳ１４１０にて、プロセッサ１０は、ＨＭＤ１１０からユーザの発話に対応する音声データの入力を受け付けたか否かを判定する。
【０１３０】
プロセッサ１０は、ＨＭＤ１１０から音声データの入力を受け付けていない場合（ステップＳ１４１０にてＮＯ）、処理を終了する。
【０１３１】
一方、プロセッサ１０は、ＨＭＤ１１０から音声データの入力を受け付けた場合（ステップＳ１４１０にてＹＥＳ）、ステップＳ１４２０にて、視界領域２３に含まれる他アバターオブジェクトを特定する。
【０１３２】
ステップＳ１４３０にて、プロセッサ１０は、手オブジェクトが何らかのオブジェクトを指しているか否かを判定する。たとえば、図８の分図（Ｂ）に示されるように、人差し指の伸びる方向がロール方向として規定される場合、プロセッサ１０は、モーションセンサ１３０によって得られたユーザ１９０の手の動きの検出データに基づき、ロール方向の軸の延長線上に何らのオブジェクトが位置するか否かを判定する。
【０１３３】
プロセッサ１０は、手オブジェクトが何らのオブジェクトも指していない場合（ステップＳ１４３０にてＮＯ）、ステップＳ１４４０にて、他アバターオブジェクトの視線をユーザ１９０側（仮想カメラ１側）に向けた視界画像を生成する。
【０１３４】
ステップＳ１４７０にて、プロセッサ１０は、ステップＳ１４４０で生成した視界画像に対応する視界画像データをＨＭＤ１１０に出力し、処理を終了する。
【０１３５】
一方、プロセッサ１０は、手オブジェクトが何らかのオブジェクトを指している場合（ステップＳ１４３０にてＹＥＳ）、ステップＳ１４５０にて、手オブジェクトが指しているオブジェクトを特定する。
【０１３６】
ステップＳ１４６０にて、プロセッサ１０は、他アバターオブジェクトの視線がステップＳ１４３０で特定したオブジェクトに向けられた視界画像を生成する。
【０１３７】
ステップＳ１４７０にて、プロセッサ１０は、ステップＳ１４６０で生成した視界画像に対応する視界画像データをＨＭＤ１１０に出力し、処理を終了する。
【０１３８】
なお、上記の処理の一態様として、コンピュータ２００が各処理ステップを実行する態様が例示されているが、ＨＭＤ１１０がプロセッサを備える場合には、そのプロセッサが各処理ステップを実行してもよい。
【０１３９】
［仮想空間におけるオブジェクトの提示］
図１５を参照して、仮想空間２におけるオブジェクトの提示について説明する。図１５は、ある実施の形態に従う仮想空間２におけるオブジェクトの提示の一例を表す図である。図１５の分図Ａは、ＨＭＤ１１０のモニタ１１２に表示された視界画像１０００を示す。視界画像１０００は、ＨＭＤ１１０がユーザ１９０に提供する画像である。図１５の分図Ｂは、仮想空間２のうち、仮想カメラ１によって捉えられる視界領域２３を示す。視界領域２３は、ユーザ１９０によって視認可能な仮想空間２のうち、ユーザ１９０に対応する仮想カメラ１が捉える領域である。分図Ａに示された視野座標系の３軸（ｕ軸、ｖ軸、ｗ軸）のそれぞれは、分図Ｂに示されたグローバル座標系の３軸（水平方向のｘ軸、鉛直方向のｙ軸、および、前後方向のｚ軸）のそれぞれに対応する。
【０１４０】
図１５の分図Ｂに示されるように、ある局面において、仮想空間画像２２では、６人の他のユーザそれぞれに対応する他アバターオブジェクト９１０，９２０，９４０，９５０，９６０，９９０と、仮想空間２に存在する仮想の乗り物としてタクシーを表すタクシーオブジェクト９３０となどが提示される。これらオブジェクトのうち、仮想カメラ１が捉える視界領域２３では、他アバターオブジェクト９１０，９２０，９９０と、タクシーオブジェクト９３０とが提示される。
【０１４１】
図１５の分図Ａに示されるように、視界画像１０００は、仮想カメラ１が捉える視界領域２３の画像に対応する。ある局面において、視界画像１０００では、他アバターオブジェクト９１０，９２０，９９０と、タクシーオブジェクト９３０となどが提示される。さらに、ユーザ１９０がコントローラ１６０を操作すると、視界画像１０００に手オブジェクト９７０が提示される。
【０１４２】
［仮想空間において提示されたオブジェクトの変化］
図１６を参照して、仮想空間２において提示されたオブジェクトの変化について説明する。図１６は、ある実施の形態に従う仮想空間２において提示されたオブジェクトの変化の一例を表す図である。図１６は、ＨＭＤ１１０のモニタ１１２に表示された視界画像１００１〜１００３を示す。視界画像１００１〜１００３は、ＨＭＤ１１０がユーザ１９０に提供する画像である。
【０１４３】
図１６に示されるように、ある局面において、視界画像１００１〜１００３では、視界領域２３に含まれるオブジェクトとして、他のユーザそれぞれに対応する他アバターオブジェクト９１０，９２０，９９０と、タクシーオブジェクト９３０とが提示される。ある局面において、ユーザ１９０がマイク１１９を用いて発話すると、視界画像１００１では、当該発話に対応する文字画像（「すいません」）８２０が提示される。他の局面において、ユーザ１９０がマイク１１９を用いて発話しても、視界画像１００１では、当該発話に対応する文字画像８２０が提示されなくてもよい。ユーザ１９０の発話に対応する音声データは、視界領域２３に含まれる全ての他アバターオブジェクト９１０，９２０，９９０に対応する他のユーザのコンピュータ２００に出力される。
【０１４４】
視界画像１００１では、他アバターオブジェクト９１０，９２０，９９０のそれぞれの視線が、視界画像１００１に向かって左方向に向いている。ユーザ１９０が発話した後の視界画像１００２では、他アバターオブジェクト９１０，９２０，９９０のそれぞれの視線が、発話したユーザ１９０側に向いている。視界画像１００１から視界画像１００２への更新は、図１２および図１３で示された、プロセッサ１０によるＳ１２７０の処理、および図１４で示された、プロセッサ１０によるＳ１４４０の処理に基づく。
【０１４５】
ユーザ１９０のコンピュータ２００は、いずれかの他のユーザのコンピュータ２００から応答データを受信すると、当該応答データに基づき、視界画像１００２を視界画像１００３に更新する。視界画像１００２から視界画像１００３への更新は、図１２および図１３で示された、プロセッサ１０によるＳ１２５５の処理に基づく。視界画像１００３では、他アバターオブジェクト９１０，９２０，９９０のそれぞれの体の向きがユーザ１９０側に向いている。ある局面において、視界画像１００３では、他アバターオブジェクト９２０の口が開く。また、視界画像１００３では、他アバターオブジェクト９２０に対応する他のユーザの発話に応じた文字画像（「何ですか？」）８３０が提示される。他の局面において、他アバターオブジェクト９２０の口が開くが、視界画像１００３では、他アバターオブジェクト９２０に対応する他のユーザの発話に応じた文字画像（「何ですか？」）８３０が提示されなくてもよい。
【０１４６】
図１７を参照して、図１６に示された視界画像１００３の後でモニタ１１２に表示される視界画像１００４〜１００６について説明する。図１７は、ある実施の形態に従う仮想空間２において提示されたオブジェクトの変化の一例を表す図である。図１７は、ＨＭＤ１１０のモニタ１１２に表示された視界画像１００４〜１００６を示す。視界画像１００４〜１００６は、ＨＭＤ１１０を装着したユーザ１９０によって視認される画像である。
【０１４７】
図１７に示されるように、視界画像１００４〜１００６では、視界領域２３に含まれるオブジェクトとして、他のユーザそれぞれに対応する他アバターオブジェクト９１０，９２０，９９０と、タクシーオブジェクト９３０とが提示される。ユーザ１９０がマイク１１９を用いて発話すると、視界画像１００４では、当該発話に対応する文字画像（「タクシーですか？」）８４０が提示される。他の局面において、ユーザ１９０がマイク１１９を用いて発話しても、視界画像１００４では、当該発話に対応する文字画像８４０が提示されなくてもよい。さらに、ユーザ１９０が、コントローラ１６０の操作によってタクシーオブジェクト９３０を指すと、手オブジェクト９７０の指差す方向がタクシーオブジェクト９３０の方向へと変化する。
【０１４８】
視界画像１００４では、他アバターオブジェクト９１０，９２０，９９０のそれぞれの視線が、ユーザ１９０側に向いている。ある局面において、ユーザ１９０が発話した後の視界画像１００５では、他アバターオブジェクト９１０，９２０，９９０のそれぞれの視線が、手オブジェクト９７０によって指されたタクシーオブジェクト９３０に向いている。視界画像１００４から視界画像１００５への更新は、図１２および図１３で示された、プロセッサ１０によるＳ１２７０の処理、および図１４で示された、プロセッサ１０によるＳ１４６０の処理に基づく。
【０１４９】
ユーザ１９０のコンピュータ２００は、他のユーザのコンピュータ２００から応答データを受信すると、当該応答データに基づき、視界画像１００５を視界画像１００６に更新する。視界画像１００５から視界画像１００６への更新は、図１２および図１３で示された、プロセッサ１０によるＳ１２５５の処理に基づく。視界画像１００６では、他アバターオブジェクト９１０，９２０，９９０のそれぞれの体の向きがユーザ１９０側に向いている。ある局面において、視界画像１００６では、他アバターオブジェクト９２０の口が開く。また、視界画像１００６では、他アバターオブジェクト９２０に対応する他のユーザの発話に応じた文字画像（「はいそうです」）８５０が提示される。他の局面において、他アバターオブジェクト９２０の口が開くが、視界画像１００６では、他アバターオブジェクト９２０に対応する他のユーザの発話に応じた文字画像（「はいそうです」）８５０が提示されなくてもよい。
【０１５０】
［他の局面における他アバターオブジェクトの視線の変更］
他の局面において、コンピュータ２００のプロセッサ１０は、会話領域２３ａに含まれる他アバターオブジェクトの視線を変更する。図１８は、ある実施の形態の他の局面に従う仮想空間２におけるオブジェクトの提示の一例を表す図である。図１８の分図Ｂは、他の局面において、ＨＭＤ１１０のモニタ１１２に表示された視界画像２０００を示す。図１８の分図Ｂは、他の局面において、仮想カメラ１によって捉えられる視界領域２３および会話領域２３ａを示す。
【０１５１】
図１８の分図Ｂに示されるように、視界領域２３は、会話領域２３ａを含む。会話領域２３ａは、視界領域２３よりもユーザ１９０側（仮想カメラ１側）に近い領域である。図１８の分図Ｂの例では、視界領域２３は、他アバターオブジェクト９９０を含む一方で、会話領域２３ａは、他アバターオブジェクト９９０を含まない。
【０１５２】
図１９を参照して、他の局面におけるコンピュータ２００の制御構造について説明する。図１９は、ある実施の形態の他の局面においてコンピュータ２００のプロセッサ１０が実行する詳細な処理を表すフローチャートである。なお、図１９に示されるフローチャートにおいては、図１４に示されるフローチャートにおけるＳ１４２０がＳ１４２０ａに変更されている。図１９において、図１４に示される処理と同一の処理には同一のステップ番号が付してある。したがって、同じ処理の説明は繰り返さない。
【０１５３】
図１９に示されるように、プロセッサ１０は、ＨＭＤ１１０から音声データの入力を受け付けた場合（ステップＳ１４１０にてＹＥＳ）、ステップＳ１４２０ａにて、会話領域２３ａに含まれる他アバターオブジェクトを特定する。その後、プロセッサ１０は、Ｓ１４４０あるいはＳ１４６０にて、特定した他アバターオブジェクトの視線を変更した視界画像を生成する。つまり、プロセッサ１０は、視界領域２３に含まれる他アバターオブジェクトのうち、会話領域２３ａに含まれる他アバターオブジェクトの視線を変更する。
【０１５４】
図２０を参照して、他の局面におけるオブジェクトの提示について説明する。図２０は、ある実施の形態の他の局面に従う仮想空間２において提示されたオブジェクトの変化の一例を表す図である。図２０は、他の局面において、ＨＭＤ１１０のモニタ１１２に表示された視界画像２００１〜２００３を示す。
【０１５５】
図２０に示されるように、視界画像２００１〜２００３は、視界領域２３に含まれるオブジェクトとして、他のユーザそれぞれに対応する他アバターオブジェクト９１０，９２０，９９０と、タクシーオブジェクト９３０とを含む。ユーザ１９０がマイク１１９を用いて発話すると、視界画像２００１は、当該発話に対応する文字画像（「すいません」）８２０が提示される。ユーザ１９０の発話に対応する音声データは、他アバターオブジェクト９１０，９２０に対応する他のユーザのコンピュータ２００に出力される。一方、ユーザ１９０の発話に対応する音声データは、他アバターオブジェクト９９０に対応する他のユーザのコンピュータ２００に出力されない。
【０１５６】
視界画像２００１では、他アバターオブジェクト９１０，９２０，９９０のそれぞれの視線が、視界画像２００１に向かって左方向に向いている。ユーザ１９０が発話した後の視界画像２００２では、他アバターオブジェクト９１０，９２０のそれぞれの視線が、発話したユーザ１９０側に向いている。一方、視界画像２００２では、アバターオブジェクト９９０の視線が、発話したユーザ１９０側に向いていない。
【０１５７】
他アバターオブジェクト９１０，９２０のそれぞれに対応する他のユーザのうち、いずれかの他のユーザのコンピュータ２００から、ユーザ１９０のコンピュータ２００が応答データを受信すると、当該応答データに基づき、ユーザ１９０のコンピュータ２００は、視界画像２００２を視界画像２００３に更新する。視界画像２００３では、他アバターオブジェクト９１０，９２０のそれぞれの向きがユーザ１９０側に向いている。視界画像２００３では、アバターオブジェクト９２０の口が開き、かつアバターオブジェクト９２０に対応する他のユーザの発話に応じた文字画像（「何ですか？」）８３０が提示される。
【０１５８】
［他の局面における他アバターオブジェクトの視線の変更］
他の局面において、コンピュータ２００のプロセッサ１０は、視界領域２３に含まれる他アバターオブジェクトの視線を、ユーザ１９０の発話の内容と関連するオブジェクトに向ける。図２１を参照して、他の局面におけるコンピュータ２００の制御構造について説明する。図２１は、ある実施の形態の他の局面においてコンピュータ２００のプロセッサ１０が実行する詳細な処理を表すフローチャートである。なお、図２１に示されるフローチャートにおいては、図１４に示されるフローチャートにおけるＳ１４４０がＳ１４４０ａおよびＳ１４４０ｂに変更されている。図２１において、図１４に示される処理と同一の処理には同一のステップ番号が付してある。したがって、同じ処理の説明は繰り返さない。
【０１５９】
図２１に示されるように、プロセッサ１０は、ＨＭＤ１１０から音声データの入力を受け付け（ステップＳ１４１０にてＹＥＳ）、手オブジェクトが何らのオブジェクトも指していない場合（ステップＳ１４３０にてＮＯ）、ステップＳ１４４０ａにて、ユーザ１９０の発話の内容と関連するオブジェクトを特定する。発話の内容の認識は、たとえば、公知の音声認識機能によって実現される。
【０１６０】
ステップＳ１４４０ｂにて、プロセッサ１０は、他アバターオブジェクトの視線を、ステップＳ１４４０ａで特定したオブジェクトに向けた視界画像を生成する。
【０１６１】
他の局面において、プロセッサ１０は、視界領域２３のうち、図１８の分図Ｂに示される会話領域２３ａに含まれる他アバターオブジェクトの視線を、ユーザ１９０の発話の内容と関連するオブジェクトに向けてもよい。
【０１６２】
さらに、他の局面において、プロセッサ１０は、手オブジェクトが何らのオブジェクトも指しておらず（ステップＳ１４３０にてＮＯ）、かつユーザ１９０の発話の内容と関連するオブジェクトを特定できない場合、他アバターオブジェクトの視線をユーザ１９０側に向けた視界画像を生成してもよい。
【０１６３】
［他の局面における他アバターオブジェクトの視線の変更］
他の局面において、コンピュータ２００のプロセッサ１０は、ユーザの発話に対応する音声データの入力を受け付けなくとも、コントローラ１６０に設けられたモーションセンサ１３０によってユーザ１９０の手の動きを検出した場合に、視界領域２３に含まれる他アバターオブジェクトの視線を変更する。図２２を参照して、他の局面におけるコンピュータ２００の制御構造について説明する。図２２は、ある実施の形態の他の局面においてコンピュータ２００のプロセッサ１０が実行する詳細な処理を表すフローチャートである。
【０１６４】
図２２に示されるように、ステップＳ２２１０にて、プロセッサ１０は、モーションセンサ１３０からユーザ１９０の手の動きの検出データの入力を受け付けたか否かを判定する。
【０１６５】
プロセッサ１０は、モーションセンサ１３０からユーザ１９０の手の動きの検出データの入力を受け付けていない場合（ステップＳ２２１０にてＮＯ）、処理を終了する。
【０１６６】
一方、プロセッサ１０は、モーションセンサ１３０からユーザ１９０の手の動きの検出データの入力を受け付けた場合（ステップＳ２２１０にてＹＥＳ）、ステップＳ２２２０にて、視界領域２３に含まれる他アバターオブジェクトを特定する。
【０１６７】
ステップＳ２２３０にて、プロセッサ１０は、手オブジェクトが指しているオブジェクトを特定する。たとえば、プロセッサ１０は、モーションセンサ１３０によってユーザ１９０の手の動きが検出された信号に基づき、図８の分図（Ｂ）に示されるロール方向の軸の延長線上に位置するオブジェクトを特定する。
【０１６８】
ステップＳ２２４０にて、プロセッサ１０は、他アバターオブジェクトの視線がステップＳ２２３０で特定したオブジェクトに向けられた視界画像を生成する。
【０１６９】
ステップＳ２２５０にて、プロセッサ１０は、ステップＳ２２５０で生成した視界画像に対応する視界画像データをＨＭＤ１１０に出力し、処理を終了する。
【０１７０】
［その他の構成］
他の局面において、コンピュータ２００のプロセッサ１０は、ユーザ１９０が発話してから当該発話に応答して他アバターオブジェクトが動作するまでの時間Ｔの間に、他アバターオブジェクトの視線を動かすことに加えて、当該他アバターオブジェクトの少なくとも体の一部を動かしてもよい。たとえば、プロセッサ１０は、時間Ｔの間に、当該他アバターオブジェクトの顔を動かすことで当該他アバターオブジェクトの視線を動かしてもよい。
【０１７１】
他の局面において、コンピュータ２００のプロセッサ１０は、時間Ｔの間に、他アバターオブジェクトの視線を、ユーザ１９０の体の一部に対応する部分オブジェクトが持っているオブジェクトに向けてもよい。
【０１７２】
他の局面において、コンピュータ２００のプロセッサ１０は、ステップＳ１４３０にて、ロール方向の軸に限らず、ヨー方向の軸、あるいはピッチ方向の軸の延長線上に何らのオブジェクトが位置するか否かを判定してもよい。さらに他の局面において、プロセッサ１０は、ステップＳ１４３０にて、手オブジェクトに限らず、その他の体の一部に対応する部分オブジェクトが何らかのオブジェクトを指しているか否かを判定してもよい。
【０１７３】
他の局面において、コンピュータ２００のプロセッサ１０は、ステップＳ２２３０にて、ロール方向の軸に限らず、ヨー方向の軸、あるいはピッチ方向の軸の延長線上に位置するオブジェクトを特定してもよい。さらに他の局面において、プロセッサ１０は、ステップＳ２２３０にて、手オブジェクトに限らず、その他の体の一部に対応する部分オブジェクトが何らかのオブジェクトを指しているか否かを判定してもよい。
【０１７４】
他の局面において、コンピュータ２００のプロセッサ１０は、仮想空間２において他アバターオブジェクトに限らず、自分であるユーザ１９０に対応するアバターオブジェクトを提示してもよい。
【０１７５】
他の局面において、コンピュータ２００のプロセッサ１０は、ユーザ１９０の発話の音量を判定し、当該判定結果に応じて会話領域２３ａを変化させてもよい。たとえば、プロセッサ１０は、ユーザ１９０の発話の音量が大きいときには、発話の音量が小さいときよりも、会話領域２３ａをユーザ１９０に近い領域に設定してもよい。
【０１７６】
［本開示の要約］
開示された技術的特徴は、たとえば以下のような構成を含む。
【０１７７】
（構成１）
ある実施の形態に従うと、仮想空間２を介して通信するためにコンピュータ２００によって実行される方法が提供される。この方法は、仮想空間２を定義するステップ（Ｓ１１１０）と、コンピュータ２００のユーザ１９０が通信可能な１人以上の他のユーザにそれぞれ対応する１つ以上の他アバターオブジェクトを仮想空間２に提示するステップ（Ｓ１１５０）と、コンピュータ２００のユーザ１９０の発話に対応する音声データの入力を受け付けるステップ（Ｓ１２２０，Ｓ１４１０にてＹＥＳ）と、他のユーザのコンピュータ２００に音声データを出力するステップ（Ｓ１２３０）と、音声データの入力に応答して他のユーザのコンピュータ２００から出力された応答データに応じて他アバターオブジェクトを動かすステップ（Ｓ１２２５）と、発話から他アバターオブジェクトが動くまでの間（時間Ｔ）に他アバターオブジェクトの視線を変更するステップ（Ｓ１２７０，Ｓ１４４０，Ｓ１４４０ｂ，Ｓ１４６０）とを含む。
【０１７８】
（構成２）
ある実施の形態に従うと、他アバターオブジェクトの視線を変更するステップは、仮想空間２を介して通信するコンピュータ２００のユーザ１９０の当該仮想空間２における視界領域２３のうち、予め決められた会話領域２３ａに含まれる他アバターオブジェクトの視線を変更すること（ステップＳ１４２０ａ，Ｓ１４４０，Ｓ１４６０）を含む。
【０１７９】
（構成３）
ある実施の形態に従うと、他アバターオブジェクトの視線を変更するステップは、他アバターオブジェクトの視線を、仮想空間２を介して通信するコンピュータ２００のユーザ１９０側に向けること（Ｓ１４４０）を含む。
【０１８０】
（構成４）
ある実施の形態に従うと、上記方法は、仮想空間２を介して通信するコンピュータ２００のユーザ１９０の手に対応する手オブジェクト９７０を当該仮想空間２に提示するステップ（Ｓ１１７０）と、手の動作を検出するステップ（Ｓ１１６５）と、手の動作に基づき手オブジェクト９７０を動かすステップ（Ｓ１１８０）とをさらに含み、他アバターオブジェクトの視線を変更するステップは、他アバターオブジェクトの視線を手オブジェクト９７０が指す方向に向けること（Ｓ１４６０）を含む。
【０１８１】
（構成５）
ある実施の形態に従うと、上記方法は、発話の内容と関連するオブジェクトを仮想空間２に提示するステップ（Ｓ１１５０）をさらに含み、他アバターオブジェクトの視線を変更するステップは、他アバターオブジェクトの視線を発話の内容と関連するオブジェクトに向けること（Ｓ１４４０ｂ）を含む。
【０１８２】
（構成６）
ある実施の形態に従うと、応答データは、他のユーザの視線を追跡した結果を示すアイトラッキングデータと、他のユーザの顔の動作を追跡した結果を示すフェイストラッキングデータと、他のユーザの発話に対応する音声データとのいずれかを含む。
【０１８３】
（構成７）
他の実施の形態に従うと、仮想空間２を介して通信するためにコンピュータ２００によって実行される方法が提供される。この方法は、仮想空間２を定義するステップ（Ｓ１１１０）と、他アバターオブジェクトを仮想空間２に提示するステップ（Ｓ１１５０）と、他アバターオブジェクトの視線を変更するステップ（Ｓ２２４０）と、仮想空間２を介して通信するコンピュータ２００のユーザ１９０の手に対応する手オブジェクト９７０を当該仮想空間２に提示するステップ（Ｓ１７７０）と、手の動作を検出するステップ（Ｓ１１６５）と、手の動作に基づき手オブジェクト９７０を動かすステップ（Ｓ１１８０）とを含み、他アバターオブジェクトの視線を変更するステップは、他アバターオブジェクトの視線を手オブジェクト９７０が指す方向に向けること（Ｓ２２３０，Ｓ２２４０）を含む。
【０１８４】
（構成８）
ある実施の形態に従うと、上記のいずれかの方法をコンピュータに実行させるプログラムが提供される。
【０１８５】
（構成９）
ある実施の形態に従うと、上記のプログラムを格納したメモリ１１と、プログラムを実行するためのプロセッサ１０とを備える、コンピュータ２００が提供される。
【０１８６】
以上のようにして、ある実施の形態に従うと、ユーザ１９０が発話してから、それに応答して他のユーザに対応する他アバターオブジェクトが動作するまでの時間Ｔが通信遅延などで長くなったとしても、当該時間Ｔの間に他アバターオブジェクトの視線が変更される。これにより、ユーザ１９０は、仮想空間２内での会話について違和感を覚えることがないため、仮想空間２内での複数のユーザ間の交流が図り易くなる。
【０１８７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１８８】
１  仮想カメラ、２  仮想空間、５  基準視線、１０  プロセッサ、１１  メモリ、１２  ストレージ、１３  入出力インターフェース、１４  通信インターフェース、１５  バス、１９  ネットワーク、２１  中心、２２  仮想空間画像、２３  視界領域、２３ａ  会話領域、３０  グリップ、３１  フレーム、３２  天面、３３，３４，３６，３７  ボタン、３８  アナログスティック、１００  システム、１１０  ＨＭＤ、１１２  モニタ、１１４，１２０  センサ、１１５  スピーカ、１１９  マイク、１３０  モーションセンサ、１４０  注視センサ、１５０  サーバ、１６０  コントローラ、１９０  ユーザ、２００  コンピュータ、２２０  表示制御モジュール、２２１  仮想カメラ制御モジュール、２２２  視界領域決定モジュール、２２３  視界画像生成モジュール、２２４  基準視線特定モジュール、２２５  音声制御モジュール、２３０  仮想空間制御モジュール、２３１  仮想空間定義モジュール、２３２  仮想オブジェクト生成モジュール、２３３  手オブジェクト制御モジュール、２４０  メモリモジュール、２４１  空間情報、２４２  オブジェクト情報、２４３  ユーザ情報、２５０  通信制御モジュール、８００  右コントローラ、８１０  右手、８１５，８３０，８４０，８５０  文字画像、９１０，９２０，９９０  他アバターオブジェクト、９３０  タクシーオブジェクト、９７０  手オブジェクト、１０００，２０００  視界画像。
【図１】
2018106391.tif 000003
【図２】
2018106391.tif 000004
【図３】
2018106391.tif 000005
【図４】
2018106391.tif 000006
【図５】
2018106391.tif 000007
【図６】
2018106391.tif 000008
【図７】
2018106391.tif 000009
【図８】
2018106391.tif 000010
【図９】
2018106391.tif 000011
【図１０】
2018106391.tif 000012
【図１１】
2018106391.tif 000013
【図１２】
2018106391.tif 000014
【図１３】
2018106391.tif 000015
【図１４】
2018106391.tif 000016
【図１５】
2018106391.tif 000017
【図１６】
2018106391.tif 000018
【図１７】
2018106391.tif 000019
【図１８】
2018106391.tif 000020
【図１９】
2018106391.tif 000021
【図２０】
2018106391.tif 000022
【図２１】
2018106391.tif 000023
【図２２】
2018106391.tif 000024
【手続補正書】
【提出日】平成29年10月27日(2017.10.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想空間を介して通信するためにコンピュータによって実行される方法であって、
前記仮想空間を定義するステップと、
前記コンピュータのユーザの体の一部に対応するオブジェクトを前記仮想空間に提示するステップと、
前記体の一部の動作を検出するステップと、
前記オブジェクトとは異なる他のアバターオブジェクトを前記仮想空間に提示するステップと、
前記アバターオブジェクトの視線を変更するステップとを含み、
前記アバターオブジェクトの視線を変更するステップは、前記アバターオブジェクトの視線を、前記体の一部に対応するオブジェクトが指す方向に向けることを含む、方法。
【請求項２】
前記アバターオブジェクトの視線を変更するステップは、前記仮想空間を介して通信するコンピュータのユーザの当該仮想空間における視界のうち、予め決められた範囲内に含まれる前記アバターオブジェクトの視線を変更することを含む、請求項１に記載の方法。
【請求項３】
前記アバターオブジェクトの視線を変更するステップは、前記アバターオブジェクトの視線を前記仮想空間を介して通信するコンピュータのユーザ側に向けることを含む、請求項１または請求項２に記載の方法。
【請求項４】
前記他のアバターオブジェクトの発話の内容と関連するオブジェクトを前記仮想空間に提示するステップをさらに含み、
前記アバターオブジェクトの視線を変更するステップは、前記アバターオブジェクトの視線を前記発話の内容と関連するオブジェクトに向けることを含む、請求項１または請求項２に記載の方法。
【請求項５】
前記ユーザと通信する他のユーザのコンピュータから出力される応答データに基づいて、前記他のアバターオブジェクトを動かすステップをさらに含み、
前記応答データは、
前記他のユーザの視線を追跡した結果を示すアイトラッキングデータと、
前記他のユーザの顔の動作を追跡した結果を示すフェイストラッキングデータと、
前記他のユーザの発話に対応する音声データとのいずれかを含む、請求項１〜請求項４のいずれか１項に記載の方法。
【請求項６】
仮想空間を介して通信するためにコンピュータによって実行される方法であって、
前記仮想空間を定義するステップと、
アバターオブジェクトを前記仮想空間に提示するステップと、
前記アバターオブジェクトの視線を変更するステップと、
前記仮想空間を介して通信するコンピュータのユーザの体の一部に対応するオブジェクトを当該仮想空間に提示するステップと、
前記体の一部の動作を検出するステップと、
前記体の一部の動作に基づき前記体の一部に対応するオブジェクトを動かすステップと、
前記コンピュータのユーザの発話に対応する音声データの入力を受け付けるステップと、を含み、
前記アバターオブジェクトの視線を変更するステップは、前記発話を受け付けたことに応答して、前記アバターオブジェクトの視線を前記体の一部に対応するオブジェクトが指す方向に向けることを含む、方法。
【請求項７】
請求項１〜請求項６のいずれか１項に記載の方法をコンピュータに実行させる、プログラム。
【請求項８】
請求項７に記載のプログラムを格納したメモリと、
前記プログラムを実行するためのプロセッサとを備える、コンピュータ装置。
【手続補正書】
【提出日】平成29年12月19日(2017.12.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想空間を介して通信するためにコンピュータによって実行される方法であって、
前記仮想空間を定義するステップと、
前記コンピュータのユーザの体の一部の動作を検出するステップと、
前記検出された体の一部の動作に基づいて、前記体の一部に対応するオブジェクトを前記仮想空間に提示するステップと、
前記オブジェクトとは異なる他のアバターオブジェクトを前記仮想空間に提示するステップと、
前記アバターオブジェクトの視線を変更するステップとを含み、
前記アバターオブジェクトの視線を変更するステップは、前記アバターオブジェクトの視線を、前記体の一部に対応するオブジェクトが指す方向に向けることを含む、方法。
【請求項２】
前記アバターオブジェクトの視線を変更するステップは、前記仮想空間を介して通信するコンピュータのユーザの当該仮想空間における視界のうち、予め決められた範囲内に含まれる前記アバターオブジェクトの視線を変更することを含む、請求項１に記載の方法。
【請求項３】
前記アバターオブジェクトの視線を変更するステップは、前記アバターオブジェクトの視線を前記仮想空間を介して通信するコンピュータのユーザ側に向けることを含む、請求項１または請求項２に記載の方法。
【請求項４】
前記他のアバターオブジェクトの発話の内容と関連するオブジェクトを前記仮想空間に提示するステップをさらに含み、
前記アバターオブジェクトの視線を変更するステップは、前記アバターオブジェクトの視線を前記発話の内容と関連するオブジェクトに向けることを含む、請求項１または請求項２に記載の方法。
【請求項５】
前記ユーザと通信する他のユーザのコンピュータから出力される応答データに基づいて、前記他のアバターオブジェクトを動かすステップをさらに含み、
前記応答データは、
前記他のユーザの視線を追跡した結果を示すアイトラッキングデータと、
前記他のユーザの顔の動作を追跡した結果を示すフェイストラッキングデータと、
前記他のユーザの発話に対応する音声データとのいずれかを含む、請求項１〜請求項４のいずれか１項に記載の方法。
【請求項６】
仮想空間を介して通信するためにコンピュータによって実行される方法であって、
前記仮想空間を定義するステップと、
アバターオブジェクトを前記仮想空間に提示するステップと、
前記アバターオブジェクトの視線を変更するステップと、
前記仮想空間を介して通信するコンピュータのユーザの体の一部に対応するオブジェクトを当該仮想空間に提示するステップと、
前記体の一部の動作を検出するステップと、
前記体の一部の動作に基づき前記体の一部に対応するオブジェクトを動かすステップと、
前記コンピュータのユーザの発話に対応する音声データの入力を受け付けるステップと、を含み、
前記アバターオブジェクトの視線を変更するステップは、前記発話を受け付けたことに応答して、前記アバターオブジェクトの視線を前記体の一部に対応するオブジェクトが指す方向に向けることを含む、方法。
【請求項７】
請求項１〜請求項６のいずれか１項に記載の方法をコンピュータに実行させる、プログラム。
【請求項８】
請求項７に記載のプログラムを格納したメモリと、
前記プログラムを実行するためのプロセッサとを備える、コンピュータ装置。