(57)【特許請求の範囲】
【請求項１】
第１端末で第１の人について検出された第１動作について、第１の人と対応付けた状態の第１画像群を生成して、第２端末と第３端末に提供する第１の提供手段と、
前記第２端末で、前記第１画像群を出力した後に検出された第２の人の第２動作に基づいて、第２の人と対応付けた状態の第２画像群を生成する第２画像生成手段と、
前記第３端末で、前記第１画像群を出力した後に検出された第３の人の第３動作に基づいて、第３の人と対応付けた状態の第３画像群を生成する第３画像生成手段と、
前記第１画像群と前記第２画像群と前記第３画像群とを合成して合成画像群を生成する際に、
前記第１画像群と前記第２画像群とは、前記第１画像群の前記第２端末における出力タイミングと前記第２動作の検出タイミングとのズレに応じた時間差で合成し、
前記第１画像群と前記第３画像群とは、前記第１画像群の前記第３端末における出力タイミングと前記第３動作の検出タイミングとのズレに応じた時間差で合成する、合成画像群生成手段と、
生成された前記合成画像群を、前記第１端末、前記第２端末、前記第３端末のそれぞれに提供する第２の提供手段と
を有することを特徴とする反応出力システム。
【請求項２】
検出された前記第２動作が、前記第１画像群に示される前記第１の人に対する接近傾向の動作であるのか、回避傾向の動作であるのかを判定し、判定の結果に応じて、前記合成画像群の表示態様を変更することを特徴とする請求項１に記載の反応出力システム。
【請求項３】
検出された前記第３動作が、前記第１画像群に示される前記第１の人に対する接近傾向の動作であるのか、回避傾向の動作であるのかを判定し、判定の結果に応じて、前記合成画像群の表示態様を変更することを特徴とする請求項１に記載の反応出力システム。
【請求項４】
前記第１端末と前記第２端末との間の通信速度と、前記第１端末と前記第３端末との間の通信速度とに基づいて、前記合成画像群を、前記第１端末、前記第２端末、前記第３端末において再生するタイミングを決定することを特徴とする請求項１に記載の反応出力システム。
【請求項５】
第１端末で第１の人について検出された第１動作について、第１の人と対応付けた状態の第１画像群を生成して、第２端末と第３端末に提供し、
前記第２端末で、前記第１画像群を出力した後に検出された第２の人の第２動作に基づいて、第２の人と対応付けた状態の第２画像群を生成し、
前記第３端末で、前記第１画像群を出力した後に検出された第３の人の第３動作に基づいて、第３の人と対応付けた状態の第３画像群を生成し、
前記第１画像群と前記第２画像群と前記第３画像群とを合成して合成画像群を生成する際に、
前記第１画像群と前記第２画像群とは、前記第１画像群の前記第２端末における出力タイミングと前記第２動作の検出タイミングとのズレに応じた時間差で合成し、
前記第１画像群と前記第３画像群とは、前記第１画像群の前記第３端末における出力タイミングと前記第３動作の検出タイミングとのズレに応じた時間差で合成し、
生成された前記合成画像群を、前記第１端末、前記第２端末、前記第３端末のそれぞれに提供する、
処理をコンピュータに実行させるための反応出力プログラム。
【請求項６】
コンピュータが、
第１端末で第１の人について検出された第１動作について、第１の人と対応付けた状態の第１画像群を生成して、第２端末と第３端末に提供し、
前記第２端末で、前記第１画像群を出力した後に検出された第２の人の第２動作に基づいて、第２の人と対応付けた状態の第２画像群を生成し、
前記第３端末で、前記第１画像群を出力した後に検出された第３の人の第３動作に基づいて、第３の人と対応付けた状態の第３画像群を生成し、
前記第１画像群と前記第２画像群と前記第３画像群とを合成して合成画像群を生成する際に、
前記第１画像群と前記第２画像群とは、前記第１画像群の前記第２端末における出力タイミングと前記第２動作の検出タイミングとのズレに応じた時間差で合成し、
前記第１画像群と前記第３画像群とは、前記第１画像群の前記第３端末における出力タイミングと前記第３動作の検出タイミングとのズレに応じた時間差で合成し、
生成された前記合成画像群を、前記第１端末、前記第２端末、前記第３端末のそれぞれに提供する、
処理を実行する反応出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、反応出力システム、反応出力プログラム、反応出力方法に関する。
【背景技術】
【０００２】
複数の人間同士がコミュニケーションを行うシーンにおいて、それぞれの人が行う振る舞いに対して、他の人たちがどのような反応をしたのかを解析し、親密性のバランスがとれているか否かを推測することは、互いの人間関係を構築する上で重要な情報となる。
【０００３】
例えば、ある人が他の人に視線を合わせようとした時に、当該他の人と視線が合う場合には、他の人との間で親密性のバランスがとれていると推測することができる。一方、視線が合わずに他の人が体を遠ざけたような場合には、親密性のバランスをこわしたと推測することができる。
【０００４】
人間関係の構築において重要なこれらの振る舞いに関する情報を遠隔地におけるビデオ会議等においても共有することでコミュニケーションを支援する技術が従来より知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１１０５５８号公報
【特許文献２】特開２００９−７７３８０号公報
【特許文献３】特開２０１５−７５９０６号公報
【特許文献４】特開２０１５−６４８２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、人間関係の構築において重要なこれらの振る舞いに関する情報を、仮想空間でのコミュニケーションにおいて共有する場合について検討する。仮想空間の場合、コミュニケーションを行う複数の人間同士が互いに離間した場所にいて、アバタ（ユーザと対応付けた状態の画像）を介してコミュニケーションを行う。このため、以下のような問題が生じ得る。
【０００７】
例えば、ユーザＡの振る舞いを反映したアバタの動きが、遠隔地にいるユーザＢによって視認され、ユーザＢがした反応を反映したアバタの動きを、ユーザＡが視認したとする。この場合、ユーザＡの振る舞いに対するユーザＢの反応をユーザＡがユーザＢのアバタの動きとして視認するまでには一定程度の時間がかかる。このため、ユーザＡにとっては、ユーザＢからの反応を反映したアバタの動きが返ってくるまで、自身の振る舞いが適切であったのか不適切であったのかを把握することができない。また、不適切であったとしても、ユーザＡの一連の振る舞いに対して、ユーザＢがどのタイミングで不適切と判断していたのかを把握することができない。
【０００８】
つまり、仮想空間においては、ユーザの個々の振る舞いとそれぞれの振る舞いに対する他のユーザの反応との関係を把握することが容易ではなく、親密性のバランスがとれているか否かを推測することが困難である。
【０００９】
一つの側面では、複数人が利用する仮想空間上で、ある人の振る舞いに対して他の人たちが個別にした反応を、当該振る舞いに対するそれぞれの反応が生起したタイミングを変えずに、合成して出力することができるようにすることを目的としている。
【課題を解決するための手段】
【００１０】
一態様によれば、反応出力システムは、第１端末で第１の人について検出された第１の振る舞いについて、第１の人と対応付けた状態の第１画像群を生成して、第２端末と第３端末に提供する第１の提供手段と、前記第２端末で、前記第１画像群を出力した後に検出された第２の人の第２の振る舞いに基づいて、第２の人と対応付けた状態の第２画像群を生成する第２画像生成手段と、前記第３端末で、前記第１画像群を出力した後に検出された第３の人の第３の振る舞いに基づいて、第３の人と対応付けた状態の第３画像群を生成する第３画像生成手段と、前記第１画像群と前記第２画像群と前記第３画像群とを合成して合成画像群を生成する際に、前記第１画像群と前記第２画像群とは、前記第１画像群の前記第２端末における出力タイミングと前記第２動作の検出タイミングとのズレに応じた時間差で合成し、前記第１画像群と前記第３画像群とは、前記第１画像群の前記第３端末における出力タイミングと前記第３動作の検出タイミングとのズレに応じた時間差で合成する、合成画像群生成手段と、生成された前記合成画像群を、前記第１端末、前記第２端末、前記第３端末のそれぞれに提供する、第２の提供手段とを有することを特徴とする。
【発明の効果】
【００１１】
複数人が利用する仮想空間上で、ある人の振る舞いに対して他の人たちが個別にした反応を、当該振る舞いに対するそれぞれの反応が生起したタイミングを変えずに、合成して出力することができる。
【図面の簡単な説明】
【００１２】
【図１】反応出力システムの全体構成の一例を示す図である。
【図２】各ユーザのＨＭＤにそれぞれ表示される視野画像の一例を示す図である。
【図３】各ユーザの振る舞いと視野画像との関係を説明するための第１の図である。
【図４】各ユーザの振る舞いと視野画像との関係を説明するための第２の図である。
【図５】合成画像群の表示例を示す図である。
【図６】サーバ装置のハードウェア構成の一例を示す図である。
【図７】クライアント装置のハードウェア構成の一例を示す図である。
【図８】クライアント装置の機能構成の一例を示す図である。
【図９】クライアント装置により実行されるセンサデータ送信処理のフローチャートである。
【図１０】クライアント装置により実行される仮想空間再生処理のフローチャートである。
【図１１】クライアント装置により実行される合成画像群再生処理のフローチャートである。
【図１２】サーバ装置の機能構成の一例を示す第１の図である。
【図１３】頭部姿勢データテーブルの一例を示す図である。
【図１４】深度データファイルテーブルの一例を示す図である。
【図１５】筋電位データテーブルの一例を示す図である。
【図１６】サーバ装置により実行される仮想空間用情報提供処理のフローチャートである。
【図１７】サーバ装置の機能構成の一例を示す第２の図である。
【図１８】アバタの動きの一例を示す図である。
【図１９】アバタの動きの種類を判定するための定義情報を示した図である。
【図２０】他のアバタに対する動きの種類を判定するための定義情報を示した図である。
【図２１】ユーザの振る舞いが行われてから作用イベントが発生するまでの流れを説明するための図である。
【図２２】サーバ装置により実行されるログ記録処理のフローチャートである。
【図２３】動きの種類判定ログテーブルの一例を示す図である。
【図２４】他のアバタに対する動きの種類判定ログテーブルの一例を示す図である。
【図２５】ユーザの振る舞いが行われてから合成画像群が再生されるまでの流れを説明するための第１の図である。
【図２６】バッファテーブル及びイベントログテーブルの一例を示す図である。
【図２７】作用イベント及び反応イベントログ参考表の一例を示す図である。
【図２８】再生と反応ログテーブルの一例を示す図である。
【図２９】合成画像群生成用情報参考表及び合成画像群再生指示情報参考表の一例を示す図である。
【図３０】サーバ装置により実行される合成画像群用情報提供処理のフローチャートである。
【図３１】合成画像群再生ログテーブルの一例を示す図である。
【図３２】サーバ装置の機能構成の一例を示す第３の図である。
【図３３】他のアバタに対する動きの種類と傾向と優先順位との関係を定義した定義情報の一例を示す図である。
【図３４】ユーザの振る舞いが行われてから合成画像群が再生されるまでの流れを説明するための第２の図である。
【発明を実施するための形態】
【００１３】
はじめに、以下の各実施形態の反応出力システムの説明に用いる用語の定義について簡単に説明する。以下の各実施形態において説明する反応出力システムは、互いに離間した場所にいる複数の人間同士がコミュニケーションを行う際に利用する仮想空間を提供するとともに、親密性のバランスがとれているか否かを推測するための合成画像群を提供する。
【００１４】
当該反応出力システムは、仮想空間を提供するにあたり、実空間における「人の振る舞い」を、仮想空間における「アバタの動き」に変換する処理を行う。「アバタの動き」は、各タイムフレーム（時刻）において生成された各タイムフレーム（時刻）の画像である「アバタ」を連続的に表示することで表現される。ここでいう「人の振る舞い」は、ジェスチャとして知られる、手を挙げる、首を傾ける等の定型化された振る舞いも含むが、必ずしも、人からジェスチャとして認識されるものでなくてもよい。
【００１５】
各フレームにおける「アバタ」は、アバタの各部位の「部位情報」に基づいて生成される。アバタの各部位の「部位情報」は、実空間における人の振る舞い（Behavior）をセンシングすることで得たセンサデータを、仮想空間におけるアバタの各部位の状態（位置、角度等）を示す情報に変換することで得られる。なお、「部位情報」には、「部位の種類を示す情報」と、「部位の状態を示す値（部位値）」とが含まれる。
【００１６】
つまり、仮想空間における「アバタの動き」は、時刻の経過に伴う各タイムフレーム間での「アバタ」の変化（アバタの各部位の部位値の変化）として表現される。なお、以下の実施形態では、アバタの各部位がどのように動いたのかによってアバタの動きをラベル付けした情報（実空間において人がどのような振る舞いを行ったのかについてラベル付けした情報）を、「アバタの動きの種類」と称する。
【００１７】
なお、実空間においては、同じ振る舞いであっても、他の人との関係によっては反対の意味を持つ（異なる社会的振る舞い（Social Behavior）であると判断される）場合がある。社会的振る舞いとは、振る舞いの中でも他の人の社会的な存在に対して行われる振る舞いをいう。
【００１８】
例えば、人の振る舞いが、前進する振る舞いであったとした時に、前進した先に他の人がいる場合には、当該人の振る舞いは、他の人に近づくという社会的振る舞い（接近傾向を示す社会的振る舞い）ということができる。反対に、他の人が近くにいる状態で、前進する振る舞いを行った結果、当該他の人から遠ざかる場合には、当該人の振る舞いは、他の人から遠ざかる社会的振る舞い（回避傾向を示す社会的振る舞い）ということができる。同様に、例えば、人の振る舞いが、顔の向きを右方向に向ける振る舞いであったとした時に、右側に他の人がいる場合には、当該人の振る舞いは、他の人に顔を向ける社会的振る舞い（接近傾向を示す社会的振る舞い）ということができる。反対に、当該人の左側に他の人がいる状態で、顔の向きを右方向に向ける振る舞いを行った場合、当該人の振る舞いは、他の人から顔をそむける社会的振る舞い（回避傾向を示す社会的振る舞い）ということができる。
【００１９】
したがって、仮想空間における「アバタの動き」も、他のアバタとの関係によっては反対の意味を持つことになる。以下の実施形態では、「他のアバタに対する動き」が、実空間における人のどのような社会的振る舞いに相当するかを判定することを、「他のアバタに対する動きの種類」を判定する、と称する。
【００２０】
続いて、以下の各実施形態の反応出力システムの処理の概要について説明する。各実施形態における反応出力システムは、実空間における人の振る舞いをセンシングすることで得たセンサデータに基づいて、それぞれのアバタの動きを算出する。そして、所定のアバタが所定量以上動いたことに伴って、他のアバタが所定量以上動いた場合に、動きの種類を判定するとともに、それぞれの動きを反映した画像群を生成し、それらを合成することで、合成画像群を生成する。
【００２１】
このとき、各実施形態における反応出力システムは、所定のアバタの動きを他のユーザが視認できるように表示した際の表示タイミングと、他のユーザの振る舞い（反応）をセンシングしたセンシングタイミングとのズレに応じた時間差で、画像群を合成する。これにより、所定のユーザの振る舞いに対して他の人たちが個別にした反応を、当該振る舞いに対するそれぞれの反応が生起したタイミングを変えずに、合成画像群として出力することができる。この結果、仮想空間においても、ユーザの個々の振る舞いとそれぞれの振る舞いに対する他のユーザの反応との関係を容易に把握することができる。
【００２２】
なお、以下の各実施形態における反応出力システムは、画像群を生成するにあたり、判定した「アバタの動きの種類」に応じた「他のアバタに対する動きの種類」を判定する。そして、各実施形態における反応出力システムは、「他のアバタに対する動きの種類」を判定するのに用いたセンサデータ等に基づいて、画像群を生成する。これにより、実空間における人の社会的振る舞いに相当する、仮想空間におけるアバタの動きを反映した画像群を含む合成画像群を生成することができる。
【００２３】
以下、各実施形態の詳細について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００２４】
［第１の実施形態］
＜反応出力システムの全体構成＞
はじめに、反応出力システムの全体構成について説明する。図１は、反応出力システムの全体構成の一例を示す図である。図１に示すように、反応出力システム１００は、サーバ装置１１０と、第１乃至第３端末の一例であるクライアント装置１２０〜１４０とを有する。サーバ装置１１０と、クライアント装置１２０〜１４０とは、インターネットやＬＡＮ（Local Area Network）等に代表されるネットワーク１８０を介して接続されている。
【００２５】
ユーザ１５０（ユーザ名＝"ユーザＡ"、第１の人）、ユーザ１６０（ユーザ名＝"ユーザＢ"、第２の人）、ユーザ１７０（ユーザ名＝"ユーザＣ"、第３の人）は、互いに離間した場所にいて、反応出力システム１００を利用する。これにより、ユーザ１５０〜１７０はサーバ装置１１０が提供する同じ仮想空間において、互いにコミュニケーションを行うことができる。また、ユーザ１５０〜１７０は、反応出力システム１００において提供される合成画像群（詳細は後述）を視認することが可能である。これにより、ユーザ１５０〜１７０は、それぞれのユーザが行う振る舞いと他のユーザの反応との関係とを容易に把握することができ、親密性のバランスがとれているか否かを推測することができる。
【００２６】
サーバ装置１１０には、仮想空間用情報提供プログラムと合成画像群用情報提供プログラムとがインストールされている。サーバ装置１１０は、これらのプログラムを実行することで、仮想空間用情報提供部１１１及び合成画像群用情報提供部１１２として機能する。
【００２７】
仮想空間用情報提供部１１１は、ユーザ１５０〜１７０が互いにコミュニケーションを行う仮想空間を提供する。具体的には、仮想空間用情報提供部１１１は、ユーザ１５０〜１７０の実空間における振る舞い（体の姿勢を変える動作、顔の向きや表情を変える動作、発話等）をセンシングすることで取得したセンサデータをクライアント装置から受信する。
【００２８】
なお、センサデータには、上記したユーザの振る舞い以外の振る舞い（ユーザの視線の動作等も含む）をセンシングすることで取得したデータが含まれていてもよい。
【００２９】
仮想空間用情報提供部１１１は、受信したセンサデータをセンサデータ格納部１１４に格納する。また、仮想空間用情報提供部１１１は、受信したセンサデータに基づいて、仮想空間におけるアバタの動きを表現すべく、各時刻におけるアバタの各部位の部位情報を算出する。更に、仮想空間用情報提供部１１１は、算出した部位情報に基づいて各時刻におけるアバタを生成し、生成したアバタを含む仮想空間の画像を、受信したセンサデータに含まれる音声データともに仮想空間用情報として他のクライアント装置に提供する。
【００３０】
このとき、仮想空間用情報提供部１１１は、コンテンツ格納部１１３に格納された背景画像の中から選択した背景画像を用いて、仮想空間の画像（背景部分）を生成する。また、仮想空間用情報提供部１１１は、コンテンツ格納部１１３に格納された人型画像の中から選択した、ユーザ１５０〜１７０それぞれに対応する人型画像を用いて、アバタを生成する。
【００３１】
合成画像群用情報提供部１１２は、仮想空間用情報提供部１１１により提供される仮想空間において、ユーザ１５０〜１７０のアバタの各部位が所定量以上動いたか否か（アバタの各部位の部位情報が所定量以上変化したか否か）を判定する。また、合成画像群用情報提供部１１２は、アバタの各部位が所定量以上動いたと判定した場合に、当該動きを含む合成画像群を生成し、生成した合成画像群をユーザ１５０〜１７０が視認できるように提供する。これにより、ユーザ１５０〜１７０は、ユーザ１５０〜１７０間において親密性のバランスがとれているか否かを推測することができる。
【００３２】
また、合成画像群用情報提供部１１２は、合成画像群を提供するための各処理を実行した際に取得した各種ログをログ格納部１１６のログテーブルに格納する。これにより（各種ログを解析することにより）、サーバ装置１１０の管理者は、ユーザ１５０〜１７０間において親密性のバランスがとれているか否かを推測することができる。
【００３３】
クライアント装置１２０には、情報処理プログラムがインストールされている。クライアント装置１２０は、当該プログラムを実行することで、情報処理部１２１として機能する。
【００３４】
また、クライアント装置１２０には、深度センサ１２２が接続されている。深度センサ１２２は、ユーザ１５０の前方に配置され、ユーザ１５０の三次元の位置を計測することで、ユーザ１５０の実空間における振る舞い（例えば、体の姿勢を変える振る舞い等）に応じて変化するデータである深度データを出力する。
【００３５】
更に、クライアント装置１２０は、ユーザ１５０が利用するウェアラブル型の表示装置またはセンサとの間で、無線通信を行う。第１の実施形態においてウェアラブル型の表示装置には、ＨＭＤ（Head-Mounted Display）１２３が含まれる。ＨＭＤ１２３は、ユーザ１５０に対して各タイムフレーム（時刻）における仮想空間の画像を表示する。また、第１の実施形態においてウェアラブル型のセンサには、頭部姿勢センサ１２４、音声センサ１２５、筋電位センサ１２６が含まれる。
【００３６】
頭部姿勢センサ１２４は、ユーザ１５０の実空間における振る舞いのうち、"顔の向き"に応じたデータである頭部姿勢データを出力する。音声センサ１２５は、ユーザ１５０の実空間における振る舞いのうち、"発話"に応じたデータである音声データを出力する。筋電位センサ１２６は、ユーザ１５０の実空間における振る舞いのうち、"表情"に応じたデータである筋電位データを出力する。
【００３７】
ＨＭＤ１２３、頭部姿勢センサ１２４、音声センサ１２５、筋電位センサ１２６は、ユーザ１５０の頭部に装着される。なお、頭部姿勢センサ１２４、音声センサ１２５、筋電位センサ１２６は、ＨＭＤ１２３に内蔵されていてもよい。また、ウェアラブル型のセンサには、上記した振る舞い以外のユーザ１５０の振る舞いに応じたデータを出力するセンサが含まれていてもよい。例えば、ウェアラブル型のセンサには、ユーザ１５０の実空間における振る舞いのうち、視線の向きに応じたデータを出力するセンサが含まれていてもよい。
【００３８】
クライアント装置１２０は、深度データ、頭部姿勢データ、音声データ、筋電位データをセンサデータとして取得し、サーバ装置１１０に送信する。また、クライアント装置１２０は、サーバ装置１１０より送信された仮想空間用情報を受信する。また、クライアント装置１２０は、受信した仮想空間用情報と、取得したセンサデータとに基づいて、ユーザ１５０から見た場合の各タイムフレーム（時刻）における仮想空間の画像（以下、"視野画像"と称す）を生成する。更に、クライアント装置１２０は、生成した視野画像と、仮想空間用情報に含まれる音声データとをＨＭＤ１２３に送信する。これにより、ユーザ１５０は、仮想空間を視認することができるとともに、実空間において発せられた音声を仮想空間において視聴することができる。
【００３９】
また、クライアント装置１２０は、サーバ装置１１０にセンサデータを送信したことに応じて、サーバ装置１１０より送信された合成画像群用情報を受信する。合成画像群用情報は、ユーザ１５０〜１７０間において親密性のバランスがとれているか否かを推測するのに適した合成画像群を含む情報である。クライアント装置１２０は、合成画像群用情報に含まれる当該合成画像群を所定の再生開始タイミングで、ＨＭＤ１２３において再生するよう制御する。所定の再生開始タイミングは、当該合成画像群が、他のユーザ１６０、１７０に装着されるＨＭＤ１３３、１４３において再生される再生開始タイミングと同期したタイミングである。
【００４０】
なお、クライアント装置１３０及びクライアント装置１４０が有する機能、クライアント装置１３０及びクライアント装置１４０に接続される表示装置及びセンサ等は、クライアント装置１２０と同様であるため、ここでは説明を省略する。
【００４１】
＜反応出力システムにおける視野画像の説明＞
次に、ユーザ１５０〜１７０のＨＭＤ１２３、１３３、１４３それぞれに表示される視野画像について説明する。図２は、各ユーザのＨＭＤそれぞれに表示される視野画像の一例を示す図である。
【００４２】
図２に示すように、ユーザ１５０のＨＭＤ１２３には、各タイムフレーム（時刻）における視野画像として、ユーザ１６０のアバタ２６０（第２画像）と、ユーザ１７０のアバタ２７０（第３画像）とを含む仮想空間の画像２００が表示される。なお、ユーザ１５０のＨＭＤ１２３に表示された視野画像には、ユーザ１５０自身のアバタの一部（手等）が表示されていないが、ユーザ１５０自身のアバタの全体や一部（手等）が表示されてもよい。
【００４３】
ユーザ１６０のＨＭＤ１３３には、各タイムフレーム（時刻）における視野画像として、ユーザ１５０のアバタ２５０（第１画像）を含む仮想空間の画像２００が表示される。ユーザ１６０の向きは、ユーザ１５０の向きとは異なっているため、同じ仮想空間の画像２００であっても、ユーザ１５０のＨＭＤ１２３に表示された視野画像とは異なる視野画像が表示される。なお、仮想空間の画像２００において、ユーザ１７０は、ユーザ１６０の左横にいるため、図２の例では、ユーザ１６０のＨＭＤ１２３に表示された視野画像には、ユーザ１７０のアバタ２７０は表示されていない。また、ユーザ１６０のＨＭＤ１２３に表示された視野画像には、ユーザ１６０自身のアバタの一部（手等）が表示されていないが、ユーザ１６０自身のアバタの全体や一部（手等）が表示されてもよい。
【００４４】
ユーザ１７０のＨＭＤ１４３には、ユーザ１５０のアバタ２５０を含む仮想空間の画像２００が表示される。ユーザ１７０の向きは、ユーザ１６０の向きと概ね同じであるため、ユーザ１６０のＨＭＤ１３３と同様の視野画像が表示される。なお、仮想空間の画像２００において、ユーザ１６０は、ユーザ１７０の右横にいるため、図２の例では、ユーザ１７０のＨＭＤ１２３に表示された仮想空間の画像２００には、ユーザ１６０のアバタ２６０は表示されていない。また、ユーザ１７０のＨＭＤ１２３に表示された視野画像には、ユーザ１７０自身のアバタの一部（手等）が表示されていないが、ユーザ１７０自身のアバタの全体や一部（手等）が表示されてもよい。
【００４５】
＜反応出力システムにおけるユーザの振る舞いと視野画像との関係及び合成画像群の説明＞
次に、反応出力システム１００におけるユーザ１５０〜１７０の振る舞いと視野画像との関係及び合成画像群について説明する。図３及び図４は、各ユーザの振る舞いと視野画像との関係を説明するための図である。図３及び図４において矢印３００は、時間軸を示している。
【００４６】
時刻ｔ１において、ユーザ１５０が実空間において体の向きを保ったまま、前方（矢印３０１方向）に進む振る舞いを行ったとする。クライアント装置１２０は、ユーザ１５０の振る舞いに関してセンシングしたセンサデータを取得すると、当該センサデータに基づいて、仮想空間の画像２００におけるユーザ１５０の視野画像を更新する。視野画像３１１は、更新後の視野画像を示している。ユーザ１５０が実空間において前方に進む振る舞いを行ったことで、仮想空間の画像２００において、ユーザ１６０のアバタ２６０及びユーザ１７０のアバタ２７０に近づくことになる。これにより、視野画像３１１は、仮想空間の画像２００においてアバタ２６０及びアバタ２７０に接近した状態を示す画像となる。
【００４７】
クライアント装置１２０において取得されたセンサデータは、サーバ装置１１０に送信される。サーバ装置１１０は、受信したセンサデータに基づいてアバタ２５０の部位情報を算出する。また、サーバ装置１１０は、算出した部位情報を仮想空間の画像２００におけるアバタ２５０に反映した後、当該仮想空間の画像を含む仮想空間用情報を、クライアント装置１３０及びクライアント装置１４０に送信する。
【００４８】
時刻ｔ２において仮想空間用情報を受信したクライアント装置１３０は、仮想空間用情報に含まれる仮想空間の画像に基づいて、ユーザ１６０の視野画像を更新する。視野画像３２１は、更新後の視野画像を示している。ユーザ１５０が実空間において前方に進む振る舞いを行ったことで、仮想空間の画像２００'においても、ユーザ１５０のアバタ２５０が近づくことになる。これにより、視野画像３２１は、仮想空間の画像２００'においてアバタ２５０が接近した状態を示す画像となる。
【００４９】
同様に、時刻ｔ３において仮想空間用情報を受信したクライアント装置１４０は、仮想空間用情報に含まれる仮想空間の画像に基づいて、ユーザ１７０の視野画像を更新する。視野画像３３１は、更新後の視野画像を示している。ユーザ１５０が実空間において前方に進む振る舞いを行ったことで、仮想空間の画像２００'においても、ユーザ１５０のアバタ２５０がユーザ１７０のアバタ２７０に近づくことになる。これにより、視野画像３３１は、仮想空間の画像２００'においてアバタ２５０が接近した状態を示す画像となる。
【００５０】
仮想空間の画像２００'においてアバタ２５０の画像が接近したことに応じて、図４に示すように、時刻ｔ４において、ユーザ１６０が後方（矢印３０２方向）に進む振る舞いを行ったとする。クライアント装置１３０は、ユーザ１６０の振る舞いに関してセンシングしたセンサデータを取得すると、当該センサデータに基づいて、仮想空間の画像２００'におけるユーザ１６０の視野画像を更新する。視野画像３２２は、更新後の視野画像を示している。ユーザ１６０が実空間において後方に進む振る舞いを行ったことで、仮想空間の画像２００'においても、ユーザ１５０のアバタ２５０から遠ざかることになる。これにより、視野画像３２２は、仮想空間の画像２００'においてアバタ２５０から遠ざかった状態を示す画像となる。
【００５１】
クライアント装置１３０において取得されたセンサデータは、サーバ装置１１０に送信される。サーバ装置１１０は、受信したセンサデータに基づいてアバタ２６０の部位情報を算出する。
【００５２】
同様に、時刻ｔ５において、ユーザ１７０は、仮想空間の画像２００'において接近したアバタ２５０がいる右方向（矢印３０３方向）を向く振る舞いを行ったとする。クライアント装置１４０は、ユーザ１７０の振る舞いをセンシングしたセンサデータを取得すると、当該センサデータに基づいて、仮想空間の画像２００'におけるユーザ１７０の視野画像を更新する。視野画像３３２は、更新後の視野画像を示している。ユーザ１６０が実空間において右方向を向く振る舞いを行ったことで、仮想空間の画像２００'においても、アバタ２７０の右側が視認されることになる。これにより、視野画像３３２は、仮想空間の画像２００'において、アバタ２５０とアバタ２６０とが接近している状態を示す画像となる。なお、時刻ｔ５の時点で、ユーザ１７０のＨＭＤ１４３には、時刻ｔ４でのユーザ１６０の振る舞いがアバタ２６０の動きに反映された仮想空間の画像は表示されない。このため、視野画像３３２に示すように、アバタ２６０の画像は後方に進んでいない画像となる。
【００５３】
クライアント装置１４０において取得されたセンサデータは、サーバ装置１１０に送信される。サーバ装置１１０は、受信したセンサデータに基づいてアバタ２７０の部位情報を算出する。
【００５４】
なお、ユーザ１５０により所定の振る舞いが行われ、当該振る舞い応じてアバタ２５０が動いた仮想空間の画像２００'がユーザ１６０、１７０のＨＭＤ１３３、１４３に表示されると、仮想空間用情報の更新が一旦停止する。このため、時刻ｔ６においてユーザ１５０のＨＭＤ１２３には、時刻ｔ１において表示された仮想空間の画像２００に基づく視野画像と同じ視野画像が依然として表示されることになる。
【００５５】
このように、ユーザ１５０が実空間で所定の振る舞いを行った時刻（ｔ１）と、ユーザ１６０、１７０がそれぞれの視野画像に基づいてユーザ１５０のアバタ２５０の動きを視認して反応する時刻（ｔ４，ｔ５）との間には、一定程度のタイムラグがある。
【００５６】
このため、ユーザ１６０、１７０の反応が、ユーザ１５０の一連の振る舞いのうち、時刻ｔ１における振る舞いに起因する反応であるのか、他の時刻における他の振る舞いに起因する反応であるのかを判断するのは困難である。
【００５７】
そこで、第１の実施形態では、ユーザ１５０の時刻ｔ１における振る舞いに起因して発生するユーザ１６０、１７０の振る舞いをアバタ２５０〜２７０の動きとしてまとめた合成画像群をサーバ装置１１０が生成する。そして、合成画像群用情報として、クライアント装置１２０、１３０、１４０に送信する。図５は、合成画像群の表示例を示す図である。
【００５８】
図５に示すように、ユーザ１５０〜１７０の視野画像（図５の例では、視野画像３１１、３２２、３３２）の合成画像群再生領域５０１〜５０３には、合成画像群が再生される。具体的には、クライアント装置１２０、１３０、１４０は、それぞれ、サーバ装置１１０から送信された合成画像群用情報に含まれる合成画像群を、時刻ｔ７において、合成画像群再生領域５０１〜５０３に再生するよう制御する。
【００５９】
合成画像群再生領域５０１〜５０３にて再生した合成画像群は、アバタ２５０'がアバタ２６０'に近づくことで、アバタ２６０'が後方に進み、アバタ２７０'が顔を右方向を向けた一連の動きが含まれる画像群である。
【００６０】
合成画像群において、アバタ２６０'は、アバタ２５０'が近づいてから所定の時間差で、後方に進む動きをする。このときの所定の時間差は、アバタ２５０が接近した状態の視野画像３２１をユーザ１６０が視認してから、ユーザ１６０が後方に進む振る舞いを行うまでの時間差（ｔ２とｔ４との時間差）である。
【００６１】
また、合成画像群において、アバタ２７０'は、アバタ２５０'が接近してから所定の時間差で、右方向を向く動きをする。このときの所定の時間差は、アバタ２５０が接近した状態の視野画像３３１をユーザ１７０が視認してから、ユーザ１７０が右方向を向く振る舞いを行うまでの時間差（ｔ３とｔ５との時間差）である。
【００６２】
このようにして、合成画像群が再生されることで、ユーザ１５０の振る舞いに起因する他のユーザ１６０、１７０の反応を、あたかも実空間において居合わせてそれぞれが反応した場合のように、仮想空間上でアバタ２５０'〜２６０'で表現することが可能となる。
【００６３】
＜サーバ装置のハードウェア構成＞
次に、サーバ装置１１０のハードウェア構成について説明する。図６は、サーバ装置のハードウェア構成の一例を示す図である。図６に示すように、サーバ装置１１０は、ＣＰＵ（Central Processing Unit）６０１、ＲＯＭ（Read Only Memory）６０２、ＲＡＭ（Random Access Memory）６０３を備える。また、サーバ装置１１０は、補助記憶部６０４、通信部６０５、表示部６０６、操作部６０７、ドライブ部６０８を備える。なお、サーバ装置１１０の各部は、バス６０９を介して相互に接続されている。
【００６４】
ＣＰＵ６０１は、補助記憶部６０４にインストールされた各種プログラム（例えば、仮想空間用情報提供プログラム、合成画像群用情報提供プログラム）を実行するコンピュータである。ＲＯＭ６０２は、不揮発性メモリである。ＲＯＭ６０２は、補助記憶部６０４に格納された各種プログラムをＣＰＵ６０１が実行するために必要な各種プログラム、データ等を格納する主記憶部として機能する。具体的には、ＲＯＭ６０２はＢＩＯＳ（Basic Input/Output System）やＥＦＩ（Extensible Firmware Interface）等のブートプログラム等を格納する。
【００６５】
ＲＡＭ６０３は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）等の揮発性メモリであり、主記憶部として機能する。ＲＡＭ６０３は、補助記憶部６０４に格納された各種プログラムがＣＰＵ６０１によって実行される際に展開される、作業領域を提供する。
【００６６】
補助記憶部６０４は、サーバ装置１１０にインストールされた各種プログラムや、各種プログラムを実行する際に用いる情報（仮想空間の画像（背景部分）、人型画像、定義情報等）を格納する。また、補助記憶部６０４は、各種プログラムを実行することで取得される情報（センサデータ、ログ等）を格納する。
【００６７】
通信部６０５は、サーバ装置１１０が接続するクライアント装置１２０、１３０、１４０と通信するためのデバイスである。表示部６０６は、サーバ装置１１０における各種処理結果や処理状態を表示する。操作部６０７は、サーバ装置１１０に対して各種指示を入力する際に用いられる。
【００６８】
ドライブ部６０８は記録媒体６１０をセットするためのデバイスである。ここでいう記録媒体６１０には、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体６１０には、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等も含まれる。
【００６９】
なお、補助記憶部６０４に格納される各種プログラムは、例えば、配布された記録媒体６１０がドライブ部６０８にセットされ、記録媒体６１０に記録された各種プログラムがドライブ部６０８により読み出されることで格納されるものとする。あるいは、通信部６０５を介して受信することで格納されてもよい。
【００７０】
＜クライアント装置のハードウェア構成＞
次に、クライアント装置１２０、１３０、１４０のハードウェア構成について説明する。図７は、クライアント装置のハードウェア構成の一例を示す図である。図７に示すように、クライアント装置１２０、１３０、１４０は、ＣＰＵ（Central Processing Unit）７０１、ＲＯＭ（Read Only Memory）７０２、ＲＡＭ（Random Access Memory）７０３を備える。また、クライアント装置１２０、１３０、１４０は、補助記憶部７０４、通信部７０５、操作部７０６、表示部７０７、音声データ転送部７０８、音声データ取得部７０９を備える。更に、クライアント装置１２０、１３０、１４０は、頭部姿勢データ取得部７１０、深度データ取得部７１１、筋電位データ取得部７１２を備える。なお、これらの各部は、バス７１３を介して相互に接続されている。
【００７１】
ＣＰＵ７０１は、補助記憶部７０４にインストールされた各種プログラム（例えば、情報処理プログラム）を実行するコンピュータである。ＲＯＭ７０２は、不揮発性メモリである。ＲＯＭ７０２は、補助記憶部７０４に格納された各種プログラムをＣＰＵ７０１が実行するために必要な各種プログラム、データ等を格納する主記憶部として機能する。具体的には、ＲＯＭ７０２はＢＩＯＳ（Basic Input/Output System）やＥＦＩ（Extensible Firmware Interface）等のブートプログラム等を格納する。
【００７２】
ＲＡＭ７０３は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）等の揮発性メモリであり、主記憶部として機能する。ＲＡＭ７０３は、補助記憶部７０４に格納された各種プログラムがＣＰＵ７０１によって実行される際に展開される、作業領域を提供する。
【００７３】
補助記憶部７０４は、インストールされた各種プログラムや、各種プログラムを実行する際に用いる情報を格納する。
【００７４】
通信部７０５は、クライアント装置１２０、１３０、１４０が接続するサーバ装置１１０と通信するためのデバイスである。操作部７０６は、クライアント装置１２０、１３０、１４０に対して各種指示を入力する際に用いられる。表示部７０７は、クライアント装置１２０、１３０、１４０における各種処理結果や処理状態を表示する。
【００７５】
音声データ転送部７０８は、サーバ装置１１０より送信される仮想空間用情報に含まれる音声データを抽出し、ＨＭＤ１２３に送信する。これにより、ＨＭＤ１２３が有するスピーカにおいて、音声データが出力される。
【００７６】
音声データ取得部７０９は、音声センサ１２５（または音声センサ１３５、１４５）より送信された音声データを取得する。頭部姿勢データ取得部７１０は、頭部姿勢センサ１２４（または頭部姿勢センサ１３４、１４４）より送信された頭部姿勢データを取得する。深度データ取得部７１１は、深度センサ１２２（または深度センサ１３２、１４２）より送信された深度データを取得する。筋電位データ取得部７１２は、筋電位センサ１２６（筋電位センサ１３６、１４６）より送信された筋電位データを取得する。
【００７７】
なお、取得された音声データ、頭部姿勢データ、深度データ、筋電位データは、センサデータとして、通信部７０５によりサーバ装置１１０に送信される。
【００７８】
＜クライアント装置の機能構成＞
次に、クライアント装置１２０、１３０、１４０の情報処理部１２１、１３１、１４１の機能構成について説明する。図８は、クライアント装置の機能構成の一例を示す図である。図８に示すように、クライアント装置１２０、１３０、１４０の情報処理部１２１、１３１、１４１は、仮想空間用情報取得部８０１、センサデータ取得部８０２、視野画像生成部８０３、視野画像表示制御部８０４、音声出力制御部８０５を有する。なお、仮想空間用情報取得部８０１から音声出力制御部８０５までの各部は、仮想空間用情報に関する処理を実行する際に用いる機能である。
【００７９】
また、クライアント装置１２０、１３０、１４０の情報処理部１２１、１３１、１４１は、センサデータ送信部８０６、合成画像群用情報取得部８０７、合成画像群再生部８０８を有する。なお、センサデータ取得部８０２及びセンサデータ送信部８０６から合成画像群再生部８０８までの各部は、合成画像群用情報に関連する処理を実行する際に用いる機能である。
【００８０】
仮想空間用情報取得部８０１は、サーバ装置１１０より送信される仮想空間用情報を取得し、視野画像生成部８０３及び音声出力制御部８０５に通知する。
【００８１】
センサデータ取得部８０２は、頭部姿勢データ取得部７１０において取得された頭部姿勢データを、センサデータ取得時刻を示す時刻情報と対応付けて取得する。また、センサデータ取得部８０２は、深度データ取得部７１１において取得された深度データを、センサデータ取得時刻を示す時刻情報と対応付けて取得する。更に、センサデータ取得部８０２は、筋電位データ取得部７１２において取得された筋電位データ、音声データ取得部７０９において取得された音声データを、それぞれのセンサデータ取得時刻を示す時刻情報と対応付けて取得する。
【００８２】
センサデータ取得部８０２は、取得した頭部姿勢データと深度データとを、視野画像生成部８０３に通知する。また、取得した頭部姿勢データと深度データと筋電位データと音声データとを、それぞれ時刻情報と対応付けて、センサデータとして、センサデータ送信部８０６に通知する。
【００８３】
視野画像生成部８０３は、センサデータ取得部８０２より通知された頭部姿勢データ及び深度データと、仮想空間用情報に含まれる仮想空間の画像とに基づいて、ユーザ１５０（またはユーザ１６０、１７０）の各タイムフレームにおける視野画像を生成する。
【００８４】
視野画像表示制御部８０４は、視野画像生成部８０３により生成された視野画像を、ＨＭＤ１２３（またはＨＭＤ１３３、１４３）に表示するよう制御する。
【００８５】
音声出力制御部８０５は、仮想空間用情報に含まれる音声データを抽出し、ＨＭＤ１２３（またはＨＭＤ１３３、１４３）が有するスピーカにおいて出力されるよう制御する。
【００８６】
センサデータ送信部８０６は、センサデータ取得部８０２より通知されたセンサデータを、サーバ装置１１０に送信する。センサデータ送信部８０６は、センサデータを送信するにあたり、センサデータのセンシングに用いたセンサを利用するユーザのユーザ名を合わせてサーバ装置に送信する。また、センサデータ送信部８０６は、センシングされたセンサデータを取得したクライアント装置を識別するための識別子等もあわせてサーバ装置１１０に送信する。
【００８７】
合成画像群用情報取得部８０７は、サーバ装置１１０より送信された合成画像群用情報を取得し、合成画像群再生部８０８に通知する。
【００８８】
合成画像群再生部８０８は、合成画像群用情報取得部８０７より通知された合成画像群用情報に含まれる合成画像群を抽出し、ＨＭＤ１２３（またはＨＭＤ１３３、１４３）に送信する。また、合成画像群の再生が、合成画像群用情報にて指示された再生開始タイミングで開始されるよう、ＨＭＤ１２３（またはＨＭＤ１３３、１４３）を制御する。
【００８９】
＜クライアント装置により実行されるセンサデータ送信処理の流れ＞
次に、クライアント装置１２０により実行されるセンサデータ送信処理の流れについて説明する。図９は、クライアント装置により実行されるセンサデータ送信処理のフローチャートである。
【００９０】
ステップＳ９０１において、センサデータ取得部８０２は、頭部姿勢データ取得部７１０により取得された頭部姿勢データを取得し、時刻情報等と対応付けて、センサデータとしてセンサデータ送信部８０６に通知する。
【００９１】
ステップＳ９０２において、センサデータ取得部８０２は、深度データ取得部７１１により取得された深度データを取得し、時刻情報等と対応付けて、センサデータとしてセンサデータ送信部８０６に通知する。
【００９２】
ステップＳ９０３において、センサデータ取得部８０２は、筋電位データ取得部７１２により取得された筋電位データを取得し、時刻情報等と対応付けて、センサデータとしてセンサデータ送信部８０６に通知する。
【００９３】
ステップＳ９０４において、センサデータ取得部８０２は、音声データ取得部７０９により取得された音声データを取得し、時刻情報等と対応付けて、センサデータとしてセンサデータ送信部８０６に通知する。なお、ステップＳ９０１からＳ９０４における各処理の順序については、これらに限定されるものではなく、他の順序で行っても、あるいは、並行して行ってもよい。
【００９４】
ステップＳ９０５において、センサデータ送信部８０６は、センサデータ取得部８０２より通知されたセンサデータ（時刻情報等を含む）を、サーバ装置１１０に送信する。
【００９５】
ステップＳ９０６において、センサデータ取得部８０２は、センサデータ送信処理を終了するか否かを判定する。センサデータ送信処理を終了しないと判定した場合には、ステップＳ９０１に戻り、センサデータ送信処理を継続する。一方、終了すると判定した場合には、センサデータ送信処理を終了する。
【００９６】
＜クライアント装置により実行される仮想空間再生処理の流れ＞
次に、クライアント装置１２０〜１４０により実行される仮想空間再生処理の流れについて説明する。クライアント装置１２０〜１４０により実行される仮想空間再生処理はいずれも同様の処理であるため、ここでは、クライアント装置１２０により実行される仮想空間再生処理について説明する。図１０は、クライアント装置により実行される仮想空間再生処理のフローチャートである。
【００９７】
ステップＳ１００１において、仮想空間用情報取得部８０１は、サーバ装置１１０より送信される仮想空間用情報を新たに取得したか否かを判定する。ステップＳ１００１において新たに取得していないと判定した場合には、ステップＳ１００４に進む。
【００９８】
一方、ステップＳ１００１において新たに取得したと判定した場合には、ステップＳ１００２に進む。ステップＳ１００２において、仮想空間用情報取得部８０１は、取得した仮想空間用情報を視野画像生成部８０３及び音声出力制御部８０５に通知する。これにより、視野画像生成部８０３及び音声出力制御部８０５が保持している仮想空間用情報が更新される。
【００９９】
ステップＳ１００３において、音声出力制御部８０５は、仮想空間用情報に含まれる音声データを抽出し、音声データ転送部７０８を介してＨＭＤ１２３に出力する。
【０１００】
ステップＳ１００４において、センサデータ取得部８０２は、頭部姿勢データ取得部７１０において取得された頭部姿勢データ及び深度データ取得部７１１において取得された深度データを取得する。
【０１０１】
ステップＳ１００５において、視野画像生成部８０３は、ステップＳ１００３において取得された頭部姿勢データ及び深度データと、現在保持している仮想空間用情報に含まれる仮想空間の画像とに基づいて、ユーザ１５０の現在時刻における視野画像を生成する。なお、センサデータは、アバタの各部位の部位情報の算出に用いられるだけでなく、ユーザの視野画像を変更するためにも用いられる。
【０１０２】
ステップＳ１００６において、視野画像表示制御部８０４は、ステップＳ１００４において生成された現在時刻における視野画像を、ＨＭＤ１２３に表示するよう制御する。
【０１０３】
ステップＳ１００７において、仮想空間用情報取得部８０１は、仮想空間再生処理の終了指示の有無を判定する。ステップＳ１００７において、仮想空間再生処理の終了指示がないと判定した場合には、ステップＳ１００１に戻る。一方、ステップＳ１００７において、仮想空間再生処理の終了指示が入力されたと判定した場合には、仮想空間再生処理を終了する。
【０１０４】
＜クライアント装置により実行される合成画像群再生処理の流れ＞
次に、クライアント装置１２０〜１４０により実行される合成画像群再生処理の流れについて説明する。クライアント装置１２０〜１４０により実行される合成画像群再生処理はいずれも同様の処理であるため、ここでは、クライアント装置１２０により実行される合成画像群再生処理について説明する。図１１は、クライアント装置により実行される合成画像群再生処理のフローチャートである。
【０１０５】
ステップＳ１１０１において、合成画像群用情報取得部８０７は、サーバ装置１１０より合成画像群用情報を取得したか否かを判定する。ステップＳ１１０１において、合成画像群用情報を取得していないと判定した場合には、合成画像群用情報を取得するまで待機する。
【０１０６】
一方、ステップＳ１１０１において、合成画像群用情報を取得したと判定した場合には、ステップＳ１１０２に進む。ステップＳ１１０２において、合成画像群再生部８０８は、現在時刻が合成画像群用情報に含まれる合成画像群の再生開始タイミングか否かを判定する。
【０１０７】
ステップＳ１１０２において、合成画像群の再生開始タイミングでないと判定した場合には、再生開始タイミングになるまで待機する。一方、ステップＳ１１０２において、合成画像群の再生開始タイミングであると判定した場合には、ステップＳ１１０３に進む。
【０１０８】
ステップＳ１１０３において、合成画像群再生部８０８は、ＨＭＤ１２３において合成画像群が再生されるよう制御する。
【０１０９】
ステップＳ１１０４において、合成画像群用情報取得部８０７は、合成画像群再生処理を終了するか否かを判定する。ステップＳ１１０４において、終了しないと判定した場合には、ステップＳ１１０１に戻り、合成画像群再生処理を継続する。一方、ステップＳ１１０４において終了すると判定した場合には、合成画像群再生処理を終了する。
【０１１０】
＜サーバ装置（仮想空間用情報提供部）の機能構成＞
次に、サーバ装置１１０の機能構成について説明する。図１２は、サーバ装置の機能構成の一例を示す第１の図であり、仮想空間用情報提供部１１１の機能構成を示す図である。
【０１１１】
図１２に示すように、サーバ装置１１０の仮想空間用情報提供部１１１は、センサデータ収集部１２０１、仮想空間用情報生成部１２０２、仮想空間用情報送信部１２０３を有する。
【０１１２】
センサデータ収集部１２０１は、クライアント装置１２０、１３０、１４０それぞれより送信されるセンサデータを収集し、センサデータ格納部１１４に格納する。また、センサデータ収集部１２０１は、収集したセンサデータを仮想空間用情報生成部１２０２に通知する。
【０１１３】
仮想空間用情報生成部１２０２は、コンテンツ格納部１１３より仮想空間の画像（背景部分）を読み出す。また、仮想空間用情報生成部１２０２は、コンテンツ格納部１１３より各ユーザに対応する人型画像を読み出し、仮想空間の画像（背景部分）に配置するアバタを特定する。更に、仮想空間用情報生成部１２０２は、センサデータ収集部１２０１により収集されたセンサデータに基づいてアバタの各部位の部位情報を算出し、仮想空間の画像（背景部分）に配置するとともに、当該センサデータより音声データを抽出する。これにより、仮想空間用情報生成部１２０２は、各ユーザの振る舞いに対応してアバタが動き発声するための、各タイムフレームにおける仮想空間の画像及び音声を生成する。
【０１１４】
仮想空間用情報送信部１２０３は、仮想空間用情報生成部１２０２により生成された仮想空間の画像及び音声を含む仮想空間用情報を、センサデータを送信した送信元のクライアント装置以外のクライアント装置に送信する。
【０１１５】
＜仮想空間用情報提供部により格納されるセンサデータ＞
次に、センサデータ格納部１１４に格納されるセンサデータのうち、音声データを除くセンサデータ（頭部姿勢データ、深度データ、筋電位データ）について、図１３〜図１５を用いて説明する。なお、以降の説明において、音声データについての説明は省略し、センサデータとして、頭部姿勢データ、深度データ、筋電位データについて説明する（ただし、音声データも他のセンサデータと同様に処理されるものとする）。
【０１１６】
また、以下の説明における（位置、角度）のうち、位置は、仮想空間におけるＸＹＺ軸に対して一意に決まる座標であり、角度は、仮想空間におけるＸＹＺ軸に対する回転度合を指すものとする。
【０１１７】
（１）頭部姿勢データ
図１３は、頭部姿勢データテーブルの一例を示す図である。図１３に示すように、頭部姿勢データテーブル１３００は、情報の項目として、"記録時刻"と、"センサデータ取得時刻"と、"ユーザ名"と、"クライアント装置ＩＤ"と、"頭部姿勢データ（位置、角度）"とを含む。
【０１１８】
"記録時刻"には、頭部姿勢データが、センサデータ格納部１１４に格納された時刻が記録される。"センサデータ取得時刻"には、頭部姿勢データが、センサデータ取得部８０２により取得された時刻が記録される。センサデータ送信部８０６は、センサデータとして頭部姿勢データをサーバ装置１１０に送信する際に、あわせて頭部姿勢データを取得した、センサデータ取得時刻を示す時刻情報を送信する。
【０１１９】
"ユーザ名"には、頭部姿勢センサを利用するユーザのユーザ名が記録される。センサデータ送信部８０６は、センサデータとして頭部姿勢データをサーバ装置１１０に送信する際に、あわせて頭部姿勢センサを利用するユーザのユーザ名を送信する。
【０１２０】
"クライアント装置ＩＤ"には、頭部姿勢データを含むセンサデータを送信したクライアント装置を識別するための識別子が記録される。センサデータ送信部８０６は、センサデータをサーバ装置１１０に送信する際に、あわせてクライアント装置を識別するための識別子を送信する。なお、センサデータ送信部８０６は、クライアント装置を識別するための識別子に加え、頭部姿勢センサを識別するための識別子を送信するようにしてもよい。この場合、"クライアント装置ＩＤ"には、クライアント装置を識別するための識別子に加え、頭部姿勢センサを識別するための識別子が合わせて記録されることになる。
【０１２１】
"頭部姿勢データ（位置，角度）"には、頭部姿勢データである、位置データと角度データとが記録される。具体的には、頭部姿勢データを、仮想空間におけるＸＹＺ軸に対する位置、ＸＹＺ軸に対する角度として算出したものが時系列に記録される。
【０１２２】
図１３のデータ行１３０１の例は、"２０１５年７月２７日１１時００分００秒０００"に、ユーザ名＝"ユーザＡ"であるユーザ１５０をセンサＩＤ＝"ｓ１"で識別される頭部姿勢センサ１２４がセンシングし、頭部姿勢データが取得されたことを示している。また、データ行１３０１の例は、当該頭部姿勢データを仮想空間における位置、角度として算出したものが、（（位置），（角度））＝"（（０，１８，−１８）、（０，０，０））"であったことを示している。また、データ行１３０１の例は、当該頭部姿勢データが、クライアント装置ＩＤ＝"ｃ１"のクライアント装置１２０より送信され、"２０１５年７月２７日１１時００分０１秒０３０"に頭部姿勢データテーブル１３００に格納されたことを示している。
【０１２３】
（２）深度データファイル
図１４は、深度データファイルテーブルの一例を示す図である。図１４に示すように、深度データファイルテーブル１４００は、情報の項目として、"記録時刻"と、"センサデータ取得開始時刻"と、"センサデータ取得終了時刻"と、"ユーザ名"と、"クライアント装置ＩＤ"と、"深度データファイルＵＲＩ"とを含む。
【０１２４】
"記録時刻"には、深度データファイルが、深度データファイルテーブル１４００に格納された時刻が記録される。"センサデータ取得開始時刻"には、所定時間の間に取得された複数の深度データ群として形成される深度データファイルのうち、はじめの深度データが取得されたセンサデータ取得時刻（例えば、所定時間の開始時刻）が記録される。"センサデータ取得終了時刻"には、所定時間の間に取得された複数の深度データ群として形成される深度データファイルのうち、最後の深度データが取得されたセンサデータ取得時刻（例えば、所定時間の終了時刻）が記録される。センサデータ送信部８０６は、センサデータとして深度データファイルをサーバ装置１１０に送信する際に、合わせて深度データ群それぞれを取得した、センサデータ取得時刻を示す時刻情報を送信する。
【０１２５】
"ユーザ名"には、深度センサを利用するユーザのユーザ名が記録される。センサデータ送信部８０６は、センサデータとして深度データファイルをサーバ装置１１０に送信する際に、あわせて深度センサを利用するユーザのユーザ名を送信する。
【０１２６】
"クライアント装置ＩＤ"には、深度データファイルを含むセンサデータを送信したクライアント装置を識別するための識別子が記録される。センサデータ送信部８０６は、センサデータをサーバ装置１１０に送信する際に、あわせてクライアント装置を識別するための識別子を送信する。なお、センサデータ送信部８０６は、クライアント装置を識別するための識別子に加え、深度センサを識別するための識別子を送信してもよい。この場合、"クライアント装置ＩＤ"には、クライアント装置を識別するための識別子に加え、深度センサを識別するための識別子が合わせて記録されることになる。
【０１２７】
"深度データファイルＵＲＩ"には、深度データファイルの格納先を示すＵＲＩ（Uniform Resource Identifier）及びファイル名が記録される（ただし、図１４では、ＵＲＩは省略して示している）。
【０１２８】
図１４のデータ行１４０１の例は、深度データファイルとして、ファイル名＝"００１．ｘｅｆ"の深度データファイルが深度データファイルテーブル１４００に格納されたことを示している。また、データ行１４０１の例は、深度データファイルには、"２０１５年７月２７日１１時００分００秒０００"に取得された深度データから、"２０１５年７月２７日１１時００分０１秒０００"に取得された深度データまでが含まれることを示している。また、データ行１４０１の例は、深度データファイルが、ユーザ名＝"ユーザＡ"であるユーザ１５０をセンサＩＤ＝"ｓ１"により識別される深度センサ１２２がセンシングすることで取得されたことを示している。更に、データ行１４０１の例は、深度データファイルが、クライアント装置ＩＤ＝"ｃ１"のクライアント装置１２０により送信され、"２０１５年７月２７日１１時００分０１秒０３０"に深度データファイルテーブル１４００に格納されたことを示している。
【０１２９】
（３）筋電位データ
図１５は、筋電位データテーブルの一例を示す図である。図１５に示すように、筋電位データテーブル１５００は、情報の項目として、"記録時刻"と、"センサデータ取得時刻"と、"ユーザ名"と、"クライアント装置ＩＤ"と、"筋電位データ（ＥＭＧ（μＶ））"とを含む。
【０１３０】
"記録時刻"には、筋電位データが筋電位データテーブル１５００に格納された時刻が記録される。"センサデータ取得時刻"には、筋電位データが、センサデータ取得部８０２により取得された時刻が記録される。センサデータ送信部８０６は、センサデータとして筋電位データをサーバ装置１１０に送信する際に、あわせて筋電位データを取得した、センサデータ取得時刻を示す時刻情報を送信する。
【０１３１】
"ユーザ名"には、筋電位センサを利用するユーザのユーザ名が記録される。センサデータ送信部８０６は、筋電位データをサーバ装置１１０に送信する際に、あわせて筋電位センサを利用するユーザのユーザ名を送信する。
【０１３２】
"クライアント装置ＩＤ"には、筋電位データを含むセンサデータを送信したクライアント装置を識別するための識別子が記録される。センサデータ送信部８０６は、センサデータをサーバ装置１１０に送信する際に、クライアント装置を識別するための識別子を、センサデータと対応付けて送信する。なお、センサデータ送信部８０６は、クライアント装置を識別するための識別子に加え、筋電位センサを識別するための識別子を送信するようにしてもよい。特に、センシングの部位に応じて複数種類の筋電位センサが配されていた場合には、それぞれの筋電位センサを識別するための識別子を送信するようにしてもよい。この場合、"クライアント装置ＩＤ"には、クライアント装置を識別するための識別子に加え、各筋電位センサを識別するための識別子が合わせて記録されることになる。
【０１３３】
"筋電位データ（ＥＭＧ（μＶ））"には、筋電位データの値が記録される。
【０１３４】
図１５のデータ行１５０１の例は、"２０１５年７月２７日１１時００分０１秒０００"に、ユーザ名＝"ユーザＡ"であるユーザ１５０をセンシングしたことを示している。また、データ行１５０１の例は、センサＩＤ＝"ｓ３＿ｚｙｇｏｍａｔｉｃｕｓ（ｃｈｅｅｋ）"により識別される筋電位センサがセンシングしたことを示している。また、データ行１５０１の例は、筋電位データとして、センサデータ取得部８０２が、ＥＭＧ（μＶ）＝"３３．９"を取得したことを示している。また、データ行１５０１の例は、当該筋電位データが、クライアント装置ＩＤ＝"ｃ１"のクライアント装置１２０より送信され、"２０１５年７月２７日１１時００分０１秒０３５"に筋電位データテーブル１５００に格納されたことを示している。
【０１３５】
＜仮想空間用情報提供部により実行される仮想空間用情報提供処理の流れ＞
次に、サーバ装置１１０の仮想空間用情報提供部１１１が実行する、仮想空間用情報提供処理の流れについて説明する。図１６は、サーバ装置により実行される仮想空間用情報提供処理のフローチャートである。
【０１３６】
ステップＳ１６０１において、センサデータ収集部１２０１は、クライアント装置１２０よりセンサデータ（第１のセンサデータ）を収集したか否かを判定する。ステップＳ１６０１において、第１のセンサデータを収集していないと判定した場合には、ステップＳ１６０４に進む。
【０１３７】
一方、ステップＳ１６０１において、第１のセンサデータを収集したと判定した場合には、ステップＳ１６０２に進む。ステップＳ１６０２において、センサデータ収集部１２０１は、収集した第１のセンサデータを、センサデータ格納部１１４に格納する。また、仮想空間用情報生成部１２０２は、収集した第１のセンサデータに基づいて、仮想空間におけるアバタ２５０（第１のアバタ）の各部位の部位情報を算出する。
【０１３８】
ステップＳ１６０３において、仮想空間用情報生成部１２０２は、算出した部位情報を反映した第１のアバタを生成する。また、仮想空間用情報生成部１２０２は、生成した第１のアバタにより仮想空間用情報を更新する。
【０１３９】
ステップＳ１６０４において、センサデータ収集部１２０１は、クライアント装置１３０よりセンサデータ（第２のセンサデータ）を収集したか否かを判定する。ステップＳ１６０４において、第２のセンサデータを収集していないと判定した場合には、ステップＳ１６０７に進む。
【０１４０】
一方、ステップＳ１６０４において、第２のセンサデータを収集したと判定した場合には、ステップＳ１６０５に進む。ステップＳ１６０５において、センサデータ収集部１２０１は、収集した第２のセンサデータを、センサデータ格納部１１４に格納する。また、仮想空間用情報生成部１２０２は、収集した第２のセンサデータに基づいて、仮想空間におけるアバタ２６０（第２のアバタ）の各部位の部位情報を算出する。
【０１４１】
ステップＳ１６０６において、仮想空間用情報生成部１２０２は、算出した部位情報を反映した第２のアバタを生成する。また、仮想空間用情報生成部１２０２は、生成した第２のアバタにより仮想空間用情報を更新する。
【０１４２】
ステップＳ１６０７において、センサデータ収集部１２０１は、クライアント装置１４０よりセンサデータ（第３のセンサデータ）を収集したか否かを判定する。ステップＳ１６０７において、第３のセンサデータを収集していないと判定した場合には、ステップＳ１６１０に進む。
【０１４３】
一方、ステップＳ１６０７において、第３のセンサデータを収集したと判定した場合には、ステップＳ１６０８に進む。ステップＳ１６０８において、センサデータ収集部１２０１は、収集した第３のセンサデータを、センサデータ格納部１１４に格納する。また、仮想空間用情報生成部１２０２は、収集した第２のセンサデータに基づいて、仮想空間におけるアバタ２７０（第３のアバタ）の各部位の部位情報を算出する。
【０１４４】
ステップＳ１６０９において、仮想空間用情報生成部１２０２は、算出した部位情報を反映した第３のアバタを生成する。また、仮想空間用情報生成部１２０２は、生成した第３のアバタにより仮想空間用情報を更新する。
【０１４５】
ステップＳ１６１０において、仮想空間用情報送信部１２０３は、更新した仮想空間用情報を送信する。仮想空間用情報送信部１２０３は、クライアント装置１２０より送信されたセンサデータ（第１のセンサデータ）に基づいて仮想空間用情報を更新した場合には、更新した仮想空間用情報を、クライアント装置１３０及び１４０に送信する。また、仮想空間用情報送信部１２０３は、クライアント装置１３０より送信されたセンサデータ（第２のセンサデータ）に基づいて仮想空間用情報を更新した場合には、更新した仮想空間用情報を、クライアント装置１２０及び１４０に送信する。更に、仮想空間用情報送信部１２０３は、クライアント装置１４０より送信されたセンサデータ（第３のセンサデータ）に基づいて仮想空間用情報を更新した場合には、更新した仮想空間用情報を、クライアント装置１２０及び１３０に送信する。
【０１４６】
ステップＳ１６１１において、センサデータ収集部１２０１は、仮想空間用情報提供処理を終了するか否かを判定する。ステップＳ１６１１において終了しないと判定した場合には、ステップＳ１６０１に戻り、仮想空間用情報提供処理を継続する。一方、ステップＳ１６１１において終了すると判定した場合には、仮想空間用情報提供処理を終了する。
【０１４７】
＜サーバ装置（合成画像群用情報提供部）の機能構成＞
次に、サーバ装置１１０の機能構成のうち、合成画像群用情報提供部１１２の機能構成について説明する。図１７は、サーバ装置の機能構成の一例を示す第２の図であり、合成画像群用情報提供部１１２の機能構成を示す図である。
【０１４８】
図１７に示すように、サーバ装置１１０の合成画像群用情報提供部１１２は、処理条件判定部１７０１、動き（変化）判定部１７０２、動き（関係）判定部１７０３、合成画像群生成部１７０４、合成画像群送信部１７０５を有する。
【０１４９】
処理条件判定部１７０１は、動き（変化）判定部１７０２が処理を開始するための条件が成立したか否かを判定する。第１の実施形態において、処理条件判定部１７０１は、センサデータ格納部１１４に所定量のセンサデータが格納されると、動き（変化）判定部１７０２が処理を開始するための条件が成立したと判定し、動き（変化）判定部１７０２に通知する。
【０１５０】
動き（変化）判定部１７０２は、センサデータ格納部１１４に所定量のセンサデータが格納され、処理条件判定部１７０１より通知を受けると、当該所定量のセンサデータに基づいて仮想空間用情報生成部１２０２によりそれぞれ算出された部位情報を取得する。なお、このとき取得される部位情報は、複数のタイムフレーム分の部位情報となる。また、動き（変化）判定部１７０２は、取得した部位情報が、所定量以上変化したか否かを判定する。
【０１５１】
動き（変化）判定部１７０２は、定義情報格納部１１５に格納された定義情報に規定された閾値と、仮想空間用情報生成部１２０２より取得した部位情報とを比較することにより、部位情報が所定量以上変化したか否かを判定する。なお、動き（変化）判定部１７０２は、所定量以上変化したと判定した場合、アバタの各部位が所定量以上動いたと判断し、動きの種類を判定する。また、動き（変化）判定部１７０２は、動きの種類の判定結果等を、ログ格納部１１６の「動きの種類判定ログテーブル」に新たなデータ行を追加して格納する。
【０１５２】
動き（関係）判定部１７０３は、動き（変化）判定部１７０２により、アバタの各部位の部位情報が所定量以上変化したと判定された場合に、上記所定量のセンサデータの一部に基づいて、他のアバタに対する動きの種類を判定する。
【０１５３】
動き（関係）判定部１７０３は、判定結果や当該判定に用いられたセンサデータの時間範囲（判定時刻（開始）、判定時刻（終了）と称す）を、ログ格納部１１６の「他のアバタに対する動きの種類判定ログテーブル」に格納する。動き（関係）判定部１７０３は、「他のアバタに対する動きの種類判定ログテーブル」に新たなデータ行を追加することで、当該判定結果等を格納する。
【０１５４】
このように、動き（関係）判定部１７０３は、動き（変化）判定部１７０２によりアバタの各部位の部位情報が所定量以上変化したと判定されたことをトリガに、他のアバタに対する動きの種類の判定を行う。
【０１５５】
したがって、他のアバタに対する動きの種類を判定するのに用いられるセンサデータの時間範囲のうち、判定時刻（開始）は、動き（変化）判定部１７０２により部位情報が所定量以上変化したと判定された際に用いられたセンサデータのセンサデータ取得時刻となる。ただし、判定時刻（開始）はこれに限定されず、動き（関係）判定部１７０３は、当該取得時刻より前に取得されたセンサデータを用いて、他のアバタに対する動きの種類を判定するようにしてもよい。
【０１５６】
合成画像群生成部１７０４は、動き（関係）判定部１７０３によってログ格納部１１６の「他のアバタに対する動きの種類判定ログテーブル」に新たなデータ行が追加されると、作用イベントが発生したと判定する。また、合成画像群生成部１７０４は、作用イベントが発生したと判定した後に、更に、ログ格納部１１６の「他のアバタに対する動きの種類判定ログテーブル」に新たなデータ行が追加されると、反応イベントが発生したと判定する。
【０１５７】
合成画像群生成部１７０４は、ログ格納部１１６の「他のアバタに対する動きの種類判定ログテーブル」に新たに追加されたデータ行であって、作用イベント発生と判定した際に格納されたデータ行の"判定時刻（開始）"、"判定時刻（終了）"を抽出する。また、合成画像群生成部１７０４は、抽出した"判定時刻（開始）"〜"判定時刻（終了）"の時間範囲に取得されたセンサデータに基づいて、合成画像群の生成に用いる画像群を生成する。また、合成画像群生成部１７０４は、反応イベント発生と判定された際に格納されたデータ行の"判定時刻（開始）"、"判定時刻（終了）"を抽出する。更に、合成画像群生成部１７０４は、抽出した"判定時刻（開始）"〜"判定時刻（終了）"の時間範囲に取得されたセンサデータに基づいて、合成画像群の生成に用いる画像群を生成する。
【０１５８】
これにより、例えば、作用イベントを発生させたアバタ２５０の動きが反映された仮想空間の画像群と、反応イベントを発生させたアバタ２６０の動きが反映された仮想空間の画像群とを合成することができる。
【０１５９】
なお、合成画像群生成部１７０４は、作用イベントを発生させたアバタ２５０の動きが反映された仮想空間の画像群が、ユーザ１６０のＨＭＤ１３３に表示された時刻と、ユーザ１６０が反応した時刻との時間差に応じて合成を行う。つまり、合成画像群生成部１７０４は、出力タイミングと反応タイミングとの時間差に応じて合成を行う。なお、ここでいう反応タイミングは、ユーザ１６０の反応を検出した検出タイミングである"判定時刻（開始）"に等しい。
【０１６０】
同様に、合成画像群生成部１７０４は、作用イベントを発生させたアバタ２５０の動きが反映された仮想空間の画像群と、反応イベントを発生させたアバタ２７０の動きが反映された仮想空間の画像群とを合成することができる。
【０１６１】
このとき合成画像群生成部１７０４は、作用イベントを発生させたアバタ２５０の動きが反映された仮想空間の画像群が、ユーザ１７０のＨＭＤ１４３に表示された時刻と、ユーザ１７０が反応した時刻との時間差に応じて合成を行う。つまり、合成画像群生成部１７０４は、出力タイミングと反応タイミングとの時間差に応じて合成を行う。なお、ここでいう反応タイミングは、ユーザ１７０の反応を検出した検出タイミングである"判定時刻（開始）"に等しい。
【０１６２】
このようにして、合成画像群生成部１７０４は、アバタ２５０、２６０、２７０の動きが所定の時間差で反映された合成画像群を生成する。
【０１６３】
合成画像群送信部１７０５は、合成画像群生成部１７０４により生成された合成画像群を含む合成画像群用情報を、クライアント装置１２０、１３０、１４０に送信する。
【０１６４】
＜合成画像群用提供部により判定される動きの種類の説明＞
次に、動き（変化）判定部１７０２にて判定される動きの種類について説明する。アバタの動きには、アバタの体全体の動きと、アバタの体の一部の動きと、アバタの体の一部（顔）において表情が変化する動きとが含まれる。
【０１６５】
アバタの体全体の動きには、例えば、アバタが前方または後方、左方または右方に移動する動きや、アバタが体全体の向きを変える動き等が含まれる。アバタが前方または後方、左方または右方に移動する動きは、例えば、アバタの中心位置の座標の変化として表すことができる。また、アバタが進行方向を変える時のように、位置を動かずに体全体の向きを右や左へ変える動きは、床面に対して垂直方向に延びる軸（Ｙ軸）の軸周りの角度の変化として表すことができる。
【０１６６】
アバタの体の一部の動きには、例えば、アバタの上半身が前傾または後傾する動きや、アバタの上半身が左方または右方に向きを変える動き等が含まれる。また、アバタの体の一部の動きには、例えば、アバタが顔の向きを上向きまたは下向きにする動きや、アバタが顔の向きを左方向または右方向に変える動き等が含まれる。
【０１６７】
このうち、アバタの上半身が前傾または後傾する動きや、アバタの上半身が左方または右方に向きを変える動きは、例えば、アバタの腰の位置を原点とする３軸方向の軸周りの角度の変化（"Bone_Chest"の変化）として表すことができる。同様に、アバタが顔の向きを上向きまたは下向きにする動きや、アバタが顔の向きを左方向または右方向に変える動きは、例えば、アバタの顔の位置を原点とする３軸方向の軸周りの角度の変化（"Bone_Head"の変化）として表すことができる。
【０１６８】
アバタの体の一部（顔）において表情が変化する動きには、例えば、アバタが視線を上方向または下方向、左方向または右方向に向ける動きや、アバタの口角が上がるまたは下がる動き、アバタの眉毛の角度が変わる動き等が含まれる。これらの動きは、例えば、アバタの顔面中の複数の点群の位置及び当該位置に囲まれた平面（例えば唇の皮膚相当）の状態変化（例えば、"Shape_Mouse"の変化）として表すことができる。
【０１６９】
なお、アバタの動きについての上記の表現方法は一例であり、他の表現方法により表わしてもよい。第１の実施形態において、アバタの各部位の部位情報には、上述した"Bone_chest"、"Bone_Head"、"Shape_Mouse"等が含まれる。
【０１７０】
図１８は、仮想空間におけるアバタの動きの一例を示す図である。図１８では、アバタの上半身が前傾または後傾する動き、及び、左方または右方に向きを変える動きを、アバタの腰の位置を原点とする３軸方向の軸周りの角度の変化（"Bone_Chest"の変化）として表している。
【０１７１】
具体的には、仮想空間におけるＸＹＺ軸が、それぞれアバタの左右方向、上下方向、前後方向に対応するときの、アバタの腰の位置に配置された骨格の回転として上記動きを示している。
【０１７２】
図１８において、画像１８０１は、ｘ軸上で＋α度回転した場合に、アバタがどのような姿勢となるのかを表しており、画像１８０２は、ｘ軸上で−α度回転した場合に、アバタがどのような姿勢となるのかを表している。
【０１７３】
また、画像１８１１は、ｙ軸上で＋α度回転した場合に、アバタがどのような姿勢となるのかを表しており、画像１８１２は、ｙ軸上で−α度回転した場合に、アバタがどのような姿勢となるのかを表している。
【０１７４】
更に、画像１８２１は、ｚ軸上で＋α度回転した場合に、アバタがどのような姿勢となるのかを表しており、画像１８２２は、ｚ軸上で−α度回転した場合に、アバタがどのような姿勢となるのかを表している。
【０１７５】
＜動きの種類を判定する際に参照する定義情報＞
次に、定義情報格納部１１５に格納され、動き（変化）判定部１７０２が動きの種類を判定する際に参照する定義情報について説明する。図１９は、定義情報格納部に格納された定義情報のうち、アバタの動きの種類を判定するための定義情報を示した図である。図１９に示すように、アバタの動きの種類を判定するための定義情報には、判定項目情報１９１０と判定閾値情報１９２０が含まれる。
【０１７６】
図１９（ａ）に示すように、判定項目情報１９１０には、判定する"動きの種類"がユーザごとに定義されている。これは、取得可能なセンサデータが、ユーザが利用するクライアント装置ごとに異なっている場合があるからであり、取得可能なセンサデータが異なっている場合、判定可能な"動きの種類"も異なってくるからである。
【０１７７】
図１９（ａ）の例では、ユーザ名＝"ユーザＡ"の場合、"動きの種類"として、少なくとも、前傾変化と、顔向き変化と、口表情変化とを判定することが可能である。
【０１７８】
また、図１９（ｂ）に示すように、判定閾値情報１９２０には、それぞれの動きの種類の判定に用いる"センサデータ"が定義されている。また、判定閾値情報１９２０には、センサデータに基づいて算出されるアバタの各部位の部位情報のうち、変化の有無を判定するために監視される"監視対象の部位"が定義されている。更に、判定閾値情報１９２０には、それぞれの監視対象の部位において部位情報の変化があったと判定するための条件（"閾値"）が定義されている。更に、判定閾値情報１９２０には、監視対象の部位において部位情報の変化があったと判定された場合に判定される"動きの種類"が定義されている。
【０１７９】
例えば、動き（変化）判定部１７０２は、深度データに基づいて算出される部位情報のうち、"Bone_Chest"を監視する。動き（変化）判定部１７０２は、監視対象の部位である"Bone_Chest"の部位値が、Ｘ軸周りに＋５度以上回転したことを検出すると、"前傾変化"が発生したと判定する。
【０１８０】
また、動き（変化）判定部１７０２は、頭部姿勢データに基づいて算出される部位情報のうち、"Bone_Head"を監視する。動き（変化）判定部１７０２は、監視対象の部位である"Bone_Head"の部位値が、いずれかの軸周りに＋５度以上回転したことを検出すると、"顔向き変化"が発生したと判定する。
【０１８１】
更に、動き（変化）判定部１７０２は、筋電位データに基づいて算出される部位情報のうち、"Shape_Mouse"を監視する。具体的には、動き（変化）判定部１７０２に、"Shape_Mouse"の部位値に基づいて算出される、スマイルの度合いを示すパラメータ（"IsSmile"）を監視する。スマイルの度合いを示すパラメータ（"IsSmile"）は、"IsSmile"＝０の場合、口を閉じた状態での点群の位置を示し、"IsSmile"＝１の場合、口を大きく開いた状態での点群の位置を示す。動き（変化）判定部１７０２は、"Shape_Mouse"から算出されるパラメータ（"IsSmile）が０．５より大きくなったことを検出すると、"口表情変化"が発生したと判定する。
【０１８２】
＜他のアバタに対する動きの種類を判定する際に用いる定義情報＞
次に、定義情報格納部１１５に格納され、動き（関係）判定部１７０３が他のアバタに対する動きの種類を判定する際に用いる定義情報について説明する。図２０は、定義情報格納部に格納された定義情報のうち、他のアバタに対する動きの種類を判定するための定義情報を示した図である。
【０１８３】
図２０に示すように、他のアバタに対する動きの種類を判定するための定義情報には、ＡＰＩ定義情報２０１０と判定項目情報２０２０とが含まれる。
【０１８４】
図２０（ａ）に示すように、ＡＰＩ定義情報２０１０には、他のアバタに対する動きの種類の判定に用いるＡＰＩが"ユーザ名"及び"動きの種類"ごとに定義されている。動き（変化）判定部１７０２によりユーザの動きの種類が判定されると、動き（関係）判定部１７０３では、対応するＡＰＩを実行する。図２０（ａ）の例では、動き（変化）判定部１７０２によりユーザ名＝"Ａ"のユーザの動きの種類が"前傾変化"と判定された場合、動き（関係）判定部１７０３では、姿勢解析ＡＰＩを実行して、他のアバタに対する動きの種類の判定を行う。また、動き（変化）判定部１７０２によりユーザ名＝"Ａ"のユーザの動きの種類がそれぞれ"顔向き変化"、"口表情変化"と判定された場合、動き（関係）判定部１７０３では、顔向き解析ＡＰＩ、口表情解析ＡＰＩをそれぞれ実行する。これにより、動き（関係）判定部１７０３は、他のアバタに対する動きの種類の判定を行う。
【０１８５】
また、図２０（ｂ）に示すように、判定項目情報２０２０には、それぞれの判定に用いる"センサデータ"と、それぞれのセンサデータの送信元の"クライアント装置ＩＤ"とが定義されている。また、判定項目情報２０２０には、センサデータを入力したことで判定される"他のアバタに対する動きの種類"と、判定に用いる"ＡＰＩ"とが定義されている。
【０１８６】
例えば、動き（関係）判定部１７０３は、姿勢解析ＡＰＩに対しては、クライアント装置ＩＤ＝"ｃ２"のクライアント装置１３０から送信された深度データを入力する。これにより、動き（関係）判定部１７０３は、アバタの動きが他のアバタに対して近づく動き（"body-close-to"）であるのか否かを判定する。また、動き（関係）判定部１７０３は、姿勢解析ＡＰＩに対しては、クライアント装置ＩＤ＝"ｃ１"のクライアント装置１２０から送信された深度データを入力する。これにより、動き（関係）判定部１７０３は、アバタの動きが他のアバタから遠ざかる動き（"body-far-to"）であるのか否かを判定する。
【０１８７】
更に、動き（関係）判定部１７０３は、顔向き解析ＡＰＩに対しては、クライアント装置ＩＤ＝"ｃ３"のクライアント装置１４０から送信された頭部姿勢データを入力する。これにより、動き（関係）判定部１７０３は、アバタの動きが他のアバタの方に顔を向ける動き（"face-close-to"）であるのか否かを判定する。
【０１８８】
なお、図２０（ｂ）の例では、他のアバタに対する動きの種類を１種類判定するのに、１種類のセンサデータを用いる場合について示したが、他のアバタに対する動きの種類を１種類判定するのに、複数種類のセンサデータを用いるようにしてもよい。
【０１８９】
＜動きの種類及び他のアバタに対する動きの種類を判定して記録するログ記録処理の概要＞
次に、サーバ装置１１０の合成画像群用情報提供部１１２における処理のうち、ユーザの振る舞いが行われてから、作用イベントを発生させるまでの処理（動きの種類及び他のアバタに対する動きの種類を判定して記録するログ記録処理）の概要について説明する。図２１は、ユーザの振る舞いが行われてから作用イベントが発生するまでの処理の流れを説明するための図である。
【０１９０】
図２１において、センサデータ群２１１０は、クライアント装置１２０において取得された所定量のセンサデータ群を示している。センサデータ群２１１０に含まれるセンサデータ２１１１〜２１１６は、それぞれ、センサデータ送信部８０６によりサーバ装置１１０に対して送信される。
【０１９１】
図２１に示すように、サーバ装置１１０に送信された所定量のセンサデータ２１１１〜２１１６は、センサデータ格納部１１４に順次格納される。センサデータ格納部１１４に格納された所定量のセンサデータ２１１１〜２１１６は、仮想空間用情報生成部１２０２に読み出され、仮想空間用情報生成部１２０２により、アバタの各部位の部位情報２１２１〜２１２６が算出される。なお、ここでは説明の簡略化のため、部位情報２１２１〜２１２６は、所定の監視対象の部位の部位情報であるとする。
【０１９２】
動き（変化）判定部１７０２は、仮想空間用情報生成部１２０２により算出された部位情報２１２１〜２１２６を取得し、部位情報２１２１〜２１２６のいずれかが所定量以上変化しているかを判定する。そして、動き（変化）判定部１７０２は、いずれかの部位情報が所定量以上変化していると判定した場合、当該部位情報について動きの種類を判定する。
【０１９３】
例えば、動き（変化）判定部１７０２は、部位情報２１２１と、定義情報（例えば、図１９（ｂ））とを比較し、部位情報２１２１の部位値が所定量以上変化しているかを判定する。同様に、動き（変化）判定部１７０２は、部位情報２１２２〜２１２６について、定義情報（例えば、図１９（ｂ））との比較を行い、部位情報２１２２〜２１２６のいずれかの部位値が所定量以上変化しているかを判定する。
【０１９４】
なお、ここでは、動き（変化）判定部１７０２が部位情報２１２３の部位値が所定量以上変化していると判定したとする。この場合、動き（変化）判定部１７０２では、定義情報（例えば、図１９（ｂ））に基づいて、部位情報２１２３について動きの種類を判定し、判定結果を、ログ格納部１１６の「動きの種類判定ログテーブル」に新たにデータ行を追加して格納する。
【０１９５】
動き（変化）判定部１７０２により、「動きの種類判定ログテーブル」に新たにデータ行が追加されると、動き（関係）判定部１７０３は、センサデータ２１１３に基づいて、他のアバタに対する動きの種類を判定する。具体的には、動き（関係）判定部１７０３は、センサデータ２１１３を、動きの種類に応じたＡＰＩに入力することで、他のアバタに対する動きの種類を判定する。
【０１９６】
動き（関係）判定部１７０３は、判定した他のアバタに対する動きの種類や当該判定に用いられたセンサデータの時間範囲（判定時刻（開始）、判定時刻（終了））を、ログ格納部１１６の「他のアバタに対する動きの種類判定ログテーブル」に格納する。動き（関係）判定部１７０３による判定結果がログ格納部１１６の「他のアバタに対する動きの種類判定ログテーブル」に新たなデータ行として格納されると、合成画像群生成部１７０４は、作用イベント２１２０が発生したと判定する。
【０１９７】
合成画像群生成部１７０４は、作用イベント２１２０が発生したと判定すると、反応イベントの発生を監視する（作用イベント２１２０が発生して以降の流れは後述する）。
【０１９８】
＜動きの種類及び他のアバタに対する動きの種類を判定して記録するログ記録処理の流れ＞
次に、サーバ装置１１０の合成画像群用情報提供部１１２における処理のうち、ユーザの振る舞いが行われてから、作用イベントを発生させるまでの処理（動きの種類及び他のアバタに対する動きの種類を判定して記録するログ記録処理）の流れについて説明する。図２２は、サーバ装置により実行されるログ記録処理のフローチャートである。
【０１９９】
ステップＳ２２０１において、センサデータ収集部１２０１は、ユーザ１５０〜１７０の実空間における振る舞いをセンシングしたセンサデータをクライアント装置１２０〜１４０から収集する。
【０２００】
ステップＳ２２０２において、センサデータ収集部１２０１は、収集したセンサデータを、センサデータ格納部１１４に格納する。
【０２０１】
ステップＳ２２０３において、処理条件判定部１７０１は、センサデータ格納部１１４に新たに格納されたセンサデータが所定量以上になったか否かを判定する。
【０２０２】
ステップＳ２２０３において、新たに格納されたセンサデータが所定量未満であると判定した場合には、ステップＳ２２０１に戻り、センサデータの収集及び格納を継続する。
【０２０３】
一方、ステップＳ２２０３において、新たに格納されたセンサデータが所定量以上になったと判定した場合には、ステップＳ２２０４に進む。ステップＳ２２０４において、動き（変化）判定部１７０２は、定義情報（図１９（ａ）、（ｂ））に基づいて、判定すべき動きの種類や、それぞれの動きの種類を判定する際の監視対象の部位及び閾値を認識する。
【０２０４】
ステップＳ２２０５において、動き（変化）判定部１７０２は、新たに格納されたセンサデータに基づいて仮想空間用情報生成部１２０２がそれぞれ算出した部位情報を取得する。また、動き（変化）判定部１７０２は、取得した部位情報のうち、監視対象の部位の部位情報について、ステップＳ２２０４において認識した閾値との比較を行う。
【０２０５】
ステップＳ２２０６において、動き（変化）判定部１７０２は、比較の結果に基づいて、監視対象の部位の部位情報が閾値以上変化したか否かを判定する。ステップＳ２２０６において、監視対象の部位の部位情報が閾値以上変化していないと判定した場合には、ステップＳ２２１０に進む。
【０２０６】
一方、ステップＳ２２０６において、監視対象の部位の部位情報が閾値以上変化したと判定した場合、ステップＳ２２０７に進む。ステップＳ２２０７において、動き（変化）判定部１７０２は、閾値以上変化した部位情報について動きの種類を判定する。更に、動き（変化）判定部１７０２は、判定結果を、ログ格納部１１６の「動きの種類判定ログテーブル」に新たにデータ行を追加して格納する。
【０２０７】
ログ格納部１１６の「動きの種類判定ログテーブル」に新たにデータ行が追加されて動きの種類等が格納されると、ステップＳ２２０８において、動き（関係）判定部１７０３は、動き（変化）判定部１７０２により判定された動きの種類に応じたＡＰＩを呼び出す。また、動き（関係）判定部１７０３は、呼び出したＡＰＩにセンサデータを入力することで、他のアバタに対する動きの種類を判定する。
【０２０８】
ステップＳ２２０９において、動き（関係）判定部１７０３は、ステップＳ２２０８において判定された判定結果を、ログ格納部１１６の「他のアバタに対する動きの種類判定ログテーブル」に新たにデータ行を追加して格納する。なお、このとき新たに追加されたデータ行に格納される判定結果には、他のアバタに対する動きの種類や当該判定に用いられたセンサデータの時間範囲（判定時刻（開始）、判定時刻（終了））等が含まれる。
【０２０９】
ステップＳ２２１０において、処理条件判定部１７０１は、合成画像群生成処理を終了するか否かを判定し、終了しないと判定した場合には、ステップＳ２２０１に戻り、ログ記録処理を継続する。
【０２１０】
一方、ステップＳ２２１０において、終了すると判定した場合には、ログ記録処理を終了する。
【０２１１】
＜ログ記録処理により記録されるログテーブルの説明＞
次に、図２２に示すログ記録処理が実行されたことで、ログ格納部１１６に記録された「動きの種類判定ログテーブル」及び「他のアバタに対する動きの種類判定ログテーブル」について図２３または図２４を用いて説明する。
【０２１２】
（１）動きの種類判定ログテーブルの説明
図２３は、動きの種類判定ログテーブルの一例を示す図である。図２３に示すように、動きの種類判定ログテーブル２３００には、情報の項目として、"記録時刻"、"変化発生時刻"、"ユーザ名"、"クライアント装置ＩＤ"、"動きの種類"、"変化前及び変化後の部位情報"が含まれる。
【０２１３】
"記録時刻"には、ログ格納部１１６の動きの種類判定ログテーブル２３００に新たにデータ行が追加され、動きの種類等が格納された時刻が記録される。"変化発生時刻"には、部位情報が所定量以上変化したことで動きの種類の判定を行った際に用いられたセンサデータが、センサデータ取得部８０２により取得された時刻が記録される。
【０２１４】
"ユーザ名"には、動きの種類が判定されたアバタに対応するユーザのユーザ名が記録される。"クライアント装置ＩＤ"には、動きの種類の判定に用いられたセンサデータを送信したクライアント装置を識別するための識別子が記録される。
【０２１５】
"動きの種類"には、部位情報に基づいて判定されたアバタの動きの種類が記録される。"変化前及び変化後の部位情報"には、所定量以上の変化が発生する前の部位情報と、所定量以上の変化が発生した後の部位情報とが記録される。
【０２１６】
図２３のデータ行２３０１の例は、"２０１５年７月２７日１１時０２分００秒０００"に、ログ格納部１１６の動きの種類判定ログテーブル２３００に新たにデータ行が追加され、動きの種類が格納されたことを示している。また、データ行２３０１の例は、ユーザ名＝"ユーザＡ"であるユーザ１５０のアバタ２５０の部位情報が所定量以上変化したこと、動きの種類が"口表情変化"と判定されたことを示している。また、データ行２３０１の例は、当該動きの種類の判定に用いられたセンサデータが、クライアント装置ＩＤ＝"ｃ１"のクライアント装置１２０により、"２０１５年７月２７日１１時００分０１秒０００"に取得されたことを示している。更に、データ行２３０１の例は、センサデータに基づいて算出された部位情報（"Shape_Mouse"）のパラメータ（"IsSmile"）が、"０．５"から"０．８"に変化したことを示している。
【０２１７】
（２）他のアバタに対する動きの種類判定ログテーブルの説明
図２４は、他のアバタに対する動きの種類判定ログテーブルの一例を示す図である。図２４に示すように、他のアバタに対する動きの種類判定ログテーブル２４００には、情報の項目として、"ログＩＤ"、"記録時刻"、"判定時刻（開始）"、"判定時刻（終了）"が含まれる。また、情報の項目として、"ユーザ名"、"クライアント装置ＩＤ"、"他のアバタに対する動きの種類"、"開始時及び終了時の部位情報"が含まれる。
【０２１８】
"ログＩＤ"には、ログ格納部１１６の他のアバタに対する動きの種類判定ログテーブル２４００に新たにデータ行が追加され、他のアバタに対する動きの種類等が格納されるごとに付与される識別子が記録される。
【０２１９】
"記録時刻"には、ログ格納部１１６の他のアバタに対する動きの種類判定ログテーブル２４００に新たにデータ行が追加され、他のアバタに対する動きの種類等が格納された時刻が記録される。"判定時刻（開始）"及び"判定時刻（終了）"には、他のアバタに対する動きの種類の判定に用いられたセンサデータの時間範囲が記録される。
【０２２０】
"ユーザ名"には、他のアバタに対する動きの種類が判定されたアバタに対応するユーザのユーザ名が記録される。"クライアント装置ＩＤ"には、他のアバタに対する動きの種類の判定に用いられたセンサデータを送信したクライアント装置を識別するための識別子が記録される。
【０２２１】
"他のアバタに対する動きの種類"には、センサデータに基づいて判定された他のアバタに対する動きの種類が記録される。"開始時及び終了時の部位情報"には、"判定時刻（開始）"における部位情報と、"判定時刻（終了）"における部位情報が記録される。
【０２２２】
図２４のデータ行２４０１の例は、"２０１５年７月２７日１１時０２分０３秒０２０"に、ログ格納部１１６の他のアバタに対する動きの種類判定ログテーブル２４００に新たにデータ行が追加されたことを示している。また、図２４のデータ行２４０１には、データ行の追加に際して、ログＩＤ＝"１００"が付与されたことを示している。また、データ行２４０１の例は、ユーザ名＝"ユーザＡ"であるユーザ１５０のアバタ２５０の他のアバタに対する動きの種類が判定され、判定に用いられたセンサデータがクライアント装置ＩＤ＝"ｃ１"から送信されたことを示している。
【０２２３】
また、データ行２４０１の例は、判定に用いられたセンサデータの時間範囲が"２０１５年７月２７日１１時００分０４秒０００"から"２０１５年７月２７日１１時０１分０５秒０００"までであることを示している。また、データ行２４０１の例は、判定のトリガとなった変化が発生した部位が、"Bone_Chest"であったことを示している。更に、当該部位の部位情報である位置及び角度が、上記時間範囲の間に（０，８，−１０），（４，０，０）から（０，８，−１０），（１２，０，０）へと変化したことを示している。更に、データ行２４０１の例は、他のアバタに対する動きの種類が"body-close-to"と判定されたことを示している。
【０２２４】
＜合成画像群用情報提供部により実行される合成画像群提供処理の概要＞
次に、ユーザの振る舞いが行われてから合成画像群が再生されるまでの流れ（合成画像群用情報提供部による合成画像群提供処理の概要）について、図３〜図５を参照しながら図２５を用いて説明する。なお、合成画像群提供処理には、上記ログ記録処理も含まれるが、ここではログ記録処理は簡略化して説明する。図２５は、ユーザの振る舞いが行われてから合成画像群が再生されるまでの流れを説明するための図である。
【０２２５】
図２５において、サーバ装置１１０から延びる３本の実線のうち、１番目の実線は、合成画像群用情報提供部１１２がイベント等を処理するタイミングを示すための線である。また、２番目の線は、仮想空間用情報提供部１１１が仮想空間の画像群を生成するタイミングを示すための線である。更に、３番目の線は、仮想空間用情報提供部１１１がセンサデータを処理するタイミングを示すための線である。
【０２２６】
また、図２５において、クライアント装置１２０〜１４０からそれぞれ延びる３本の実線のうち、１番目の実線は、クライアント装置が視野画像群または合成画像群を再生するタイミングを示すための線である。また、２番目の実線は、クライアント装置が仮想空間空間用情報を受信したタイミングを示すための線である。更に、３番目の実線は、クライアント装置がセンサデータを取得したタイミングを示すための線である。
【０２２７】
なお、図２５において、各タイミングを示すための実線上に配置された矩形図形には、縦方向の長さが長い図形と縦方向の長さが短い図形とが含まれる。前者は、画像群に関するデータを示しており、後者は、画像群以外のデータを示している。
【０２２８】
ユーザ１５０の振る舞いにより（例えば、図３の矢印３０１）、クライアント装置１２０がセンサデータ群２１１０（所定量のセンサデータ）を取得すると、クライアント装置１２０はセンサデータ群２１１０をサーバ装置１１０に送信する。
【０２２９】
サーバ装置１１０の仮想空間用情報提供部１１１は、クライアント装置１２０より収集したセンサデータ群２１１０に基づいて、ユーザ１５０のアバタ２５０の部位情報を算出する。そして、仮想空間用情報提供部１１１は、ユーザ１５０のアバタ２５０の部位情報に基づいて仮想空間の画像群２１１０Ｉを生成し、クライアント装置１３０及びクライアント装置１４０にそれぞれ送信する。また、サーバ装置１１０の合成画像群用情報提供部１１２は、仮想空間用情報提供部１１１により算出された部位情報が、所定量以上変化しているか否かを判定し、所定量以上変化していると判定した場合には、動きの種類を判定する。また、合成画像群用情報提供部１１２は、判定した動きの種類に応じたＡＰＩを読み出し、センサデータ群２１１０に基づいて、他のアバタに対する動きの種類を判定する。更に、サーバ装置１１０の合成画像群用情報提供部１１２は、判定結果等を他のアバタに対する動きの種類判定ログテーブル２４００に新たなデータ行を追加して格納する。これにより、サーバ装置１１０の合成画像群用情報提供部１１２は、作用イベント２１２０が発生したと判定する。
【０２３０】
仮想空間の画像群２１１０Ｉが送信されたクライアント装置１３０及びクライアント装置１４０は、各タイムフレームにおける視野画像３２１、３３１（図３参照）を生成し、ＨＭＤ１３３、１４３それぞれに表示するよう制御する。
【０２３１】
各タイムフレームにおける視野画像３２１が表示されることで、ユーザ１６０が振る舞いをして（例えば、図４の矢印３０２）、クライアント装置１３０が、センサデータ群２５１０を取得したとする。クライアント装置１３０は、取得したセンサデータ群２５１０を、サーバ装置１１０に送信する。
【０２３２】
同様に、各タイムフレームにおける視野画像３３１が表示されることで、ユーザ１７０が振る舞いをして（例えば、図４の矢印３０３）、クライアント装置１４０が、センサデータ群２５３０を取得したとする。クライアント装置１４０は、取得したセンサデータ群２５３０を、サーバ装置１１０に送信する。
【０２３３】
サーバ装置１１０の仮想空間用情報提供部１１１は、センサデータ群２５１０とセンサデータ群２５３０に基づいて、それぞれのアバタ２６０、２７０の部位情報を算出する。また、サーバ装置１１０の合成画像群用情報提供部１１２は、仮想空間用情報提供部１１１により算出された部位情報が所定量以上変化しているか否かを判定し、所定量以上変化していると判定した場合には、動きの種類を判定する。また、合成画像群用情報提供部１１２は、判定した動きの種類に応じたＡＰＩを読み出し、センサデータ群２５１０、２５３０それぞれに基づいて、他のアバタに対する動きの種類を判定する。更に、サーバ装置１１０の合成画像群用情報提供部１１２は、判定結果等を他のアバタに対する動きの種類判定ログテーブル２４００に新たなデータ行を追加して格納する。これにより、サーバ装置１１０の合成画像群用情報提供部１１２は、反応イベント２５２０、２５４０が発生したと判定する。
【０２３４】
なお、合成画像群用情報提供部１１２は、作用イベント２１２０が発生すると、作用イベント２１２０をクライアント装置１３０及びクライアント装置１４０に送信し、クライアント装置１３０及びクライアント装置１４０より作用イベント受信完了の通知を受信する。同様に、合成画像群用情報提供部１１２は、反応イベント２５２０または２５４０をクライアント装置１２０に送信し、クライアント装置１２０より、反応イベント受信完了の通知を受信する。
【０２３５】
合成画像群用情報提供部１１２は、作用イベント２１２０を送信してから作用イベント受信完了の通知を受信するまでの時間に基づいて、通信速度実績を算出する。また、合成画像群用情報提供部１１２は、反応イベント２５２０または反応イベント２５４０を送信してから反応イベント受信完了の通知を受信するまでの時間に基づいて、通信速度実績を算出する。合成画像群用情報提供部１１２は、算出した通信速度実績に基づいて、クライアント装置１２０〜１４０に合成画像群２５００が到達する時刻を予測する。これにより、合成画像群用情報提供部１１２は、合成画像群２５００の再生開始タイミング（例えば、図５及び図２５の時刻ｔ７）を決定する。
【０２３６】
なお、作用イベント２１２０を受信したクライアント装置１３０は、各タイムフレームにおける視野画像３２１を、ユーザ１６０のＨＭＤ１３３に表示したタイミング（出力タイミング）を示す表示タイミング情報を、作用イベント受信完了の通知に含めて送信する。また、作用イベント２１２０を受信したクライアント装置１４０は、各タイムフレームにおける視野画像３３１を、ユーザ１７０のＨＭＤ１４３に表示したタイミング（出力タイミング）を示す表示タイミング情報を、作用イベント受信完了の通知に含めて送信する。
【０２３７】
これにより、合成画像群用情報提供部１１２は、クライアント装置１３０及び１４０よりそれぞれ受信した作用イベント受信完了の通知に基づいて、表示タイミング情報を抽出することができる。
【０２３８】
合成画像群用情報提供部１１２は、作用イベント２１２０発生から作用イベント受信完了の通知を受信するまでの間に取得した情報を、「バッファテーブル」及び「イベントテーブル」（詳細は図２６を用いて後述）に格納する。また、合成画像群用情報提供部１１２は、「バッファテーブル」及び「イベントテーブル」に格納された情報に基づいて導出される情報２５６０を、「作用イベント及び反応イベントログ参考表」（詳細は図２７を用いて後述）に格納する。
【０２３９】
また、合成画像群用情報提供部１１２は、画像群２１１０Ｉがクライアント装置１３０、１４０に送信されてから、センサデータ群２５１０、２５３０を受信するまでの間に取得した情報を「再生と反応ログテーブル」（詳細は図２８を用いて後述）に格納する。更に、合成画像群用情報提供部１１２は、「再生と反応ログテーブル」に格納された情報及び「作用イベント及び反応イベントログ参考表」に基づいて、合成画像群生成用情報２５６１及び合成画像群再生指示情報２５６２を導出する。合成画像群生成用情報２５６１及び合成画像群再生指示情報２５６２は、合成画像群２５００の生成及び再生に必要な情報である。
【０２４０】
また、合成画像群用情報提供部１１２は、合成画像群生成用情報２５６１及び合成画像群再生指示情報２５６２を、それぞれ、「合成画像群生成用情報参考表」及び「合成再生指示情報参考表」（詳細は図２９を用いて後述）に格納する。
【０２４１】
更に、合成画像群用情報提供部１１２は、合成画像群生成用情報２５６１に基づいて合成画像群２５００を生成し、合成画像群再生指示情報２５６２に基づいて、クライアント装置１２０〜１４０に合成画像群２５００を送信する。
【０２４２】
＜合成画像群提供処理において作用イベント発生後に記録される情報の説明その１＞
次に、作用イベント２１２０発生から作用イベント受信完了の通知を受信するまでの間に取得した情報が格納される「バッファテーブル」及び「イベントログテーブル」及び両テーブルから導出される参考表について説明する。
【０２４３】
（１）バッファテーブルの説明
図２６（ａ）は、バッファテーブルの一例を示す図である。他のアバタに対する動きの種類判定ログテーブル２４００に新たなデータ行が追加され、イベントが発生したと判定されるごとに、バッファテーブル２６００に新たなデータ行が追加される。
【０２４４】
作用イベントが発生したことで、バッファテーブル２６００に新たなデータ行が追加されると、バッファテーブル２６００では、一定時間、他のクライアント装置からのセンサデータに基づいて発生したイベントにより、新たなデータ行が追加されるのを待ち受ける。
【０２４５】
バッファテーブル２６００では、他のクライアント装置からのセンサデータに基づいて発生したイベントにより、新たなデータ行が追加されると、待ち受けを終了する。作用イベントの発生に伴って、バッファテーブル２６００にデータ行が追加されてから、一定時間内にデータ行が追加された場合、当該データ行に対応するイベントを、作用イベントに対応する反応イベントと判定する。
【０２４６】
（２）イベントログテーブルの説明
図２６（ｂ）は、イベントログテーブルの一例である。合成画像群用情報提供部１１２は、発生したイベントを他のクライアント装置に送信するため、イベントログテーブル２６１０では、イベントの送受信を記録する。なお、合成画像群用情報提供部１１２は、イベントの送受信に際して、通信速度を測定してイベントログテーブル２６１０に記録する。
【０２４７】
（３）作用イベント及び反応イベントログ参考表
次に、バッファテーブル２６００及びイベントログテーブル２６１０に格納された情報に基づいて導出される情報を格納する、「作用イベント及び反応イベントログ参考表」について図２７を用いて説明する。作用イベント及び反応イベントログ参考表は、バッファテーブル２６００及びイベントログテーブル２６１０に格納された情報に基づいて導出される情報を、わかりやすくまとめた表である。
【０２４８】
図２７は、作用イベント及び反応イベントログ参考表の一例を示す図である。図２７に示すように、作用イベント及び反応イベントログ参考表２７００には情報の項目として、"記録時刻"、"作用イベント／反応イベント"が含まれる。更に、情報の項目として、"ログＩＤ"、"ユーザ名"、"クライアント装置ＩＤ"、"通信速度実績"が含まれる。
【０２４９】
"記録時刻"には、作用イベントまたは反応イベントが発生したと判定され、作用イベントまたは反応イベントがログ格納部１１６に格納された時刻が記録される。
【０２５０】
"作用イベント／反応イベント"には、発生したイベントが作用イベントであるのか、反応イベントであるのかの区別を示す情報が記録される。"ログＩＤ"には、他のアバタに対する動きの種類判定ログテーブル２４００に格納された各データ行のうち、作用イベント２１２０に対応するデータ行に格納されたログＩＤが記録される。
【０２５１】
"ユーザ名"には、作用イベントまたは反応イベントを発生させたアバタの元となるユーザのユーザ名が格納される。"クライアント装置ＩＤ"には、作用イベントまたは反応イベントを発生させたアバタの元となるユーザが利用するクライアント装置を識別するための識別子が格納される。また、"クライアント装置ＩＤ"には、作用イベントまたは反応イベントの送信先となるクライアント装置を識別するための識別子が格納される。
【０２５２】
"通信速度実績"には、作用イベントまたは反応イベントが発生した際に、作用イベント受信完了の通知または反応イベント受信完了の通知を受信するまでの時間に基づいて算出された通信速度実績が格納される。
【０２５３】
＜合成画像群提供処理において作用イベント発生後に記録される情報の説明その２＞
次に、作用イベントに対応するアバタの動きが、他のクライアント装置において再生されたこと、及び、再生に伴って他のユーザが振る舞いを行ったこと（反応したこと）を記録した「再生と反応ログテーブル」について説明する。更に、当該テーブルに基づいて導出される参考表（合成画像群生成用情報参考表及び合成画像群再生指示情報参考表）について説明する。
【０２５４】
（１）再生と反応ログテーブル
合成画像群用情報提供部１１２は、クライアント装置において、作用イベントに対応するアバタの動きが再生されたタイミング、及び、再生に伴って他のユーザが反応したタイミングを、「再生と反応ログテーブル」に記録する。
【０２５５】
図２８は、再生と反応ログテーブルの一例を示す図である。図２８に示すように、再生と反応ログテーブル２８００には、作用イベントに対応するアバタの動きが再生されたタイミングが、"実行開始時刻"及び"実行終了時刻"として記録される。
【０２５６】
再生と反応ログテーブル２８００において、データ行２８０１は、クライアント装置ＩＤ＝"ｃ２"のクライアント装置１３０で、作用イベントに対応するアバタの動きが再生されたことを示している。また、データ行２８０３は、クライアント装置＝"ｃ３" のクライアント装置１４０で、作用イベントに対応するアバタの動きが再生されたことを示している。
【０２５７】
また、再生と反応ログテーブル２８００には、再生に伴って他のユーザが反応したタイミングが、"実行開始時刻"及び"実行終了時刻"として記録される。
【０２５８】
再生と反応ログテーブル２８００において、データ行２８０２は、クライアント装置ＩＤ＝"ｃ２"のクライアント装置１３０で、当該クライアント装置を利用するユーザ１６０が反応したことを示している。また、データ行２８０４は、クライアント装置＝"ｃ３"のクライアント装置１４０で、当該クライアント装置を利用するユーザ１７０が反応したことを示している。
【０２５９】
（２）合成画像群生成用情報参考表及び合成画像群再生指示情報参考表
次に、「合成画像群生成用情報参考表」と、「合成画像群再生指示情報参考表」について図２９を用いて説明する。「合成画像群生成用情報参考表」は、再生と反応ログテーブル２８００に格納された情報に基づいて導出される、合成画像群２５００の生成に必要な情報をまとめたものである。また、「合成画像群再生指示情報参考表」は、イベントログテーブル２６１０及び再生と反応ログテーブル２８００に格納された情報に基づいて導出される、合成画像群２５００の再生に必要な情報をまとめたものである。以下、合成画像群生成用情報参考表と、合成画像群再生指示情報参考表について説明する。
【０２６０】
図２９（ａ）は、合成画像群生成用情報参考表の一例を示す図である。図２９（ａ）に示すように、合成画像群生成用情報参考表２９１０には合成画像群２５００の生成に必要な合成画像群生成用情報２５６１が格納される。合成画像群２５００の生成に際して、合成画像群用情報提供部１１２は、合成画像群の生成の対象とする作用イベント及び反応イベントを特定する。このため、合成画像群生成用情報参考表２９１０には、対象とする作用イベント及び反応イベントを特定するための情報として、"イベント"が格納される。作用イベント及び反応イベントは、他のアバタに対する動きの種類判定ログテーブル２４００に新たにデータ行が格納され、ログＩＤが付加されることで発生する。このため、合成画像群生成用情報参考表２９１０には、作用イベント２１２０及び反応イベント２５２０、２５４０を特定するための情報として、"ログＩＤ"が格納される。
【０２６１】
また、合成画像群２５００の生成に際して、合成画像群用情報提供部１１２は、各ユーザの振る舞いがアバタの動きに反映された画像群を生成するために抽出すべきセンサデータの範囲を確定する。このため、合成画像群生成用情報参考表２９１０には、作用イベント２１２０について、他のアバタに対する動きの種類判定ログテーブル２４００より読み出した、"判定時刻（開始）"と"判定時刻（終了）"が格納される。また、反応イベント２５２０、２５４０について、他のアバタに対する動きの種類判定ログテーブル２４００より読み出した、"判定時刻（開始）"と"判定時刻（終了）"が格納される。
【０２６２】
また、合成画像群２５００の生成に際して、合成画像群用情報提供部１１２は、作用イベントを発生させたアバタ２５０の動きを、ユーザ１６０のＨＭＤ１３３またはユーザ１７０のＨＭＤ１４３に表示した表示タイミング情報を取得する。このため、合成画像群生成用情報テーブル２７１０には、"表示タイミング（開始）"と"表示タイミング（終了）"が格納される。
【０２６３】
図２９（ｂ）は、合成画像群再生指示情報参考表の一例を示す図である。図２９（ｂ）に示すように、合成画像群再生指示情報参考表２９２０には、合成画像群２５００の再生に必要な情報が格納される。
【０２６４】
合成画像群用情報提供部１１２は、合成画像群２５００を再生するにあたり、合成画像群２５００に含まれる画像群２１１０Ｉ'、画像群２５１０Ｉ'、画像群２５３０Ｉ'の再生時刻を算出する。このため、合成画像群再生指示情報参考表２９２０には、合成画像群２５００に含まれる画像群２１１０Ｉ'、画像群２５１０Ｉ'、画像群２５３０Ｉ'の"再生時刻（開始〜終了）"が、"イベント"及び"ログＩＤ"と対応付けて格納される。
【０２６５】
＜合成画像群提供処理における合成画像群の生成手順の概要＞
次に、合成画像群用情報提供部１１２による合成画像群２５００の生成手順について説明する。
【０２６６】
上述したように、合成画像群生成用情報参考表２９１０には、作用イベント２１２０に対応する"判定時刻（開始）"と"判定時刻（終了）"とが格納される。合成画像群用情報提供部１１２は、センサデータ群２１１０のうち当該"判定時刻（開始）"と"判定時刻（終了）"とに基づいて特定される時間範囲のセンサデータを抽出し、画像群２１１０Ｉ'を生成する。
【０２６７】
同様に、合成画像群生成用情報参考表２９１０には、反応イベント２５２０に対応する"判定時刻（開始）"と"判定時刻（終了）"とが格納される。合成画像群用情報提供部１１２は、センサデータ群２５３０のうち当該"判定時刻（開始）" と"判定時刻（終了）"とに基づいて特定される時間範囲のセンサデータを抽出し、画像群２５１０Ｉ'を生成する。
【０２６８】
同様に、合成画像群生成用情報参考表２９１０には、反応イベント２５４０に対応する"判定時刻（開始）"と"判定時刻（終了）"とが格納される。合成画像群用情報提供部１１２は、センサデータ群２５３０のうち当該"判定時刻（開始）" と"判定時刻（終了）"とに基づいて特定される時間範囲のセンサデータを抽出し、画像群２５３０Ｉ'を生成する。
【０２６９】
合成画像群生成用情報参考表２９１０には、作用イベント２１２０に対応するアバタ２５０の動きが表示された表示タイミング情報として、"表示タイミング（開始）"が格納される。"表示タイミング（開始）"に格納された時刻のうち、反応イベント２５２０に対応付けて格納された時刻は、ユーザ１６０のアバタ２６０がユーザ１５０のアバタ２５０の動きに応じて動きを開始した時刻である。つまり、実空間に応じて、ユーザ１６０がユーザ１５０に対して社会的振る舞い（反応）をした、反応タイミングを示す情報（ユーザ１６０の反応タイミング情報）である。
【０２７０】
そこで、合成画像群用情報提供部１１２は、ユーザ１６０のＨＭＤ１３３に各時刻における視野画像３２１を表示した表示タイミング情報と、ユーザ１６０の反応タイミング情報との差分に基づいて、両者の時間のズレ（矢印２５５０）を算出する。更に、合成画像群用情報提供部１１２は、算出したズレに応じた時間差で、画像群２１１０Ｉ'と画像群２５１０Ｉ'とを合成する。
【０２７１】
同様に、"表示タイミング（開始）"に格納された時刻のうち、反応イベント２５４０に対応付けて格納された時刻は、ユーザ１７０のアバタ２７０がユーザ１５０のアバタ２５０の動きに応じて動きを開始した時刻である。つまり、実空間に応じて、ユーザ１７０がユーザ１５０に対して社会的振る舞い（反応）をした、反応タイミングを示す情報（ユーザ１７０の反応タイミング情報）である。
【０２７２】
そこで、合成画像群用情報提供部１１２は、ユーザ１７０のＨＭＤ１４３に各時刻における視野画像３３１を表示した表示タイミング情報と、ユーザ１７０の反応タイミング情報との差分に基づいて、両者の時間のズレ（矢印２５５１）を算出する。更に、合成画像群用情報提供部１１２は、算出したズレに応じた時間差で、画像群２１１０Ｉ'と画像群２５３０Ｉ'とを合成する。
【０２７３】
＜合成画像群提供処理における合成画像群の再生手順の概要＞
次に、合成画像群用情報提供部１１２による合成画像群２５００の再生手順について説明する。
【０２７４】
上述したように、合成画像群再生指示情報参考表２９２０には、合成画像群２５００に含まれる画像群２１１０Ｉ'、画像群２５１０Ｉ'、画像群２５３０Ｉ'の再生時刻が格納される。合成画像群用情報提供部１１２は、生成した合成画像群２５００と、合成画像群２５００に含まれる画像群２１１０Ｉ'、画像群２５１０Ｉ'、画像群２５３０Ｉ'の再生時刻とを含む合成画像群用情報として、クライアント装置１２０〜１４０に送信する。これにより、クライアント装置１２０〜１４０は、同じ時刻（例えば、図５または図２５の時刻ｔ７）において、合成画像群２５００を同期して再生することができる。
【０２７５】
＜合成画像群用情報提供部により実行される合成画像群提供処理の流れ＞
次に、サーバ装置１１０の合成画像群用情報提供部１１２による合成画像群用情報提供処理の流れについて説明する。図３０は、サーバ装置により実行される合成画像群用情報提供処理のフローチャートであり、センサデータが所定量以上格納されるごとに実行される。
【０２７６】
ステップＳ３００１において、合成画像群生成部１７０４は、新たに作用イベント２１２０が発生したか否かを判定する。ステップＳ３００１において、新たに作用イベント２１２０が発生していないと判定した場合には、新たに作用イベント２１２０が発生するまで待機する。
【０２７７】
一方、ステップＳ３００１において、新たに作用イベント２１２０が発生したと判定した場合には、作用イベント２１２０が発生したことをバッファテーブル２６００に記録し、ステップＳ３００２に進む。ステップＳ３００２において、合成画像群生成部１７０４は、作用イベント２１２０の発生に応じて反応イベント２５２０、２５４０が発生したことを検出し、バッファテーブル２６００に記録する。
【０２７８】
ステップＳ３００３において、合成画像群生成部１７０４は、作用イベントが発生したクライアント装置以外のクライアント装置に、作用イベントを送信し、送信先のクライアント装置から、作用イベント受信完了の通知を受信する。
【０２７９】
ステップＳ３００４において、合成画像群生成部１７０４は、作用イベントを送信してから作用イベント受信完了の通知を受信するまでの時間に基づいて、通信速度を算出し、イベントログテーブル２６１０に記録する。
【０２８０】
ステップＳ３００５において、合成画像群生成部１７０４は、各種テーブル（バッファテーブル２６００、イベントログテーブル２６１０、再生と反応ログテーブル２８００）他のアバタに対する動きの種類判定ログテーブル２４００を参照する。これにより、合成画像群生成部１７０４は、合成画像群生成用情報２５６１を生成する。更に、合成画像群生成部１７０４は、合成画像群生成用情報２５６１に基づいて、合成画像群の生成に用いる画像群２１１０Ｉ'、画像群２５１０Ｉ'、２５３０Ｉ'を生成する。
【０２８１】
ステップＳ３００６において、合成画像群生成部１７０４は、合成画像群生成用情報２５６１を参照し、表示タイミング情報と反応タイミング情報とのズレ（矢印２５５０）に応じた時間差を算出する。また、当該時間差に応じて仮想空間の画像群２１１０Ｉと画像群２５１０Ｉとを合成する。また、合成画像群生成部１７０４は、合成画像群生成用情報２５６１を参照し、表示タイミング情報と反応タイミング情報とのズレ（矢印２５５０）に応じた時間差を算出する。当該時間差に応じて仮想空間の画像群２５１０Ｉと画像群２５３０Ｉとを合成する。これにより、合成画像群２５００を生成する。
【０２８２】
ステップＳ３００７において、合成画像群送信部１７０５は、ステップＳ３００６で生成した合成画像群２５００のデータサイズと、ステップＳ３００３で算出した通信速度とに基づいて、クライアント装置に合成画像群２５００が到達する時刻を予測する。また、合成画像群送信部１７０５は、クライアント装置１２０〜１４０における合成画像群２５００の再生開始タイミングを決定する。更に、合成画像群送信部１７０５は、合成画像群生成用情報２５６１を参照し、各画像群（画像群２１１０Ｉ'、画像群２５１０Ｉ'、画像群２５３０Ｉ'）の再生時刻を算出し、合成画像群再生指示情報２５６２に格納する。
【０２８３】
ステップＳ３００８において、合成画像群送信部１７０５は、合成画像群２５００を合成画像群再生指示情報２５６２とともに、合成画像群用情報としてクライアント装置１２０〜１４０に送信する。
【０２８４】
なお、合成画像群送信部１７０５は、クライアント装置１２０〜１４０にて合成画像群が２５００が再生されると、再生結果を合成画像群再生ログテーブルに記録する。図３１は、合成画像群再生ログテーブルの一例を示す図である。図３１に示すように、合成画像群再生ログテーブル３１００には、再生先のクライアント装置と、再生開始時刻、再生終了時刻等が記録される。
【０２８５】
以上の説明から明らかなように、反応出力システム１００は、ユーザ１５０〜１７０それぞれの実空間における振る舞いに応じたアバタ２５０〜２７０それぞれの動きが反映された仮想空間の画像群２１１０Ｉ〜２５３０Ｉを生成する。また、反応出力システム１００は、生成した仮想空間の画像群２１１０Ｉ〜２５３０Ｉを合成することで合成画像群２５００を生成する。また、反応出力システム１００は、合成画像群２５００を生成するにあたり、視野画像群を表示したタイミング（出力タイミング）とユーザの振る舞いのタイミング（反応タイミング）とのズレに応じた時間差で合成を行う。更に、反応出力システム１００は、生成した合成画像群２５００が、各クライアント装置にて同期して再生されるように制御する。
【０２８６】
これにより、あるユーザの振る舞いに対する他のユーザそれぞれの反応を、あたかもその場に居合わせているかのように、仮想空間上で表示することが可能となる。
【０２８７】
つまり、複数人が利用する仮想空間上で、ある人の振る舞いを反映したアバタの動きに対して他の人たちが個別にした反応を反映したアバタの動きを、当該振る舞いに対するそれぞれの反応が生起したタイミングを変えずに、合成して出力することが可能になる。
【０２８８】
［第２の実施形態］
上記第１の実施形態において、反応出力システムは、他のアバタに対する動きの種類を判定したが、第２の実施形態では、更に、他のアバタに対する動きの傾向について判定する。他のアバタに対する動きの傾向とは、例えば、ユーザが他のユーザに対して行った社会的振る舞いを反映したアバタの動きが、他のアバタとの関係において接近傾向にあるのか、回避傾向にあるのかを判定したものである。以下、第２の実施形態について、第１の実施形態との相違点を中心に説明する。
【０２８９】
はじめに、第２の実施形態におけるサーバ装置１１０の機能構成について説明する。図３２は、サーバ装置の機能構成の一例を示す第３の図である。図１７に示した機能構成との違いは、傾向判定部３２０１を有する点と、合成画像群生成部３２０２の機能が、合成画像群生成部１７０４の機能とは異なる点、定義情報格納部３２０３が、他のアバタに対する動きの種類と傾向に関する定義情報を有する点である。
【０２９０】
傾向判定部３２０１は、動き（関係）判定部１７０３において判定された他のアバタに対する動きの傾向が接近傾向にあるのか、回避傾向にあるのかを判定する。傾向判定部３２０１は、定義情報格納部３２０３に格納された定義情報のうち、他のアバタに対する動きの種類と傾向との関係を定義した定義情報を参照する。これにより、傾向判定部３２０１は、ユーザが他のユーザに対して行った社会的振る舞いを反映したアバタの動きが、他のアバタとの関係において接近傾向にあるのか、回避傾向にあるのかを判定する。
【０２９１】
なお、他のアバタに対する動きの種類と傾向との関係を定義した定義情報には、他のアバタに対する動きの優先順位が対応付けられている。傾向判定部３２０１は、ユーザが他のユーザに対して行った社会的振る舞いを反映したアバタの動きが、他のアバタとの関係において接近傾向にあるのか、回避傾向にあるのかの判定を行うにあたり、あわせて優先順位を取得する。
【０２９２】
合成画像群生成部３２０２は、合成画像群を生成するにあたり、傾向判定部３２０１により判定された判定結果と、傾向判定部３２０１により取得された優先順位とに応じた表示態様（色、大きさ等）で、合成画像群を生成する。なお、ここでいう、表示態様には、強調を強めた表示態様と、強調を弱めた表示態様とが含まれる。また、強調を弱めた表示態様には、表示する色を透明にする、あるいは、色を薄くする等の表示態様が含まれる。
【０２９３】
次に、他のアバタに対する動きの種類と傾向と優先順位との関係を定義した定義情報について説明する。図３３は、他のアバタに対する動きの種類と傾向と優先順位との関係を定義した定義情報の一例を示す図である。
【０２９４】
図３３に示すように、定義情報は情報の項目として、"他のアバタに対する動きの種類"、"接近傾向／回避傾向"、"優先順位"を含む。
【０２９５】
"他のアバタに対する動きの種類"には、動き（関係）判定部１７０３により判定されうる、他のアバタに対する動きの種類が格納される。"接近傾向／回避傾向"には、他のアバタに対する動きの種類ごとに、接近傾向または回避傾向のいずれかが格納される。
【０２９６】
"優先順位"には、他のアバタに対する動きの種類について割り当てた優先順位が格納される。例えば、同じ時間範囲に２種類の動きが行われ、それぞれ他のアバタに対する動きの種類が判定された場合において、一方の判定結果の傾向が接近傾向と判定され、他方の判定結果の傾向が回避傾向と判定されたとする。このとき、傾向判定部３２０１は、"優先順位"に格納された優先順位にしたがって、いずれの傾向を、当該時間範囲における判定結果として採用するかを決定する。また、例えば、合成画像群の生成に際して判定された、他のアバタに対する動きの種類の優先順位が高かったとする。このとき、合成画像群生成部３２０２は、他のアバタに対する動きの種類の優先順位が低かった場合と比較して、より強調した表示態様となるように合成画像群を生成する。反対に、優先順位が低かった場合には、強調を弱めた表示態様となるように合成画像群を生成する。
【０２９７】
図３３によれば、例えば、動き（関係）判定部１７０３により、他のアバタに対する動きの種類＝"body-close-to"と判定された場合、傾向判定部３２０１は、他のアバタに対する動きの傾向を"接近傾向"と判定する。また、そのときの優先順位として"１"を取得する。これにより、合成画像群生成部１７０４は、合成画像群２５００を生成する際に、他のアバタに対する動きの傾向＝"接近傾向"で、優先順位＝"１"に応じた表示態様で、合成画像群２５００を生成することができる。
【０２９８】
このように、第２の実施形態に係る反応出力システムによれば、判定した他のアバタに対する動きの種類に応じて、ユーザが他のユーザに対して行った社会的振る舞いに対応するアバタの動きの傾向を判定する。これにより、合成画像群に反映する他のアバタに対する動きの種類や、その表示態様を変更することができる。
【０２９９】
［第３の実施形態］
上記第１及び第２の実施形態では、仮想空間においてコミュニケーションを行う複数の人間の属性について言及しなかったが、例えば、仮想空間においてコミュニケーションを行う複数の人間を、属性に応じて、複数のグループに分類するようにしてもよい。
【０３００】
複数のグループに分類した場合、例えば、あるユーザの顔の向きや体の向きだけでは、当該ユーザの社会的振る舞いを反映したアバタの動きが、他のいずれのユーザのアバタを対象としたものであるのかを判断できないケースにおいて有益である。当該ユーザの社会的振る舞いを反映したアバタの動きが、どのグループに対する社会的振る舞いを反映した動きであるのかをおおまかに判断することができるからである。
【０３０１】
例えば、当該ユーザが所定のグループに属しており、当該ユーザの社会的振る舞いを反映したアバタの動きを判断する場合について考える。この場合、他のユーザのアバタの仮想空間における位置を、他のユーザがそれぞれ属するグループに応じて分類し、それぞれのグループごとに、アバタの位置をおおまかに覆う図形を仮想空間内に設定する。
【０３０２】
これにより、他のグループに属するユーザのアバタのおおまかな位置を特定することができ、判断対象のユーザの社会的振る舞いを反映したアバタの動きが、いずれのグループを対象として行われたものであるのかを判断することができる。
【０３０３】
なお、判断対象のユーザの社会的振る舞いを反映したアバタの動きが、いずれのグループを対象として行われたものであるかを判断した場合、判断結果であるグループ名を、例えば、他のアバタに対する動きの種類判定ログテーブル２４００に記述してもよい。あるいは、判断結果であるグループに属する全てのユーザ名を、他のアバタに対する動きの種類判定ログテーブル２４００に記述してもよい。
【０３０４】
一方で、複数のグループに分類した場合であっても、判断対象のユーザの社会的振る舞いを反映したアバタの動きが、同じグループに属する他のユーザのアバタを対象として行われたのか、他のグループを対象として行われたのかを判断するのが困難なケースもある。
【０３０５】
例えば、判断対象のユーザの社会的振る舞いを反映したアバタの顔の向きに対して、同じグループに属する他のユーザのアバタの位置と、他のグループの位置とが、同じ方向にある場合があるからである。
【０３０６】
このような場合には、ユーザの振る舞いをセンシングするセンサとして視線センサを配し、３次元の視線データを取得することで、判断対象のユーザの視線の焦点距離を求めることが有効である。判断対象のユーザのアバタの位置から、同じグループに属する他のユーザのアバタの位置までの距離と、他のグループの位置までの距離とは異なるため、判断対象のユーザの社会的振る舞いを反映したアバタの動きの対象を区別することができるからである。
【０３０７】
あるいは、判断対象のユーザのつぶやき等の音声データに基づいて、対象を区別するようにしてもよい。あるいは、他のユーザが判断対象のユーザに対して、音声を介して直接問い合わせた場合にあっては、当該問い合わせ結果に基づいて、対象を区別するようにしてもよい。
【０３０８】
あるいは、判断対象のユーザの社会的振る舞いを反映したアバタの動きが、反応イベントを発生させる動きである場合には、どの作用イベントに対する反応イベントであるのかに基づいて、対象を区別するようにしてもよい。
【０３０９】
このように、同じ仮想空間内において、異なるグループに属するユーザのアバタが存在する場合には、所定のグループに属するユーザの人間関係の構築に、異なるグループに属するユーザが関与することができることになる。しかしながら、ユーザの社会的振る舞いを反映したアバタの動きが、いずれのグループを対象として行われたものであるのかを判断することができれば、同じグループに属するユーザのアバタを対象としたものであるのか否かを分けて管理することができる。
【０３１０】
［第４の実施形態］
上記第１及び第２の実施形態では、合成画像群として、仮想空間の画像群を合成するものとして説明した。つまり、視野画像群に表示されるアバタと同じアバタを合成画像群の生成に用いるものとして説明したが、合成画像群に用いるアバタは、視野画像群に表示されるアバタとは異なる種類のアバタであってもよい。
【０３１１】
また、上記第１及び第２の実施形態では、合成画像群の表示方法について特に言及しなかったが、合成画像群は、仮想空間を俯瞰的に見た場合の画像群であっても、特定のユーザの視点から見た場合の画像群であってもよい。
【０３１２】
また、上記第１及び第２の実施形態においてサーバ装置１１０が有するものとして説明した機能の一部は、クライアント装置１２０〜１４０が有していてもよい。あるいは、上記第１及び第２の実施形態においてクライアント装置１２０〜１４０が有しているものとして説明した機能の一部は、サーバ装置１１０が有していてもよい。つまり、上記第１及び第２の実施形態において説明した、サーバ装置１１０とクライアント装置１２０〜１４０との間の機能の区分は一例にすぎず、任意の組み合わせが可能であるものとする。
【０３１３】
また、上記第１及び第２の実施形態では、サーバ装置１１０において合成画像群２５００を生成し、クライアント装置１２０〜１４０に送信する場合について説明した。しかしながら、合成画像群２５００は、クライアント装置１２０〜１４０において生成するようにしてもよい。図３４は、ユーザの振る舞いが行われてから合成画像群を再生するまでの流れを説明するための第２の図である。
【０３１４】
図２５との相違点は、サーバ装置１１０が、クライアント装置１３０から受信したセンサデータ群２５１０をクライアント装置１２０及びクライアント装置１４０に送信している点である。また、サーバ装置１１０が、クライアント装置１４０から受信したセンサデータ群２５３０をクライアント装置１２０及びクライアント装置１３０に送信している点である。更に、サーバ装置１１０が、合成画像群生成用情報２５６１と合成画像群再生指示情報２５６２とを、クライアント装置１２０〜１４０に送信している点である。
【０３１５】
これにより、クライアント装置１２０〜１４０は、合成画像群２５００を生成して再生することができる。なお、この場合、クライアント装置１２０〜１４０には、センサデータ群に基づいて、仮想空間におけるアバタを生成する機能が備えられているものとする。
【０３１６】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
第１端末で第１の人について検出された第１動作について、第１の人と対応付けた状態の第１画像群を生成して、第２端末と第３端末に提供する第１の提供手段と、
前記第２端末で、前記第１画像群を出力した後に検出された第２の人の第２動作に基づいて、第２の人と対応付けた状態の第２画像群を生成する第２画像生成手段と、
前記第３端末で、前記第１画像群を出力した後に検出された第３の人の第３動作に基づいて、第３の人と対応付けた状態の第３画像群を生成する第３画像生成手段と、
前記第１画像群と前記第２画像群と前記第３画像群とを、
前記第１画像群と前記第２画像群とは、前記第１画像群の前記第２端末における出力タイミングと前記第２動作の検出タイミングとのズレに応じた時間差で合成し、
前記第１画像群と前記第３画像群とは、前記第１画像群の前記第３端末における出力タイミングと前記第３動作の検出タイミングとのズレに応じた時間差で合成し、
前記第１画像群と前記第２画像群と前記第３画像群とを含む合成画像群を、前記第１端末、前記第２端末、前記第３端末のそれぞれに提供する第２の提供手段と
を有することを特徴とする反応出力システム。
（付記２）
検出された前記第２動作が、前記第１画像群に示される前記第１の人に対する接近傾向の動作であるのか、回避傾向の動作であるのかを判定し、判定の結果に応じて、前記合成画像群の表示態様を変更することを特徴とする付記１に記載の反応出力システム。
（付記３）
検出された前記第３動作が、前記第１画像に示される前記第１の人に対する接近傾向の動作であるのか、回避傾向の動作であるのかを判定し、判定の結果に応じて、前記合成画像群の表示態様を変更することを特徴とする付記１に記載の反応出力システム。
（付記４）
前記第１端末と前記第２端末との間の通信速度と、前記第１端末と前記第３端末との間の通信速度とに基づいて、前記合成画像群を、前記第１端末、前記第２端末、前記第３端末において再生するタイミングを決定することを特徴とする付記１に記載の反応出力システム。
（付記５）
第１端末で第１の人について検出された第１動作について、第１の人と対応付けた状態の第１画像群を生成して、第２端末と第３端末に提供し、
前記第２端末で、前記第１画像群を出力した後に検出された第２の人の第２動作に基づいて、第２の人と対応付けた状態の第２画像群を生成し、
前記第３端末で、前記第１画像群を出力した後に検出された第３の人の第３動作に基づいて、第３の人と対応付けた状態の第３画像群を生成し、
前記第１画像群と前記第２画像群と前記第３画像群とを、
前記第１画像群と前記第２画像群とは、前記第１画像群の前記第２端末における出力タイミングと前記第２動作の検出タイミングとのズレに応じた時間差で合成し、
前記第１画像群と前記第３画像群とは、前記第１画像群の前記第３端末における出力タイミングと前記第３動作の検出タイミングとのズレに応じた時間差で合成し、
前記第１画像群と前記第２画像群と前記第３画像群とを含む合成画像群を、前記第１端末、前記第２端末、前記第３端末のそれぞれに提供する、
処理をコンピュータに実行させるための反応出力プログラム。
（付記６）
コンピュータが、
第１端末で第１の人について検出された第１動作について、第１の人と対応付けた状態の第１画像群を生成して、第２端末と第３端末に提供し、
前記第２端末で、前記第１画像群を出力した後に検出された第２の人の第２動作に基づいて、第２の人と対応付けた状態の第２画像群を生成し、
前記第３端末で、前記第１画像群を出力した後に検出された第３の人の第３動作に基づいて、第３の人と対応付けた状態の第３画像群を生成し、
前記第１画像群と前記第２画像群と前記第３画像群とを、
前記第１画像群と前記第２画像群とは、前記第１画像群の前記第２端末における出力タイミングと前記第２動作の検出タイミングとのズレに応じた時間差で合成し、
前記第１画像群と前記第３画像群とは、前記第１画像群の前記第３端末における出力タイミングと前記第３動作の検出タイミングとのズレに応じた時間差で合成し、
前記第１画像群と前記第２画像群と前記第３画像群とを含む合成画像群（２５００）を、前記第１端末、前記第２端末、前記第３端末のそれぞれに提供する、
処理を実行する反応出力方法。
【０３１７】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０３１８】
１００                  ：反応出力システム
１１０                  ：サーバ装置
１１１                  ：仮想空間用情報提供部
１１２                  ：合成画像群用情報提供部
１２０、１３０、１４０  ：クライアント装置
１２１、１３１、１４１  ：情報処理部
１２２、１３２、１４２  ：深度センサ
１２３、１３３、１４３  ：ＨＭＤ
１２４、１３４、１４４  ：頭部姿勢センサ
１２５、１３５、１４５  ：音声センサ
１２６、１３６、１４６  ：筋電位センサ
２５０〜２７０          ：アバタ
１２０１                ：センサデータ収集部
１２０２                ：仮想空間用情報生成部
１２０３                ：仮想空間用情報送信部
１７０１                ：処理条件判定部
１７０２                ：動き（変化）判定部
１７０３                ：動き（関係）判定部
１７０４                ：合成画像群生成部
１７０５                ：合成画像群送信部
２１１０                ：センサデータ群
２１１０Ｉ              ：画像群
２１１１〜２１１６      ：センサデータ
２１２０                ：作用イベント
２５００                ：合成画像群
２５１０、２５３０      ：センサデータ群
２５１０Ｉ、２５３０Ｉ  ：画像群
２５２０、２５４０      ：反応イベント
２９０１                ：傾向判定部
【図１】
0006601136.tif 000002
【図２】
0006601136.tif 000003
【図３】
0006601136.tif 000004
【図４】
0006601136.tif 000005
【図５】
0006601136.tif 000006
【図６】
0006601136.tif 000007
【図７】
0006601136.tif 000008
【図８】
0006601136.tif 000009
【図９】
0006601136.tif 000010
【図１０】
0006601136.tif 000011
【図１１】
0006601136.tif 000012
【図１２】
0006601136.tif 000013
【図１３】
0006601136.tif 000014
【図１４】
0006601136.tif 000015
【図１５】
0006601136.tif 000016
【図１６】
0006601136.tif 000017
【図１７】
0006601136.tif 000018
【図１８】
0006601136.tif 000019
【図１９】
0006601136.tif 000020
【図２０】
0006601136.tif 000021
【図２１】
0006601136.tif 000022
【図２２】
0006601136.tif 000023
【図２３】
0006601136.tif 000024
【図２４】
0006601136.tif 000025
【図２５】
0006601136.tif 000026
【図２６】
0006601136.tif 000027
【図２７】
0006601136.tif 000028
【図２８】
0006601136.tif 000029
【図２９】
0006601136.tif 000030
【図３０】
0006601136.tif 000031
【図３１】
0006601136.tif 000032
【図３２】
0006601136.tif 000033
【図３３】
0006601136.tif 000034
【図３４】
0006601136.tif 000035