(57)【要約】【課題】ユーザの仮想空間における体験をより豊かにすることができる技術を提供すること。【解決手段】プログラムはコンピュータに、仮想空間を定義するステップ（Ｓ１８０５）と、ヘッドマウントデバイスのユーザに対応するアバターオブジェクトを仮想空間に配置するステップ（Ｓ１８１５）と、撮影機能を有するカメラオブジェクトを、当該カメラオブジェクトの撮影範囲にアバターオブジェクトの少なくとも一部が含まれるように仮想空間に配置するステップ（Ｓ１８５０）と、仮想空間における撮影に適したタイミングとカメラオブジェクトの位置とをユーザに通知するステップと、通知後に、カメラオブジェクトの撮影範囲に対応する画像を生成するステップ（Ｓ１８６５）とを実行させる。【選択図】図１８
2019012443.tif 000002
【特許請求の範囲】
【請求項１】
ヘッドマウントデバイスによって仮想空間を提供するためにコンピュータで実行されるプログラムであって、前記プログラムは前記コンピュータに、
仮想空間を定義するステップと、
前記ヘッドマウントデバイスのユーザに対応するアバターオブジェクトを前記仮想空間に配置するステップと、
撮影機能を有するカメラオブジェクトを、当該カメラオブジェクトの撮影範囲に前記アバターオブジェクトの少なくとも一部が含まれるように前記仮想空間に配置するステップと、
前記仮想空間における撮影に適したタイミングと前記カメラオブジェクトの位置とを前記ユーザに通知するステップと、
前記通知後に、前記カメラオブジェクトの撮影範囲に対応する画像を生成するステップとを実行させる、プログラム。
【請求項２】
前記プログラムは前記コンピュータに、前記ユーザの発話に対応する音声信号の入力を受け付けるステップをさらに実行させ、
前記通知するステップは、前記音声信号に基づいて前記タイミングを前記ユーザに通知することを含む、請求項１に記載のプログラム。
【請求項３】
前記通知するステップは、前記音声信号のレベルが予め定められたレベル以上である場合に前記タイミングを前記ユーザに通知することを含む、請求項２に記載のプログラム。
【請求項４】
前記通知するステップは、
前記音声信号から文字列を抽出することと、
前記抽出された文字列が予め定められた文字列を含む場合に前記タイミングを前記ユーザに通知することを含む、請求項２または３に記載のプログラム。
【請求項５】
前記プログラムは前記コンピュータに、
前記コンピュータと通信可能な他コンピュータのユーザに対応する他アバターオブジェクトを前記仮想空間に配置するステップと、
前記他コンピュータのユーザに対応する他音声信号の入力を受け付けるステップとをさらに実行させ、
前記カメラオブジェクトを前記仮想空間に配置するステップは、当該カメラオブジェクトの撮影範囲に前記アバターオブジェクトおよび前記他アバターオブジェクトの各々の少なくとも一部が含まれるように前記カメラオブジェクトを前記仮想空間に配置することを含み、
前記通知するステップは、
前記音声信号と前記他音声信号とに基づいて前記タイミングを前記ユーザに通知することと、
前記他コンピュータに当該タイミングを表す情報と前記カメラオブジェクトの位置を表す情報とを送信することとを含む、請求項２〜４のいずれか１項に記載のプログラム。
【請求項６】
前記プログラムは前記コンピュータに、前記アバターオブジェクトと前記他アバターオブジェクトとの間隔を算出するステップをさらに実行させ、
前記通知するステップは、前記算出された間隔が予め定められた間隔未満である場合に、前記音声信号と前記他音声信号とに基づいて前記タイミングを前記ユーザに通知することを含む、請求項５に記載のプログラム。
【請求項７】
前記通知するステップは、前記音声信号および前記他音声信号が予め定められたレベルを超えた場合に前記タイミングを前記ユーザに通知することを含む、請求項５または６に記載のプログラム。
【請求項８】
前記プログラムは前記コンピュータに、前記ユーザの表情を表すフェイストラッキングデータの入力を受け付けるステップをさらに実行させ、
前記通知するステップは、前記フェイストラッキングデータに基づいて前記タイミングを前記ユーザに通知することを含む、請求項１〜７のいずれか１項に記載のプログラム。
【請求項９】
前記プログラムは前記コンピュータに、前記フェイストラッキングデータとの比較に用いられる基準データの入力を受け付けるステップをさらに実行させ、
前記フェイストラッキングデータに基づいて前記タイミングを前記ユーザに通知することは、フェイストラッキングデータの前記基準データに対する変動量が予め定められた変動量を超えた場合に前記タイミングを前記ユーザに通知することを含む、請求項８に記載のプログラム。
【請求項１０】
前記プログラムは前記コンピュータに、
前記仮想空間にパノラマ動画像を展開するステップと、
前記ユーザとは異なる１以上の他ユーザの前記パノラマ動画像に関する履歴情報の入力を受け付けるステップと、
前記履歴情報に基づいて前記パノラマ動画像の中から前記他ユーザが関心を示した関心場所と関心タイミングとを検出するステップとをさらに実行させ、
前記通知するステップは、前記関心タイミングを前記ユーザに通知することを含み、
前記カメラオブジェクトを前記仮想空間に配置するステップは、前記カメラオブジェクトの撮影範囲に前記関心場所を含むように前記カメラオブジェクトを配置することを含む、請求項１〜９のいずれか１項に記載のプログラム。
【請求項１１】
前記履歴情報の入力を受け付けるステップは、前記ユーザの属性により選定される他ユーザの履歴情報の入力を受け付けることを含む、請求項１０に記載のプログラム。
【請求項１２】
前記履歴情報は、前記パノラマ動画像が展開される仮想空間において前記他ユーザが撮影を行なった際の、撮影タイミングおよび前記パノラマ動画像における撮影位置を含み、
前記検出するステップは、前記撮影タイミングと前記撮影位置とに基づいて前記関心場所と前記関心タイミングとを検出することを含む、請求項１０または１１に記載のプログラム。
【請求項１３】
前記履歴情報は、複数の前記他ユーザの各々の、前記パノラマ動画像における視点位置と当該視点位置に対応するタイミングとを含み、
前記検出するステップは、前記視点位置と、当該視点位置に対応するタイミングとに基づいて、前記関心場所と前記関心タイミングとを検出することを含む、請求項１０〜１２のいずれか１項に記載のプログラム。
【請求項１４】
前記履歴情報は、前記パノラマ動画像において複数の前記他ユーザの各々がコメントを投稿した投稿タイミングと、当該コメントが配置されるコメント位置とを含み、
前記検出するステップは、前記投稿タイミングと前記コメント位置とに基づいて、前記関心場所と前記関心タイミングとを検出することを含む、請求項１０〜１３のいずれか１項に記載のプログラム。
【請求項１５】
前記プログラムは前記コンピュータに、
前記仮想空間にパノラマ動画像を展開するステップと、
前記ユーザとは異なる１以上の他ユーザが前記パノラマ動画像において関心を示した関心場所と関心タイミングとの入力を受け付けるステップと、
前記通知するステップは、前記入力を受け付けた関心タイミングを前記ユーザに通知することを含み、
前記カメラオブジェクトを前記仮想空間に配置するステップは、前記カメラオブジェクトの撮影範囲に前記関心場所を含むように前記カメラオブジェクトを配置することを含む、請求項１〜９のいずれか１項に記載のプログラム。
【請求項１６】
前記カメラオブジェクトの位置を前記ユーザに通知することは、聴覚的または視覚的に通知することを含む、請求項１〜１５のいずれか１項に記載のプログラム。
【請求項１７】
前記画像を生成するステップは、前記アバターオブジェクトが前記カメラオブジェクトを向いていることを検出したことに基づいて、前記画像を生成することを含む、請求項１〜１６のいずれか１項に記載のプログラム。
【請求項１８】
請求項１〜１７のいずれか１項に記載のプログラムを格納したメモリと、
前記プログラムを実行するためのプロセッサとを備える、情報処理装置。
【請求項１９】
ヘッドマウントデバイスによって仮想空間を提供するためにコンピュータで実行される方法であって、
仮想空間を定義するステップと、
前記ヘッドマウントデバイスのユーザに対応するアバターオブジェクトを前記仮想空間に配置するステップと、
撮影機能を有するカメラオブジェクトを、当該カメラオブジェクトの撮影範囲に前記アバターオブジェクトの少なくとも一部が含まれるように前記仮想空間に配置するステップと、
前記仮想空間における撮影に適したタイミングと前記カメラオブジェクトの位置とを前記ユーザに通知するステップと、
前記通知後に、前記カメラオブジェクトの撮影範囲に対応する画像を生成するステップとを備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、仮想空間における撮影処理に関し、より特定的には、撮影タイミングを制御する技術に関する。
【背景技術】
【０００２】
ヘッドマウントデバイス（ＨＭＤ：Head-Mounted  Device）を用いて仮想空間（仮想現実空間）を提供する技術が知られている。また、仮想空間におけるユーザの体験を豊かにする様々な技術が提案されている。
【０００３】
例えば、特開２００３−１４１５６３号公報（特許文献１）は、「対象者の頭部を正面と側面の２方向から撮影した撮影情報から、個人特定に必要な顔特徴点を抽出し、該顔特徴点に基づいて、頭部骨格、鼻、口、眉、目といった各顔部品の３次元構造を復元し、これら各顔部品を一体化して、顔３次元形状を復元」し、仮想空間での自分の分身（アバター）を構成する技術を開示している。
【０００４】
また、非特許文献１は、仮想空間の配置されるアバターを仮想的なカメラによって撮影する技術を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１４１５６３号公報
【非特許文献】
【０００６】
【非特許文献１】“Ｏｃｕｌｕｓ、ＶＲ自撮り棒とアバターのデモを披露”、［online］、［平成２９年６月８日検索］、インターネット〈URL：http://jp.techcrunch.com/2016/04/14/20160413vr-selfie-stick/〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来、ユーザは、仮想空間に展開される景色やオブジェクトを撮影する際に、コントローラを操作するなどの能動的な行動を行なう必要があった。しかしながら、これらの行動を行なっている間に、撮影タイミングを逃してしまう場合があった。
【０００８】
また、仮想空間にパノラマ動画像（例えば３６０度動画）が展開されている場合、ユーザはパノラマ動画像のどのタイミング、どの位置が撮影ポイント（例えば、観光名所）であるかを把握することが難しい。そのため、より簡易な方法で仮想空間における撮影を実現するための技術が必要とされている。
【０００９】
本開示は、上記のような問題を解決するためになされたものであって、ある局面における目的は、ユーザの仮想空間における体験をより豊かにすることができる技術を提供することである。
【課題を解決するための手段】
【００１０】
ある実施形態に従うと、ヘッドマウントデバイスによって仮想空間を提供するためにコンピュータで実行されるプログラムが提供される。このプログラムはコンピュータに、仮想空間を定義するステップと、ヘッドマウントデバイスのユーザに対応するアバターオブジェクトを仮想空間に配置するステップと、撮影機能を有するカメラオブジェクトを、当該カメラオブジェクトの撮影範囲にアバターオブジェクトの少なくとも一部が含まれるように仮想空間に配置するステップと、仮想空間における撮影に適したタイミングとカメラオブジェクトの位置とをユーザに通知するステップと、通知後に、カメラオブジェクトの撮影範囲に対応する画像を生成するステップとを実行させる。
【００１１】
開示された技術的特徴の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１２】
【図１】本開示の技術思想を説明するための図である。
【図２】ＨＭＤシステムの構成の概略を表す図である。
【図３】ある局面に従うコンピュータのハードウェア構成の一例を表すブロック図である。
【図４】ある実施形態に従うＨＭＤに設定されるｕｖｗ視野座標系を概念的に表す図である。
【図５】ある実施形態に従う仮想空間を表現する一態様を概念的に表す図である。
【図６】ＨＭＤを装着するユーザの頭部を上から見た図である。
【図７】仮想空間において視認領域をＸ方向から見たＹＺ断面を表す図である。
【図８】仮想空間において視認領域をＹ方向から見たＸＺ断面を表す図である。
【図９】ある実施形態に従うコンピュータをモジュール構成として表わすブロック図である。
【図１０】ＨＭＤシステムが実行する処理を表わすフローチャートである。
【図１１Ａ】ネットワークにおいて、複数のＨＭＤが、複数のユーザにそれぞれ仮想空間を提供する状況を表す模式図である。
【図１１Ｂ】図１１Ａにおいてユーザが視認する視界画像を表す図である。
【図１２】ユーザの顔画像から口を検出する制御について説明する図である。
【図１３】トラッキングモジュールが口の形状を検出する処理を説明する図（その１）である。
【図１４】トラッキングモジュールが口の形状を検出する処理を説明するための図（その２）である。
【図１５】フェイストラッキングデータの構造の一例を表す図である。
【図１６】サーバのハードウェア構成およびモジュール構成を説明する図である。
【図１７】ある局面においてモニタに表示される視界画像を表す図である。
【図１８】音声に基づく自動撮影処理の一例を表すフローチャートである。
【図１９】自動撮影ＤＢのデータ構造の一例を表す図である。
【図２０】ある実施形態に従うカメラオブジェクトの配置処理について説明するための図である。
【図２１】図２０の状態において、モニタに表示される視界画像を表す図である。
【図２２Ａ】ユーザが無表情時に取得される顔の特徴点を表す図である。
【図２２Ｂ】ユーザが驚いたときに取得される顔の特徴点を表す図である。
【図２３】フェイストラッキングデータに基づく自動撮影処理の一例を表すフローチャートである。
【図２４】ユーザが仮想空間で能動的に撮影を行なう様子を表すための図である。
【図２５】撮影ＤＢのデータ構造の一例を表す図である。
【図２６】視点履歴ＤＢのデータ構造の一例を表す図である。
【図２７】視点履歴に基づく自動撮影処理を説明するためのパノラマ画像を表す図である。
【図２８】コメントＤＢのデータ構造の一例を表す図である。
【図２９】サーバが撮影タイミングを検出する処理の概要を表すフローチャートである。
【図３０】ユーザＤＢのデータ構造の一例を表す図である。
【図３１】他人のアバターオブジェクトを含む画像を生成するための処理を説明するための図である。
【図３２】プロセッサが、他のコンピュータと通信している状態において他のアバターオブジェクトを含む画像を自動的に生成する処理を表すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、この技術的思想の実施形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。なお、以下で説明される各実施形態は、適宜選択的に組み合わされてもよい。
【００１４】
［技術思想］
図１は、本開示の技術思想を説明するための図である。図１を参照して、コンピュータ２００は、ユーザ１９０が装着しているＨＭＤ（Head-Mounted  Device）１１０に仮想空間２を提供している。コンピュータ２００は、仮想空間２にパノラマ画像２２を展開している。図１の例において、パノラマ画像２２は動画像である。
【００１５】
コンピュータ２００は、ユーザ１９０に対応するアバターオブジェクト１１００を仮想空間２に配置する。コンピュータ２００はさらに、アバターオブジェクト１１００の視界領域に対応する画像をＨＭＤ１１０のモニタに表示する。これによりユーザ１９０は、パノラマ画像２２を視認する。また、コンピュータ２００は、撮影機能を有するカメラオブジェクト１７１０を仮想空間２に配置する。
【００１６】
コンピュータ２００は、撮影に適したタイミング（以下、「撮影タイミング」とも言う）を検出する。コンピュータ２００は、撮影タイミングとカメラオブジェクト１７１０の位置とをユーザ１９０に通知する。コンピュータ２００は、上記通知を行なった後に、カメラオブジェクト１７１０の撮影範囲１７３０に対応する画像を生成する（カメラオブジェクト１７１０による撮影を実行する）。
【００１７】
コンピュータ２００が撮影タイミングを検出する処理の概要について説明する。ある実施形態において、ユーザ１９０は、パノラマ画像２２を見て感動する。コンピュータ２００は、ユーザ１９０の発話（に対応する音声信号）またはユーザ１９０の顔の表情に基づいて、ユーザ１９０が感動したことを検出する。コンピュータ２００は、ユーザ１９０が感動したタイミングを、撮影タイミングとして検出する。
【００１８】
他の実施形態において、コンピュータ２００は、ユーザ１９０とは異なる他のユーザのパノラマ画像２２の履歴情報に基づいて撮影タイミングを検出する。履歴情報は、パノラマ画像２２のどの部分が他のユーザに多く視られていたか、パノラマ画像２２のどの部分が他のユーザに多く撮影されたか、等の情報を含む。
【００１９】
一例として、ユーザ１９０の発話に対応する音声信号に基づく自動撮影処理について説明する。図１を参照して、ステップＳ１０においてユーザ１９０は、パノラマ画像２２に感動して「すごーい」と発話する。コンピュータ２００は、ＨＭＤ１１０に設けられたマイクによって、ユーザ１９０の発話に対応する音声信号の入力を受け付ける。
【００２０】
ステップＳ２０において、コンピュータ２００は、音声信号から文字列を抽出する。コンピュータ２００は、抽出した文字列が感嘆詞（予め定められた単語）を含むことに基づいて、撮影タイミングを検出する。コンピュータ２００は、撮影タイミングを検出したことに基づいてカメラオブジェクト１７１０を仮想空間２に配置する。このとき、コンピュータ２００は、カメラオブジェクト１７１０の撮影範囲１７３０にアバターオブジェクト１１００の少なくとも一部（例えば、頭部）が含まれるようにカメラオブジェクト１７１０を配置する。
【００２１】
ステップＳ３０において、コンピュータ２００は、撮影タイミングであること、およびカメラオブジェクト１７１０の位置をユーザ１９０に通知する。例えば、コンピュータ２００は、ＨＭＤ１１０のモニタ（ユーザ１９０の視界）にカメラオブジェクト１７１０を配置することによって、カメラオブジェクト１７１０の位置をユーザ１９０に通知する。また、コンピュータ２００は、ＨＭＤ１１０に設けられたスピーカから音声（図１の例では「こっち向いて」）を出力することにより、撮影タイミングをユーザ１９０に通知する。これらの処理により、ユーザ１９０はカメラオブジェクト１７１０を見る。その結果、ユーザ１９０に対応するアバターオブジェクト１１００はカメラオブジェクト１７１０の方向を向く。
【００２２】
ステップＳ４０において、コンピュータ２００は、カメラオブジェクト１７１０による撮影を実行して、カメラオブジェクト１７１０の撮影範囲１７３０に対応する画像を生成する。これにより、コンピュータ２００は、撮影に適したタイミングで、カメラ目線のアバターオブジェクト１１００を含む画像を自動的に生成する。
【００２３】
上記によれば、ユーザ１９０は、能動的に撮影操作を行なわなくても、撮影タイミングで撮影された画像（例えば、カメラ目線の画像）を得ることができる。このように、コンピュータ２００は、ユーザ１９０の仮想空間２における仮想体験を豊かにできる。以下、このような処理を実現するための具体的な構成および制御について説明する。
【００２４】
［ＨＭＤシステムの構成］
図２を参照して、ＨＭＤ（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）その他の無線通信インターフェイスとして実現される。なお、通信インターフェイス１４は上述のものに限られない。
【００４８】
ある局面において、プロセッサ１０は、ストレージ１２にアクセスし、ストレージ１２に格納されている１つ以上のプログラムをメモリ１１にロードし、当該プログラムに含まれる一連の命令を実行する。当該１つ以上のプログラムは、コンピュータ２００のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ１０は、入出力インターフェイス１３を介して、仮想空間を提供するための信号をＨＭＤ１１０に送る。ＨＭＤ１１０は、その信号に基づいてモニタ１１２に映像を表示する。
【００４９】
なお、図３に示される例では、コンピュータ２００は、ＨＭＤ１１０の外部に設けられる構成が示されているが、別の局面において、コンピュータ２００は、ＨＭＤ１１０に内蔵されてもよい。一例として、モニタ１１２を含む携帯型の情報通信端末（例えば、スマートフォン）がコンピュータ２００として機能してもよい。
【００５０】
また、コンピュータ２００は、複数のＨＭＤ１１０に共通して用いられる構成であってもよい。このような構成によれば、例えば、複数のユーザに同一の仮想空間を提供することもできるので、各ユーザは同一の仮想空間で他のユーザと同一のアプリケーションを楽しむことができる。
【００５１】
ある実施形態において、ＨＭＤシステム１００では、グローバル座標系が予め設定されている。グローバル座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、並びに、鉛直方向および水平方向の双方に直交する前後方向にそれぞれ平行な、３つの基準方向（軸）を有する。本実施形態では、グローバル座標系は視点座標系のひとつである。そこで、グローバル座標系における水平方向、鉛直方向（上下方向）、および前後方向は、それぞれ、ｘ軸、ｙ軸、ｚ軸と規定される。より具体的には、グローバル座標系において、ｘ軸は現実空間の水平方向に平行である。ｙ軸は、現実空間の鉛直方向に平行である。ｚ軸は現実空間の前後方向に平行である。
【００５２】
ある局面において、ＨＭＤセンサ１２０は、赤外線センサを含む。赤外線センサが、ＨＭＤ１１０の各光源から発せられた赤外線をそれぞれ検出すると、ＨＭＤ１１０の存在を検出する。ＨＭＤセンサ１２０は、さらに、各点の値（グローバル座標系における各座標値）に基づいて、ＨＭＤ１１０を装着したユーザ１９０の動きに応じた、現実空間内におけるＨＭＤ１１０の位置および傾き（向き）を検出する。より詳しくは、ＨＭＤセンサ１２０は、経時的に検出された各値を用いて、ＨＭＤ１１０の位置および傾きの時間的変化を検出できる。
【００５３】
グローバル座標系は現実空間の座標系と平行である。したがって、ＨＭＤセンサ１２０によって検出されたＨＭＤ１１０の各傾きは、グローバル座標系におけるＨＭＤ１１０の３軸周りの各傾きに相当する。ＨＭＤセンサ１２０は、グローバル座標系におけるＨＭＤ１１０の傾きに基づき、ｕｖｗ視野座標系をＨＭＤ１１０に設定する。ＨＭＤ１１０に設定されるｕｖｗ視野座標系は、ＨＭＤ１１０を装着したユーザ１９０が仮想空間において物体を見る際の視点座標系に対応する。
【００５４】
［ｕｖｗ視野座標系］
図４を参照して、ｕｖｗ視野座標系について説明する。図４は、ある実施形態に従うＨＭＤ１１０に設定されるｕｖｗ視野座標系を概念的に表す図である。ＨＭＤセンサ１２０は、ＨＭＤ１１０の起動時に、グローバル座標系におけるＨＭＤ１１０の位置および傾きを検出する。プロセッサ１０は、検出された値に基づいて、ｕｖｗ視野座標系をＨＭＤ１１０に設定する。
【００５５】
図４に示されるように、ＨＭＤ１１０は、ＨＭＤ１１０を装着したユーザ１９０の頭部を中心（原点）とした３次元のｕｖｗ視野座標系を設定する。より具体的には、ＨＭＤ１１０は、グローバル座標系を規定する水平方向、鉛直方向、および前後方向（ｘ軸、ｙ軸、ｚ軸）を、グローバル座標系内においてＨＭＤ１１０の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる３つの方向を、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ軸（ｕ軸）、ヨー軸（ｖ軸）、およびロール軸（ｗ軸）として設定する。
【００５６】
ある局面において、ＨＭＤ１１０を装着したユーザ１９０が直立し、かつ、正面を視認している場合、プロセッサ１０は、グローバル座標系に平行なｕｖｗ視野座標系をＨＭＤ１１０に設定する。この場合、グローバル座標系における水平方向（ｘ軸）、鉛直方向（ｙ軸）、および前後方向（ｚ軸）は、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ軸（ｕ軸）、ヨー軸（ｖ軸）、およびロール軸（ｗ軸）に一致する。
【００５７】
ｕｖｗ視野座標系がＨＭＤ１１０に設定された後、ＨＭＤセンサ１２０は、ＨＭＤ１１０の動きに基づいて、設定されたｕｖｗ視野座標系におけるＨＭＤ１１０の傾きを検出できる。この場合、ＨＭＤセンサ１２０は、ＨＭＤ１１０の傾きとして、ｕｖｗ視野座標系におけるＨＭＤ１１０のピッチ角（θｕ）、ヨー角（θｖ）、およびロール角（θｗ）をそれぞれ検出する。ピッチ角（θｕ）は、ｕｖｗ視野座標系におけるピッチ軸周りのＨＭＤ１１０の傾き角度を表す。ヨー角（θｖ）は、ｕｖｗ視野座標系におけるヨー軸周りのＨＭＤ１１０の傾き角度を表す。ロール角（θｗ）は、ｕｖｗ視野座標系におけるロール軸周りのＨＭＤ１１０の傾き角度を表す。
【００５８】
ＨＭＤセンサ１２０は、検出されたＨＭＤ１１０の傾きに基づいて、ＨＭＤ１１０が動いた後のＨＭＤ１１０におけるｕｖｗ視野座標系を、ＨＭＤ１１０に設定する。ＨＭＤ１１０と、ＨＭＤ１１０のｕｖｗ視野座標系との関係は、ＨＭＤ１１０の位置および傾きに関わらず、常に一定である。ＨＭＤ１１０の位置および傾きが変わると、当該位置および傾きの変化に連動して、グローバル座標系におけるＨＭＤ１１０のｕｖｗ視野座標系の位置および傾きが変化する。
【００５９】
ある局面において、ＨＭＤセンサ１２０は、赤外線センサからの出力に基づいて取得される赤外線の強度および複数の点間の相対的な位置関係（例えば、各点間の距離など）に基づいて、ＨＭＤ１１０の現実空間内における位置を、ＨＭＤセンサ１２０に対する相対位置として特定してもよい。また、プロセッサ１０は、特定された相対位置に基づいて、現実空間内（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系の原点を決定してもよい。
【００６０】
［仮想空間］
図５を参照して、仮想空間についてさらに説明する。図５は、ある実施形態に従う仮想空間２を表現する一態様を概念的に表す図である。仮想空間２は、中心２１の３６０度方向の全体を覆う全天球状の構造を有する。図５では、説明を複雑にしないために、仮想空間２のうちの上半分の天球が例示されている。仮想空間２では各メッシュが規定される。各メッシュの位置は、仮想空間２に規定されるＸＹＺ座標系における座標値として予め規定されている。コンピュータ２００は、仮想空間２に展開可能なパノラマ画像２２（静止画、動画等）を構成する各部分画像を、仮想空間２において対応する各メッシュにそれぞれ対応付ける。
【００６１】
ある局面において、仮想空間２では、中心２１を原点とするＸＹＺ座標系が規定される。ＸＹＺ座標系は、例えば、グローバル座標系に平行である。ＸＹＺ座標系は視点座標系の一種であるため、ＸＹＺ座標系における水平方向、鉛直方向（上下方向）、および前後方向は、それぞれＸ軸、Ｙ軸、Ｚ軸として規定される。したがって、ＸＹＺ座標系のＸ軸（水平方向）がグローバル座標系のｘ軸と平行であり、ＸＹＺ座標系のＹ軸（鉛直方向）がグローバル座標系のｙ軸と平行であり、ＸＹＺ座標系のＺ軸（前後方向）がグローバル座標系のｚ軸と平行である。
【００６２】
ＨＭＤ１１０の起動時、すなわちＨＭＤ１１０の初期状態において、仮想カメラ１が、仮想空間２の中心２１に配置される。ある局面において、プロセッサ１０は、仮想カメラ１が撮影する画像をＨＭＤ１１０のモニタ１１２に表示する。仮想カメラ１は、現実空間におけるＨＭＤ１１０の動きに連動して、仮想空間２を同様に移動する。これにより、現実空間におけるＨＭＤ１１０の位置および傾きの変化が、仮想空間２において同様に再現され得る。
【００６３】
仮想カメラ１には、ＨＭＤ１１０の場合と同様に、ｕｖｗ視野座標系が規定される。仮想空間２における仮想カメラのｕｖｗ視野座標系は、現実空間（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系に連動するように規定されている。したがって、ＨＭＤ１１０の傾きが変化すると、それに応じて、仮想カメラ１の傾きも変化する。また、仮想カメラ１は、ＨＭＤ１１０を装着したユーザ１９０の現実空間における移動に連動して、仮想空間２において移動することもできる。
【００６４】
コンピュータ２００のプロセッサ１０は、仮想カメラ１の位置と傾き（基準視線５）とに基づいて、仮想カメラ１の撮影範囲である視認領域２３を規定する。基準視線５は、仮想カメラ１の撮影方向とも言える。視認領域２３は、仮想空間２のうち、ＨＭＤ１１０を装着したユーザ１９０が視認する領域に対応する。つまり、仮想カメラ１の位置は、仮想空間２におけるユーザ１９０の視座と言える。
【００６５】
注視センサ１４０によって検出されるユーザ１９０の視線は、ユーザ１９０が物体を視認する際の視点座標系における方向である。ＨＭＤ１１０のｕｖｗ視野座標系は、ユーザ１９０がモニタ１１２を視認する際の視点座標系に等しい。また、仮想カメラ１のｕｖｗ視野座標系は、ＨＭＤ１１０のｕｖｗ視野座標系に連動している。したがって、ある局面に従うＨＭＤシステム１００は、注視センサ１４０によって検出されたユーザ１９０の視線を、仮想カメラ１のｕｖｗ視野座標系におけるユーザ１９０の視線とみなすことができる。
【００６６】
［ユーザの視線］
図６を参照して、ユーザの視線の決定について説明する。図６は、ＨＭＤ１１０を装着するユーザ１９０の頭部を上から見た図である。
【００６７】
ある局面において、注視センサ１４０は、ユーザ１９０の右目および左目の各視線を検出する。ある局面において、ユーザ１９０が近くを見ている場合、注視センサ１４０は、視線Ｒ１およびＬ１を検出する。別の局面において、ユーザ１９０が遠くを見ている場合、注視センサ１４０は、視線Ｒ２およびＬ２を検出する。この場合、ロール軸ｗに対して視線Ｒ２およびＬ２が成す角度は、ロール軸ｗに対して視線Ｒ１およびＬ１が成す角度よりも小さい。注視センサ１４０は、検出結果をコンピュータ２００に送信する。
【００６８】
コンピュータ２００が、視線の検出結果として、視線Ｒ１およびＬ１の検出値を注視センサ１４０から受信した場合には、その検出値に基づいて、視線Ｒ１およびＬ１の交点である注視点Ｎ１を特定する。一方、コンピュータ２００は、視線Ｒ２およびＬ２の検出値を注視センサ１４０から受信した場合には、視線Ｒ２およびＬ２の交点を注視点として特定する。コンピュータ２００は、特定した注視点Ｎ１の位置に基づき、ユーザ１９０の視線Ｎ０を特定する。コンピュータ２００は、例えば、ユーザ１９０の右目Ｒと左目Ｌとを結ぶ直線の中点と、注視点Ｎ１とを通る直線の延びる方向を、視線Ｎ０として検出する。視線Ｎ０は、ユーザ１９０が両目により実際に視線を向けている方向である。また、視線Ｎ０は、視認領域２３に対してユーザ１９０が実際に視線を向けている方向に相当する。
【００６９】
また、別の局面において、ＨＭＤシステム１００は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、ＨＭＤシステム１００は、仮想空間２においてテレビ番組を表示することができる。
【００７０】
さらに別の局面において、ＨＭＤシステム１００は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。
【００７１】
［視界領域］
図７および図８を参照して、視認領域２３について説明する。図７は、仮想空間２において視認領域２３をＸ方向から見たＹＺ断面を表す図である。図８は、仮想空間２において視認領域２３をＹ方向から見たＸＺ断面を表す図である。
【００７２】
図７に示されるように、ＹＺ断面における視認領域２３は、領域２４を含む。領域２４は、仮想カメラ１の位置と基準視線５と仮想空間２のＹＺ断面とによって定義される。プロセッサ１０は、仮想空間における基準視線５を中心として極角αを含む範囲を、領域２４として規定する。
【００７３】
図８に示されるように、ＸＺ断面における視認領域２３は、領域２５を含む。領域２５は、仮想カメラ１の位置と基準視線５と仮想空間２のＸＺ断面とによって定義される。プロセッサ１０は、仮想空間２における基準視線５を中心とした方位角βを含む範囲を、領域２５として規定する。極角αおよびβは、仮想カメラ１の位置と仮想カメラ１の傾き（向き）とに応じて定まる。
【００７４】
ある局面において、ＨＭＤシステム１００は、コンピュータ２００からの信号に基づいて、視界画像２６をモニタ１１２に表示させることにより、ユーザ１９０に仮想空間における視界を提供する。視界画像２６は、パノラマ画像２２のうち視認領域２３に対応する部分に相当する。ユーザ１９０が、頭に装着したＨＭＤ１１０を動かすと、その動きに連動して仮想カメラ１も動く。その結果、仮想空間２における視認領域２３の位置が変化する。これにより、モニタ１１２に表示される視界画像２６は、パノラマ画像２２のうち、仮想空間２においてユーザ１９０が向いた方向の視認領域２３に重畳する画像に更新される。ユーザ１９０は、仮想空間２における所望の方向を視認することができる。
【００７５】
このように、仮想カメラ１の傾きは仮想空間２におけるユーザ１９０の視線（基準視線５）に相当し、仮想カメラ１が配置される位置は、仮想空間２におけるユーザ１９０の視点に相当する。したがって、仮想カメラ１の位置または傾きを変更することにより、モニタ１１２に表示される画像が更新され、ユーザ１９０の視界が移動される。
【００７６】
ユーザ１９０は、ＨＭＤ１１０を装着している間、現実世界を視認することなく、仮想空間２に展開されるパノラマ画像２２のみを視認できる。そのため、ＨＭＤシステム１００は、仮想空間２への高い没入感覚をユーザ１９０に与えることができる。
【００７７】
ある実施形態に従う仮想カメラ１は、２つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含み得る。この場合、ユーザ１９０が３次元の仮想空間２を認識できるように、適切な視差が、２つの仮想カメラに設定される。本実施形態においては、仮想カメラ１が２つの仮想カメラを含み、２つの仮想カメラのロール軸が合成されることによって生成されるロール軸（ｗ）がＨＭＤ１１０のロール軸（ｗ）に適合されるように構成されているものとして、本開示に係る技術思想を例示する。
【００７８】
［ＨＭＤの制御装置］
図９を参照して、ＨＭＤ１１０の制御装置について説明する。ある実施形態において、制御装置は周知の構成を有するコンピュータ２００によって実現される。図９は、ある実施形態に従うコンピュータ２００をモジュール構成として表わすブロック図である。
【００７９】
図９に示されるように、コンピュータ２００は、表示制御モジュール２２０と、仮想空間制御モジュール２３０と、メモリモジュール２４０と、通信制御モジュール２５０とを備える。表示制御モジュール２２０は、サブモジュールとして、仮想カメラ制御モジュール２２１と、視界領域決定モジュール２２２と、視界画像生成モジュール２２３と、傾き特定モジュール２２４と、顔器官検出モジュール２２５と、トラッキングモジュール２２６と、視点特定モジュール２２７とを含む。仮想空間制御モジュール２３０は、サブモジュールとして、仮想空間定義モジュール２３１と、仮想オブジェクト生成モジュール２３２と、操作オブジェクト制御モジュール２３３と、アバター制御モジュール２３４と、撮影制御モジュール２３５と、感情判断モジュール２３６とを含む。
【００８０】
ある実施形態において、表示制御モジュール２２０と仮想空間制御モジュール２３０とは、プロセッサ１０によって実現される。別の実施形態において、複数のプロセッサ１０が表示制御モジュール２２０と仮想空間制御モジュール２３０として作動してもよい。メモリモジュール２４０は、メモリ１１またはストレージ１２によって実現される。通信制御モジュール２５０は、通信インターフェイス１４によって実現される。
【００８１】
ある局面において、表示制御モジュール２２０は、ＨＭＤ１１０のモニタ１１２における画像表示を制御する。
【００８２】
仮想カメラ制御モジュール２２１は、仮想空間２に仮想カメラ１を配置する。また、仮想カメラ制御モジュール２２１は、仮想空間２における仮想カメラ１の位置と、仮想カメラ１の傾き（撮影方向）を制御する。視界領域決定モジュール２２２は、ＨＭＤ１１０の傾きと、仮想カメラ１の位置とに応じて、視認領域２３を規定する。視界画像生成モジュール２２３は、決定された視認領域２３に基づいて、モニタ１１２に表示される視界画像２６を生成する。
【００８３】
傾き特定モジュール２２４は、ＨＭＤセンサ１２０の出力に基づいてＨＭＤ１１０の傾きを特定する。他の局面において、傾き特定モジュール２２４は、モーションセンサとして機能するセンサ１１４の出力に基づいてＨＭＤ１１０の傾きを特定する。顔器官検出モジュール２２５は、第１カメラ１１５および第２カメラ１１７が生成するユーザ１９０の顔の画像から、ユーザ１９０の顔を構成する器官（例えば、口，目，眉）を検出する。トラッキングモジュール２２６は、顔器官検出モジュール２２５が検出した各器官ごとの特徴点（の位置）を間欠的に検出する。換言すれば、トラッキングモジュール２２６は、ユーザ１９０の表情を検出する。図１２〜図１４において、顔器官検出モジュール２２５およびトラッキングモジュール２２６の制御内容は後述される。
【００８４】
視点特定モジュール２２７は、注視センサ１４０からの信号に基づいて、ユーザ１９０の仮想空間２における視線を検出する。次に、視点特定モジュール２２７は、検出したユーザ１９０の視線と仮想空間２の天球とが交わる視点位置（ＸＹＺ座標系における座標値）を検出する。より具体的には、視点特定モジュール２２７は、仮想カメラ１の位置および傾きに基づいて、ｕｖｗ座標系で規定されるユーザ１９０の視線をＸＹＺ座標系に変換して視点位置を検出する。
【００８５】
仮想空間制御モジュール２３０は、ユーザ１９０に提供される仮想空間２を制御する。仮想空間定義モジュール２３１は、仮想空間２の大きさおよび形状を定義する。また、仮想空間定義モジュール２３１は、仮想空間２にパノラマ画像２２を展開する。
【００８６】
仮想オブジェクト生成モジュール２３２は、後述するオブジェクト情報２４２に基づいて仮想空間２に配置されるオブジェクトを生成する。オブジェクトは、木、動物、人などを含み得る。
【００８７】
操作オブジェクト制御モジュール２３３は、仮想空間２においてユーザ１９０の操作を受け付けるための操作オブジェクトを仮想空間２に配置する。ユーザ１９０は、操作オブジェクトを操作することにより、例えば、仮想空間２に配置されるオブジェクトを操作する。ある局面において、操作オブジェクトは、例えば、ユーザ１９０の手に相当する手オブジェクト等を含み得る。ある局面において、操作オブジェクト制御モジュール２３３は、モーションセンサ１３０の出力に基づいて現実空間におけるユーザ１９０の手の動きに連動するように仮想空間２における手オブジェクトを動かす。ある局面において、操作オブジェクトは、後述するアバターオブジェクトの手の部分に相当する。
【００８８】
アバター制御モジュール２３４は、ネットワーク１９を介して接続される他のコンピュータ２００のユーザ１９０のアバターオブジェクトを仮想空間２に配置するためのデータを生成する。ある局面において、アバター制御モジュール２３４は、ユーザ１９０のアバターオブジェクトを仮想空間２に配置するためのデータを生成する。ある局面において、アバター制御モジュール２３４は、ユーザ１９０を含む画像に基づいて、ユーザ１９０を模したアバターオブジェクトを生成する。他の局面において、アバター制御モジュール２３４は、複数種類のアバターオブジェクト（例えば、動物を模したオブジェクトや、デフォルメされた人のオブジェクト）の中から選択されたアバターオブジェクトを仮想空間２に配置するためのデータを生成する。
【００８９】
アバター制御モジュール２３４は、ＨＭＤセンサ１２０が検出するＨＭＤ１１０の動きをアバターオブジェクトに反映する。例えば、アバター制御モジュール２３４は、ＨＭＤ１１０が傾いたことを検知して、アバターオブジェクトを傾けて配置するためのデータを生成する。また、ある局面において、アバター制御モジュール２３４は、コントローラ１６０の動きをアバターオブジェクトの手（操作オブジェクト）に反映する。この場合、コントローラ１６０は、コントローラ１６０の動きを検知するためのモーションセンサ、加速度センサ、または複数の発光素子（例えば、赤外線ＬＥＤ）などを備える。また、アバター制御モジュール２３４は、トラッキングモジュール２２６が検出したユーザ１９０の表情を、仮想空間２に配置されるアバターオブジェクトの顔に反映する。
【００９０】
撮影制御モジュール２３５は、図１で説明したカメラオブジェクト１７１０による撮影を制御する。例えば、撮影制御モジュール２３５は、カメラオブジェクト１７１０を配置するタイミング、カメラオブジェクト１７１０の位置および向きを制御する。また、撮影制御モジュール２３５は、カメラオブジェクト１７１０の撮影範囲１７３０に対応する画像を生成して、ストレージ１２に保存する。
【００９１】
感情判断モジュール２３６は、ユーザ１９０の感情を判断する。ある局面において、感情判断モジュール２３６は、マイク１１９から入力されるユーザ１９０の音声信号に基づいてユーザ１９０の感情を判断する。他の局面において、感情判断モジュール２３６は、トラッキングモジュール２２６によって検出されるユーザ１９０の表情によってユーザ１９０の感情を判断する。
【００９２】
仮想空間制御モジュール２３０は、仮想空間２に配置されるオブジェクトが、他のオブジェクトと衝突した場合に、当該衝突を検出する。仮想空間制御モジュール２３０は、例えば、あるオブジェクトと、別のオブジェクトとが触れたタイミングを検出すると、予め定められた処理を行なう。仮想空間制御モジュール２３０は、オブジェクトとオブジェクトとが触れている状態から離れたタイミングを検出すると、予め定められた処理を行なう。
【００９３】
メモリモジュール２４０は、空間情報２４１と、オブジェクト情報２４２と、ユーザ情報２４３と、顔情報２４４とを保持している。
【００９４】
空間情報２４１は、仮想空間２を提供するために規定された１つ以上のテンプレートを含む。仮想空間定義モジュール２３１は、このテンプレートに従い仮想空間２を定義する。空間情報２４１は、仮想空間２に展開される複数のパノラマ画像２２をさらに含む。パノラマ画像２２は、静止画像および動画像を含み得る。また、パノラマ画像２２は、現実空間の画像と非現実空間の画像（例えば、コンピュータグラフィックス）とを含み得る。
【００９５】
オブジェクト情報２４２は、仮想空間２に配置されるオブジェクト（例えば、カメラオブジェクト１７１０）を生成するためのデータを含む。
【００９６】
ユーザ情報２４３は、ユーザ１９０を識別するユーザＩＤを含む。ユーザＩＤは、例えば、ユーザ１９０が使用するコンピュータ２００に設定されるＩＰ（Internet  Protocol）アドレスまたはＭＡＣ（Media  Access  Control）アドレスであり得る。他の局面において、ユーザＩＤはユーザによって設定され得る。ユーザ情報２４３は、ＨＭＤシステム１００の制御装置としてコンピュータ２００を機能させるためのプログラム等を含む。
【００９７】
顔情報２４４は、顔器官検出モジュール２２５が、ユーザ１９０の顔器官を検出するために予め記憶されたテンプレートを含む。ある実施形態において、顔情報２４４は、口テンプレート２４５と、目テンプレート２４６と、眉テンプレート２４７とを含む。各テンプレートは、顔を構成する器官に対応する画像であり得る。例えば、口テンプレート２４５は、口の画像であり得る。なお、各テンプレートは複数の画像を含んでもよい。顔情報２４４は、基準データ２４８をさらに含む。基準データ２４８は、ユーザ１９０が無表情である状態において、トラッキングモジュール２２６によって検出されるデータである。
【００９８】
メモリモジュール２４０に格納されているデータおよびプログラムは、ＨＭＤ１１０のユーザ１９０によって入力される。あるいは、プロセッサ１０が、当該コンテンツを提供する事業者が運営するコンピュータ（例えば、サーバ１５０）からプログラムあるいはデータをダウンロードして、ダウンロードされたプログラムあるいはデータをメモリモジュール２４０に格納する。
【００９９】
通信制御モジュール２５０は、ネットワーク１９を介して、サーバ１５０その他の情報通信装置と通信し得る。
【０１００】
ある局面において、表示制御モジュール２２０および仮想空間制御モジュール２３０は、例えば、ユニティテクノロジーズ社によって提供されるＵｎｉｔｙ（登録商標）を用いて実現され得る。別の局面において、表示制御モジュール２２０および仮想空間制御モジュール２３０は、各処理を実現する回路素子の組み合わせとしても実現され得る。
【０１０１】
コンピュータ２００における処理は、ハードウェアと、プロセッサ１０により実行されるソフトウェアとによって実現される。このようなソフトウェアは、ハードディスクその他のメモリモジュール２４０に予め格納されている場合がある。また、ソフトウェアは、ＣＤ−ＲＯＭその他のコンピュータ読み取り可能な不揮発性のデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、当該ソフトウェアは、インターネットその他のネットワークに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。このようなソフトウェアは、光ディスク駆動装置その他のデータ読取装置によってデータ記録媒体から読み取られて、あるいは、通信制御モジュール２５０を介してサーバ１５０その他のコンピュータからダウンロードされた後、ストレージ１２に一旦格納される。そのソフトウェアは、プロセッサ１０によってストレージ１２から読み出され、実行可能なプログラムの形式でメモリ１１に格納される。プロセッサ１０は、そのプログラムを実行する。
【０１０２】
［コンピュータ２００の制御構造］
次に、図１０を用いて実施形態に係るコンピュータ２００の制御構造について説明する。図１０は、ＨＭＤシステム１００が実行する処理を表わすフローチャートである。
【０１０３】
ステップＳ１００５において、コンピュータ２００のプロセッサ１０は、仮想空間定義モジュール２３１として、空間情報２４１に格納されるテンプレートに基づいて仮想空間２を定義する。
【０１０４】
ステップＳ１０１０において、プロセッサ１０は、仮想空間２にパノラマ画像２２を展開する。
【０１０５】
ステップＳ１０２０において、プロセッサ１０は、仮想カメラ１および操作オブジェクトを仮想空間２に配置する。例えば、プロセッサ１０は、メモリのワーク領域において、仮想カメラ１を仮想空間２において予め規定された中心２１に配置する。
【０１０６】
ステップＳ１０３０において、プロセッサ１０は、視界画像生成モジュール２２３として、初期の視界画像２６（パノラマ画像２２の一部）を表示するための視界画像データを生成する。生成された視界画像データは、視界画像生成モジュール２２３を介して通信制御モジュール２５０によってＨＭＤ１１０に送信される。
【０１０７】
ステップＳ１０３２において、ＨＭＤ１１０のモニタ１１２は、コンピュータ２００から受信した信号に基づいて、視界画像２６を表示する。これにより、ＨＭＤ１１０を装着したユーザ１９０は、仮想空間２を認識する。
【０１０８】
ステップＳ１０３４において、ＨＭＤセンサ１２０は、ＨＭＤ１１０が出力する複数の赤外線光に基づいて、ＨＭＤ１１０の位置および傾き（ユーザ１９０の動き）を検知する。検知結果は、動き検知データとして、コンピュータ２００に送信される。
【０１０９】
ステップＳ１０４０において、プロセッサ１０は、ＨＭＤセンサ１２０から入力された動き検知データに基づいて、仮想カメラ１の位置および傾きを変更する。これにより、仮想カメラ１の位置および傾き（基準視線５）は、ユーザ１９０の頭の動きに連動して更新される。視界領域決定モジュール２２２は、変更後の仮想カメラ１の位置および傾きに応じて視認領域２３を規定する。
【０１１０】
ステップＳ１０４６において、モーションセンサ１３０は、現実空間におけるユーザ１９０の手の動きを検出する。モーションセンサ１３０は、検出結果をコンピュータ２００に送信する。
【０１１１】
ステップＳ１０５０において、プロセッサ１０は、操作オブジェクト制御モジュール２３５として、モーションセンサ１３０の出力に基づいて操作オブジェクト（例えば、アバターオブジェクトの手）を移動する。プロセッサ１０は、操作オブジェクトの移動により操作オブジェクトと他のオブジェクトとが接触したことを検出すると、予め定められた処理を実行する。
【０１１２】
ステップＳ１０６０において、プロセッサ１０は、視界画像生成モジュール２２３として、移動後の仮想カメラ１が撮影する視界画像２６を表示するための視界画像データを生成し、生成した視界画像データをＨＭＤ１１０に出力する。
【０１１３】
ステップＳ１０６２において、ＨＭＤ１１０のモニタ１１２は、受信した視界画像データに基づいて、更新後の視界画像を表示する。これにより、仮想空間２におけるユーザの視界が更新される。
【０１１４】
［アバターオブジェクト］
図１１Ａおよび図１１Ｂを参照して、実施形態に従うアバターオブジェクトについて説明する。以下、ＨＭＤセット１０５Ａのユーザをユーザ１９０Ａ、ＨＭＤセット１０５Ｂのユーザをユーザ１９０Ｂ、ＨＭＤセット１０５Ｃのユーザをユーザ１９０Ｃ、ＨＭＤセット１０５Ｄのユーザをユーザ１９０Ｄと表す。また、ＨＭＤセット１０５Ａに関する各構成要素の参照符号にＡが付され、ＨＭＤセット１０５Ｂに関する各構成要素の参照符号にＢが付され、ＨＭＤセット１０５Ｃに関する各構成要素の参照符号にＣが付され、ＨＭＤセット１０５Ｄに関する各構成要素の参照符号にＤが付される。例えば、ＨＭＤ１１０Ａは、ＨＭＤセット１０５Ａに含まれる。
【０１１５】
図１１Ａは、ネットワーク１９において、複数のＨＭＤ１１０が、複数のユーザ１９０にそれぞれ仮想空間を提供する状況を表す模式図である。図１１Ａを参照して、コンピュータ２００Ａ〜２００Ｄは、ＨＭＤ１１０Ａ〜１１０Ｄを介して、ユーザ１９０Ａ〜１９０Ｄに、仮想空間２Ａ〜２Ｄをそれぞれ提供する。図１１Ａに示される例において、仮想空間２Ａおよび仮想空間２Ｂは同じデータによって構成されている。換言すれば、コンピュータ２００Ａとコンピュータ２００Ｂとは同じ仮想空間を共有していることになる。仮想空間２Ａおよび仮想空間２Ｂには、ユーザ１９０Ａに対応するアバターオブジェクト１１００Ａと、ユーザ１９０Ｂに対応するアバターオブジェクト１１００Ｂとが存在する。なお、仮想空間２Ａにおけるアバターオブジェクト１１００Ａおよび仮想空間２Ｂにおけるアバターオブジェクト１１００ＢがそれぞれＨＭＤを装着しているが、これは説明を分かりやすくするためのものであって、実際にはこれらのオブジェクトはＨＭＤを装着していない。
【０１１６】
ある局面において、仮想カメラ制御モジュール２２１Ａは、ユーザ１９０Ａの視界画像２６Ａを撮影する仮想カメラ１Ａを、アバターオブジェクト１１００Ａの目の位置に配置する。基準視線５Ａは、仮想カメラ１Ａの撮影方向を表す。そのため、基準視線５Ａは、アバターオブジェクト１１００Ａの視線方向とも言える。
【０１１７】
図１１Ｂは、図１１Ａにおいてユーザ１９０Ａが視認する視界画像１１１０を表す。視界画像１１１０は、ＨＭＤ１１０Ａのモニタ１１２Ａに表示される画像である。この視界画像１１１０は、仮想カメラ１Ａが撮影する画像である。図１１Ａにおいて、仮想空間２Ａには、現実空間における市街風景のパノラマ画像２２が展開されている。また、視界画像１１１０は、ユーザ１９０Ｂのアバターオブジェクト１１００Ｂを含む。なお、特に図示はしていないが、ユーザ１９０Ｂの視界画像も同様に、市街風景とユーザ１９０Ａのアバターオブジェクト１１００Ａとを含む。
【０１１８】
図１１Ｂの状態において、ユーザ１９０Ａはユーザ１９０Ｂと対話によるコミュニケーションを図ることができる。より具体的には、マイク１１９Ａにより取得されたユーザ１９０Ａの音声は、サーバ１５０を介してユーザ１９０ＢのＨＭＤ１１０Ｂに送信され、ＨＭＤ１１０Ｂに設けられたスピーカ１１８Ｂから出力される。また、ユーザ１９０Ｂの音声は、サーバ１５０を介してユーザ１９０ＡのＨＭＤ１１０Ａに送信され、ＨＭＤ１１０Ａに設けられたスピーカ１１８Ａから出力される。
【０１１９】
コンピュータ２００Ａは、コンピュータ２００ＢからＨＭＤ１２０Ｂおよびモーションセンサ１３０Ｂの検出結果を受信する。コンピュータ２００Ａは、アバター制御モジュール２３４Ａとして、受信したデータをアバターオブジェクト１１００Ｂに反映する。これにより、ユーザ１９０Ａは、ユーザ１９０Ｂの動きを、アバターオブジェクト１１００Ｂを通じて認識できる。
【０１２０】
また、コンピュータ２００Ａは、コンピュータ２００Ｂからトラッキングモジュール２２６Ｂの検出結果を受信する。コンピュータ２００Ａは、アバター制御モジュール２３４Ａとして、受信したデータをアバターオブジェクト１１００Ｂの顔に反映する。これにより、ユーザ１９０Ａは、ユーザ１９０Ｂの表情を、アバターオブジェクト１１００Ｂを通じて認識できる。
【０１２１】
このように、ユーザ１９０Ａおよびユーザ１９０Ｂは、仮想空間上で同じパノラマ画像２２を共有しながらコミュニケーションを図ることができる。このパノラマ画像２２は、例えば、映画、ライブ映像、観光名所の画像および、ユーザが過去に撮影した画像などを含み得る。
【０１２２】
［フェイストラッキング］
以下、図１２〜図１４を参照して、ユーザの表情（顔の動き）を検出するための具体例について説明する。図１２〜図１４では、一例として、ユーザ１９０の口の動きを検出する具体例について説明する。なお、図１２〜図１４で説明される検出方法は、ユーザ１９０の口の動きに限られず、ユーザ１９０の顔を構成する他の器官（例えば、目、眉、鼻、頬）の動きの検出にも適用され得る。
【０１２３】
図１２は、ユーザの顔画像１２００から口を検出する制御について説明する図である。第１カメラ１１５により生成された顔画像１２００は、ユーザ１９０の鼻と口とを含む。
【０１２４】
顔器官検出モジュール２２５は、顔情報２４４に格納される口テンプレート２４５を利用したパターンマッチングにより、顔画像１２００から口領域１２１０を特定する。ある局面において、顔器官検出モジュール２２５は、顔画像１２００において、矩形上の比較領域を設定し、この比較領域の大きさ、位置および角度をそれぞれ変えながら、比較領域の画像と、口テンプレート２４５の画像との類似度を算出する。顔器官検出モジュール２２５は、予め定められたしきい値よりも大きい類似度が算出された比較領域を、口領域１２１０として特定し得る。
【０１２５】
顔器官検出モジュール２２５はさらに、算出した類似度がしきい値よりも大きい比較領域の位置と、他の顔器官（例えば、目、鼻）の位置との相対関係に基づいて、当該比較領域が口領域に相当するか否かを判断し得る。
【０１２６】
トラッキングモジュール２２６は、顔器官検出モジュール２２５が検出した口領域１２１０から、より詳細な口の形状を検出する。
【０１２７】
図１３は、トラッキングモジュール２２６が口の形状を検出する処理を説明する図（その１）である。図１３を参照して、トラッキングモジュール２２６は、口領域１２１０に含まれる口の形状（唇の輪郭）を検出するための輪郭検出線１３００を設定する。輪郭検出線１３００は、顔の高さ方向に直交する方向に、予め定められた間隔で複数本設定される。
【０１２８】
トラッキングモジュール２２６は、複数本の輪郭検出線１３００の各々に沿った口領域１２１０の輝度値の変化を検出し、輝度値の変化が急激な位置を輪郭点として特定し得る。より具体的には、トラッキングモジュール２２６は、隣接画素との輝度差（すなわち、輝度値変化）が予め定められたしきい値以上である画素を、輪郭点として特定し得る。画素の輝度値は、例えば、画素のＲＢＧ値を所定の重み付けで積算することにより得られる。
【０１２９】
トラッキングモジュール２２６は、口領域１２１０に対応する画像から２種類の輪郭点を特定する。トラッキングモジュール２２６は、口（唇）の外側の輪郭に対応する輪郭点１３１０と、口（唇）の内側の輪郭に対応する輪郭点１３２０とを特定する。ある局面において、トラッキングモジュール２２６は、１つの輪郭検出線１３００上に３つ以上の輪郭点が検出された場合には、両端の輪郭点を外側の輪郭点１３１０として特定し得る。この場合、トラッキングモジュール２２６は、外側の輪郭点１３１０以外の輪郭点を、内側の輪郭点１３２０として特定し得る。また、トラッキングモジュール２２６は、１つの輪郭検出線１３００上に２つ以下の輪郭点が検出された場合には、検出された輪郭点を外側の輪郭点１３１０として特定し得る。
【０１３０】
図１４は、トラッキングモジュール２２６が口の形状を検出する処理を説明するための図（その２）である。図１４では、外側の輪郭点１３１０は白丸、内側の輪郭点１３２０はハッチングされた丸としてそれぞれ示されている。
【０１３１】
トラッキングモジュール２２６は、内側の輪郭点１３２０間を補完することにより、口形状１４００を特定する。この場合、輪郭点１３２０は、口の特徴点と言える。ある局面において、トラッキングモジュール２２６は、スプライン補完などの非線形の補完方法を用いて、口形状１４００を特定し得る。なお、他の局面において、トラッキングモジュール２２６は、外側の輪郭点１３１０間を補完することにより口形状１４００を特定してもよい。さらに他の局面において、トラッキングモジュール２２６は、想定される口形状（人の上唇と下唇とによって形成され得る所定の形状）から、大きく逸脱する輪郭点を除外し、残った輪郭点によって口形状１４００を特定してもよい。このようにして、トラッキングモジュール２２６は、ユーザの口の動作（形状）を特定し得る。なお、口形状１４００の検出方法は上記に限られず、トラッキングモジュール２２６は、他の手法により口形状１４００を検出してもよい。また、トラッキングモジュール２２６は、同様にして、ユーザの目および眉の動作を検出し得る。なお、トラッキングモジュール２２６は、頬、鼻などの器官の形状を検出可能に構成されてもよい。
【０１３２】
図１５は、フェイストラッキングデータの構造の一例を表す。フェイストラッキングデータは、各器官の形状を構成する複数の特徴点のｕｖｗ視野座標系における位置座標を表す。例えば、図１５に示されるポイントｍ１、ｍ２・・は、口形状１４００を構成する内側の輪郭点１３２０に対応する。ある局面において、フェイストラッキングデータは、第１カメラ１１５の位置を基準（原点）としたｕｖｗ視野座標系における座標値である。他の局面において、フェイストラッキングデータは、各器官ごとに予め定められた特徴点を基準（原点）とした座標系における座標値である。一例として、ポイントｍ１、ｍ２・・は、内側の輪郭点１３２０のうち口角に対応するいずれか一方の特徴点を原点とした座標系における座標値である。
【０１３３】
コンピュータ２００は、生成されたフェイストラッキングデータをサーバ１５０に送信する。サーバ１５０は、コンピュータ２００と通信する他のコンピュータ２００にこのデータを転送する。他のコンピュータ２００は、受信したフェイストラッキングデータを、受信元のコンピュータ２００のユーザに対応するアバターオブジェクトに反映する。
【０１３４】
図１１Ｂに示される例において、コンピュータ２００Ａは、コンピュータ２００Ｂからユーザ１９０Ｂの表情を表すフェイストラッキングデータを受信する。コンピュータ２００Ａは、受信したデータをアバターオブジェクト１１００Ｂに反映する。一例として、アバターオブジェクト１１００Ｂを構成するポリゴンの頂点のうちいくつかの頂点には、フェイストラッキングデータに対応する頂点が設定されている。コンピュータ２００Ａは、対応する頂点の位置をフェイストラッキングデータに基づいて移動する。これにより、ユーザ１９０Ｂの表情がアバターオブジェクト１１００Ｂに反映される。その結果、ユーザ１９０Ａは、アバターオブジェクト１１００Ｂを介してユーザ１９０Ｂの表情を認識できる。
【０１３５】
［サーバ１５０の制御構造］
図１６は、サーバ１５０のハードウェア構成およびモジュール構成を説明する図である。ある実施形態において、サーバ１５０は、主たるハードウェアとして通信インターフェイス１６１０と、プロセッサ１６２０と、ストレージ１６３０とを備える。
【０１３６】
通信インターフェイス１６１０は、コンピュータ２００など外部の通信機器と信号を送受信するための変復調処理などを行なう無線通信用の通信モジュールとして機能する。通信インターフェイス１６１０は、チューナ、高周波回路等により実現される。
【０１３７】
プロセッサ１６２０は、サーバ１５０の動作を制御する。プロセッサ１６２０は、ストレージ１６３０に格納される各種の制御プログラムを実行することにより、送受信部１６２２、サーバ処理部１６２４、マッチング部１６２６、および撮影制御部１６２８として機能する。
【０１３８】
送受信部１６２２は、各コンピュータ２００との間で各種情報を送受信する。例えば、送受信部１６２２は、仮想空間２にオブジェクトを配置する要求、オブジェクトを仮想空間２から削除する要求、オブジェクトを移動させる要求、ユーザの音声、または仮想空間２を定義するための情報などを各コンピュータ２００に送信する。
【０１３９】
サーバ処理部１６２４は、コンピュータ２００から受信した情報に基づいて、後述される撮影履歴ＤＢ（Data  Base）１６４０、視点履歴ＤＢ１６４２、およびコメントＤＢ１６４４を更新する。
【０１４０】
マッチング部１６２６は、複数のユーザを関連付けるための一連の処理を行なう。マッチング部１６２６は、例えば、複数のユーザが同じ仮想空間２を共有するための入力操作を行った場合に、仮想空間２に属する複数のユーザの各々のユーザＩＤを関連付ける処理などを行なう。
【０１４１】
撮影制御部１６２８は、ユーザが過去にパノラマ動画像を閲覧した履歴（撮影履歴ＤＢ１６４０、視点履歴ＤＢ１６４２、コメントＤＢ１６４４）に基づいて、ユーザがパノラマ動画像において関心を示した場所とタイミングとを検出する。撮影制御部１６２８は、検出結果をコンピュータ２００に送信する。
【０１４２】
ストレージ１６３０は、仮想空間指定情報１６３２と、オブジェクト指定情報１６３４と、パノラマ画像ＤＢ１６３６と、ユーザＤＢ１６３８と、撮影履歴ＤＢ１６４０と、視点履歴ＤＢ１６４２と、コメントＤＢ１６４４とを保持する。
【０１４３】
仮想空間指定情報１６３２は、コンピュータ２００の仮想空間定義モジュール２３１が仮想空間２を定義するために用いられる情報である。例えば、仮想空間指定情報１６３２は、仮想空間２の大きさまたは形状を指定する情報を含む。
【０１４４】
オブジェクト指定情報１６３４は、コンピュータ２００の仮想オブジェクト生成モジュール２３２が仮想空間２に配置（生成）するオブジェクトを指定する。パノラマ画像ＤＢ１６３６は、コンピュータ２００に配信するパノラマ画像２２と、パノラマ画像２２を特定するための識別情報（以下、「パノラマ画像ＩＤ」とも言う）とを互いに関連付けて複数格納する。
【０１４５】
ユーザＤＢ１６３８は、複数のユーザの各々を識別する情報（ユーザＩＤ）と、ユーザの属性情報とを含む。
【０１４６】
撮影履歴ＤＢ１６４０は、仮想空間２で行なわれた撮影に関する情報を含む。撮影履歴ＤＢ１６４０は、自動撮影ＤＢ１６４６と、撮影ＤＢ１６４８とを含む、自動撮影ＤＢ１６４６は、仮想空間２で行なわれた撮影のうち、後述する自動撮影（ユーザ１９０の操作を必要としない撮影）に関する情報を含む。撮影ＤＢ１６４８は、仮想空間２で行なわれた撮影のうち、ユーザ１９０が能動的に行なった撮影に関する情報を含む。
【０１４７】
視点履歴ＤＢ１６４２は、ユーザがパノラマ画像２２のどの位置を視ていたかを表す情報を含む。コメントＤＢ１６４４は、パノラマ画像２２に対してユーザが行なったコメントを含む。撮影履歴ＤＢ１６４０、視点履歴ＤＢ１６４２、およびコメントＤＢ１６４４の詳細は後述される。
【０１４８】
［音声に基づく自動撮影］
次に図１７および図１８を用いて、ユーザ１９０Ａの音声に基づく自動撮影処理を説明する。図１７は、ある局面においてモニタ１１２Ａに表示される視界画像１７００を表す。視界画像１７００は、市街風景を表すパノラマ画像２２の一部と、アバターオブジェクト１１００Ｂと、カメラオブジェクト１７１０とコメントオブジェクト１７２１〜１７２３とを含む。なお、図１７に示される例においてカメラオブジェクト１７１０は、カメラの形状をしているが、他の局面において、カメラ以外の形状であってもよい。
【０１４９】
プロセッサ１０Ａは、撮影制御モジュール２３５Ａとして、マイク１１９Ａから入力されるユーザ１９０Ａの音声信号に基づいて自動撮影を実行する。より具体的には、プロセッサ１０Ａは、音声信号のレベル（音量）、音声信号から抽出される文字列、および音声信号から推測されるユーザ１９０の感情の少なくともいずれか１つの情報に基づいて、自動撮影を実行する。
【０１５０】
（音量に基づく自動撮影）
ある実施形態に従う撮影制御モジュール２３５Ａは、マイク１１９Ａから入力される音声信号のレベル（振幅）が予め定められたレベル以上になった場合に、撮影タイミングを検出する。ユーザ１９０Ａが大きな声を出している時、ユーザ１９０Ａは、パノラマ画像２２に展開されるコンテンツまたはユーザ１９０Ｂとの会話によって興奮している可能性が高いためである。
【０１５１】
（発話内容に基づく自動撮影）
ある実施形態に従う撮影制御モジュール２３５Ａは、マイク１１９Ａから入力される音声信号から文字列を抽出する。一例として、撮影制御モジュール２３５Ａは、音声信号の先頭から予め定められた時間単位（たとえば、１０ｍｓｅｃ単位）で区切られる波形データと、ストレージ１２Ａに格納される音響モデル（図示しない）とを照合して、文字列を抽出する。音響モデルは、母音や子音などの音素ごとの特徴量を表す。一例として、プロセッサ１０Ａは、隠れマルコフモデルに基づき、音声信号と音響モデルとを照合する。
【０１５２】
撮影制御モジュール２３５Ａは、抽出した文字列に予め定められた文字列（例えば、「すごい」、「おぉ」、「えぇ〜」などの感嘆詞）が含まれている場合に、撮影タイミングを検出する。
【０１５３】
（音声信号から推測される感情に基づく自動撮影）
ある実施形態に従う感情判断モジュール２３６Ａは、入力された音声信号からユーザ１９０Ａの感情を推定する。例えば、感情判断モジュール２３６Ａは、音声信号から文字列を抽出して、当該文字列から感情を推定する。このような処理は、例えば、メタデータ社が提供する「感情解析ＡＰＩ」により実現され得る。他の局面において、感情判断モジュール２３６Ａは、音声信号の波形から感情を推定する。このような処理は、例えば、ＡＧＩ社が提供する「ＳＴ Ｅｍｏｔｉｏｎ ＳＤＫ」により実現され得る。
【０１５４】
感情判断モジュール２３６Ａは、音声信号から推定される感情が肯定的な感情である場合（例えば、感情の種類が「喜び」または「楽しい」のとき）に、撮影タイミングを検出する。
【０１５５】
撮影制御モジュール２３５Ａは、上記いずれかの手法により撮影タイミングを検出すると、カメラオブジェクト１７１０による自動撮影処理を実行する。図１８を用いてこの処理をより具体的に説明する。
【０１５６】
（制御構造）
図１８は、音声に基づく自動撮影処理の一例を表すフローチャートである。図１８に示される処理は、プロセッサ１０Ａがメモリ１１Ａまたはストレージ１２Ａに格納される制御プログラムを読み込んで実行することにより実現される。
【０１５７】
ステップＳ１８０５において、プロセッサ１０Ａは、仮想空間定義モジュール２３１Ａとして、サーバ１５０から受信した仮想空間指定情報１６３２に基づいて、仮想空間２Ａを定義する。
【０１５８】
ステップＳ１８１０において、プロセッサ１０Ａは、仮想空間定義モジュール２３１Ａとして、サーバ１５０から受信したパノラマ画像２２を仮想空間２Ａに展開する。他の局面において、プロセッサ１０Ａは、サーバ１５０からパノラマ画像ＩＤの指定を受け付け、空間情報２４１Ａに格納される複数のパノラマ画像２２のうち、当該ＩＤに対応するパノラマ画像を仮想空間２Ａに展開するように構成されていてもよい。
【０１５９】
ステップＳ１８１５において、プロセッサ１０Ａは、アバター制御モジュール２３４Ａとして、仮想空間２Ａにユーザ１９０Ａに対応するアバターオブジェクト１１００Ａを配置する。
【０１６０】
ステップＳ１８２０において、プロセッサ１０Ａは、撮影制御モジュール２３５Ａとして、カメラオブジェクト１７１０を仮想空間２Ａに配置する。なお、他の局面において、プロセッサ１０Ａは、後述するステップＳ１８５０の処理の時点で初めてカメラオブジェクト１７１０を配置するように構成されてもよい。この場合、ユーザ１９０Ａは、プロセッサ１０Ａが自動撮影を行なうときだけカメラオブジェクト１７１０を視認するため、パノラマ画像２２の視聴に集中できる。
【０１６１】
ステップＳ１８２５において、プロセッサ１０Ａは、アバター制御モジュール２３４Ａとして、アバターオブジェクト１１００Ａの位置および視線方向（傾き）を更新する。より具体的には、プロセッサ１０Ａは、傾き特定モジュール２２４Ａが特定するＨＭＤ１１０Ａの傾きに基づいてアバターオブジェクト１１００Ａの視線方向を更新する。また、プロセッサ１０Ａは、ＨＭＤセンサ１２０Ａの出力、およびコントローラ１６０Ａの出力に基づいてアバターオブジェクト１１００Ａの位置を更新する。
【０１６２】
ステップＳ１８３０において、プロセッサ１０Ａは、マイク１１９Ａから音声信号の入力を受け付ける。
【０１６３】
ステップＳ１８３５において、プロセッサ１０Ａは、撮影制御モジュール２３５Ａとして、ユーザ１９０Ａの発話に対応する音声信号が予め定められたレベル（例えば、７０ｄＢ）以上であるか否かを判断する。プロセッサ１０Ａは、音声信号が予め定められたレベル以上であると判断した場合（ステップＳ１８３５でＹＥＳ）、ステップＳ１８４０の処理を実行する。そうでない場合（ステップＳ１８３５でＮＯ）、プロセッサ１０ＡはステップＳ１８２５の処理を再び実行する。
【０１６４】
ステップＳ１８４０において、プロセッサ１０Ａは、感情判断モジュール２３６Ａとして、入力された音声信号からユーザ１９０Ａの感情を推測する。プロセッサ１０Ａは、推測した１９０Ａの感情が肯定的であるか否かを判断する。プロセッサ１０Ａは、１９０Ａの感情が肯定的であると判断した場合（ステップＳ１８４０でＹＥＳ）、ステップＳ１８４５の処理を実行する。そうでない場合（ステップＳ１８４０でＮＯ）、プロセッサ１０ＡはステップＳ１８２５の処理を再び実行する。
【０１６５】
ステップＳ１８４５において、プロセッサ１０Ａは、ユーザ１９０Ａの発話に対応する音声信号から文字列を抽出する。プロセッサ１０Ａは、抽出した文字列に予め定められた文字列が含まれているか否かを判断する。
【０１６６】
プロセッサ１０Ａは、抽出した文字列に予め定められた文字列が含まれていると判断した場合（ステップＳ１８４５でＹＥＳ）、ステップＳ１８５０の処理を実行する。そうでない場合（ステップＳ１８４５でＮＯ）、プロセッサ１０Ａは、ステップＳ１８２５の処理を再び実行する。
【０１６７】
ステップＳ１８５０において、プロセッサ１０Ａは、撮影制御モジュール２３５Ａとして、アバターオブジェクト１１００Ａの位置および視線方向に基づいてカメラオブジェクト１７１０を移動する。より具体的には、プロセッサ１０Ａは、カメラオブジェクト１７１０の撮影範囲１７３０にアバターオブジェクト１１００Ａの少なくとも一部（例えば頭部）が含まれるように、カメラオブジェクト１７１０を移動させる。一例として、プロセッサ１０Ａは、カメラオブジェクト１７１０の撮影方向と、アバターオブジェクト１１００Ａの視線方向とが互いに向かい合う位置に、カメラオブジェクト１７１０を配置する。
【０１６８】
ステップＳ１８５５において、プロセッサ１０Ａは、撮影制御モジュール２３５Ａとして、今が撮影に適したタイミングであること、および、カメラオブジェクト１７１０の位置をユーザ１９０Ａに通知する。
【０１６９】
一例として、プロセッサ１０Ａは、これから撮影を行なう旨を表す音声（例えば、「はい、チーズ！」）をスピーカ１１８Ａから出力することにより、撮影タイミングをユーザ１９０Ａに通知する。他の例として、プロセッサ１０Ａは、これから撮影を行なう旨のメッセージ（例えば、撮影までの時間をカウントダウンする）をモニタ１１２Ａに表示することにより、撮影タイミングをユーザ１９０Ａに通知する。
【０１７０】
一例として、プロセッサ１０Ａは、視認領域２３Ａにカメラオブジェクト１７１０を配置することにより、カメラオブジェクト１７１０の位置をユーザ１９０Ａに通知する。他の例として、プロセッサ１０Ａは、音声（例えば、「後ろ向いて」）によりカメラオブジェクト１７１０の位置をユーザ１９０Ａに通知する。
【０１７１】
ステップＳ１８６０において、プロセッサ１０Ａは、撮影制御モジュール２３５Ａとして、アバターオブジェクト１１００Ａがカメラオブジェクト１７１０に向いているか否かを判断する。基準視線５Ａは、アバターオブジェクト１１００Ａの視線方向に対応する。そのため、プロセッサ１０Ａは、基準視線５Ａがカメラオブジェクト１７１０に注がれている場合に、アバターオブジェクト１１００Ａがカメラオブジェクト１７１０に向いていると判断する。
【０１７２】
プロセッサ１０Ａは、アバターオブジェクト１１００Ａがカメラオブジェクト１７１０に向いていると判断した場合（ステップＳ１８６０でＹＥＳ）、ステップＳ１８６５の処理を実行する。そうでない場合（ステップＳ１８６０でＮＯ）、プロセッサ１０Ａは、アバターオブジェクト１１００Ａがカメラオブジェクト１７１０に向くまで待機する。
【０１７３】
ステップＳ１８６５において、プロセッサ１０Ａは、撮影制御モジュール２３５Ａとして、カメラオブジェクト１７１０により撮影処理を実行する。より具体的には、プロセッサ１０Ａは、カメラオブジェクト１７１０の撮影範囲１７３０に対応する画像を生成する。
【０１７４】
上記によれば、コンピュータ２００Ａは、撮影に適したタイミングで、カメラ目線のアバターオブジェクト１１００Ａを含む画像を自動的に生成する。そのため、ユーザ１９０Ａは、能動的に撮影操作を行なわなくても、撮影に適したタイミングで生成された写真を得ることができる。
【０１７５】
なお、上記の例においてコンピュータ２００Ａは、ステップＳ１８３５〜Ｓ１８４５の３つの条件がいずれも満たされた場合に、自動的に撮影を行なうように構成されているが、他の局面において、３つの条件のうち少なくとも１つが満たされた場合に自動的に撮影を行なうように構成されてもよい。
【０１７６】
ステップＳ１８７０において、プロセッサ１０Ａは、撮影情報をサーバ１５０に送信する。撮影情報は、ステップＳ１８６５で実行された撮影処理に関する情報である。サーバ１５０は、受信した撮影情報に基づいて自動撮影ＤＢ１６４６を更新する。
【０１７７】
図１９は、自動撮影ＤＢ１６４６のデータ構造の一例を表す図である。自動撮影ＤＢ１６４６は、ユーザＩＤと、パノラマ画像ＩＤと、カメラ位置と、視点位置と、撮影タイミングとを互いに関連付けて保持する。
【０１７８】
撮影タイミングは、パノラマ画像２２が動画像である場合に、パノラマ画像２２の再生開始を起点とする、撮影が行なわれたタイミング（ステップＳ１８６５）を表す。カメラ位置は、撮影タイミングにおけるカメラオブジェクト１７１０の位置である。視点位置は、撮影タイミングにおいてユーザ１９０の視線が注がれているパノラマ画像２２の位置である。各コンピュータ２００は、自動撮影処理が行なわれるごとに、ユーザＩＤ、パノラマ画像ＩＤ、カメラ位置、視点位置、および撮影タイミングをサーバ１５０に送信する。
【０１７９】
上記の自動撮影処理は、ユーザ１９０Ａが仮想空間２Ａに展開されるコンテンツに関心を示したと推定されるタイミングで行なわれる。そのため、上記の撮影タイミングおよび視点位置は、ユーザが関心を示したコンテンツが表示されているタイミングおよび位置とも言える。サーバ１５０の管理者は、自動撮影ＤＢ１６４６（視点位置および撮影タイミング）に基づいて、ユーザ１９０の嗜好を分析できる。
【０１８０】
（ユーザが関心を示したコンテンツを含む画像を生成する処理）
上記の例において、撮影制御モジュール２３５Ａは、アバターオブジェクト１１００Ａの視線方向とカメラオブジェクト１７１０の撮影方向とが向かい合うようにカメラオブジェクト１７１０を仮想空間２Ａに配置するように構成されている（ステップＳ１８５０）。
【０１８１】
この場合、自動撮影処理により得られる画像には、ユーザ１９０Ａがパノラマ画像２２において関心を示したコンテンツは含まれない。ユーザによっては、自身のアバターオブジェクトを含むだけでなく、自身が関心を示したコンテンツも撮影して欲しいと考える。そこで、ある実施形態に従う撮影制御モジュール２３５Ａは、ユーザ１９０Ａが関心を示したコンテンツも含むように、カメラオブジェクト１７１０を仮想空間２Ａに配置する。
【０１８２】
図２０は、ある実施形態に従うカメラオブジェクト１７１０の配置処理について説明するための図である。図２１は、図２０の状態において、モニタ１１２Ａに表示される視界画像２１００を表す。仮想空間２Ａには、アバターオブジェクト１１００Ａおよび１１００Ｂが配置されている。これらのアバターオブジェクトは互いに向かい合っている。この状態において、プロセッサ１０Ａは、マイク１１９Ａにより出力されたユーザ１９０Ａの音声信号に基づいて撮影タイミングを検出する。
【０１８３】
プロセッサ１０Ａは、撮影タイミングを検出すると、アバターオブジェクト１１００Ａの視線方向とは逆方向にカメラオブジェクト１７１０を配置する。より具体的には、プロセッサ１０Ａは、基準視線５Ａ（仮想カメラ１Ａの撮影方向）と逆方向に延在する線上に、カメラオブジェクト１７１０を配置する。
【０１８４】
プロセッサ１０Ａは、ユーザ１９０Ａに対してカメラオブジェクト１７１０の位置を通知する。図２１の例において、プロセッサ１０Ａは、矢印アイコン２１１０を配置することでカメラオブジェクト１７１０の位置を通知する。矢印アイコン２１１０は、アバターオブジェクト１１００Ａの仮想空間２Ａにおける位置および視線方向を基準とした、カメラオブジェクト１７１０の位置を表す。
【０１８５】
他の局面において、プロセッサ１０Ａは、ユーザ１９０Ａに対して、カメラオブジェクト１７１０がアバターオブジェクト１１００Ａの後ろに配置されていることを知らせる音声（例えば、「後ろ向いて」）をスピーカ１１８Ａから出力する。
【０１８６】
これにより、ユーザ１９０Ａ（アバターオブジェクト１１００Ａ）は後ろを振り向く。プロセッサ１０Ａは、ユーザ１９０Ａが後ろを振り向いたときに、カメラオブジェクト１７１０の撮影範囲１７３０に対応する画像を生成する。
【０１８７】
この画像は、カメラ目線のアバターオブジェクト１１００Ａと、撮影タイミングでユーザ１９０Ａが見ていたコンテンツ（例えば、アバターオブジェクト１１００Ｂ）とを含む。
【０１８８】
上記によれば、ある実施形態に従うコンピュータ２００は、ユーザが関心を示したコンテンツを含む画像を自動で生成できる。
【０１８９】
［表情に基づく自動撮影処理］
上記の例では、プロセッサ１０Ａは、音声信号に基づいて撮影タイミングを検出するように構成されている。他の局面において、プロセッサ１０Ａは、フェイストラッキングデータ（ユーザ１９０Ａの表情）に基づいて撮影タイミングを検出する。図２２および２３を用いてこの処理を説明する。
【０１９０】
図２２Ａは、ユーザ１９０Ａが無表情時に取得される顔の特徴点を表す。図２２Ｂは、ユーザ１９０Ａが驚いたときに取得される顔の特徴点を表す。図２２Ａおよび図２２Ｂに示される特徴点Ｐは、トラッキングモジュール２２６Ａによって取得されるユーザ１９０Ａの顔の特徴点を表す。
【０１９１】
ある局面において、プロセッサ１０Ａは、第１カメラ１１５Ａおよび第２カメラ１１７Ａによってユーザ１９０Ａの顔を撮影する。このとき、プロセッサ１０Ａは、モニタ１１２Ａに、無表情での撮影を促すメッセージを表示する。プロセッサ１０Ａは、取得した画像に基づいてフェイストラッキングデータを生成する。このとき生成されたフェイストラッキングは基準データ２４８Ａとして機能する。プロセッサ１０Ａは、生成した基準データ２４８をメモリモジュール２４０Ａに保存する。
【０１９２】
図２２Ａに示される特徴点Ｐは、基準データ２４８Ａに対応する。一方、図２２Ｂに示される特徴点Ｐは、ユーザ１９０Ａが仮想空間２Ａに没入している間に随時取得されるフェイストラッキングデータに対応する。
【０１９３】
図２２Ｂに示される例において、ユーザ１９０Ａは驚いているため、図２２Ａと比較して目の特徴点Ｐが顔の高さ方向に広がり、眉の特徴点Ｐが上方向に移動している。このように、基準データに対するフェイストラッキングデータの変動量は、仮想空間２Ａに展開されるコンテンツに対するユーザ１９０Ａの関心の度合いを表す。
【０１９４】
そこで、プロセッサ１０Ａは、基準データに対するフェイストラッキングデータの変動量が予め定められた変動量を上回った場合に、撮影タイミングを検出する。
【０１９５】
ある局面において、プロセッサ１０Ａは、各々の特徴点ごとに基準データに対するフェイストラッキングデータの変動量を算出し、その総和に基づいて上記の判断を行なう。他の局面において、プロセッサ１０Ａは、感情による変化の度合いが大きい予め定められた特徴点（例えば、口角に対応する特徴点）についてのみ変動量を算出し、その総和に基づいて上記判断を行なう。
【０１９６】
上記によれば、プロセッサ１０Ａは、ユーザ１９０Ａがコンテンツに関心を示したときに自動撮影により画像を生成できる。
【０１９７】
（制御構造）
図２３は、フェイストラッキングデータに基づく自動撮影処理の一例を表すフローチャートである。なお、図２３に示される処理のうち上述の処理には同じ符号を付している。そのため、それらの処理については繰り返し説明しない。
【０１９８】
ステップＳ２３１０において、プロセッサ１０Ａは、トラッキングモジュール２２６Ａとして、第１カメラ１１５Ａおよび第２カメラ１１７Ａによってユーザ１９０Ａの顔を撮影する。このとき、プロセッサ１０Ａは、モニタ１１２Ａに、無表情での撮影を促すメッセージを表示する。プロセッサ１０Ａは、取得した画像に基づいて基準データ２４８Ａを生成し、生成したデータをメモリモジュール２４０Ａに保存する。ある局面において、プロセッサ１０Ａは、モニタ１１２Ａに初期の視界画像２６を表示する前にステップＳ２３１０の処理を実行する。
【０１９９】
ステップＳ２３２０において、プロセッサ１０Ａは、トラッキングモジュール２２６Ａとして、ユーザ１９０Ａの表情を表すフェイストラッキングデータを取得する。
【０２００】
ステップＳ２３３０において、プロセッサ１０Ａは、感情判断モジュール２３６Ａとして、基準データ２４８Ａに対するフェイストラッキングデータの変動量を算出する。
【０２０１】
ステップＳ２３４０において、プロセッサ１０Ａは、算出した変動量が予め定められた値を超えたか否かを判断する。プロセッサ１０Ａは、算出した変動量が予め定められた値を超えたと判断した場合（ステップＳ２３４０でＹＥＳ）、ステップＳ１８５０以降の処理を実行する。そうでない場合（ステップＳ２３４０でＮＯ）、プロセッサ１０Ａは、ステップＳ１８２５の処理を再び実行する。
【０２０２】
上記によれば、ある実施形態に従うコンピュータ２００Ａは、フェイストラッキングデータに基づいてユーザ１９０Ａが仮想空間２Ａに展開されるコンテンツに対して関心を示したと推定されるタイミングで自動撮影処理を実行できる。
【０２０３】
［他人の履歴に基づく撮影タイミングの検出］
上記の例では、コンピュータ２００Ａがユーザ１９０Ａの動作（発話、表情の動き）に基づいて自動撮影処理を行なうように構成されている。他の局面において、サーバ１５０は、ユーザ１９０Ａとは異なる１以上の他のユーザ（例えばユーザ１９０Ｂ〜１９０Ｄ）のパノラマ画像２２に関する履歴情報に基づいて、パノラマ画像２２の中から他のユーザが関心を示した場所とタイミングとを検出する。サーバ１５０は、検出した情報をコンピュータ２００Ａに送信する。コンピュータ２００Ａは、サーバ１５０から受信した情報に基づいて自動撮影処理を行なう。
【０２０４】
サーバ１５０は、撮影履歴ＤＢ１６４０、視点履歴ＤＢ１６４２、およびコメントＤＢ１６４４のうち少なくともいずれか１つのデータベースを利用して、上記の場所とそのタイミングとを検出する。まず、図２４および図２５を用いて撮影履歴ＤＢ１６４０（撮影ＤＢ１６４８）に基づく検出処理について説明する。
【０２０５】
（他のユーザの撮影履歴に基づく自動撮影処理）
図２４は、ユーザ１９０Ａが仮想空間２Ａで能動的に撮影を行なう様子を表すための図である。視界画像２４００は、アバターオブジェクト１１００Ａの手１１１０Ａと、スクリーンオブジェクト２４１０とを含む。
【０２０６】
スクリーンオブジェクト２４１０は、撮影機能を有する。一例として、スクリーンオブジェクト２４１０は矩形のオブジェクトであって、おもて面と裏面とを有し、おもて面がプレビュー画面として機能する。
【０２０７】
手１１１０Ａは、スクリーンオブジェクト２４１０を支持する棒を握っている。スマートフォン（あるいは撮影機能を有するデバイス）を支持する自撮り棒（セルフィースティック、セルカ棒とも称される）は、広く世間に認知されている。そのため、プレビュー画面を有するスクリーンオブジェクト２４１０と、棒状の支持部材とを併せて提示することで、ユーザ１９０Ａがスクリーンオブジェクト２４１０の撮影機能を認知する可能性が高まる。
【０２０８】
スクリーンオブジェクト２４１０は、おもて面側を撮影するインカメラモードと、裏面側を撮影するアウトカメラモードとを切り替え可能に構成される。図２４に示される例において、スクリーンオブジェクト２４１０はインカメラモードとして機能している。そのため、スクリーンオブジェクト２４１０のおもて面（プレビュー画面）には、アバターオブジェクト１１００Ａが表示されている。ユーザ１９０Ａは、コントローラ１６０Ａの予め定められたボタンを押下することにより、スクリーンオブジェクト２４１０による撮影を実行する。これにより、スクリーンオブジェクト２４１０のプレビュー画面に表示されいる画像がメモリモジュール２４０Ａに保存される。
【０２０９】
プロセッサ１０Ａは、スクリーンオブジェクト２４１０による撮影を実行すると、当該撮影に関する撮影情報をサーバ１５０に送信する。サーバ１５０は、各コンピュータ２００から受信する撮影情報に基づいて、撮影ＤＢ１６４８を更新する。
【０２１０】
図２５は、撮影ＤＢ１６４８のデータ構造の一例を表す図である。撮影ＤＢ１６４８は、ユーザＩＤと、パノラマ画像ＩＤと、カメラ位置と、撮影位置と、撮影タイミングと、モード情報とを互いに関連付けて保持する。
【０２１１】
撮影タイミングは、パノラマ画像２２が動画像である場合に、パノラマ画像２２の再生開始を起点とする、撮影が行なわれたタイミングである。カメラ位置は、撮影タイミングにおけるスクリーンオブジェクト２４１０の位置である。撮影位置は、撮影タイミング時にスクリーンオブジェクト２４１０の撮影方向（インカメラモード時はおもて面に対する法線、アウトカメラモード時は裏面に対する法線）により貫かれるパノラマ画像２２の位置である。つまり、撮影位置は、パノラマ画像２２のうち撮影された領域の中心を表す。モード情報は、撮影がインカメラモードおよびアウトカメラモードのいずれで行なわれたかを表す。各コンピュータ２００は、対応するユーザ１９０が能動的に撮影を行なうごとに、ユーザＩＤと、パノラマ画像ＩＤと、カメラ位置と、撮影位置と、撮影タイミングと、モード情報とを互いに関連付けてサーバ１５０に送信する。
【０２１２】
ある局面において、サーバ１５０のプロセッサ１６２０は、パノラマ画像ＤＢ１６３６に格納される複数のパノラマ画像２２のうち、いずれか１つを指定するパノラマ画像ＩＤをコンピュータ２００Ａから受け付ける。以下、一例としてサーバ１５０は、パノラマ画像ＩＤ「２２Ａ」の入力を受け付ける。
【０２１３】
プロセッサ１６２０は、パノラマ画像ＩＤ「２２Ａ」に対応するパノラマ画像２２をコンピュータ２００Ａに配信する。プロセッサ１６２０はさらに、撮影ＤＢ１４４８を参照して、指定されたパノラマ画像ＩＤ「２２Ａ」が関連付けられた撮影情報のうち、ユーザ１９０ＡのユーザＩＤ「１９０Ａ」が関連付けられていない撮影情報を取得する。図２５に示される例において、プロセッサ１６２０は、ハッチングされた部分に対応する情報を取得する。
【０２１４】
ある局面において、プロセッサ１６２０は、モード情報がインカメラモードである撮影情報のみを取得するように構成されてもよい。インカメラモードで生成された画像は、基本的にユーザに対応するアバターオブジェクトを含む。そのため、プロセッサ１６２０は、アバターオブジェクトを含む画像を自動的に生成するタイミングを検出するにあたり、インカメラモードである撮影情報のみを用いることにより、より撮影に適したタイミングを検出し得る。
【０２１５】
プロセッサ１６２０は、撮影制御部１６２８として、取得した撮影情報のうち撮影位置と撮影タイミングとに基づいて、ユーザ１９０Ａ以外の他のユーザがパノラマ画像ＩＤ「２２Ａ」のパノラマ画像２２において関心を示した場所とタイミングを検出する。
【０２１６】
一例として、プロセッサ１６２０は、予め定められた時間（例えば２秒間）内、かつ、予め定められた領域（例えば１００ｐｉｘｅｌ×１００ｐｉｘｅｌ）内で、予め定められた回数（例えば５回）以上撮影されているタイミングと場所（位置）とを検出する。具体例として、パノラマ画像２２の再生を開始してから１分１秒〜１分３秒の間に、予め定められた領域内で５回撮影が行なわれたとする。この場合、プロセッサ１６２０は、上記再生時間の中間である再生時間１分２秒のタイミングと、５回分の撮影位置の中央位置とを検出する。
【０２１７】
プロセッサ１６２０は、検出した他のユーザが関心を示した場所とタイミングとをコンピュータ２００Ａに送信する。コンピュータ２００Ａのプロセッサ１０Ａは、そのタイミング（上記の例では再生時間１分２秒）になると、カメラオブジェクト１７１０を配置する。このとき、プロセッサ１０Ａは、他のユーザの関心を示した場所が撮影範囲１７３０に含まれるようにカメラオブジェクト１７１０を配置する。例えば、プロセッサ１０Ａは、カメラオブジェクト１７１０の撮影方向とアバターオブジェクト１１００Ａの撮影方向とが互いに向かい合う位置にカメラオブジェクト１７１０を配置する。
【０２１８】
プロセッサ１０Ａはさらに、ユーザ１９０Ａに対して撮影タイミングの通知処理を行なう。その後、プロセッサ１０Ａは、カメラオブジェクト１７１０による撮影を実行する。
【０２１９】
なお、他の局面において、プロセッサ１０Ａは、サーバ１５０から受信した情報が表すタイミングの少し前（例えば５秒前）にカメラオブジェクト１７１０の配置処理、および撮影タイミングの通知処理を行なってもよい。
【０２２０】
上記によれば、ユーザ１９０Ａは、パノラマ画像２２のどのタイミング、どの位置が撮影ポイントであるかを把握していない場合であっても、撮影ポイントでの自撮り画像を確実に取得できる。
【０２２１】
（他のユーザの視点履歴に基づく自動撮影処理）
図２６は、視点履歴ＤＢ１６４２のデータ構造の一例を表す。視点履歴ＤＢ１６４２は、パノラマ画像ＩＤと、ユーザＩＤと、視点位置と、タイミングとを含む。
【０２２２】
視点位置は、パノラマ画像２２のうちユーザ１９０が注視している位置（つまり、ユーザ１９０の視線が注がれている位置）を表す。タイミングは、パノラマ画像２２が動画像である場合に、パノラマ画像２２の再生開始を起点として、視点位置が取得されたタイミング（再生時間）である。
【０２２３】
各コンピュータ２００は、視点特定モジュール２２７により特定される視点位置（座標値）と、その視点位置が取得されたタイミングと、ユーザＩＤとを互いに関連付けてサーバ１５０に周期的（図２６の例では１秒間隔）に送信する。サーバ１５０のプロセッサ１６２０は、受信した情報に基づいて視点履歴ＤＢ１６４２を更新する。
【０２２４】
ある局面において、プロセッサ１６２０は、コンピュータ２００Ａからパノラマ画像ＩＤ「２２Ａ」の入力を受け付ける。プロセッサ１６２０は、視点履歴ＤＢ１６４２を参照して、パノラマ画像ＩＤ「２２Ａ」が関連付けられた視点位置と、当該視点位置に対応するタイミングとに基づいて、パノラマ画像ＩＤ「２２Ａ」のパノラマ画像２２において他のユーザが関心を示した場所とタイミングとを検出する。例えば、プロセッサ１６２０は、予め定められた時間（例えば２秒間）内、かつ、予め定められた領域（例えば１００ｐｉｘｅｌ×１００ｐｉｘｅｌ）内に、視点位置が予め定められた個数（例えば３回）以上含まれるタイミングと場所（位置）とを検出する。
【０２２５】
図２７は、視点履歴に基づく自動撮影処理を説明するためのパノラマ画像２７００を表す。パノラマ画像２７００は、パノラマ画像ＩＤ「２２Ａ」のパノラマ動画像を構成する複数のパノラマ画像のうちの１つである。つまり、パノラマ画像２７００は、パノラマ画像ＩＤ「２２Ａ」のパノラマ動画像の、あるタイミングの画像である。
【０２２６】
図２７に示されるパノラマ画像２７００には、他のユーザがパノラマ画像２７００のどの部分を見ていたかを表す視点位置２７１０が重畳されている。視点位置２７１０は、車や建物に重畳されている。
【０２２７】
プロセッサ１６２０は、パノラマ画像２７００の所定領域２７２０内に視点位置２７１０が３個含まれていることを検出する。これにより、プロセッサ１６２０は、パノラマ画像２７００が再生されるタイミングと、所定領域２７２０内に含まれる３個の視点位置２７１０の中央位置とを検出する。
【０２２８】
プロセッサ１６２０は、検出した他のユーザが関心を示した場所（位置）とそのタイミングとをコンピュータ２００Ａに送信する。その後の処理は、撮影履歴に基づく自動撮影処理と同じである。これにより、コンピュータ２００Ａのプロセッサ１０Ａは、他のユーザが関心を示した場所（図２７の例では建物２７３０）と、アバターオブジェクト１１００Ａとを含む画像を自動的に生成できる。
【０２２９】
（他のユーザのコメントに基づく自動撮影処理）
図１７を参照して、パノラマ画像１７００は、コメントオブジェクト１７２１〜１７２３を含む。各コンピュータ２００は、パノラマ動画像の任意のタイミング（図１７の例ではパノラマ画像１７００が表示されているタイミング）および位置で、ユーザ１９０からコメントの入力を受け付ける。各コンピュータ２００は、入力されたコメントと、パノラマ動画像の再生開始を起点としてコメントが投稿されたタイミング（投稿タイミング）と、コメントが投稿された位置（コメント位置）とをサーバ１５０に送信する。サーバ１５０のプロセッサ１６２０は、各コンピュータ２００から受信した情報に基づいて、コメントＤＢ１６４４を更新する。
【０２３０】
図２８は、コメントＤＢ１６４４のデータ構造の一例を表す図である。コメントＤＢ１６４４は、ユーザＩＤと、パノラマ画像ＩＤと、コメントと、コメント位置と、投稿タイミングとを互いに関連付けて保持する。
【０２３１】
ある局面において、プロセッサ１６２０は、コンピュータ２００Ａからパノラマ画像ＩＤ「２２Ａ」の入力を受け付ける。これを受け、プロセッサ１６２０は、コメントＤＢ１６４４を参照してパノラマ画像ＩＤ「２２Ａ」が関連付けられたコメント、コメント位置、および投稿タイミングとをコンピュータ２００Ａに送信する。プロセッサ１０Ａは、投稿タイミングになるとコメント内容を含むコメントオブジェクトをコメント位置に配置する。これにより、ユーザ１９０Ａは、他のユーザのコメントを視認できる。
【０２３２】
また、プロセッサ１６２０は、コメントＤＢ１６４４を参照して、パノラマ画像ＩＤ「２２Ａ」が関連付けられたコメント位置と投稿タイミングとに基づいて、パノラマ画像ＩＤ「２２Ａ」のパノラマ画像２２において他のユーザが関心を示した場所とタイミングとを検出する。プロセッサ１６２０は、コメントＤＢ１６４４を参照して、予め定められた時間（例えば２秒間）内、かつ、予め定められた領域（例えば１００ｐｉｘｅｌ×１００ｐｉｘｅｌ）内に、コメント位置が予め定められた個数（例えば３回）以上含まれるタイミングと場所（位置）とを検出する。
【０２３３】
プロセッサ１６２０は、検出した他のユーザが関心を示した場所（位置）とそのタイミングとをコンピュータ２００Ａに送信する。その後の処理は、撮影履歴に基づく自動撮影処理と同じである。これにより、コンピュータ２００Ａのプロセッサ１０Ａは、他のユーザのコメント履歴に基づいて、他のユーザが関心を示した場所（図１７の例では猫が表示されている場所）と、アバターオブジェクト１１００Ａとを含む画像を生成できる。
【０２３４】
（制御構造）
図２９は、サーバ１５０が撮影タイミングを検出する処理の概要を表すフローチャートである。ステップＳ２９０５において、サーバ１５０のプロセッサ１６２０は、コンピュータ２００Ａからパノラマ画像の指定を受け付ける。一例として、プロセッサ１６２０は、コンピュータ２００Ａからパノラマ画像ＩＤの指定を受け付ける。
【０２３５】
ステップＳ２９１０において、プロセッサ１６２０は、入力されたパノラマ画像ＩＤに対応するパノラマ画像をコンピュータ２００Ａに配信する。
【０２３６】
ステップＳ２９２０において、プロセッサ１６２０は、ユーザＤＢ１６３８を参照して、ユーザ１９０Ａの属性に基づいてユーザ１９０Ａ以外の１以上の他のユーザを選定する。
【０２３７】
図３０は、ユーザＤＢ１６３８のデータ構造の一例を表す。ユーザＤＢ１６３８は、ユーザＩＤと、年齢と、性別と、地域と、好みとを含む。プロセッサ１６２０は、ユーザ１９０Ａの属性（図３０の例では年齢、性別、地域、好み）に近い属性の他のユーザ（ユーザＩＤ）を選定する。例えば、プロセッサ１６２０は、ユーザ１９０Ａの年齢との差異が５才未満であって、ユーザ１９０Ａと同性のユーザを選定する。
【０２３８】
図２９を再び参照して、ステップＳ２９３０において、プロセッサ１６２０は、選定された他のユーザの、指定されたパノラマ画像ＩＤのパノラマ動画像に関する履歴情報を抽出する。例えば、履歴情報は、当該パノラマ動画像が展開される仮想空間において他のユーザが撮影を行なったときの撮影位置および撮影タイミングを含む。他の例として、履歴情報は、パノラマ動画像における他のユーザの視点位置と当該視点位置に対応するタイミングとを含む。さらに他の例として、履歴情報は、パノラマ動画像に対して他のユーザが投稿したコメントのコメント位置および投稿タイミングを含む。
【０２３９】
ステップＳ２９４０において、プロセッサ１６２０は、履歴情報に基づいて、パノラマ動画像の中から他のユーザが関心を示した場所とタイミングとを検出する。プロセッサ１６２０は、撮影制御部１６２８として、ステップＳ２９２０〜Ｓ２９４０の処理を実行する。
【０２４０】
ステップＳ２９５０において、プロセッサ１６２０は、検出した場所とタイミングとをコンピュータ２００Ａに送信する。コンピュータ２００Ａのプロセッサ１０Ａは、サーバ１５０から受信した情報に基づいて、他のユーザが関心を示した場所が撮影範囲１７３０に含まれるようにカメラオブジェクト１７１０を配置する。また、プロセッサ１０Ａは、他のユーザが関心を示したタイミングをユーザ１９０Ａに通知する。その後、プロセッサ１０Ａは、カメラオブジェクト１７１０により撮影を実行する。
【０２４１】
上記によれば、ある実施形態に従うＨＭＤシステム１００は、他のユーザの履歴情報に基づいて、他のユーザが関心を示した場所を含む画像を自動的に生成できる。
【０２４２】
また、サーバ１５０は、ユーザ１９０Ａに近い属性の他のユーザの履歴に基づいて撮影ポイントを検出する。これにより、ＨＭＤシステム１００は、自動撮影により生成された画像がユーザ１９０Ａに気に入られる可能性を高めることができる。
【０２４３】
なお、他の局面において、サーバ１５０が他のユーザの履歴情報をコンピュータ２００Ａに送信し、コンピュータ２００Ａが履歴情報に基づいて他のユーザが関心を示した場所とそのタイミングとを検出するように構成されてもよい。一例として、サーバ１５０は、ステップＳ２９３０で抽出した履歴情報をコンピュータ２００Ａに送信する。コンピュータ２００Ａは、受信した履歴情報に基づいてステップＳ３０４０の処理を実行する。
【０２４４】
［他人のアバターを含む画像を自動的に生成する処理］
上記の例では、コンピュータ２００Ａは、コンピュータ２００Ａのユーザ１９０Ａに対応するアバターオブジェクト１１００Ａを含む画像を自動的に生成するように構成されている。ある局面においてユーザ１９０Ａは、仮想空間２Ａ上で他のユーザ１９０とコミュニケーションを図る。この場合、ユーザ１９０Ａは、自身のアバターオブジェクト１１００Ａだけでなく、他のユーザ１９０に対応するアバターオブジェクトも含む画像を自動生成して欲しいと考え得る。そこで、以下に、他のユーザのアバターオブジェクトを含む画像を自動的に生成する処理について説明する。
【０２４５】
図３１は、他人のアバターオブジェクトを含む画像を生成するための処理を説明するための図である。図３１を参照して、アバターオブジェクト１１００Ａとアバターオブジェクト１１００Ｂとが間隔ＤＩＳだけ離れた状態で仮想空間２Ａに配置されている。ユーザ１９０Ａは、仮想空間２Ａ上でアバターオブジェクト１１００Ｂに対応するユーザ１９０Ｂとコミュニケーションを図る。
【０２４６】
コンピュータ２００Ａは、ユーザ１９０Ａとユーザ１９０Ｂとが盛り上がっていると推定されるタイミングで両者のアバターオブジェクトの各々の少なくとも一部（例えば、頭部）を含む画像を自動的に生成する。一例として、コンピュータ２００Ａのプロセッサ１０Ａは、ユーザ１９０Ａに対応する音声信号およびユーザ１９０Ｂに対応する音声信号をトリガとして自動撮影を実行する。例えば、プロセッサ１０Ａは、両者の音声信号が予め定められたレベル以上である場合に自動撮影を実行する。他の例として、プロセッサ１０Ａは、ユーザ１９０Ａおよび１９０Ｂの各々のフェイストラッキングデータに基づいて自動撮影を実行する。
【０２４７】
他の局面において、プロセッサ１０Ａは、両者のアバターオブジェクトが配置される間隔ＤＩＳが予め定められた間隔（例えば、１００ｐｉｘｅｌ）未満であって、かつ、上記の条件を満たした場合に自動撮影を実行するように構成されてもよい。この場合、ユーザ１９０Ａおよび１９０Ｂが仮想空間上でコミュニケーションを図っている可能性がより高くなるためである。以下、一例として、図３２を用いて両者の音声信号に基づく自動撮影処理を説明する。
【０２４８】
（制御構造）
図３２は、プロセッサ１０Ａが、コンピュータ２００Ｂと通信している状態においてアバターオブジェクト１１００Ｂを含む画像を自動的に生成する処理を表すフローチャートである。図３２に示される処理のうち上述と同じ処理については同じ符号を付している。そのため、その処理についての説明は繰り返さない。
【０２４９】
ステップＳ３２１０において、プロセッサ１０Ａは、ユーザ１９０Ａに対応するアバターオブジェクト１１００Ａを仮想空間２Ａに配置する。プロセッサ１０Ａはさらに、コンピュータ２００Ｂから受信した情報（例えば、モデリングデータ）に基づいて、ユーザ１９０Ｂに対応するアバターオブジェクト１１００Ｂを仮想空間２Ａに配置する。
【０２５０】
ステップＳ３２２０において、プロセッサ１０Ａは、アバターオブジェクト１１００Ａの位置および視線方向（傾き）を更新する。プロセッサ１０Ａはさらに、傾き特定モジュール２２４Ｂが特定するＨＭＤ１１０Ｂの傾き情報と、アバターオブジェクト１１００Ｂの位置情報とをコンピュータ２００Ｂから受け付ける。プロセッサ１０Ａは、受け付けた情報に基づいて、アバターオブジェクト１１００Ｂの位置および視線方向を更新する。
【０２５１】
ステップＳ３２３０において、プロセッサ１０Ａは、マイク１１９Ｂによって取得されたユーザ１９０Ｂの音声信号の入力をコンピュータ２００Ｂから受け付ける。
【０２５２】
ステップＳ３２４０において、プロセッサ１０Ａは、アバターオブジェクト１１００Ａおよび１１００Ｂの間隔ＤＩＳを算出する。具体的には、プロセッサ１０Ａは、アバターオブジェクト１１００Ａの位置と、アバターオブジェクト１１００Ｂの位置とに基づいて、これらの間隔ＤＩＳを算出する。
【０２５３】
ステップＳ３２５０において、プロセッサ１０Ａは、算出された間隔ＤＩＳが予め定められた間隔（例えば１００ｐｉｘｅｌ）未満であるか否かを判断する。プロセッサ１０Ａは、間隔ＤＩＳが予め定められた間隔未満であると判断した場合（ステップＳ３２５０でＹＥＳ）、ステップＳ３２６０の処理を実行する。そうでない場合（ステップＳ３２５０でＮＯ）、プロセッサ１０Ａは、ステップＳ３２２０の処理を再び実行する。
【０２５４】
ステップＳ３２６０において、プロセッサ１０Ａは、ユーザ１９０Ａの音声信号および１９０Ｂの音声信号がともに予め定められたレベル（例えば、７０ｄＢ）以上であるか否かを判断する。プロセッサ１０Ａは、両者の音声信号が予め定められたレベル以上であると判断した場合（ステップＳ３２６０でＹＥＳ）、ステップＳ３２７０の処理を実行する。そうでない場合（ステップＳ３２６０でＮＯ）、プロセッサ１０Ａは、ステップＳ３２２０の処理を再び実行する。
【０２５５】
ステップＳ３２７０において、プロセッサ１０Ａは、撮影制御モジュール２３５Ａとして、アバターオブジェクト１１００Ａおよび１１００Ｂの位置および視線方向に基づいてカメラオブジェクト１７１０を移動する。具体的には、プロセッサ１０Ａは、カメラオブジェクト１７１０の撮影範囲１７３０にアバターオブジェクト１１００Ａおよび１１００Ｂが含まれるように、カメラオブジェクト１７１０を移動する。一例として、プロセッサ１０Ａは、アバターオブジェクト１１００Ａとカメラオブジェクト１７１０との間隔と、アバターオブジェクト１１００Ｂとカメラオブジェクト１７１０との間隔とが等しくなるようにカメラオブジェクト１７１０を移動する。
【０２５６】
他の局面において、プロセッサ１０Ａは、ステップＳ１８２０の処理を実行せず、ステップＳ３２７０の処理の時点においてカメラオブジェクト１７１０を仮想空間２Ａに配置するように構成されてもよい。
【０２５７】
ステップＳ１８５５において、プロセッサ１０Ａは、今が撮影に適したタイミングであること、および、カメラオブジェクト１７１０の位置をユーザ１９０Ａに通知する。これにより、ユーザ１９０Ａは、仮想空間２Ａ上でカメラオブジェクト１７１０を見る。
【０２５８】
ステップＳ３２８０において、プロセッサ１０Ａは、ステップＳ１８５５で通知した撮影タイミングとカメラオブジェクト１７１０の位置とをコンピュータ２００Ｂに送信する。コンピュータ２００Ｂは、撮影タイミングとカメラオブジェクト１７１０の位置とをユーザ１９０Ｂに通知する。これにより、ユーザ１９０Ｂは、仮想空間２Ｂ上でカメラオブジェクト１７１０を見る。その結果、仮想空間２Ｂ上のアバターオブジェクト１１００Ｂの視線方向（および位置）が更新される。コンピュータ２００Ｂは、更新後のアバターオブジェクト１１００Ｂの視線方向（および位置）をコンピュータ２００Ａに送信する。
【０２５９】
ステップＳ３２９０において、プロセッサ１０Ａは、アバターオブジェクト１１００Ａおよび１１００Ｂがカメラオブジェクト１７１０に向いているか否かを判断する。プロセッサ１０Ａは、前述の判断手法を用いてアバターオブジェクト１１００Ａおよび１１００Ｂの各々の視線（基準視線）がカメラオブジェクト１７１０に注がれていると判断した場合（ステップＳ３２９０でＹＥＳ）ステップＳ１８６５の処理を実行する。そうでない場合（ステップＳ３２９０でＮＯ）、プロセッサ１０Ａは、アバターオブジェクト１１００Ａおよび１１００Ｂの各々の視線がカメラオブジェクト１７１０に注がれるまで待機する。
【０２６０】
上記によれば、コンピュータ２００Ａは、ユーザ１９０Ａおよび１９０Ｂの音声信号に基づいて両者が盛り上がっていると推測される場合に、両者のアバターオブジェクトを含む画像を自動的に生成できる。また、コンピュータ２００Ａは、両者のアバターオブジェクトがともにカメラ目線である画像を自動的に生成できる。その結果、ユーザ１９０Ａは、自動的に生成された画像を話題の種にして、より円滑にユーザ１９０Ｂとコミュニケーションを図ることができる。
【０２６１】
［構成］
以上に開示された技術的特徴は、以下のように要約され得る。
【０２６２】
（構成１）  ある実施形態に従うと、ＨＭＤ１１０Ａによって仮想空間２Ａを提供するためにコンピュータ２００Ａで実行されるプログラムが提供される。このプログラムはコンピュータ２００Ａに、仮想空間２Ａを定義するステップ（Ｓ１８０５）と、ＨＭＤ１１０Ａのユーザ１９０Ａに対応するアバターオブジェクト１１００Ａを仮想空間２Ａに配置するステップ（Ｓ１８１５）と、撮影機能を有するカメラオブジェクト１７１０を、当該カメラオブジェクト１７１０の撮影範囲にアバターオブジェクト１１００Ａの少なくとも一部が含まれるように仮想空間２Ａに配置するステップ（Ｓ１８５０）と、仮想空間２Ａにおける撮影に適したタイミングとカメラオブジェクト１７１０の位置とをユーザ１９０Ａに通知するステップ（Ｓ１８５５）と、通知後に、カメラオブジェクト１７１０の撮影範囲１７３０に対応する画像を生成するステップ（Ｓ１８６５）とを実行させる。
【０２６３】
（構成２）  （構成１）のプログラムはコンピュータ２００Ａに、ユーザ１９０Ａの発話に対応する音声信号の入力を受け付けるステップ（Ｓ１８３０）をさらに実行させる。通知するステップは、音声信号に基づいてタイミングをユーザ１９０Ａに通知することを含む。
【０２６４】
（構成３）  （構成２）において、通知するステップは、音声信号のレベルが予め定められたレベル以上である場合に撮影タイミングをユーザ１９０Ａに通知することを含む（Ｓ１９３５）。
【０２６５】
（構成４）  （構成２）または（構成３）において、通知するステップは、音声信号から文字列を抽出することと、抽出された文字列が予め定められた文字列を含む場合にタイミングをユーザ１９０Ａに通知すること（Ｓ１９４５）を含む。
【０２６６】
（構成５）  （構成２）〜（構成４）のいずれかに従うプログラムは、コンピュータ２００Ａに、コンピュータ２００Ａと通信可能なコンピュータ２００Ｂのユーザ１９０Ｂに対応するアバターオブジェクト１１００Ｂを仮想空間２Ａに配置するステップ（Ｓ３２１０）と、コンピュータ２００Ｂのユーザ１９０Ｂに対応する音声信号の入力を受け付けるステップ（Ｓ３２３０）とをさらに実行させる。カメラオブジェクト１７１０を仮想空間２Ａに配置するステップは、当該カメラオブジェクト１７１０の撮影範囲１７３０にアバターオブジェクト１１００Ａおよび１１００Ｂの各々の少なくとも一部が含まれるようにカメラオブジェクト１７１０を仮想空間２Ａに配置すること（Ｓ３２７０）を含む。通知するステップは、ユーザ１９０Ａの音声信号とユーザ１９０Ｂの音声信号とに基づいてタイミングをユーザ１９０Ａに通知すること（Ｓ３２６０）と、コンピュータ２００Ｂに当該タイミングを表す情報とカメラオブジェクト１７１０の位置を表す情報とを送信すること（Ｓ３２８０）とを含む。
【０２６７】
（構成６）  （構成５）に従うプログラムは、コンピュータ２００Ａに、アバターオブジェクト１１００Ａとアバターオブジェクト１１００Ｂとの間隔ＤＩＳを算出するステップ（Ｓ３２４０）をさらに実行させる。通知するステップは、算出された間隔ＤＩＳが予め定められた間隔未満である場合に、ユーザ１９０Ａおよび１９０Ｂの音声信号に基づいてタイミングをユーザ１９０Ａに通知すること（Ｓ３２５０）を含む。
【０２６８】
（構成７）  （構成５）または（構成６）において、通知するステップは、ユーザ１９０Ａおよび１９０Ｂの音声信号が予め定められたレベルを超えた場合にタイミングをユーザ１９０Ａに通知すること（Ｓ３２６０）を含む。
【０２６９】
（構成８）  （構成１）〜（構成７）のいずれかに従うプログラムは、コンピュータ２００Ａに、ユーザ１９０Ａの表情を表すフェイストラッキングデータの入力を受け付けるステップ（Ｓ２３２０）をさらに実行させる。通知するステップは、フェイストラッキングデータに基づいてタイミングをユーザ１９０Ａに通知すること（Ｓ２３３０〜Ｓ２３４０）を含む。
【０２７０】
（構成９）  （構成８）に従うプログラムはコンピュータ２００Ａに、フェイストラッキングデータとの比較に用いられる基準データの入力を受け付けるステップ（Ｓ２３１０）をさらに実行させる。フェイストラッキングデータに基づいて撮影タイミングをユーザ１９０Ａに通知することは、フェイストラッキングデータの基準データに対する変動量が予め定められた変動量を超えた場合にタイミングをユーザ１９０Ａに通知すること（Ｓ２３４０）を含む。
【０２７１】
（構成１０）  （構成１）〜（構成９）のいずれかに従うプログラムはコンピュータ２００Ａに、仮想空間２Ａにパノラマ動画像を展開するステップ（Ｓ１８１０）と、ユーザ１９０Ａとは異なる１以上の他のユーザのパノラマ動画像に関する履歴情報（Ｓ２９３０で抽出された履歴情報）の入力をサーバ１５０から受け付けるステップと、履歴情報に基づいてパノラマ動画像の中から他のユーザが関心を示した関心場所と関心タイミングとを検出するステップとをさらに実行させる。通知するステップは、関心タイミングをユーザ１９０Ａに通知することを含む。カメラオブジェクト１７１０を仮想空間２Ａに配置するステップは、カメラオブジェクト１７１０の撮影範囲に関心場所が含まれるようにカメラオブジェクト１７１０を配置することを含む。
【０２７２】
（構成１１）  （構成１０）において、履歴情報の入力を受け付けるステップは、ユーザＤＢ１６３８に基づいてサーバ１５０によって選定される、ユーザ１９０Ａの属性に近い他のユーザの履歴情報の入力を受け付けることを含む。
【０２７３】
（構成１２）  （構成１０）または（構成１１）において、履歴情報は、パノラマ動画像が展開される仮想空間２Ａにおいて他のユーザが撮影を行なった際の、撮影タイミングと撮影位置とを含む。これらの情報は、サーバ１５０が撮影ＤＢ１６４８を参照して抽出する。検出するステップは、撮影タイミングと撮影位置とに基づいて関心場所と関心タイミングとを検出することを含む。
【０２７４】
（構成１３）  （構成１０）〜（構成１２）のいずれかにおいて、履歴情報は、複数の他のユーザの各々の、パノラマ動画像における視点位置と当該視点位置に対応するタイミングとを含む。これらの情報は、サーバ１５０が視点履歴ＤＢ１６４２を参照して抽出する。検出するステップは、視点位置と、当該視点位置に対応するタイミングとに基づいて、関心場所と関心タイミングとを検出することを含む。
【０２７５】
（構成１４）  （構成１０）〜（構成１３）のいずれかにおいて、履歴情報は、パノラマ動画像において複数の他のユーザの各々がコメントを投稿した投稿タイミングと、当該コメントが配置されるコメント位置とを含む。これらの情報は、サーバ１５０が、コメントＤＢ１６４４を参照して抽出する。検出するステップは、投稿タイミングとコメント位置とに基づいて、関心場所と関心タイミングとを検出することを含む。
【０２７６】
（構成１５）  （構成１）〜（構成９）に従うプログラムは、プログラムはコンピュータ２００Ａに、仮想空間２Ａにパノラマ動画像を展開するステップ（Ｓ１８１０）と、ユーザ１９０Ａとは異なる１以上の他のユーザがパノラマ動画において関心を示した関心場所と関心タイミングとの入力をサーバ１５０から受け付けるステップ（Ｓ３０５０でサーバ１５０が送信した情報を受信するステップ）とを含む。通知するステップは、入力を受け付けた関心タイミングをユーザ１９０Ａに通知することを含む。カメラオブジェクト１７１０を仮想空間２Ａに配置するステップは、カメラオブジェクト１７１０の撮影範囲１７３０に関心場所が含まれるようにカメラオブジェクト１７１０を配置することを含む。
【０２７７】
（構成１６）  （構成１）〜（構成１５）において、カメラオブジェクト１７１０の位置をユーザ１９０Ａに通知することは、聴覚的または視覚的に通知することを含む。例えば、プログラムは、スピーカ１１８Ａからカメラオブジェクト１７１０の位置を知らせる音声を出力する。この音声は、直接的にカメラオブジェクト１７１０の位置を知らせる内容（例えば、「右を向いて」）である。他の局面において、この音声は、左右の出力を調整したステレオ音声により間接的にカメラオブジェクト１７１０の位置を知らせるもの（例えば、スピーカ１１８Ａの右側出力のみから「こっちを向いて」の音声を出力）であってもよい。
【０２７８】
（構成１７）  （構成１）〜（構成１６）のいずれかにおいて、画像を生成するステップは、アバターオブジェクト１１００Ａがカメラオブジェクト１７１０を向いていることを検出したこと（Ｓ１８６０）に基づいて、画像を生成することを含む。
【０２７９】
今回開示された実施形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２８０】
１  仮想カメラ、２  仮想空間、５  基準視線、１０  プロセッサ、１１  メモリ、１２，１６３０  ストレージ、１４，１６１０  通信インターフェイス、１９  ネットワーク、２２  パノラマ画像、２３  視認領域、２６，１１１０，１７００，２１００，２４００  視界画像、１００  ＨＭＤシステム、１０５  ＨＭＤセット、１１２  モニタ、１１４  センサ、１１５  第１カメラ、１１７  第２カメラ、１１８  スピーカ、１１９  マイク、１２０  ＨＭＤセンサ、１３０  モーションセンサ、１４０  注視センサ、１５０  サーバ、１６０  コントローラ、１９０  ユーザ、２００  コンピュータ、２２０  表示制御モジュール、２２１  仮想カメラ制御モジュール、２２２  視界領域決定モジュール、２２３  視界画像生成モジュール、２２４  傾き特定モジュール、２２５  顔器官検出モジュール、２２６  トラッキングモジュール、２２７  視点特定モジュール、２３０  仮想空間制御モジュール、２３１  仮想空間定義モジュール、２３２  仮想オブジェクト生成モジュール、２３３  操作オブジェクト制御モジュール、２３４  アバター制御モジュール、２３５  撮影制御モジュール、２３６  感情判断モジュール、２４０  メモリモジュール、２４１  空間情報、２４２  オブジェクト情報、２４３  ユーザ情報、２４４  顔情報、２４５  口テンプレート、２４６  目テンプレート、２４７  眉テンプレート、２４８  基準データ、２５０  通信制御モジュール、１１００  アバターオブジェクト、１２００  顔画像、１２１０  口領域、１３００  輪郭検出線、１３１０，１３２０  輪郭点、１４００  口形状、１６２２  送受信部、１６２４  サーバ処理部、１６２６  マッチング部、１６２８  撮影制御部、１６３２  仮想空間指定情報、１６３４  オブジェクト指定情報、１６３６  パノラマ画像ＤＢ、１６３８  ユーザＤＢ、１６４０  撮影履歴ＤＢ、１６４２  視点履歴ＤＢ、１６４４  コメントＤＢ、１６４６  自動撮影ＤＢ、１６４８  撮影ＤＢ、１７１０  カメラオブジェクト、１７２１，１７２２，１７２３  コメントオブジェクト、１７３０  撮影範囲、２１１０  矢印アイコン、２４１０  スクリーンオブジェクト、２７１０  視点位置。
【図１】
2019012443.tif 000003
【図２】
2019012443.tif 000004
【図３】
2019012443.tif 000005
【図４】
2019012443.tif 000006
【図５】
2019012443.tif 000007
【図６】
2019012443.tif 000008
【図７】
2019012443.tif 000009
【図８】
2019012443.tif 000010
【図９】
2019012443.tif 000011
【図１０】
2019012443.tif 000012
【図１１Ａ】
2019012443.tif 000013
【図１１Ｂ】
2019012443.tif 000014
【図１２】
2019012443.tif 000015
【図１３】
2019012443.tif 000016
【図１４】
2019012443.tif 000017
【図１５】
2019012443.tif 000018
【図１６】
2019012443.tif 000019
【図１７】
2019012443.tif 000020
【図１８】
2019012443.tif 000021
【図１９】
2019012443.tif 000022
【図２０】
2019012443.tif 000023
【図２１】
2019012443.tif 000024
【図２２Ａ】
2019012443.tif 000025
【図２２Ｂ】
2019012443.tif 000026
【図２３】
2019012443.tif 000027
【図２４】
2019012443.tif 000028
【図２５】
2019012443.tif 000029
【図２６】
2019012443.tif 000030
【図２７】
2019012443.tif 000031
【図２８】
2019012443.tif 000032
【図２９】
2019012443.tif 000033
【図３０】
2019012443.tif 000034
【図３１】
2019012443.tif 000035
【図３２】
2019012443.tif 000036
【手続補正書】
【提出日】平成30年1月26日(2018.1.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ヘッドマウントデバイスによって仮想空間を提供するためにコンピュータで実行されるプログラムであって、前記プログラムは前記コンピュータに、
仮想空間を定義するステップと、
前記ヘッドマウントデバイスのユーザに対応するアバターオブジェクトを前記仮想空間に配置するステップと、
撮影機能を有するカメラオブジェクトを、当該カメラオブジェクトの撮影範囲に前記アバターオブジェクトの少なくとも一部が含まれるように前記仮想空間に配置するステップと、
前記仮想空間における撮影に適したタイミングと前記カメラオブジェクトの位置とを前記ユーザに通知するステップと、
前記通知後に、前記カメラオブジェクトの撮影範囲に対応する画像を自動的に生成するステップとを実行させる、プログラム。
【請求項２】
前記プログラムは前記コンピュータに、前記ユーザの発話に対応する音声信号の入力を受け付けるステップをさらに実行させ、
前記通知するステップは、前記音声信号に基づいて前記タイミングを前記ユーザに通知することを含む、請求項１に記載のプログラム。
【請求項３】
前記通知するステップは、前記音声信号のレベルが予め定められたレベル以上である場合に前記タイミングを前記ユーザに通知することを含む、請求項２に記載のプログラム。
【請求項４】
前記通知するステップは、
前記音声信号から文字列を抽出することと、
前記抽出された文字列が予め定められた文字列を含む場合に前記タイミングを前記ユーザに通知することを含む、請求項２または３に記載のプログラム。
【請求項５】
ヘッドマウントデバイスによって仮想空間を提供するためにコンピュータで実行されるプログラムであって、前記プログラムは前記コンピュータに、
仮想空間を定義するステップと、
前記ヘッドマウントデバイスのユーザに対応するアバターオブジェクトを前記仮想空間に配置するステップと、
撮影機能を有するカメラオブジェクトを、当該カメラオブジェクトの撮影範囲に前記アバターオブジェクトの少なくとも一部が含まれるように前記仮想空間に配置するステップと、
前記仮想空間における撮影に適したタイミングと前記カメラオブジェクトの位置とを前記ユーザに通知するステップと、
前記通知後に、前記カメラオブジェクトの撮影範囲に対応する画像を自動的に生成するステップと、
前記ユーザの発話に対応する音声信号の入力を受け付けるステップと、
前記コンピュータと通信可能な他コンピュータのユーザに対応する他アバターオブジェクトを前記仮想空間に配置するステップと、
前記他コンピュータのユーザに対応する他音声信号の入力を受け付けるステップとをさらに実行させ、
前記カメラオブジェクトを前記仮想空間に配置するステップは、当該カメラオブジェクトの撮影範囲に前記アバターオブジェクトおよび前記他アバターオブジェクトの各々の少なくとも一部が含まれるように前記カメラオブジェクトを前記仮想空間に配置することを含み、
前記通知するステップは、
前記音声信号と前記他音声信号とに基づいて前記タイミングを前記ユーザに通知することと、
前記他コンピュータに当該タイミングを表す情報と前記カメラオブジェクトの位置を表す情報とを送信することとを含む、プログラム。
【請求項６】
前記プログラムは前記コンピュータに、前記アバターオブジェクトと前記他アバターオブジェクトとの間隔を算出するステップをさらに実行させ、
前記通知するステップは、前記算出された間隔が予め定められた間隔未満である場合に、前記音声信号と前記他音声信号とに基づいて前記タイミングを前記ユーザに通知することを含む、請求項５に記載のプログラム。
【請求項７】
前記通知するステップは、前記音声信号および前記他音声信号が予め定められたレベルを超えた場合に前記タイミングを前記ユーザに通知することを含む、請求項５または６に記載のプログラム。
【請求項８】
前記プログラムは前記コンピュータに、前記ユーザの表情を表すフェイストラッキングデータの入力を受け付けるステップをさらに実行させ、
前記通知するステップは、前記フェイストラッキングデータに基づいて前記タイミングを前記ユーザに通知することを含む、請求項１〜７のいずれか１項に記載のプログラム。
【請求項９】
ヘッドマウントデバイスによって仮想空間を提供するためにコンピュータで実行されるプログラムであって、前記プログラムは前記コンピュータに、
仮想空間を定義するステップと、
前記ヘッドマウントデバイスのユーザに対応するアバターオブジェクトを前記仮想空間に配置するステップと、
撮影機能を有するカメラオブジェクトを、当該カメラオブジェクトの撮影範囲に前記アバターオブジェクトの少なくとも一部が含まれるように前記仮想空間に配置するステップと、
前記通知後に、前記カメラオブジェクトの撮影範囲に対応する画像を生成するステップと、
前記ユーザの表情を表すフェイストラッキングデータの入力を受け付けるステップと、
前記フェイストラッキングデータとの比較に用いられる基準データの入力を受け付けるステップと、
前記フェイストラッキングデータに基づいて前記仮想空間における撮影に適したタイミングと、前記カメラオブジェクトの位置とを前記ユーザに通知するステップとを実行させ、
前記フェイストラッキングデータに基づいて前記タイミングを前記ユーザに通知することは、フェイストラッキングデータの前記基準データに対する変動量が予め定められた変動量を超えた場合に前記タイミングを前記ユーザに通知することを含む、プログラム。
【請求項１０】
前記プログラムは前記コンピュータに、
前記仮想空間にパノラマ動画像を展開するステップと、
前記ユーザとは異なる１以上の他ユーザの前記パノラマ動画像に関する履歴情報の入力を受け付けるステップと、
前記履歴情報に基づいて前記パノラマ動画像の中から前記他ユーザが関心を示した関心場所と関心タイミングとを検出するステップとをさらに実行させ、
前記通知するステップは、前記関心タイミングを前記ユーザに通知することを含み、
前記カメラオブジェクトを前記仮想空間に配置するステップは、前記カメラオブジェクトの撮影範囲に前記関心場所を含むように前記カメラオブジェクトを配置することを含む、請求項１〜９のいずれか１項に記載のプログラム。
【請求項１１】
前記履歴情報の入力を受け付けるステップは、前記ユーザの属性により選定される他ユーザの履歴情報の入力を受け付けることを含む、請求項１０に記載のプログラム。
【請求項１２】
前記履歴情報は、前記パノラマ動画像が展開される仮想空間において前記他ユーザが撮影を行なった際の、撮影タイミングおよび前記パノラマ動画像における撮影位置を含み、
前記検出するステップは、前記撮影タイミングと前記撮影位置とに基づいて前記関心場所と前記関心タイミングとを検出することを含む、請求項１０または１１に記載のプログラム。
【請求項１３】
前記履歴情報は、複数の前記他ユーザの各々の、前記パノラマ動画像における視点位置と当該視点位置に対応するタイミングとを含み、
前記検出するステップは、前記視点位置と、当該視点位置に対応するタイミングとに基づいて、前記関心場所と前記関心タイミングとを検出することを含む、請求項１０〜１２のいずれか１項に記載のプログラム。
【請求項１４】
前記履歴情報は、前記パノラマ動画像において複数の前記他ユーザの各々がコメントを投稿した投稿タイミングと、当該コメントが配置されるコメント位置とを含み、
前記検出するステップは、前記投稿タイミングと前記コメント位置とに基づいて、前記関心場所と前記関心タイミングとを検出することを含む、請求項１０〜１３のいずれか１項に記載のプログラム。
【請求項１５】
前記プログラムは前記コンピュータに、
前記仮想空間にパノラマ動画像を展開するステップと、
前記ユーザとは異なる１以上の他ユーザが前記パノラマ動画像において関心を示した関心場所と関心タイミングとの入力を受け付けるステップと、
前記通知するステップは、前記入力を受け付けた関心タイミングを前記ユーザに通知することを含み、
前記カメラオブジェクトを前記仮想空間に配置するステップは、前記カメラオブジェクトの撮影範囲に前記関心場所を含むように前記カメラオブジェクトを配置することを含む、請求項１〜９のいずれか１項に記載のプログラム。
【請求項１６】
前記カメラオブジェクトの位置を前記ユーザに通知することは、聴覚的または視覚的に通知することを含む、請求項１〜１５のいずれか１項に記載のプログラム。
【請求項１７】
前記画像を生成するステップは、前記アバターオブジェクトが前記カメラオブジェクトを向いていることを検出したことに基づいて、前記画像を生成することを含む、請求項１〜１６のいずれか１項に記載のプログラム。
【請求項１８】
請求項１〜１７のいずれか１項に記載のプログラムを格納したメモリと、
前記プログラムを実行するためのプロセッサとを備える、情報処理装置。
【請求項１９】
ヘッドマウントデバイスによって仮想空間を提供するためにコンピュータで実行される方法であって、
仮想空間を定義するステップと、
前記ヘッドマウントデバイスのユーザに対応するアバターオブジェクトを前記仮想空間に配置するステップと、
撮影機能を有するカメラオブジェクトを、当該カメラオブジェクトの撮影範囲に前記アバターオブジェクトの少なくとも一部が含まれるように前記仮想空間に配置するステップと、
前記仮想空間における撮影に適したタイミングと前記カメラオブジェクトの位置とを前記ユーザに通知するステップと、
前記通知後に、前記カメラオブジェクトの撮影範囲に対応する画像を自動的に生成するステップとを備える、方法。