(57)【特許請求の範囲】
【請求項１】
所定の人を第１のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第１のデータを取得する第１の取得手段と、
前記第１のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた第１の画像を生成して出力する生成手段と、
前記人を前記第１のタイミングより後の第２のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第２のデータを取得する第２の取得手段と、
振る舞いの種別と接近傾向か回避傾向かの別とを対応付けて記憶する記憶部を参照し、前記第１のタイミングにおける前記人の振る舞い、前記第２のタイミングにおける前記人の振る舞いともに、他の人に対する接近傾向であった場合、または、前記第１のタイミングにおける前記人の振る舞い、前記第２のタイミングにおける前記人の振る舞いともに、前記他の人に対する回避傾向であった場合に、前記第２のデータに示される前記人の体の部位の位置を、前記人を表すアバタに反映させると決定する決定手段と、
反映させると決定した場合に、前記第２のデータに示される前記人の体の部位の位置を前記人を表すアバタに反映させた第２の画像を、前記第１の画像に代えて出力する出力手段と
を有することを特徴とする画像生成装置。
【請求項２】
反映させないと決定した場合に、前記出力手段は、前記第１のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた前記第１の画像を継続して出力することを特徴とする請求項１に記載の画像生成装置。
【請求項３】
反映させないと決定した場合に、前記第１のデータと前記第２のデータとを用いて第３のデータを算出する算出手段を更に有し、
反映させないと決定した場合に、前記出力手段は、前記第３のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた第３の画像を、前記第１の画像に代えて出力することを特徴とする請求項１に記載の画像生成装置。
【請求項４】
前記生成手段は、
前記第１のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた前記第１の画像と、前記第２のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた前記第２の画像とを生成することを特徴とする請求項１に記載の画像生成装置。
【請求項５】
所定の人を第１のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第１のデータを取得し、
前記第１のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた第１の画像を生成して出力し、
前記人を前記第１のタイミングより後の第２のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第２のデータを取得し、
振る舞いの種別と接近傾向か回避傾向かの別とを対応付けて記憶する記憶部を参照し、前記第１のタイミングにおける前記人の振る舞い、前記第２のタイミングにおける前記人の振る舞いともに、他の人に対する接近傾向であった場合、または、前記第１のタイミングにおける前記人の振る舞い、前記第２のタイミングにおける前記人の振る舞いともに、前記他の人に対する回避傾向であった場合に、前記第２のデータに示される前記人の体の部位の位置を、前記人を表すアバタに反映させると決定し、
反映させると決定した場合に、前記第２のデータに示される前記人の体の部位の位置を前記人を表すアバタに反映させた第２の画像を、前記第１の画像に代えて出力する、
処理をコンピュータに実行させるための画像生成プログラム。
【請求項６】
所定の人を第１のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第１のデータを取得し、
前記第１のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた第１の画像を生成して出力し、
前記人を前記第１のタイミングより後の第２のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第２のデータを取得し、
振る舞いの種別と接近傾向か回避傾向かの別とを対応付けて記憶する記憶部を参照し、前記第１のタイミングにおける前記人の振る舞い、前記第２のタイミングにおける前記人の振る舞いともに、他の人に対する接近傾向であった場合、または、前記第１のタイミングにおける前記人の振る舞い、前記第２のタイミングにおける前記人の振る舞いともに、前記他の人に対する回避傾向であった場合に、前記第２のデータに示される前記人の体の部位の位置を、前記人を表すアバタに反映させると決定し、
反映させると決定した場合に、前記第２のデータに示される前記人の体の部位の位置を前記人を表すアバタに反映させた第２の画像を、前記第１の画像に代えて出力する、
処理をコンピュータが実行する画像生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成装置、画像生成プログラム及び画像生成方法に関する。
【背景技術】
【０００２】
実空間でのコミュニケーションにおいて、ある人の非言語行動（視線の交錯や身体的な近さ、身振り手振り、微笑み等）に対する、他の人（コミュニケーションの相手等）の反応を解析することは、人間関係における親密性のバランス等を推測する上で重要である。
【０００３】
一方、仮想空間の場合、ユーザ同士のコミュニケーションはアバタを介して行われる。このため、仮想空間において相互の人間関係を推測するためには、実空間でのユーザの非言語行動を正確にセンシングし、画像生成装置が、センシング結果をできるだけ反映させたアバタの画像を生成する必要が生じる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１２−５２８３９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、センシング結果に誤り等が含まれている場合に、センシング結果を反映させると、かえってアバタの画像を見た他のユーザ（コミュニケーションの相手等）に対して、違和感を与えることになる。この結果、人間関係における親密性のバランス等が変化する可能性もある。
【０００６】
一つの側面では、アバタを見ている相手に違和感を与えない画像を生成することを目的としている。
【課題を解決するための手段】
【０００７】
一態様によれば、画像生成装置は、
所定の人を第１のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第１のデータを取得する第１の取得手段と、
前記第１のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた第１の画像を生成して出力する生成手段と、
前記人を前記第１のタイミングより後の第２のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第２のデータを取得する第２の取得手段と、
振る舞いの種別と接近傾向か回避傾向かの別とを対応付けて記憶する記憶部を参照し、前記第１のタイミングにおける前記人の振る舞い、前記第２のタイミングにおける前記人の振る舞いともに、他の人に対する接近傾向であった場合、または、前記第１のタイミングにおける前記人の振る舞い、前記第２のタイミングにおける前記人の振る舞いともに、前記他の人に対する回避傾向であった場合に、前記第２のデータに示される前記人の体の部位の位置を、前記人を表すアバタに反映させると決定する決定手段と、
反映させると決定した場合に、前記第２のデータに示される前記人の体の部位の位置を前記人を表すアバタに反映させた第２の画像を、前記第１の画像に代えて出力する出力手段とを有する。
【発明の効果】
【０００８】
アバタを見ている相手に違和感を与えない画像を生成することができる。
【図面の簡単な説明】
【０００９】
【図１】画像生成システムの全体構成の一例を示す第１の図である。
【図２】仮想空間の画像の一例を示す図である。
【図３】アバタの画像の表現方法を説明するための図である。
【図４】画像生成装置のハードウェア構成の一例を示す図である。
【図５】情報処理装置が搭載されたＨＭＤのハードウェア構成の一例を示す図である。
【図６】画像生成装置の制約部の機能構成を説明するための第１の図である。
【図７】センサデータ用ＤＢに格納されるセンサデータの一例を示す図である。
【図８】定義情報用ＤＢに格納される遷移区間定義情報の一例を示す図である。
【図９】アバタ骨格モデル更新処理の第１のフローチャートである。
【図１０】ログ用ＤＢに格納された判定値ログテーブルの一例を示す図である。
【図１１】ログ用ＤＢに格納されたアバタ骨格ログテーブルの一例を示す図である。
【図１２】画像生成装置の制約部の機能構成を説明するための第２の図である。
【図１３】定義情報用ＤＢに格納されるＡＰＩ定義情報の一例を示す図である。
【図１４】定義情報用ＤＢに格納される傾向定義情報の一例を示す図である。
【図１５】アバタ骨格モデル更新処理の第２のフローチャートである。
【図１６】アバタ骨格モデル更新処理の第３のフローチャートである。
【図１７】ログ用ＤＢに格納された社会的振る舞いログテーブルの一例を示す図である。
【図１８】画像生成装置の制約部の機能構成を説明するための第３の図である。
【図１９】定義情報用ＤＢに格納される組み合わせ条件定義情報の一例を示す図である。
【図２０】組み合わせる条件を説明するための図である。
【図２１】アバタ骨格モデル更新処理の第４のフローチャートである。
【図２２】アバタ骨格モデル更新処理の第５のフローチャートである。
【図２３】画像生成装置の制約部の機能構成を説明するための第４の図である。
【図２４】定義情報用ＤＢに格納されるエリア情報の一例を示す図である。
【図２５】画像生成システムの全体構成の一例を示す第２の図である。
【図２６】解析部による解析結果の一例を示す図である。
【図２７】画像生成装置の解析部の機能構成を説明するための図である。
【発明を実施するための形態】
【００１０】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１１】
［第１の実施形態］
＜画像生成システムの全体構成＞
はじめに、画像生成システムについて説明する。図１は、画像生成システムの全体構成の一例を示す第１の図である。図１に示すように、画像生成システム１００は、サーバソフトウェアが配置される画像生成装置１１０と、クライアントアプリケーションソフトウェアが配置される情報処理装置１２１、１３１を含むクライアント側システム１２０、１３０とを有する。画像生成装置１１０と、クライアント側システム１２０、１３０とは、インターネットやＬＡＮ（Local  Area  Network）等に代表されるネットワーク１６０を介して接続される。
【００１２】
画像生成システム１００は、画像生成装置１１０と、クライアント側システム１２０、１３０とが、全体の処理を分割して実行することで、コミュニケーションサービスを提供する。ユーザ１４０（ユーザＩＤ＝“ｕｓｅｒＡ”）、ユーザ１５０（ユーザＩＤ＝“ｕｓｅｒＢ”）は、互いに離間した場所にて、画像生成システム１００が提供するコミュニケーションサービスを利用する。これにより、ユーザ１４０とユーザ１５０とは同じ仮想空間においてアバタ（ユーザと対応付けた状態の画像）を介してコミュニケーションを行うことができる。
【００１３】
画像生成装置１１０は、ユーザ１４０、１５０をセンシングした結果得られたセンサデータを収集し、各種処理を行うサーバ装置である。
【００１４】
画像生成装置１１０には、サーバソフトウェアとしての画像生成プログラムがインストールされており、当該画像生成プログラムが実行されることで、画像生成装置１１０は、基本機能部及び制約部１１５として機能する。
【００１５】
基本機能部には、情報収集処理管理部１１１、情報表示処理部１１２、登録データ管理部１１３、表示履歴管理部１１４が含まれ、コミュニケーションサービスを提供するための基本的な機能を実現する。
【００１６】
情報収集処理管理部１１１は、ユーザ１４０、１５０をセンシングした結果得られたセンサデータを収集してセンサデータ用データベース（以下、ＤＢ（Database）と略す）１１７に格納する。
【００１７】
情報表示処理部１１２は、センサデータ用ＤＢ１１７に格納されたセンサデータに基づいて、仮想空間におけるアバタの画像を生成する。情報表示処理部１１２は、例えば、コンテンツ用ＤＢ１１６に格納されたアバタ骨格モデルを用いてアバタの画像を生成する。アバタ骨格モデルとは、人型の画像であって、複数のアバタ骨格を用いて、ユーザの各部位の動き（動作）を表現する画像である。なお、アバタ骨格とは、アバタの頭や肢体を動かす基点となるオブジェクトであり、アバタ骨格モデル内に複数配されている。情報表示処理部１１２は、各アバタ骨格について仮想空間における位置及び回転角度を算出し、算出した位置及び回転角度をアバタ骨格モデルに反映させることでアバタの画像を生成する。
【００１８】
また、情報表示処理部１１２は、コンテンツ用ＤＢ１１６に格納された仮想空間の画像（背景画像）に、アバタの画像を組み込むことで仮想空間用情報を生成し、クライアント側システム１２０、１３０に送信する。
【００１９】
なお、情報表示処理部１１２は、制約部１１５からの指示に基づいて、仮想空間の画像に組み込むアバタの画像を変更する。例えば、制約部１１５から、情報表示処理部１１２にて生成した次の時刻のアバタの画像を表示するよう指示があった場合には、情報表示処理部１１２にて生成した次の時刻のアバタの画像を組み込むことで次の時刻の仮想空間用画像を生成する。制約部１１５は、次の時刻のアバタの画像が、アバタを見ている相手に違和感を与えないと判定した場合、情報表示処理部１１２に対して、情報表示処理部１１２にて生成した次の時刻のアバタの画像を表示するよう指示する。
【００２０】
一方、制約部１１５から、制約部１１５にて生成された次の時刻のアバタの画像を表示するよう指示があった場合には、情報表示処理部１１２は、制約部１１５にて生成された次の時刻のアバタの画像を組み込むことで次の時刻の仮想空間用画像を生成する。なお、制約部１１５は、次の時刻のアバタの画像が、アバタを見ている相手に違和感を与えると判定した場合に、情報表示処理部１１２に対して、制約部１１５にて生成した次の時刻のアバタの画像を表示するよう指示する。
【００２１】
登録データ管理部１１３は、情報収集処理管理部１１１がセンサデータを収集し、情報表示処理部１１２が仮想空間用情報を生成して送信する際に用いる各種情報をコンテンツ用ＤＢ１１６、定義情報用ＤＢ１１８に登録する。
【００２２】
表示履歴管理部１１４は、情報表示処理部１１２が送信した仮想空間用情報に含まれるアバタの画像の生成に用いられたデータを、表示履歴に関するログテーブルとしてログ用ＤＢ１１９に記録する。画像生成装置１１０の管理者は、表示履歴管理部１１４によりログ用ＤＢ１１９に記録された表示履歴に関するログテーブルを解析することで、ユーザ１４０、１５０の人間関係（例えば、親密性のバランス等）を推測する。
【００２３】
制約部１１５は、センサデータ用ＤＢ１１７に格納されたセンサデータに基づいて算出される、アバタ骨格モデル候補の各アバタ骨格の変化の仕方を監視し、アバタを見ている相手に違和感を与えるか否かを判定する。「アバタ骨格の変化の仕方」とは、仮想空間におけるある時刻のアバタ骨格と、次の時刻のアバタ骨格との間の位置及び回転角度の遷移を指す。
【００２４】
制約部１１５では、アバタを見ている相手に違和感を与えないと判定した場合、情報表示処理部１１２にて生成される次の時刻のアバタの画像を表示するよう、情報表示処理部１１２に対して指示をする。
【００２５】
一方、制約部１１５では、アバタを見ている相手に違和感を与えると判定した場合、制約部１１５にて生成した次の時刻のアバタの画像（制約を加えたアバタの画像）を表示するよう、情報表示処理部１１２に対して指示をする。
【００２６】
このように、第１の実施形態における画像生成装置１１０では、アバタを見ている相手に違和感を与えないと判定した場合、センサデータに基づくアバタの画像を次の時刻に表示する。一方、アバタを見ている相手に違和感を与えると判定した場合には、制約を加えたアバタの画像を次の時刻に表示する。この結果、第１の実施形態における画像生成装置１１０によれば、アバタを見ている相手に違和感を与えない画像を表示することができる。
【００２７】
続いて、クライアント側システムについて説明する。なお、クライアント側システム１２０とクライアント側システム１３０とは同様の構成を有していることから、ここでは、クライアント側システム１２０について説明する。
【００２８】
クライアント側システム１２０は、情報処理装置１２１、情報提示装置１２３、情報収集装置１２４〜１２６を有する。
【００２９】
情報処理装置１２１には、クライアントアプリケーションとしての情報処理プログラムがインストールされており、当該情報処理プログラムが実行されることで、情報処理装置１２１は、情報処理部１２２として機能する。情報処理部１２２は、情報収集装置１２４〜１２６から出力されるセンサデータを画像生成装置１１０に送信するとともに、画像生成装置１１０から送信される仮想空間用情報を受信し、情報提示装置１２３に出力する。
【００３０】
なお、第１の実施形態において、情報処理装置１２１は、ＨＭＤ（Head‐Mounted  Display）に搭載されているものとして説明するが、情報処理装置１２１は、ＨＭＤに搭載されていなくてもよい。例えば、情報処理装置１２１は、ユーザ１４０を取り囲む環境埋め込み型端末に搭載されていてもよい。あるいは、情報処理装置１２１は、コンタクトレンズ、眼鏡のような装着型モバイル端末や、据え置き型サーバ装置等に搭載されていてもよい。
【００３１】
情報提示装置１２３は、画像生成装置１１０より送信された仮想空間用情報を、ユーザ１４０に対して表示する。なお、第１の実施形態において、情報提示装置１２３は、ＨＭＤの表示部により実現される。
【００３２】
情報収集装置１２４〜１２６は、ユーザ１４０の実空間における非言語行動をセンシングし、センサデータを出力する。
【００３３】
第１の実施形態において、情報収集装置１２４は頭部姿勢センサであり、ＨＭＤに搭載されている。頭部姿勢センサ１２４は、ユーザ１４０の実空間における非言語行動に含まれる“頭の向き”をセンシングして頭部姿勢データを出力する。
【００３４】
また、第１の実施形態において、情報収集装置１２５は深度センサである。深度センサ１２５は、ユーザ１４０の前方に設置され、設置位置からユーザ１４０までの三次元の距離をセンシングすることで、実空間におけるユーザ１４０の非言語行動に応じて変化する深度データ及び二次元の距離画像等を出力する。深度データとは、深度（奥行き）を示すデータ（例えば、３ｃｍ等）である。また、距離画像とは、深度センサ１２５から得られた深度データをＸＹ平面にプロットして得られる画像をいう。距離画像上の各画素には、深度センサ１２５から得た各ＸＹ座標位置にある物体（深度センサ１２５から見て一番手前の物体）までの距離の値が格納される。なお、深度センサ１２５から得られるデータ（深度データ、距離画像のほか、カラー画像等も含む）を総称して、深度センサデータと称する。
【００３５】
また、第１の実施形態において、情報収集装置１２６は筋電位センサである。筋電位センサ１２６は、実空間におけるユーザ１４０の非言語行動に含まれる“表情の変化”をセンシングして筋電位データを出力する。
【００３６】
なお、以下では、クライアントアプリケーションソフトウェアが配置された１つの装置（情報処理装置）上に、１人のユーザが割り当てられるものとして説明するが、１つの装置上に複数のユーザが割り当てられていてもよい。
【００３７】
また、以下では、サーバソフトウェアもクライアントアプリケーションソフトウェアも、それぞれ１つの装置（画像生成装置、情報処理装置）上に配置されるものとして説明するが、１つの装置上に、複数のソフトウェアが配置されていてもよい。あるいは、サーバソフトウェアとクライアントアプリケーションソフトウェアは、１つの装置上に配置されていてもよい。あるいは、サーバソフトウェアもクライアントアプリケーションソフトウェアも、それぞれのソフトウェアにおいて実現される機能が、複数の装置に分散されて配置されていてもよい。
【００３８】
また、以下では、クライアントアプリケーションソフトウェアがユーザ１４０を識別し、画像生成装置１１０から送信される仮想空間用情報を、当該識別したユーザ１４０に応じた仮想空間用情報に変換して表示するものとする。また、以下では、ユーザ１４０の非言語行動をセンシングした結果得られるセンサデータが、ユーザ１４０と紐づけて画像生成装置１１０に送信されるものとして説明する。なお、クライアントアプリケーションソフトウェアが配置される情報処理装置１２１は、クライアントアプリケーションソフトウェアまたはサーバソフトウェアによってアクセス制御されているものとする。つまり、以下では、クライアントアプリケーションソフトウェアは、クライアントアプリケーションソフトウェアが配置される情報処理装置１２１にて、本人確認（ユーザ認証）が事前に行われているものとする。
【００３９】
また、以下では、クライアントアプリケーションソフトウェアが情報提示装置１２３の仕様を確認し、画像生成装置１１０から送信される仮想空間用情報を、当該確認した仕様に応じた仮想空間用情報に変換して表示するものとする。
【００４０】
また、以下では、クライアントアプリケーションソフトウェアが情報処理装置１２１を確認し、ユーザ１４０の非言語行動をセンシングした結果得られたセンサデータを、情報処理装置１２１と紐づけて画像生成装置１１０に送信するものとする。
【００４１】
また、以下では、ユーザ１４０を識別する識別子を、ユーザ１４０が１種類有しているものとして説明するが、画像生成システム１００が複数のサービスを提供する場合にあっては、ユーザ１４０は、サービスごとに異なる識別子を有していてもよい。ただし、その場合、画像生成システム１００により、ユーザ１４０が有している複数の識別子間の対応付けが管理されているものとする。
【００４２】
また、以下では、情報収集装置１２４〜１２６として、頭部姿勢センサ、深度センサ、筋電位センサがユーザ１４０の非言語行動をセンシングするものとして説明するが、それ以外のセンサが、ユーザ１４０の非言語行動をセンシングしてもよい。それ以外のセンサには、例えば、動画像撮像装置、静止画像（カラー画像）撮像装置、音声取得装置、生体センサ等が含まれる。
【００４３】
なお、非接触のセンサにおいては、例えば、ユーザ１４０を撮影している静止画像にユーザ１４０が映っていない場合のように、センサデータ中にユーザ１４０のデータがない場合もある。また、例えば、ユーザ１４０を撮影している静止画像に複数のユーザが撮影され、どのユーザをセンシングしたのか判別できない場合もある。本実施形態においては、このような事象については、別途対策がなされているものとし、センサデータは画像生成装置１１０においてユーザ１４０と正しく紐付けがなされているものとする。
【００４４】
また、以下では、情報収集装置１２４〜１２６にてセンシングされたセンサデータ自体が画像生成装置１１０に送信されるものとして説明するが、センシングされたセンサデータから導出可能な中間的な情報が送信されてもよい。例えば、ユーザ１４０の顔画像データをセンシングする場合にあっては、ユーザ１４０の顔パーツに着目することで導出される笑顔の変化の大小を表す情報が、画像生成装置１１０に送信されてもよい。あるいは、ユーザ１４０の顔の大きさに着目することで導出される姿勢変化を表す情報が、画像生成装置１１０に送信されてもよい。
【００４５】
更に、以下では、情報処理装置１２１、１３１から送信されるセンサデータには、タイムスタンプが付加されているものとする。また、このとき付加されるタイムスタンプは、クライアント側システム１２０とクライアント側システム１３０との間で、時刻合わせが行われているものとする。
【００４６】
＜仮想空間の画像＞
次に、ユーザ１４０のアバタの画像を含む仮想空間の画像について説明する。図２は、仮想空間の画像の一例を示す図である。
【００４７】
図２に示すように、コミュニケーションサービスを利用するユーザ１４０は、実空間において、ＨＭＤ（頭部姿勢センサ１２４及び表示部１２３が搭載されたＨＭＤ）と、筋電位センサ１２６とを装着して、例えば、椅子２００に着座する。また、ユーザ１４０の前方には深度センサ１２５が設置され、ユーザ１４０をセンシングする。
【００４８】
頭部姿勢センサ１２４、深度センサ１２５、筋電位センサ１２６によるセンシングにより得られた頭部姿勢データ、深度センサデータ、筋電位データは、画像生成装置１１０に送信され、ユーザ１４０のアバタの画像が生成される。同様の処理がユーザ１５０に対しても行われ、ユーザ１５０のアバタの画像が生成される。
【００４９】
更に、画像生成装置１１０において生成されたアバタの画像は、仮想空間の画像に組み込まれ、仮想空間用情報として情報処理装置１２１及び１３１にそれぞれ送信される。
【００５０】
図２に示す画像２１０は、情報処理装置１２１に送信された仮想空間用情報に含まれる仮想空間の画像の一例であり、当該画像２１０には、ユーザ１４０のアバタの画像２２０とユーザ１５０のアバタの画像２３０とが組み込まれている。図２に示すように、画像２１０は、ユーザ１４０が、自身のアバタの画像２２０を後から見ているように表示される。この状態で、ユーザ１４０が非言語行動を起こすと、画像２１０内のアバタの画像２２０も変化する。画像２１０によれば、ユーザ１４０は、自身の非言語行動に伴って仮想空間内で変化するアバタの画像２２０を、アバタの画像２２０の後ろ側から確認することができる。
【００５１】
＜アバタの画像の表現方法＞
次に仮想空間におけるアバタの画像の表現方法について説明する。仮想空間におけるアバタの画像は、実空間におけるユーザの非言語行動を反映させるために、部位ごとに異なる表現方法を用いて表現することができる。ただし、以下では、いずれの部位もアバタ骨格モデルを用いて表現するものとして説明する。
【００５２】
上述したように、アバタ骨格はアバタ骨格モデル内に複数配されている。例えば、アバタ骨格モデルの頭部には、頭部のアバタ骨格が配されている。頭部のアバタ骨格の位置及び回転角度は、頭部姿勢データに基づいて算出される。また、アバタ骨格モデルの頭部以外の肢体には、頭部以外の肢体のアバタ骨格が配されている。これらのアバタ骨格の位置及び回転角度は、深度データに基づいて算出される。
【００５３】
ここでは、一例として、アバタの上半身の画像についてアバタ骨格モデルを用いて表現する表現方法について説明する。図３は、アバタの画像の表現方法の一例を示す図であり、ユーザの上半身が前傾または後傾する動き、ユーザが左右を見回すように上半身の向きを変える動き、及び上半身全体で左側面や右側面に揺れる動きをアバタの画像として表現したものである。アバタ骨格モデルを用いた表現方法の場合、これらの動きはアバタの腰の位置を原点とする３軸方向に対するアバタ骨格（“Bone_Chest”）の回転角度の変化として表現することができる。
【００５４】
なお、図３では、仮想空間で一意に定まる座標系のＸ軸、Ｙ軸、Ｚ軸を、それぞれアバタの左右方向、上下方向、前後方向としている。
【００５５】
画像３０１は、Ｘ軸に対してアバタ骨格が＋α［度］回転した場合のアバタの画像を示しており、画像３０２は、Ｘ軸に対してアバタ骨格が−α［度］回転した場合のアバタの画像を示している。また、画像３１１は、Ｙ軸に対してアバタ骨格が＋α［度］回転した場合のアバタの画像を示しており、画像３１２は、Ｙ軸に対してアバタ骨格が−α［度］回転した場合のアバタの画像を示している。
【００５６】
更に、画像３２１は、Ｚ軸に対してアバタ骨格が＋α［度］回転した場合のアバタの画像を示しており、画像３２２は、Ｚ軸に対してアバタ骨格が−α［度］回転した場合のアバタの画像を示している。
【００５７】
＜画像生成装置のハードウェア構成＞
次に、画像生成システム１００に含まれる画像生成装置１１０のハードウェア構成について説明する。図４は、画像生成装置のハードウェア構成の一例を示す図である。図４に示すように、画像生成装置１１０は、ＣＰＵ（Central  Processing  Unit）４０１、ＲＯＭ（Read  Only  Memory）４０２、ＲＡＭ（Random  Access  Memory）４０３を備える。また、画像生成装置１１０は、補助記憶部４０４、通信部４０５、表示部４０６、操作部４０７、ドライブ部４０８を備える。なお、画像生成装置１１０の各部は、バス４０９を介して相互に接続されている。
【００５８】
ＣＰＵ４０１は、補助記憶部４０４にインストールされた各種プログラム（例えば、サーバソフトウェア）を実行する。ＲＯＭ４０２は、不揮発性メモリである。ＲＯＭ４０２は、補助記憶部４０４に格納された各種プログラムをＣＰＵ４０１が実行するために必要な各種プログラム、データ等を格納する主記憶部である。具体的には、ＲＯＭ４０２はＢＩＯＳ（Basic  Input／Output  System）やＥＦＩ（Extensible  Firmware  Interface）等のブートプログラム等を格納する。
【００５９】
ＲＡＭ４０３は、ＤＲＡＭ（Dynamic  Random  Access  Memory）やＳＲＡＭ（Static  Random  Access  Memory）等の揮発性メモリであり、主記憶部として機能する。ＲＡＭ４０３は、補助記憶部４０４に格納された各種プログラムがＣＰＵ４０１によって実行される際に展開される、作業領域を提供する。
【００６０】
補助記憶部４０４は、画像生成装置１１０にインストールされた各種プログラムや、各種プログラムを実行する際に用いる情報（各種コンテンツ、各種定義情報等）を格納する。また、補助記憶部４０４は、各種プログラムを実行することで取得される情報（センサデータ、ログテーブル等）を格納する。
【００６１】
通信部４０５は、画像生成装置１１０に接続されるクライアント側システム１２０、１３０の情報処理装置１２１、１３１と通信するためのデバイスである。表示部４０６は、画像生成装置１１０の処理結果や処理状態を表示するデバイスである。操作部４０７は、画像生成装置１１０に対して各種指示を入力する際に用いられるデバイスである。
【００６２】
ドライブ部４０８は記録媒体４１０をセットするためのデバイスである。ここでいう記録媒体４１０には、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体４１０には、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等も含まれる。
【００６３】
なお、補助記憶部４０４にインストールされる各種プログラムは、例えば、配布された記録媒体４１０がドライブ部４０８にセットされ、記録媒体４１０に記録された各種プログラムがドライブ部４０８により読み出されることでインストールされる。あるいは、補助記憶部４０４にインストールされる各種プログラムは、通信部４０５を介してネットワーク１６０より受信することでインストールされてもよい。
【００６４】
＜情報処理装置が搭載されたＨＭＤのハードウェア構成＞
次に、情報処理装置１２１が搭載されたＨＭＤのハードウェア構成について説明する。図５は、情報処理装置が搭載されたＨＭＤのハードウェア構成の一例を示す図である。図５に示すように、ＨＭＤに搭載された情報処理装置１２１は、ＣＰＵ５０１、ＲＯＭ５０２、ＲＡＭ５０３を備える。また、ＨＭＤに搭載された情報処理装置１２１は、補助記憶部５０４、通信部５０５を備える。ＨＭＤは、更に、操作部５０６、表示部１２３、頭部姿勢センサ１２４、Ｉ／Ｆ（Interface）部５０７を備え、これらの各部は、バス５０８を介して相互に接続されている。なお、ＨＭＤには、更に、音声出力装置（スピーカ等）及び音声取得装置（マイク等）が配されているが、第１の実施形態において、音声データの送受信の説明は省略するため、ここでも音声に関連する装置の説明は省略する。
【００６５】
ＣＰＵ５０１は、補助記憶部５０４にインストールされた各種プログラム（例えば、クライアントアプリケーションソフトウェア）を実行するコンピュータである。ＲＯＭ５０２は、不揮発性メモリである。ＲＯＭ５０２は、補助記憶部５０４に格納された各種プログラムをＣＰＵ５０１が実行するために必要な各種プログラム、データ等を格納する主記憶部である。具体的には、ＲＯＭ５０２はＢＩＯＳやＥＦＩ等のブートプログラム等を格納する。
【００６６】
ＲＡＭ５０３は、ＤＲＡＭやＳＲＡＭ等の揮発性メモリであり、主記憶部として機能する。ＲＡＭ５０３は、補助記憶部５０４に格納された各種プログラムがＣＰＵ５０１によって実行される際に展開される、作業領域を提供する。
【００６７】
補助記憶部５０４は、インストールされた各種プログラムや、各種プログラムを実行する際に用いる情報を格納する。通信部５０５は、画像生成装置１１０と通信するためのデバイスである。
【００６８】
操作部５０６は、ＨＭＤに対して各種指示を入力する際に用いられるデバイスである。表示部１２３は、画像生成装置１１０から送信された仮想空間用情報に含まれる仮想空間の画像を表示するデバイスである。
【００６９】
頭部姿勢センサ１２４は、実空間におけるユーザ１４０の非言語行動に含まれる“頭の向き”をセンシングし頭部姿勢データを出力する。
【００７０】
Ｉ／Ｆ部５０７は、深度センサ１２５、筋電位センサ１２６と接続し、深度センサ１２５より出力された深度センサデータ、筋電位センサ１２６より出力された筋電位データをそれぞれ取得する。
【００７１】
取得した頭部姿勢データ、深度センサデータ、筋電位データ等のセンサデータは、通信部５０５により画像生成装置１１０に送信される。なお、図５の例では、ＨＭＤが一体の装置として形成された場合を示したが、ＨＭＤは一体により形成されていても、別体の複数のデバイスにより形成されていてもよい。
【００７２】
＜画像生成装置の制約部の機能構成＞
次に、画像生成装置１１０の制約部１１５の機能構成について説明する。図６は、画像生成装置の制約部の機能構成を説明するための第１の図である。図６（ａ）に示すように、制約部１１５は、センサデータ処理部６０１、アバタ骨格モデル候補生成部６０２、時系列違和感判定部６０３、アバタ骨格遷移決定部６０４、アバタ骨格モデル管理部６０５を有する。
【００７３】
センサデータ処理部６０１は、第１の取得手段及び第２の取得手段の一例である。図６（ｂ）に示すように、センサデータ処理部６０１は、クライアント側システム１２０、１３０より送信され、センサデータ用ＤＢ１１７に格納されたセンサデータを読み出す。センサデータ用ＤＢ１１７において、センサデータは、種類（第１の実施形態では、頭部姿勢データ、深度センサデータ、筋電位データ）ごとに分けて格納されている。
【００７４】
アバタ骨格モデル候補生成部６０２は、生成手段の一例である。アバタ骨格モデル候補生成部６０２は、センサデータ用ＤＢ１１７より読み出されたセンサデータに基づいてユーザ１４０の実空間における各部位の位置を算出する。また、アバタ骨格モデル候補生成部６０２は、算出した各部位の位置から、既存のＡＰＩ（Application  Programming  Interface）を用いて、仮想空間における各アバタ骨格の位置及び回転角度を算出する。更に、アバタ骨格モデル候補生成部６０２は、算出した仮想空間における各アバタ骨格の位置及び回転角度を反映させることでアバタ骨格モデル候補を生成する。
【００７５】
なお、アバタ骨格モデル候補生成部６０２は、時刻ｔ１の次の時刻ｔ１＋１のセンサデータに基づいて、時刻ｔ１＋１のアバタ骨格モデル候補を生成する。
【００７６】
ただし、アバタ骨格モデル候補の生成方法はこれに限定されず、例えば、ＡＰＩを用いて算出したアバタ骨格の位置及び回転角度に対して移動平均処理を施したうえで、アバタ骨格モデル候補を生成するようにしてもよい。あるいは、アバタ骨格モデル候補生成部６０２は、下半身に位置するアバタ骨格モデル候補については、ＡＰＩを用いずに生成するようにしてもよい。
【００７７】
時系列違和感判定部６０３は、算出手段の一例である。時系列違和感判定部６０３は、アバタ骨格モデル候補の各アバタ骨格について、時刻ｔ１と時刻ｔ１＋１の間の遷移を算出し、違和感が出るか否かを判定する。時系列違和感判定部６０３は、定義情報用ＤＢ１１８に格納された「違和感の出る遷移区間定義情報」（以下、「遷移区間定義情報」と称す。詳細は後述）を参照することで、違和感が出るか否かを判定する。
【００７８】
また、時系列違和感判定部６０３は、違和感が出るか否かの判定結果（時系列違和感判定値等）を、ログ用ＤＢ１１９の「時系列違和感判定値算出ログテーブル」（以下、「判定値ログテーブル」と称す。詳細は後述）に記録する。
【００７９】
アバタ骨格遷移決定部６０４は、決定手段の一例である。アバタ骨格遷移決定部６０４は、時系列違和感判定部６０３において判定された時系列違和感判定値に基づき、時刻ｔ１＋１のセンサデータに基づいて算出されたアバタ骨格の位置及び回転角度を、アバタ骨格モデルに反映させるか否かを決定する。
【００８０】
全てのアバタ骨格について違和感が出ないことを示す違和感判定値であった場合、アバタ骨格遷移決定部６０４では、時刻ｔ１＋１のセンサデータに基づく全てのアバタ骨格を、アバタ骨格モデルに反映させることを決定する。
【００８１】
一方、一部のアバタ骨格について違和感が出ることを示す時系列違和感判定値であった場合、アバタ骨格遷移決定部６０４では、時刻ｔ１＋１のセンサデータに基づくアバタ骨格のうち当該一部のアバタ骨格を、アバタ骨格モデルに反映させないことを決定する。この場合、アバタ骨格遷移決定部６０４は、時刻ｔ１と時刻ｔ１＋１との間の一部のアバタ骨格の遷移を、違和感を与えない範囲で決定する。
【００８２】
アバタ骨格モデル管理部６０５は、出力手段の一例である。アバタ骨格モデル管理部６０５は、アバタ骨格遷移決定部６０４による決定結果に基づいて、情報表示処理部１１２に対して指示を行う。
【００８３】
アバタ骨格遷移決定部６０４が全てのアバタ骨格について“反映させる”と決定した場合、アバタ骨格モデル管理部６０５は、情報表示処理部１１２にて生成された時刻ｔ１＋１のアバタの画像を表示するよう指示する。
【００８４】
これにより、情報表示処理部１１２では、時刻ｔ１＋１において時刻ｔ１のアバタの画像に代えて、情報表示処理部１１２が生成した時刻ｔ１＋１のアバタの画像を出力することになる。
【００８５】
一方、アバタ骨格遷移決定部６０４が一部のアバタ骨格について“反映させない”と決定した場合、アバタ骨格モデル管理部６０５は、時刻ｔ１＋１のアバタ骨格モデルを生成する。また、アバタ骨格モデル管理部６０５は、情報表示処理部１１２に対して、生成した時刻ｔ１＋１のアバタ骨格モデルの画像（アバタの画像）を送信し、当該画像を表示するよう指示する。
【００８６】
なお、アバタ骨格モデル管理部６０５は、以下の手順で、時刻ｔ１＋１のアバタ骨格モデルを生成して、時刻ｔ１＋１のアバタの画像を表示するよう指示する。
・アバタ骨格に含まれる複数のアバタ骨格のうち、アバタ骨格遷移決定部６０４が“反映させる”と決定したアバタ骨格については、時刻ｔ１＋１のセンサデータに基づいて算出されたアバタ骨格の位置及び回転角度を、アバタ骨格モデルに反映させる。
・アバタ骨格に含まれる複数のアバタ骨格のうち、アバタ骨格遷移決定部６０４が“反映させない”と決定したアバタ骨格については、違和感を与えない範囲で遷移するアバタ骨格の位置及び回転角度を、アバタ骨格モデルに反映させる。
【００８７】
これにより、情報表示処理部１１２では、時刻ｔ１＋１において時刻ｔ１のアバタの画像に代えて、アバタ骨格モデル管理部６０５にて生成された時刻ｔ１＋１のアバタの画像を出力することになる。
【００８８】
更に、アバタ骨格モデル管理部６０５は、上記手順で生成したアバタ骨格モデルを、ログ用ＤＢ１１９のアバタ骨格ログテーブル（詳細は後述）に記録する。
【００８９】
なお、上記説明では、アバタ骨格遷移決定部６０４が“反映させない”と決定したアバタ骨格については、アバタ骨格モデル管理部６０５が、違和感を与えない範囲で遷移するアバタ骨格を、アバタ骨格モデルに反映させるものとした。しかしながら、“反映させない”と決定したアバタ骨格について、アバタ骨格モデル管理部６０５が、時刻ｔ１で反映されたアバタ骨格を時刻ｔ１＋１でも継続してアバタ骨格モデルに反映させるようにしてもよい。
【００９０】
＜センサデータ用ＤＢに格納されるセンサデータ＞
次に、センサデータ用ＤＢ１１７に格納されるセンサデータについて説明する。図７は、センサデータ用ＤＢに格納されるセンサデータの一例を示す図である。
【００９１】
このうち、図７（ａ）は、筋電位データが格納される筋電位データ群７００を示している。図７（ａ）に示すように、筋電位データが格納される筋電位データ群７００は、情報の項目として、“ＤＢ記録時刻”、“センサ記録時刻”、“ユーザＩＤ”、“情報収集装置ＩＤ”、“筋電位活動値”を含む。
【００９２】
“ＤＢ記録時刻”には、クライアント側システム１２０、１３０から送信された筋電位データが、センサデータ用ＤＢ１１７に格納された時点で付加されるタイムスタンプが記録される。
【００９３】
“センサ記録時刻”には、筋電位センサ１２６、１３６がユーザ１４０、１５０をセンシングした時点で付加されたタイムスタンプが記録される。
【００９４】
“ユーザＩＤ”には、筋電位センサ１２６、１３６によりセンシングされたユーザ１４０、１５０を識別する識別子が記録される。
【００９５】
“情報収集装置ＩＤ”には、筋電位センサを識別する識別子が記録される。筋電位センサは、センシングする場所によって異なる識別子を有している。図７（ａ）のデータ行のうちの１行目の“ＴｃＡ＿ｃ３＿ｚｙｇｏｍａｔｉｃｕｓ（ｃｈｅｅｋ）”は、頬をセンシングする筋電位センサの識別子である。また、図７（ａ）のデータ行のうちの２行目の“ＴｃＡ＿ｃ３＿ｏｒｂｉｃｕｌａｒｉｓ（ｕｎｄｅｒ  ｅｙｅ）”は、目の下をセンシングする筋電位センサの識別子である。更に、図７（ａ）のデータ行のうちの３行目の“ＴｃＡ＿ｃ３＿ｃｏｒｒｕｇａｔｏｒ（ｂｌｏｗ）”は、眉をセンシングする筋電位センサの識別子である。
【００９６】
“筋電位活動値”には、それぞれの筋電位センサでセンシングされた筋電位データの値が記録される。
【００９７】
図７（ｂ）は、頭部姿勢データが格納される頭部姿勢データ群７１０を示している。図７（ｂ）に示すように、頭部姿勢データ群７１０に含まれる情報の項目は、筋電位データ群７００に含まれる情報の項目と概ね同じである。
【００９８】
なお、頭部姿勢データ群７１０の“情報収集装置ＩＤ”において、“ＴｃＡ＿ｃ１”とは、情報処理装置ＩＤが“ＴｃＡ”の情報処理装置に、情報収集装置の種類が“ｃ１”である情報収集装置が対応付けられていることを示している。具体的には、“ＴｃＡ＿ｃ１”は、情報処理装置１２１と対応付けられた頭部姿勢センサ１２４である。
【００９９】
また、“頭部姿勢データ”には、頭部の位置を示すデータと、頭部の回転角度を示すデータとが記録される。
【０１００】
図７（ｃ）は、深度センサデータが格納される深度センサデータファイル群７２０を示している。図７（ｃ）に示すように、深度センサデータファイル群７２０に含まれる情報の項目には、“ＤＢ記録時刻”、“ユーザＩＤ”、“情報収集装置ＩＤ”の他、“センサ記録開始時刻”、“センサ記録終了時刻”、“深度センサデータ記録ファイルＵＲＩ”が含まれる。
【０１０１】
“センサ記録開始時刻”には、深度センサ１２５、１３５によりセンシングが開始された時刻が記録される。深度センサ１２５、１３５の場合、所定の記録長のファイルとしてセンサデータを出力する。“センサ記録開始時刻”には、それぞれのファイルに含まれる最初の深度センサデータをセンシングした時点で付加されたタイムスタンプが記録される。
【０１０２】
“センサ記録終了時刻”には、深度センサ１２５、１３５によりセンシングが終了した時刻が記録される。具体的には、所定の記録長のファイルに含まれる最後の深度センサデータをセンシングした時点で付加されたタイムスタンプが記録される。
【０１０３】
“深度センサデータ記録ファイルＵＲＩ”には、所定の記録長を有するファイルの格納場所を示すＵＲＩが記録される。
【０１０４】
なお、深度センサデータファイル群７２０の“情報収集装置ＩＤ”において、“ＴｃＡ＿ｃ２”とは、情報処理装置ＩＤが“ＴｃＡ”の情報処理装置に、情報収集装置の種類が“ｃ２”である情報収集装置が対応付けられていることを示している。具体的には、“ＴｃＡ＿ｃ２”は、情報処理装置１２１と対応付けられた深度センサ１２５である。
【０１０５】
＜定義情報用ＤＢに格納される遷移区間定義情報＞
次に、定義情報用ＤＢ１１８に格納される「遷移区間定義情報」について説明する。図８は、定義情報用ＤＢに格納される遷移区間定義情報の一例を示す図である。
【０１０６】
図８（ａ）に示すように、遷移区間定義情報８００は情報の項目として、“アバタ骨格ラベル”、“違和感の出る遷移区間定義”を含む。
【０１０７】
“アバタ骨格ラベル”には、アバタ骨格モデル候補に含まれる複数のアバタ骨格のうちの、いずれのアバタ骨格であるかを示す情報が格納される。
【０１０８】
“違和感の出る遷移区間定義”には、各アバタ骨格の各軸に対する回転について、違和感が出るか否かを判定する対象となる遷移区間を示す情報が格納される。
【０１０９】
“違和感の出る遷移区間定義”は、仮想空間におけるＸ軸、Ｙ軸、Ｚ軸の各軸に対してそれぞれ規定されている。図８（ａ）のデータ行のうちの１行目の例は、アバタ骨格ラベル＝“Bone_RightHand”（アバタの右手の骨格）の場合、Ｘ軸に対して回転角度が４０［度］より大きく２２０［度］より小さい範囲で遷移すると、違和感が出ることを示している。
【０１１０】
図８（ｂ）に、アバタ骨格ラベル＝“Bone_RightHand”の場合の、違和感の出る遷移区間定義と、アバタ骨格の回転角度の遷移との関係を示す。図８（ｂ）は、時刻ｔ１で０[度]であったアバタ骨格の回転角度が、時刻ｔ１＋１ではＸ軸に対して９０［度］まで回転した場合を示している。
【０１１１】
この場合、時刻ｔ１（０［度］）と時刻ｔ１＋１（９０［度］）の間のアバタ骨格の回転角度の遷移のうち、前方方向への遷移が「最短の遷移」となる。一方、後方方向への遷移が「最短でない遷移」となる。
【０１１２】
また、遷移区間定義情報８００によれば、違和感の出る遷移区間定義が“４０＜Ｘ＜２２０”と規定されていることから、０［度］から４０［度］までの前方方向の範囲が、遷移区間定義に「抵触せずに遷移させることができる範囲（＋方向）」となる。また、０［度］から２２０［度］までの後方方向の範囲が、遷移区間定義に「抵触せずに遷移させることができる範囲（−方向）」となる。
【０１１３】
なお、遷移区間定義情報８００における上記定義は、例えば、画像生成装置１１０の管理者によって、一括で静的に作成されるものとする。あるいは、上記定義は、シチュエーションによって異なることも加味して、時間帯や場所、状況、ユーザやユーザグループの特性、コミュニケーションの内容等の過去の履歴データに基づいて作成されてもよい。あるいは、上記定義は、時間的に近い履歴データ等から動的に作成されてもよい。
【０１１４】
＜アバタ骨格モデル更新処理＞
次に、制約部１１５によるアバタ骨格モデル更新処理の流れについて説明する。図９は、アバタ骨格モデル更新処理の第１のフローチャートである。図９に示すフローチャートは、所定の時間ごとに制約部１１５により定期的に実行される。あるいは、センサデータ用ＤＢ１１７に一定量以上のセンサデータが格納されたタイミングで制約部１１５により実行される。
【０１１５】
ステップＳ９０１において、センサデータ処理部６０１は、センサデータ用ＤＢ１１７より時刻ｔ１＋１のセンサデータを読み出す。
【０１１６】
ステップＳ９０２において、アバタ骨格モデル候補生成部６０２は、読み出されたセンサデータに基づいて時刻ｔ１＋１のアバタ骨格モデル候補を生成する。
【０１１７】
ステップＳ９０３において、アバタ骨格モデル候補生成部６０２は、時刻ｔ１＋１のアバタ骨格モデル候補の全アバタ骨格でセンシング結果に誤りがないかを判定する。
【０１１８】
ステップＳ９０３において、時刻ｔ１＋１のアバタ骨格モデル候補のいずれかのアバタ骨格において、センシング結果に誤りがあると判定した場合には、判定結果が情報表示処理部１１２に送信された後、アバタ骨格モデル更新処理を終了する。
【０１１９】
この場合、情報表示処理部１１２では、例えば、センシング結果に誤りがあったことがわかるような態様で、アバタの画像を生成して表示する。
【０１２０】
一方、ステップＳ９０３において、時刻ｔ１＋１のアバタ骨格モデル候補の全アバタ骨格について、センシング結果に誤りがないと判定した場合には、ステップＳ９０４に進む。
【０１２１】
ステップＳ９０４において、時系列違和感判定部６０３は、各アバタ骨格について、時刻ｔ１と時刻ｔ１＋１の間の遷移のうち、最短の遷移が違和感の出る遷移区間定義に抵触するか否かを判定する。
【０１２２】
具体的には、時系列違和感判定部６０３は、遷移区間定義情報８００を参照する。そして、時系列違和感判定部６０３は、各アバタ骨格について、時刻ｔ１と時刻ｔ１＋１の間の最短の遷移が、違和感の出る遷移区間定義に抵触するか否かを判定する。なお、時系列違和感判定部６０３は、Ｘ軸、Ｙ軸、Ｚ軸のそれぞれについて判定を行う。
【０１２３】
ステップＳ９０５において、時系列違和感判定部６０３は、違和感の出る遷移区間定義に抵触する軸について、ログ用ＤＢ１１９の判定値ログテーブル（詳細は後述）に、時系列違和感判定値＝“高”と記録する。また、時系列違和感判定部６０３は、違和感の出る遷移区間定義に抵触しない軸について、ログ用ＤＢ１１９の判定値ログテーブルに、時系列違和感判定値＝“低”と記録する。
【０１２４】
ステップＳ９０６において、時系列違和感判定部６０３は、“高”と記録したアバタ骨格について、時刻ｔ１と時刻ｔ１＋１の間で、最短でない遷移により、違和感の出る遷移区間定義に抵触せずに遷移させることができるか否かを判定する。
【０１２５】
最短でない遷移により、違和感の出る遷移区間定義に抵触せずに遷移させることができると判定した場合、時系列違和感判定部６０３は、ステップＳ９０５において記録した時系列違和感判定値を書き換える。具体的には、時系列違和感判定部６０３は、時系列違和感判定値を“高”から“中”へと書き換える。また、時系列違和感判定部６０３は、違和感の出る遷移区間定義に抵触せずに遷移させることができる遷移方向（＋方向または−方向）を、「遷移可能な相対変分」として、ログ用ＤＢ１１９の判定値ログテーブルに記録する。なお、相対変分に記録される“＋”は、Ｘ軸に対する回転の場合、前方であることを表し、“−”は後方であることを表す。また、Ｙ軸に対する回転の場合、“＋”は右方向であることを表し、“−”は左方向であることを表す。更に、Ｚ軸に対する回転の場合、“＋”は左方向であることを表し、“−”は右方向であることを表す。
【０１２６】
一方、最短でない遷移であっても違和感の出る遷移区間定義に抵触せずに遷移させることができないと判定した場合、時系列違和感判定部６０３は、当該アバタ骨格について、ステップＳ９０７の処理を行う。
【０１２７】
ステップＳ９０７において、時系列違和感判定部６０３は、ステップＳ９０６において書き換えが行われなかったアバタ骨格について、違和感の出る遷移区間定義に抵触せずに遷移させることができる範囲を、ログ用ＤＢ１１９の判定値ログテーブルに記録する。
【０１２８】
ここで、アバタの左手の骨格を例に挙げて、ステップＳ９０７の処理について説明する。アバタの左手の骨格の場合、Ｘ軸に対する回転において、回転角度が０［度］から９０［度］への＋方向（前方）の遷移のうち、０［度］から４０［度］までの遷移は、違和感の出る遷移区間定義（Ｘ軸に対する回転）に抵触しない。このため、０［度］から４０［度］までの範囲が、違和感の出る遷移区間定義に接触せずに遷移させることができる範囲として、判定値ログテーブルに記録される。また、０［度］（３６０［度］）から９０［度］への−方向（後方）の遷移のうち、０［度］（３６０［度］）から２２０［度］までの遷移についても、違和感の出る遷移区間定義（Ｘ軸に対する回転）に抵触しない。
【０１２９】
このため、０［度］から２２０［度］までの範囲についても、違和感の出る遷移区間定義に抵触せずに遷移させることができる範囲として、判定値ログテーブルに記録されることになる。
【０１３０】
なお、抵触せずに遷移させることができる範囲のうち、いずれの範囲を“遷移可能な相対変分”に記録するのかは任意である。例えば、最短の遷移と同じ遷移方向を有する方を、遷移可能な相対変分として選択してもよい。あるいは、時刻ｔ１＋１のアバタ骨格の回転角度に最も近づくことができる方を、遷移可能な相対変分として選択してもよい。あるいは、抵触せずに遷移させることができる範囲のうち、範囲が広い方を、遷移可能な相対変分として選択してもよい。
【０１３１】
図９の説明に戻る。ステップＳ９０８において、アバタ骨格遷移決定部６０４は、時系列違和感判定部６０３により判定された時系列違和感判定値に基づき、時刻ｔ１と時刻ｔ１＋１の間の各アバタ骨格の遷移を決定する。
【０１３２】
アバタ骨格遷移決定部６０４は、時系列違和感判定値が“低”と判定されたアバタ骨格については、ステップＳ９０２においてアバタ骨格モデル候補が生成された際に算出されたアバタ骨格の遷移を、時刻ｔ１と時刻ｔ１＋１の間のアバタ骨格の遷移に決定する。
【０１３３】
一方、アバタ骨格遷移決定部６０４は、時系列違和感判定部６０３により時系列違和感判定値が“中”または“高”と判定されたアバタ骨格については、“低”と判定されたアバタ骨格とは異なる遷移に決定する。
【０１３４】
具体的には、アバタ骨格遷移決定部６０４では、時系列違和感判定値が“中”または“高”と判定されたアバタ骨格が、時刻ｔ１とｔ１＋１の間で違和感を与えない範囲で遷移するように当該アバタ骨格の遷移を決定する。
【０１３５】
例えば、アバタ骨格遷移決定部６０４は、時系列違和感判定部６０３により時系列違和感判定値が“中”と判定されたアバタ骨格の遷移を、最短ではない遷移の半分に決定する。
【０１３６】
また、アバタ骨格遷移決定部６０４は、時系列違和感判定部６０３により時系列違和感判定値が“高”と判定されたアバタ骨格の遷移を、判定値ログテーブルに記録した“遷移可能な相対変分”の半分に決定する。
【０１３７】
このように、アバタ骨格遷移決定部６０４が、時系列違和感判定値に応じた各アバタ骨格の遷移を決定することで、各アバタ骨格を違和感を与えない範囲で遷移させることができるため、アバタ骨格の突飛な遷移を避けることが可能となる。また、ユーザ１４０が同じような傾向の動きを連続していた場合、ユーザ１４０の動きと類する動きをアバタ骨格モデルに反映させることができる。
【０１３８】
ステップＳ９０９において、アバタ骨格モデル管理部６０５は、ステップＳ９０８における決定結果に基づいて、情報表示処理部１１２に対して指示を行う。
【０１３９】
具体的には、アバタ骨格モデル管理部６０５は、アバタ骨格モデル候補に含まれる全てのアバタ骨格の時系列違和感判定値が“低”の場合、情報表示処理部１１２にて生成した時刻ｔ１＋１のアバタの画像を表示するよう、情報表示処理部１１２に対して指示する。
【０１４０】
一方、一部のアバタ骨格の時系列違和感判定値が“高”または“中”の場合、アバタ骨格モデル管理部６０５は、ステップＳ９０８において決定されたアバタ骨格の遷移を反映したアバタ骨格モデルを生成し、当該アバタ骨格モデルを表示するよう指示する。
【０１４１】
また、アバタ骨格モデル管理部６０５は、生成したアバタ骨格モデルを、ログ用ＤＢ１１９のアバタ骨格ログテーブル（詳細は後述）に記録する。
【０１４２】
＜ログ用ＤＢに記録される情報＞
次に、アバタ骨格モデル更新処理が実行されることで、ログ用ＤＢ１１９に記録される情報（判定値ログテーブル、アバタ骨格ログテーブル）について説明する。
【０１４３】
図１０は、判定値ログテーブルの一例を示す図である。図１０に示すように、判定値ログテーブル１０００は、情報の項目として、“ＤＢ記録時刻”、“ユーザの現在時刻”、“ユーザＩＤ”、“情報処理装置ＩＤ”、“アバタ骨格ラベル”、“時系列違和感判定値”、“遷移可能な相対変分”を含む。
【０１４４】
“ＤＢ記録時刻”には、時系列違和感判定部６０３により判定された時系列違和感判定値が、ログ用ＤＢ１１９の判定値ログテーブル１０００に記録された時点で付加されたタイムスタンプが記録される。
【０１４５】
“ユーザの現在時刻”には、アバタ骨格モデル候補生成部６０２がアバタ骨格モデル候補を生成した際に用いたセンサデータに付加されたタイムスタンプ（ユーザが非言語行動を行った時刻）が記録される。
【０１４６】
“ユーザＩＤ”には、ユーザを識別する識別子が記録される。“情報処理装置ＩＤ”には、情報処理装置のＩＤが記録される。
【０１４７】
“アバタ骨格ラベル”には、時系列違和感判定部６０３により時系列違和感判定値が判定されたアバタ骨格を示すラベルが記録される。“Bone_LeftHand”とは、アバタの左手の骨格を示すラベルである。また、“Bone_LeftForearm”とは、アバタの左前腕の骨格を示すラベルである。
【０１４８】
“時系列違和感判定値”には、時系列違和感判定部６０３により判定された時系列違和感判定値が記録される。図１０のデータ行のうちの１行目の例は、アバタの左手の骨格のうち、Ｘ軸に対する時系列違和感判定値が“高”であり、Ｙ軸及びＺ軸に対する時系列違和感判定値が“低”であることを示している。同様に、図１０のデータ行のうちの２行目の例は、アバタの左前腕の骨格のうち、Ｘ軸に対する時系列違和感判定値が“中”であり、Ｙ軸及びＺ軸に対する時系列違和感判定値が、“低”であることを示している。
【０１４９】
“遷移可能な相対変分”には、“時系列違和感判定値”において、“高”と記録された軸に対して、違和感の出る遷移区間定義に抵触せずに遷移させることができる範囲が記録される。
【０１５０】
図１０のデータ行のうちの１行目の例は、アバタの左手の骨格が時刻ｔ１ではＸ軸に対する回転角度が０［度］であったが、時刻ｔ１＋１ではＸ軸に対する回転角度が９０［度］になったと算出された場合の遷移可能な相対変分を示している。上述したように、アバタの左手の骨格の場合、“違和感の出る遷移区間定義（Ｘ軸に対する回転）”として、“４０＜Ｘ＜２２０”が定義されている。このため、０［度］から９０［度］への＋方向（前方）の遷移のうち、０［度］から４０［度］までの遷移は、“違和感の出る遷移区間定義（Ｘ軸に対する回転）”に抵触しない。また、０［度］（３６０［度］）から９０［度］への−方向（後方）の遷移のうち、０［度］（３６０［度］）から２２０［度］までの遷移は、“違和感の出る遷移区間定義（Ｘ軸に対する回転）”に抵触しない。
【０１５１】
このうち、図１０のデータ行のうちの１行目の例は、０［度］から４０［度］までの遷移を、違和感の出る遷移区間定義に抵触せずに遷移させることができる範囲として記録したことを示している。このため、“遷移可能な相対変分”には、時刻ｔ１と時刻ｔ１＋１の間のアバタの左手の骨格のＸ軸に対する回転角度である“＋４０”が、遷移可能な相対変分として記録されている。
【０１５２】
なお、アバタの左手の骨格の場合、Ｙ軸及びＺ軸については、時系列違和感判定値が“低”であるため、“遷移可能な相対変分”のＹ軸及びＺ軸には、何も記録されていない。
【０１５３】
また、アバタの左前腕の骨格の場合、Ｘ軸に対する時系列違和感判定値が“中”に書き換えられているため、“遷移可能な相対変分”のＸ軸には、違和感の出る遷移区間定義に抵触せずに遷移させることができる遷移方向が記録されている。具体的には、“＋”（前方）が記録されている。更に、アバタの左前腕の骨格の場合、Ｙ軸に対する時系列違和感判定値及びＺ軸に対する時系列違和感判定値が“低”であるため、“遷移可能な相対変分”のＹ軸及びＺ軸には、何も記録されていない。
【０１５４】
図１１は、アバタ骨格ログテーブルの一例を示す図である。図１１に示すように、アバタ骨格ログテーブル１１００は、情報の項目として、“ＤＢ記録時刻”、“ユーザの現在時刻”、“ユーザＩＤ”、“情報処理装置ＩＤ”、“遷移量”、“表示アバタ骨格モデル”を含む。
【０１５５】
“ＤＢ記録時刻”には、アバタ骨格モデル管理部６０５が、時刻ｔ１＋１のアバタ画像の表示に用いたアバタ骨格モデルについて、アバタ骨格ログテーブル１１００に記録した時点で付加されたタイムスタンプが記録される。
【０１５６】
“ユーザの現在時刻”には、アバタ骨格モデル候補生成部６０２がアバタ骨格モデル候補を生成した際に用いたセンサデータに付加されたタイムスタンプ（ユーザが非言語行動を行った時刻）が記録される。
【０１５７】
“ユーザＩＤ”には、ユーザを識別する識別子が記録される。“情報処理装置ＩＤ”には、情報処理装置のＩＤが記録される。
【０１５８】
“遷移量”には、アバタ骨格モデル候補の各アバタ骨格について、時刻ｔ１と、時刻ｔ１＋１の間の遷移量が記録される。
【０１５９】
“表示アバタ骨格モデル”には、アバタ画像の表示に用いられたアバタ骨格モデルが記録される。
【０１６０】
なお、第１の実施形態において、センサデータとは異なる遷移のアバタ骨格を含むアバタ骨格モデルを用いてアバタ画像を表示する場合、実空間におけるユーザ１４０の動きと仮想空間におけるアバタ骨格の遷移とが一致しないことになる。このため、ユーザ１４０に対しては、センサデータを反映させたアバタの画像（アバタ＿Ｌｏｃａｌ）を表示するようにしてもよい。この場合、ユーザ１４０に対して表示するアバタの画像（アバタ＿Ｌｏｃａｌ）については、ユーザ１５０に対して表示するアバタの画像２２０（アバタ＿Ｎｅｔｗｏｒｋ）とは異なる表示態様で表示するようにしてもよい。
【０１６１】
例えば、アバタ＿Ｌｏｃａｌは、センサデータが反映されていることをユーザ１４０に知らせる表示態様とする。具体的には、アバタ＿Ｌｏｃａｌについては、アバタ骨格モデルに基づくアバタ画像ではなく、点群の塊を含む影のようなアバタ画像を表示するようにしてもよい。また、アバタ全体ではなく、アバタの身体を部分的に表示するようにしてもよい。一方、アバタ＿Ｎｅｔｗｏｒｋには、アバタ骨格モデルに基づくアバタ画像を表示する。ただし、ユーザ１４０に対しては、アバタ＿Ｌｏｃａｌとアバタ＿Ｎｅｔｗｏｒｋの両方を表示するようにしてもよい。なお、以下の説明において、ユーザ１４０、１５０に表示するアバタの画像は、いずれもアバタ＿Ｎｅｔｗｏｒｋであるとする。
【０１６２】
以上の説明から明らかなように、第１の実施形態における画像生成システム１００は、アバタ骨格ごとに違和感の出る遷移区間を予め定義する。また、第１の実施形態における画像生成システム１００は、時刻ｔ１と時刻ｔ１＋１の間のアバタ骨格の遷移が、違和感の出る遷移区間に抵触するか否かを判定する。また、第１の実施形態における画像生成システム１００は、違和感の出る遷移区間に抵触しないと判定した場合には、時刻ｔ１＋１においてユーザの非言語行動を反映させてアバタ画像を生成する。一方、第１の実施形態における画像生成システム１００は、違和感の出る遷移区間に抵触すると判定した場合には、時刻ｔ１＋１においてユーザの非言語行動をそのまま反映させることはせず、違和感を与えない範囲で反映させてアバタ画像を生成する。
【０１６３】
これにより、アバタを見ている相手に違和感を与えるような画像が生成されることを回避することができる。つまり、アバタを見ている相手に違和感を与えない画像を生成することができる。
【０１６４】
［第２の実施形態］
上記第１の実施形態における画像生成システム１００は、時刻ｔ１と時刻ｔ１＋１の間のアバタ骨格の遷移が、違和感の出る遷移区間定義に抵触するか否かを判定することで、アバタを見ている相手に違和感を与える画像が生成されることを回避した。
【０１６５】
これに対して、第２の実施形態では、時刻ｔ１と時刻ｔ１＋１との間で社会的振る舞いの傾向が変化するか否かを判定することで、アバタを見ている相手に違和感を与える画像が生成されることを回避する。
【０１６６】
なお、社会的振る舞い（Social  Behavior）とは、実空間における所定の人の非言語行動のうち、社会的な存在に対して行われる非言語行動を指す。
【０１６７】
例えば、所定の人の非言語行動が、前進する非言語行動であったとした時に、前進した先に他の人がいる場合には、当該所定の人の非言語行動は、他の人に近づくという社会的振る舞い（接近傾向を示す社会的振る舞い）ということができる。反対に、他の人が近くにいる状態で、前進する非言語行動を行った結果、当該他の人から遠ざかる場合には、当該所定の人の非言語行動は、他の人から遠ざかる社会的振る舞い（回避傾向を示す社会的振る舞い）ということができる。同様に、例えば、所定の人の非言語行動が、頭の向きを右方向に向ける非言語行動であったとした時に、右側に他の人がいる場合には、当該所定の人の非言語行動は、他の人に顔を向ける社会的振る舞い（接近傾向を示す社会的振る舞い）ということができる。反対に、当該所定の人の左側に他の人がいる状態で、頭の向きを右方向に向ける非言語行動を行った場合、当該所定の人の非言語行動は、他の人から顔をそむける社会的振る舞い（回避傾向を示す社会的振る舞い）ということができる。
【０１６８】
したがって、仮想空間における「アバタ骨格の遷移」は、他のアバタとの関係によっては反対の意味を持つことになる。以下、ユーザの社会的振る舞いの傾向が変化するか否かを判定することで、違和感を与える画像が表示されることを回避する第２の実施形態について、上記第１の実施形態との相違点を中心に説明する。
【０１６９】
＜画像生成装置の制約部の機能構成＞
はじめに、第２の実施形態における画像生成装置の制約部の機能構成について説明する。図１２は、画像生成装置の制約部の機能構成を説明するための第２の図である。図１２（ａ）に示す要素のうち、図６（ａ）に示す要素と同様の機能を有する要素については、同じ符号を付すこととし、ここでは説明を省略する。
【０１７０】
図６（ａ）との相違点は、図１２（ａ）の場合、制約部１１５が、社会的振る舞い管理部１２０１、アバタ骨格モデル候補生成部（社会的振る舞い）１２０２、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３を有する点である。
【０１７１】
図１２（ｂ）に示すように、社会的振る舞い管理部１２０１は、センサデータ用ＤＢ１１７より読み出された所定の時間範囲のセンサデータに基づいて、社会的振る舞いを判定し、社会的振る舞い判定結果をログ用ＤＢ１１９に格納する。
【０１７２】
社会的振る舞い管理部１２０１は、定義情報用ＤＢ１１８の社会的振る舞い判定ＡＰＩ定義情報（以下、「ＡＰＩ定義情報」と称す。詳細は後述）より既存のＡＰＩを呼び出すことで、社会的振る舞いの判定を行う。
【０１７３】
社会的振る舞い管理部１２０１は、所定の時間範囲の１つのセンサデータから１つの社会的振る舞いを判定してもよいし、所定の時間範囲の複数のセンサデータから１つの社会的振る舞いを判定してもよい。また、社会的振る舞い管理部１２０１は、新しく取得した所定の時間範囲のセンサデータから社会的振る舞いを判定してもよい。あるいは、過去に記録した所定の時間範囲のセンサデータと新しく取得した所定の時間範囲のセンサデータとを用いて社会的振る舞いを判定してもよい。
【０１７４】
アバタ骨格モデル候補生成部（社会的振る舞い）１２０２は、ログ用ＤＢ１１９に格納された社会的振る舞い判定結果を読み出す。
【０１７５】
アバタ骨格モデル候補生成部（社会的振る舞い）１２０２は、読み出した社会的振る舞いの判定結果に基づいて、アバタ骨格モデル候補を生成する。具体的には、アバタ骨格モデル候補生成部（社会的振る舞い）１２０２は、社会的振る舞いの判定に用いられた時間範囲を確認する。また、アバタ骨格モデル候補生成部（社会的振る舞い）１２０２は、確認した時間範囲においてセンシングされたセンサデータに基づいて、アバタ骨格モデル候補を生成する。
【０１７６】
第２の実施形態では、このとき生成されるアバタ骨格モデル候補のうち、社会的振る舞いが開始する時点のアバタ骨格モデル候補を、時刻ｔ１のセンサデータに基づいて生成されたアバタ骨格モデル候補とする。また、社会的振る舞いが完了した時点のアバタ骨格モデル候補を、時刻ｔ１＋１のセンサデータに基づいて生成されたアバタ骨格モデル候補とする。
【０１７７】
アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３は、時系列違和感判定部６０３において判定された時系列違和感判定値に基づき、時刻ｔ１と時刻ｔ１＋１の間の各アバタ骨格の遷移を決定する。
【０１７８】
全てのアバタ骨格について違和感が出ないことを示す違和感判定値であった場合、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３では、時刻ｔ１＋１の全てのアバタ骨格を、アバタ骨格モデルに反映させることを決定する。
【０１７９】
一方、一部のアバタ骨格について違和感が出ることを示す時系列違和感判定値であった場合、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３では、時刻ｔ１＋１の一部のアバタ骨格を、アバタ骨格モデルに反映させないことを決定する。この場合、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３は、時刻ｔ１と時刻ｔ１＋１との間のアバタ骨格の遷移を、違和感を与えない範囲で決定する。ただし、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３は、定義情報用ＤＢ１１８に格納された傾向定義情報（詳細は後述）を参照し、社会的振る舞いの傾向が変化しない範囲で、時刻ｔ１＋１の各アバタ骨格の遷移を決定する。
【０１８０】
＜定義情報用ＤＢに格納される定義情報＞
次に、第２の実施形態において定義情報用ＤＢ１１８に格納される定義情報のうち、「ＡＰＩ定義情報」と、「傾向定義情報」とについて説明する。遷移区間定義情報８００については、上記第１の実施形態において説明済みであるため、ここでは説明を省略する。
【０１８１】
図１３は、定義情報用ＤＢに格納されるＡＰＩ定義情報の一例を示す図である。図１３に示すように、ＡＰＩ定義情報１３００は情報の項目として、“情報収集装置ＩＤ”、“社会的振る舞い判定ＡＰＩ”、“センサデータ”、“社会的振る舞いタイプラベル”、“ＡＰＩ入力として必要なアバタ骨格”を含む。
【０１８２】
“情報収集装置ＩＤ”には、情報収集装置の種類を示す識別子が格納される。“社会的振る舞い判定ＡＰＩ”には、社会的振る舞いを判定する際に用いるＡＰＩが格納される。
【０１８３】
“センサデータ”には、社会的振る舞い判定ＡＰＩに入力されるセンサデータの種類が格納される。
【０１８４】
“社会的振る舞いタイプラベル”には、社会的振る舞い判定ＡＰＩにより判定される社会的振る舞いの種類が格納される。“ＡＰＩ入力として必要なアバタ骨格”には、社会的振る舞い判定ＡＰＩを用いて社会的振る舞いを判定するにあたり、当該ＡＰＩに入力すべきアバタ骨格が格納される。
【０１８５】
図１３のデータ行のうちの１行目の例は、情報収集装置ＩＤ＝“ｃ２”により特定される深度センサ１２５によりセンシングされる深度データが、“姿勢解析ＡＰＩ”に入力されることを示している。また、図１３のデータ行のうちの１行目の例は、ユーザ１４０の社会的振る舞いが、“body‐close‐to”に該当するか否かが判定されることを示している。更に、図１３のデータ行のうちの１行目の例は、時系列違和感判定値の判定に際して、アバタ骨格遷移候補の社会的振る舞いを判定する場合に、アバタ骨格＝“Body‐Chest”が用いられることを示している。
【０１８６】
また、図１３のデータ行のうちの２行目の例は、情報収集装置ＩＤ＝“ｃ２”により特定される深度センサ１２５によりセンシングされる深度データが、“姿勢解析ＡＰＩ”に入力されることを示している。また、図１３のデータ行のうちの２行目の例は、ユーザ１４０の社会的振る舞いが、“body‐far‐to”に該当するか否かが判定されることを示している。更に、図１３のデータ行のうちの２行目の例は、時系列違和感判定値の判定に際して、アバタ骨格候補の社会的振る舞いを判定する場合に、アバタ骨格＝“Bone_Chest”が用いられることを示している。
【０１８７】
また、図１３のデータ行のうちの３行目の例は、情報収集装置ＩＤ＝“ｃ１”により特定される頭部姿勢センサ１２４によりセンシングされる頭部姿勢データが、“顔向き解析ＡＰＩ”に入力されることを示している。また、図１３のデータ行のうちの３行目の例は、ユーザ１４０の社会的振る舞いが、“face‐close‐to”に該当するか否かが判定されることを示している。更に、図１３のデータ行のうちの３行目の例は、時系列違和感判定値の判定に際して、アバタ骨格候補の社会的振る舞いを判定する場合に、アバタ骨格＝“Bone_Head”が用いられることを示している。
【０１８８】
更に、図１３のデータ行のうちの４行目の例は、情報収集装置ＩＤ＝“ｃ２”により特定される深度センサ１２５によりセンシングされる深度データが、“姿勢解析ＡＰＩ”に入力されることを示している。また、図１３のデータ行のうちの４行目の例は、ユーザ１４０の社会的振る舞いが、“bodyparts‐close‐to”に該当するか否かが判定されることを示している。更に、図１３のデータ行のうちの４行目の例は、時系列違和感判定値の判定に際して、アバタ骨格候補の社会的振る舞いを判定する場合に、アバタ骨格＝“Bone_LeftHand”及び“Bone_RightHand”が用いられることを示している。
【０１８９】
図１４は、定義情報用ＤＢに格納された傾向定義情報の一例を示す図である。図１４に示すように、傾向定義情報１４００は、情報の項目として、“社会的振る舞いのタイプラベル”、“接近傾向／回避傾向”、“優先順位”を含む。
【０１９０】
“社会的振る舞いのタイプラベル”には、社会的振る舞いの種類が格納される。“接近傾向／回避傾向”には、社会的振る舞いの種類ごとに、接近傾向または回避傾向のいずれかが格納される。“優先順位”には、社会的振る舞いに対する動きの種類について割り当てた優先順位が格納される。なお、傾向定義情報１４００の“社会的振る舞いのタイプラベル”に格納されるレコードは、以下のような動作を意味する。
【０１９１】
例えば、“body‐close‐to”は、身体を相手に近づける動作を意味し、“body‐far‐to”は、身体を相手から遠ざける動作を意味する。“bodyparts‐close‐to”は、身体のパーツを相手に近づける動作を意味し、“bodyparts‐far‐to”は、身体のパーツを相手から遠ざける動作を意味する。
【０１９２】
また、“mutualattention‐to”は、お互いを見る動作を意味し、“avertedattention‐to”は、相手から視線を外す動作を意味する。“jointattention‐to”は、相手と同じものを見る動作を意味し、“followingattention‐to”は、相手の見ているものを追いかけて見る動作を意味する。“sharedattention‐to”は、相手と同じものを見ているとお互い知りながら見る動作を意味する。
【０１９３】
また、“face‐close‐to”は、顔を相手に近づける動作を意味し、“face‐far‐to”は、顔を相手から遠ざける動作を意味する。“upperbody‐leanforward‐to”は、身体を前傾する動作を意味し、“upperbody‐leanbackward‐to”は、身体を後倒する動作を意味する。
【０１９４】
更に、“smile‐to”は、微笑む動作を意味し、“nosmile‐to”は、微笑まない動作を意味する。
【０１９５】
その他、図１４の傾向定義情報１４００に例示した動作以外の動作も、接近傾向の振る舞いまたは回避傾向の振る舞いとして、傾向定義情報１４００に格納されてもよい。例えば、接近傾向の振る舞いとして、顔を相手側に向ける動作や、身体を相手側に向ける動作が挙げられる。また、回避傾向の振る舞いとして、顔を相手から背ける動作や、身体を相手から背ける動作が挙げられる。
【０１９６】
＜アバタ骨格モデル更新処理＞
次に、制約部１１５によるアバタ骨格モデル更新処理の流れについて説明する。図１５及び図１６は、アバタ骨格モデル更新処理の第２及び第３のフローチャートである。図９に示した第１のフローチャートとの相違点は、図１５のステップＳ１５０１〜Ｓ１５０３が実行される点である。また、図９のステップＳ９０８の処理の代わりに、図１６のステップＳ１６０１〜Ｓ１６０８が実行される点である。
【０１９７】
図１５のステップＳ１５０１において、センサデータ処理部６０１は、センサデータ用ＤＢ１１７より所定の時間範囲のセンサデータを読み出す。
【０１９８】
ステップＳ１５０２において、社会的振る舞い管理部１２０１は、ステップＳ１５０１において読み出された所定の時間範囲のセンサデータに基づいて、社会的振る舞いを判定し、社会的振る舞い判定結果をログ用ＤＢ１１９に格納する。
【０１９９】
ステップＳ１５０３において、アバタ骨格モデル候補生成部（社会的振る舞い）１２０２は、社会的振る舞いの判定に用いられた時間範囲においてセンシングされたセンサデータに基づいて、時刻ｔ１及び時刻ｔ１＋１のアバタ骨格モデル候補を生成する。
【０２００】
図１６のステップＳ１６０１において、社会的振る舞い管理部１２０１は、図１５のステップＳ９０４〜Ｓ９０７の処理が行われた各アバタ骨格について、それぞれ時系列違和感判定値を確認する。ステップＳ１６０１において、時系列違和感判定値が“低”であると判定したアバタ骨格については、ステップＳ１６０２においてアバタ骨格の遷移を決定する。具体的には、ステップＳ１６０２において、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３は、ステップＳ１５０３においてアバタ骨格モデル候補が生成された際に算出されたアバタ骨格の遷移を、時刻ｔ１＋１のアバタ骨格の遷移に決定する。
【０２０１】
一方、ステップＳ１６０１において、時系列違和感判定値が“中”であると判定したアバタ骨格については、ステップＳ１６０３〜ステップＳ１６０５においてアバタ骨格の遷移を決定する。具体的には、ステップＳ１６０３において、社会的振る舞い管理部１２０１が、時刻ｔ１と時刻ｔ１＋１の間の最短でない遷移を判定の対象とする。
【０２０２】
また、ステップＳ１６０４において、社会的振る舞い管理部１２０１が、ステップＳ１６０３において判定の対象とした最短でない遷移の社会的振る舞いが、接近傾向か回避傾向かを判定する。
【０２０３】
更に、ステップＳ１６０５において、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３が、ステップＳ１６０４において判定された傾向が、時刻ｔ１において判定した社会的振る舞いの傾向と同じか否かを判定する。同じであると判定した場合、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３は、ステップＳ１６０３において判定の対象とした遷移（最短でない遷移）をアバタ骨格の遷移に決定する。一方、異なると判定した場合、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３は、時刻ｔ１＋１において当該アバタ骨格の遷移を反映させないことを決定する。
【０２０４】
また、ステップＳ１６０１において、時系列違和感判定値が“高”であると判定したアバタ骨格については、ステップＳ１６０６〜Ｓ１６０８においてアバタ骨格の遷移を決定する。具体的には、ステップＳ１６０６において、社会的振る舞い管理部１２０１が、判定値ログテーブル１０００の“遷移可能な相対変分”に記録された相対変分を抽出する。
【０２０５】
また、ステップＳ１６０７において、社会的振る舞い管理部１２０１が、ステップＳ１６０６において抽出した遷移可能な相対変分に基づく遷移の社会的振る舞いが、接近傾向か回避傾向かを判定する。
【０２０６】
更に、ステップＳ１６０８において、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３が、ステップＳ１６０７において判定された傾向が、時刻ｔ１において判定した社会的振る舞いの傾向と同じか否かを判定する。同じであると判定した場合、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３は、ステップＳ１６０６において抽出された遷移可能な相対変分に基づく遷移をアバタ骨格の遷移に決定する。一方、異なると判定した場合、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３は、時刻ｔ１＋１において当該アバタ骨格の遷移を反映させないことを決定する。
【０２０７】
＜ログ用ＤＢに記録される情報＞
次に、アバタ骨格モデル更新処理が実行されることで、ログ用ＤＢ１１９に記録される情報について説明する。なお、ここでは、第１の実施形態において説明済みのテーブル以外のテーブル（社会的振る舞いログテーブル）について説明する。
【０２０８】
図１７は、社会的振る舞いログテーブルの一例を示す図である。図１７に示すように、社会的振る舞いログテーブル１７００は、情報の項目として、“ＤＢ記録時刻”、“社会的振る舞い判定時刻（開始）”、“社会的振る舞い判定時刻（終了）”、“ユーザＩＤ”を含む。更に、社会的振る舞いログテーブル１７００は、情報の項目として、“情報処理装置ＩＤ”、“社会的振る舞いのタイプラベル”、“社会的振る舞いの対象”、“社会的振る舞いログデータ”を含む。
【０２０９】
“ＤＢ記録時刻”には、社会的振る舞いログデータが社会的振る舞いログテーブル１７００に記録された時点で付加されたタイムスタンプが格納される。
【０２１０】
“社会的振る舞い判定時刻（開始）”、“社会的振る舞い判定時刻（終了）”には、ユーザが社会的振る舞いを開始した時刻と終了した時刻が格納される。具体的には、社会的振る舞いが行われたと判定した際に用いた、所定の時間範囲のセンサデータの最初と最後のセンサデータにそれぞれ付加されたタイムスタンプが記録される。深度データの場合には、社会的振る舞いが行われたと判定した際に用いた深度センサデータファイルに含まれる最初と最後の深度データに付加されたタイムスタンプが記録される。ただし、深度センサデータファイルが長い場合には、社会的振る舞いのログデータの生成に実際に使用した深度データのタイムスタンプに基づいて、社会的振る舞いを開始した時刻と終了した時刻とを正確に特定して記録するようにしてもよい。
【０２１１】
なお、社会的振る舞い管理部１２０１は、時刻ｔ１＋１にセンシングされたセンサデータより一定時間ｋだけ遡った時刻ｔ１＋１−ｋまでの時間範囲（時刻ｔ１＋１−ｋ〜ｔ１＋１）のセンサデータを用いて、時刻ｔ１＋１の社会的振る舞いログデータを生成する。このため、例えば、深度データを用いて社会的振る舞いログデータを生成する場合、社会的振る舞い管理部１２０１は、センサ記録終了時刻＝“2015／7／27  11：01：05.000”（図７（ｃ）参照）より一定時間ｋだけ遡ったセンサデータを抽出する。そして、社会的振る舞い管理部１２０１は、当該抽出したセンサデータに基づいて、当該時刻の社会的振る舞いを判定する。
【０２１２】
“ユーザＩＤ”には、ユーザを識別する識別子が記録される。“情報処理装置ＩＤ”には、情報処理装置の識別子が記録される。
【０２１３】
“社会的振る舞いのタイプラベル”には、社会的振る舞いの種類を示す情報が記録される。“社会的振る舞いの対象”には、社会的振る舞いの判定対象となったユーザを識別する識別子が格納される。
【０２１４】
“社会的振る舞いログデータ”には、判定対象となったユーザの行った社会的振る舞いが記録される。
【０２１５】
図１７のデータ行のうちの１行目の例は、ユーザ１４０が、ユーザ１５０に対して“body‐close‐to”という種類の社会的振る舞いを行ったと判定したことを示している。なお、図１７のデータ行のうちの１行目の例では、ユーザ１４０の行った社会的振る舞いがどのようなアバタ骨格の遷移として表現されるかを同時に記録している。具体的には、ユーザ１４０のアバタの腰の骨格（Bone_Chest）が、位置を変更せずに、Ｘ軸に対して４［度］から１０［度］へと、＋６［度］回転した動きとして表現されることを記録している。
【０２１６】
＜実施例１＞
第２の実施形態におけるアバタ骨格モデル更新処理の実施例１として、時系列違和感判定値が“中”と判定された場合について説明する。ここでは以下のような状況により、アバタの左手の骨格の時系列違和感判定値が“中”と判定されたとする。
・ユーザ１４０のアバタの右側にユーザ１５０のアバタがいる。
・時刻ｔ１＋１で、ユーザ１４０のアバタの左手がユーザ１５０のアバタの側に伸びる。
・このとき、ユーザ１４０のアバタの手のひらの向きがユーザ１４０の正面向きにねじれ、ユーザ１５０のアバタの方向を向いていないアバタ骨格モデル候補が生成された。
【０２１７】
この場合、時刻ｔ１と時刻ｔ１＋１の間のアバタの左手の骨格の遷移は、時系列違和感判定部６０３により、Ｙ軸の時系列違和感判定値が“中”と判定される。このため、社会的振る舞い管理部１２０１では、最短でない遷移を判定の対象とする。具体的には、社会的振る舞い管理部１２０１では、アバタ骨格＝Bone_LeftHand（アバタの左手の骨格）の最短でない遷移として、（(5，25，‐12)，(0，0，0)）から（（10，25，‐12），（0，170，0））への遷移を判定の対象とする。
【０２１８】
社会的振る舞い管理部１２０１は、判定の対象とした最短でない遷移について、社会的振る舞いの判定を行う。ここでは、アバタ骨格＝Bone_LeftHand（アバタの左手の骨格）の（(0，25，‐12)，(4，0，0)）から（（10，25，‐12），（0，170，0））への遷移について、社会的振る舞いを判定する。
【０２１９】
社会的振る舞いの判定には、ＡＰＩ定義情報１３００に格納された社会的振る舞い判定ＡＰＩのうち、“Bone_LeftHand”を入力する“姿勢解析ＡＰＩ”が用いられる。
【０２２０】
１つの社会的振る舞い判定ＡＰＩは、複数の社会的振る舞いのタイプラベルを出力する。ここでは、アバタの左手の骨格の最短でない遷移について、社会的振る舞いのタイプラベルとして、“bodyparts‐close‐to”が出力されたとする。
【０２２１】
社会的振る舞いのタイプラベルが出力されると、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３では、傾向定義情報１４００を参照し、“bodyparts‐close‐to”に対応する傾向が“接近傾向”であると判定する。
【０２２２】
ここで、時刻ｔ１で判定した社会的振る舞いの傾向が“回避傾向”であったとすると、時刻ｔ１＋１で判定した社会的振る舞いの傾向と異なることとなり、アバタの左手の骨格の遷移を反映したアバタ画像は、他のユーザに違和感を与える可能性がある。
【０２２３】
そこで、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３では、アバタの左手の骨格の遷移をアバタの画像には反映させず、時刻ｔ１のアバタの左手の骨格を維持する。
【０２２４】
＜実施例２＞
第２の実施形態におけるアバタ骨格モデル更新処理の実施例２として、時系列違和感判定値が“高”と判定された場合について説明する。ここでは以下のような状況により、アバタの左手の骨格の時系列違和感判定値が“高”と判定されたとする。
・ユーザ１４０のアバタが前方に向かって左手の手のひらを向けた状態から、時刻ｔ１＋１で、Ｘ軸に対して手首を９０［度］折り曲げるアバタ骨格モデル候補が生成された。
・違和感の出る遷移区間定義（Ｘ軸）が４０＜Ｘ＜２２０である。
【０２２５】
この場合、時刻ｔ１と時刻ｔ１＋１の間のアバタの左手の骨格の遷移は、時系列違和感判定部６０３により、Ｘ軸の時系列違和感判定値が“高”と判定される。このため、社会的振る舞い管理部１２０１では、遷移可能な相対変分を抽出する。このとき抽出される遷移可能な相対変分は、Ｘ軸に対して“＋４０［度］”である。
【０２２６】
社会的振る舞い管理部１２０１は、抽出した遷移可能な相対変分について、社会的振る舞いの判定を行う。例えば、アバタ骨格＝“Bone_LeftHand”（アバタの左手の骨格）の（(5，25，‐12)，(0，0，0)）から（（5，25，‐12），（40，0，0））への遷移について、社会的振る舞いを判定する。
【０２２７】
社会的振る舞いの判定は、時系列違和感判定値が“中”と判定された場合と同様であり、社会的振る舞い判定ＡＰＩが社会的振る舞いのタイプラベルを出力すると、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３は、傾向定義情報１４００を参照する。
【０２２８】
これにより、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３は、社会的振る舞いのタイプラベルが接近傾向か回避傾向かを判定する。判定の結果、時刻ｔ１で判定した社会的振る舞いの傾向から変化していなければ、アバタ骨格遷移決定部（社会的振る舞いの傾向）１２０３は、相対変分（“＋４０［度］”）に基づく遷移を、時刻ｔ１＋１におけるアバタの左手の骨格の遷移に決定する。
【０２２９】
なお、時系列違和感判定値が“中”であった場合も、“高”であった場合も、実際のアバタ骨格遷移は、遷移可能な相対変分の半分の量とするなど、遷移量を少なくするようにしてもよい。
【０２３０】
以上の説明から明らかなように、第２の実施形態における画像生成システム１００は、時刻ｔ１と時刻ｔ１＋１の間のアバタの骨格の遷移が、違和感の出る遷移区間に抵触すると判定した場合、社会的振る舞いの傾向が変化するか否かを判定する。また、第２の実施形態における画像生成システム１００は、社会的振る舞いの傾向が変化すると判定した場合、時刻ｔ１＋１においてユーザの非言語行動をアバタ骨格の遷移に反映させない。一方、第２の実施形態における画像生成システム１００は、社会的振る舞いの傾向が変化しないと判定した場合には、違和感を与えない範囲で反映させてアバタ画像を生成する。
【０２３１】
これにより、アバタ骨格の遷移において、社会的振る舞いの傾向が変化するような遷移が発生することがなくなり、アバタを見ている相手に違和感を与えるような画像が生成されることを回避することができる。つまり、アバタを見ている相手に違和感を与えない画像を生成することができる。
【０２３２】
［第３の実施形態］
上記第１の実施形態では、アバタ骨格ごとに違和感の出る遷移区間定義を規定し、時系列違和感判定部は、アバタ骨格ごとに時系列違和感判定値を判定するものとして説明した。しかしながら、アバタ骨格単位では、違和感の出る遷移区間定義に抵触しない場合であっても、実際のコミュニケーションシーンにおけるユーザの動きとしては違和感を与えるケースも考えられる。
【０２３３】
例えば、アバタの右手の骨格のＸ軸に対する回転角度が、時刻ｔ１と時刻ｔ１＋１の間に、０［度］から２７０［度］へと遷移する場合について説明する。これは、ユーザが自身の前方に向かって手のひらを向け、指先をまっすぐ上方に伸ばした状態（０［度］）から、自身の体方向に手首を９０［度］折り曲げる動きをした場合に相当する。
【０２３４】
このようなユーザの動きは、頭を掻く動きや物をつかむ動きとして想定されることから、アバタ骨格単位で、違和感の出る遷移区間定義に規定することはできない。
【０２３５】
しかしながら、他のユーザとのコミュニケーションシーンにおいて、例えば、肘を曲げて挙手するような状態から、上記のような動きをした場合には、他のユーザに違和感を与えることになる。
【０２３６】
第３の実施形態では、このようなケースにおいても、他のユーザに違和感を与える画像が生成されることがないようにアバタ骨格モデル更新処理を行う。以下、第３の実施形態について、上記第１の実施形態との相違点を中心に説明する。
【０２３７】
＜画像生成装置の制約部の機能構成＞
はじめに、第３の実施形態における画像生成装置の制約部の機能構成について説明する。図１８は、画像生成装置の制約部の機能構成を説明するための第３の図である。図６（ａ）との相違点は、図１８（ａ）の場合、制約部１１５が、第１の時系列違和感判定部１８０１と第２の時系列違和感判定部１８０２とを有している点である。
【０２３８】
第１の時系列違和感判定部１８０１は、時系列違和感判定部６０３と同様の機能を有する。すなわち、第１の時系列違和感判定部１８０１は、アバタ骨格モデル候補生成部６０２により生成されたアバタ骨格モデル候補の各アバタ骨格について、時刻ｔ１と時刻ｔ１＋１の間の遷移により、違和感が出るか否かを判定する。第１の時系列違和感判定部１８０１は、定義情報用ＤＢ１１８に格納された遷移区間定義情報８００を参照することで、違和感が出るか否かを判定する。また、第１の時系列違和感判定部１８０１は、判定結果に基づいて、各アバタ骨格の時系列違和感判定値等を判定値ログテーブル１０００に記録する。
【０２３９】
第２の時系列違和感判定部１８０２は、アバタ骨格モデル候補生成部６０２により生成されたアバタ骨格モデル候補の各アバタ骨格のうち、第１の時系列違和感判定部１８０１により、時系列違和感判定値が“低”と判定されたアバタ骨格を抽出する。
【０２４０】
第２の時系列違和感判定部１８０２は、時系列違和感判定値が“低”と判定されたアバタ骨格について、定義情報用ＤＢ１１８に格納された、違和感の出る遷移区間組み合わせ条件定義情報（以下、「組み合わせ条件定義情報」と称す。詳細は後述）を参照することで、時系列違和感判定値を書き換えるか否かを判定する。第２の時系列違和感判定部１８０２は、抽出したアバタ骨格が、組み合わせ条件定義情報に規定された“組み合わせる条件”に合致するか否かを判定することで、時系列違和感判定値を書き換えるか否かを判定する。なお、“組み合わせる条件”とは、アバタ骨格ごとに規定した違和感の出る遷移区間定義と組み合わせることで、違和感が出ると判定される条件である。
【０２４１】
このように、第２の時系列違和感判定部１８０２は、アバタ骨格単位では、違和感の出る遷移区間定義に抵触しない場合であっても、アバタ骨格の遷移としては違和感を与えるような場合には、時系列違和感判定値を書き換える。これにより、アバタを見ている相手に違和感を与える画像が生成される可能性を低減させることができる。
【０２４２】
＜組み合わせ条件定義情報の説明＞
次に、第２の時系列違和感判定部１８０２により参照される、組み合わせ条件定義情報について説明する。図１９は、組み合わせ条件定義情報の一例を示す図である。
【０２４３】
図１９に示すように、組み合わせ条件定義情報１９００は、情報の項目として、“アバタ骨格ラベル”、“違和感の出る遷移区間定義（各軸に対する回転）”、“組み合わせる条件”を含む。
【０２４４】
“アバタ骨格ラベル”には、アバタ骨格モデル候補の複数のアバタ骨格のうち、いずれのアバタ骨格であるかを示す情報が格納される。
【０２４５】
“違和感の出る遷移区間定義（各軸に対する回転）”には、各アバタ骨格の各軸に対する回転について、違和感が出るか否かを判定する対象となる遷移区間を示す情報が格納される。なお、組み合わせ条件定義情報１９００の“違和感の出る遷移区間定義（各軸に対する回転）”に規定される範囲は、遷移区間定義情報８００の“違和感の出る遷移区間定義”に規定された範囲とは一致しない。第２の時系列違和感判定部１８０２は、第１の時系列違和感判定部１８０１において判定される範囲に当てはまらない範囲について、違和感の有無を判定するためである。
【０２４６】
ただし、組み合わせ条件定義情報１９００の“違和感の出る遷移区間定義（各軸に対する回転）”に規定される範囲を、遷移区間定義情報８００の“違和感の出る遷移区間定義”に規定される範囲と部分的に一致させてもよい。
【０２４７】
“組み合わせる条件”には、組み合わせ条件定義情報１９００の“違和感の出る遷移区間定義”と組み合わせることで、違和感があると判定される条件が規定される。組み合わせる条件は、システム中の関数化された値であり、以下に詳細に説明する。
【０２４８】
＜組み合わせる条件＞
図２０は、組み合わせる条件を説明するための図である。このうち、図２０（ａ）は、“組み合わせる条件”に記載された「深度センサ正面から見た平面に射影した距離画像エリアのうち、手付近のエリア」及び「深度センサ上面から見た平面に射影した距離画像エリアのうち、手付近のエリア」を示す図である。
【０２４９】
図２０（ａ）において、領域２０２１は、深度センサ正面から見た平面に射影した距離画像エリアであり、領域２０２２は、手付近のエリアである。また、領域２０２２内の×印は領域２０２２の重心を示しており、〇印は手のアバタ骨格を領域２０２１の平面に射影した位置を示している。すなわち、「深度センサ正面から見た平面に射影した距離画像エリアのうち、手付近のエリアの重心へ、アバタ骨格から向かうベクトル」とは、右手のアバタ骨格のケースでは、図２０（ａ）のベクトル２０２０に示すベクトルである。
【０２５０】
同様に、領域２０１１は、深度センサ上面から見た平面に射影した距離画像エリアであり、領域２０１２は、手付近のエリアである。また、領域２０１２内の×印は領域２０１２の重心を示しており、〇印は手のアバタ骨格を領域２０１１の平面に射影した位置を示している。すなわち、「深度センサ上面から見た平面に射影した距離画像エリアのうち、手付近のエリアの重心へ、アバタ骨格から向かうベクトル」とは、図２０（ａ）のベクトル２０１０に他ならない。
【０２５１】
ベクトル２０２０の長さが、０以上０．８以下となる遷移は、アバタ骨格において手首を深度センサに正面から相対するユーザから見て前方や後方へ折り曲げる動きの中で生じる。また、ベクトル２０１０の長さが、０以上０．２以下となる遷移は、例えば、前述した、深度センサに正面から相対するユーザから見て前方や後方へ折り曲げる動きの中において生じる。具体的には、ユーザがアバタ骨格の手首を曲げることで手首の位置よりも後方に手の指先が位置する動きによって生じる。換言すると、図２０（ｂ）に示すように、Ｘ軸に対する右手首の回転角度が０［度］から９０［度］へと遷移するようなケース（右手首を前方に曲げることで、指先が前方へ動くケース）は、ベクトル２０１０の長さが、０以上０．２以下となる遷移には該当しない。
【０２５２】
このように、“組み合わせる条件”に規定された第１の条件（ベクトル２０２０の長さが、０以上０．８以下となる遷移）は、手首を前方や後方へ折り曲げる動きによって生じるベクトル長さの遷移を規定する。また、“組み合わせる条件”に規定された第２の条件（ベクトル２０１０の長さが、０以上０．２以下となる遷移）は、組み合わせる第１の条件が規定するユーザの動きのうち、例えば、手首を後方へ折り曲げる動きによって生じるベクトル長さの遷移を規定する。
【０２５３】
したがって、ユーザが深度センサ１２５に正面から相対して肘を折り曲げて、手のひらを深度センサ１２５に向けて挙手しているような状態を例に説明すると、第１の条件と第２の条件の両方を満たすのは、次のような場合が相当する。すなわち、ユーザが右手の手首を後方へ折り曲げ、例えば、アバタの右手の骨格の回転角度がＸ軸に対して０［度］から２７０［度］へと遷移する場合である。
【０２５４】
この結果、第２の時系列違和感判定部１８０２によれば、第１の時系列違和感判定部１８０１において時系列違和感判定値が“低”と判定される、アバタの右手の骨格のこのような遷移を、時系列違和感判定値が“高”と判定することができる。
【０２５５】
なお、図２０（ａ）の領域２０１２及び領域２０２２は以下の手順で規定する。まず、アバタの右手の骨格の位置座標を、深度センサ１２５の座標空間の位置座標へ変換する。次に、深度センサ１２５の座標空間に変換された、アバタの右手の骨格の位置座標を中心として、ユーザの手が検出されている可能性があるエリアを判定する。具体的には、深度センサ１２５から得られるカラー画像を併用した肌色画素を検出する詳細なアルゴリズムを用いた手のエリア判定でもよいし、平均的な手の大きさの直方体を用いて手のエリア判定を行うのでもよい。そして、判定したエリアにおいてセンシングされた深度データに基づいて、深度センサ上面から見た平面に射影した手付近のエリアを、領域２０１１と規定する。また、深度センサ正面から見た平面に射影した、手付近のエリアを領域２０２１と規定する。ただし、領域２０１２、領域２０２２は、深度データ以外の別のセンサデータを用いて規定してもよい。
【０２５６】
＜アバタ骨格モデル更新処理＞
次に、第３の実施形態における制約部１１５によるアバタ骨格モデル更新処理の流れについて説明する。図２１及び図２２は、アバタ骨格モデル更新処理の第４及び第５のフローチャートである。図９に示す第１のフローチャートとの相違点は、図２１のステップＳ２１０１と、図２２のステップＳ２２０１〜Ｓ２２０６である。なお、ここでは、アバタの右手の骨格のみに着目して説明する。具体的には、時刻ｔ１において、Ｘ軸に対する回転角度が０［度］であったものが、時刻ｔ１＋１において、Ｘ軸に対する回転角度が２７０［度］まで回転するアバタの右手の骨格の遷移に着目して説明する。
【０２５７】
図２１のステップＳ２１０１において、第２の時系列違和感判定部１８０２は、第１の時系列違和感判定部１８０１において、時系列違和感判定値が“低”と記録されたアバタ骨格を抽出する（ここでは、アバタの右手の骨格を抽出する）。
【０２５８】
図２２のステップＳ２２０１において、第２の時系列違和感判定部１８０２は、ステップＳ２１０１において抽出されたアバタ骨格に基づいて、組み合わせ条件定義情報１９００を参照する。第２の時系列違和感判定部１８０２は、抽出されたアバタ骨格の遷移が組み合わせ条件定義情報１９００の“違和感の出る遷移区間定義（各軸に対する回転）”に抵触するか否かを判定する。ここでは、アバタの右手の骨格の最短での遷移が、０［度］から２７０［度］であるため、組み合わせ条件定義情報１９００の“違和感の出る遷移区間定義（各軸に対する回転）”に抵触する。
【０２５９】
なお、“違和感の出る遷移区間定義（各軸に対する回転）”に抵触するか否かの判定は、アバタ骨格の最短での遷移が、規定された範囲に完全に含まれるか否かに基づいて行ってもよいし、部分的に含まれるか否かに基づいて行ってもよい。
【０２６０】
ステップＳ２２０２において、第２の時系列違和感判定部１８０２は、ステップＳ２２０１において抵触すると判定した“違和感の出る遷移区間定義（各軸に対する回転）”に対応付けて規定された“組み合わせる条件”を抽出する。ここでは、２つの“組み合わせる条件”が抽出される。
【０２６１】
ステップＳ２２０３において、第２の時系列違和感判定部１８０２は、抽出したアバタ骨格が、ステップＳ２２０２において抽出した“組み合わせる条件”に合致するか否かを判定する。
【０２６２】
抽出したアバタ骨格が、ステップＳ２２０２において抽出した“組み合わせる条件”に合致すると判定した場合、第２の時系列違和感判定部１８０２は、判定値ログテーブル１０００の“時系列違和感判定値”を“高”に書き換える。
【０２６３】
ここでも、ユーザ１４０が深度センサ１２５に正面から相対して肘を折り曲げて、手のひらを深度センサ１２５に向けて挙手しているような状態を例に説明する。アバタの右手の骨格の最短での遷移が０［度］から２７０［度］の場合（手首を後方に折り曲げる動きの場合）、前述したように、組み合わせる条件に合致すると判定されるため、判定値ログテーブル１０００の“時系列違和感判定値”は“高”に書き換えられる。
【０２６４】
ステップＳ２２０４において、第２の時系列違和感判定部１８０２は、この時点で、判定値ログテーブル１０００の“時系列違和感判定値”に“高”と記録されているアバタ骨格を抽出する。
【０２６５】
また、第２の時系列違和感判定部１８０２は、抽出したアバタ骨格に基づいて、組み合わせ条件定義情報１９００を参照する。第２の時系列違和感判定部１８０２は、抽出したアバタ骨格を、組み合わせ条件定義情報１９００の“違和感の出る遷移区間定義（各軸に対する回転）”及び“組み合わせる条件”に抵触させずに遷移させることができるか否かを判定する。加えて、第２の時系列違和感判定部１８０２は、抽出したアバタ骨格を、各軸に対する違和感の出る遷移区間定義に抵触させずに遷移させることができるか否かを判定する。
【０２６６】
ステップＳ２２０５において、第２の時系列違和感判定部１８０２は、ステップＳ２２０４において“違和感の出る遷移区間定義（各軸に対する回転）”及び“組み合わせる条件”に抵触させずに遷移させることができると判定したとする。更に、第２の時系列違和感判定部１８０２は、ステップＳ２２０４において、各軸に対する違和感の出る遷移区間定義に抵触させずに遷移させることができると判定したとする。その場合、第２の時系列違和感判定部１８０２は、当該アバタ骨格を抽出する。また、第２の時系列違和感判定部１８０２は、抽出したアバタ骨格について、判定値ログテーブル１０００の“時系列違和感判定値”を“中”に書き換える。
【０２６７】
更に、第２の時系列違和感判定部１８０２は、“違和感の出る遷移区間定義（各軸に対する回転）”及び“組み合わせる条件”に加えて、各軸に対する違和感の出る遷移区間定義に抵触させずに遷移させることができる遷移方向を判定する。そして、第２の時系列違和感判定部１８０２は、判定した遷移方向を、判定値ログテーブル１０００の“遷移可能な相対変分”に記録する。
【０２６８】
ステップＳ２２０６において、第２の時系列違和感判定部１８０２は、ステップＳ２２０４において抽出されたアバタ骨格（時系列違和感判定値が“高”と記録されたアバタ骨格）のうち、時系列違和感判定値が書き換えられなかったアバタ骨格を抽出する。
【０２６９】
また、第２の時系列違和感判定部１８０２は、抽出したアバタ骨格について、各軸に対する違和感の出る遷移区間定義に抵触させずに遷移させることができる範囲を、判定値ログテーブル１０００の“遷移可能な相対変分”に記録する。
【０２７０】
なお、時刻ｔ１と時刻ｔ１＋１の間に、アバタの右手の骨格の回転角度が０［度］から２７０［度］へと遷移するケースでは、ステップＳ２２０６において、第２の時系列違和感判定部１８０２が“遷移可能な相対変分”に“＋４０［度］”を記録することになる。つまり、このようなケースにおいて、アバタの右手の骨格が後方へ回転することはなく、違和感を与える画像が表示されることもない。
【０２７１】
以上の説明から明らかなように、第３の実施形態における画像生成システム１００は、アバタ骨格ごとに規定された違和感の出る遷移区間定義と組み合わせることで違和感があると判定される条件（図１９）を予め規定する。また、第３の実施形態における画像生成システム１００は、時刻ｔ１と時刻ｔ１＋１の間のアバタ骨格の遷移が、当該条件（図１９）に合致するか否かを判定する。また、第３の実施形態における画像生成システム１００は、各軸に対する違和感の出る遷移区間定義（図８）に抵触しない場合でも、当該条件（図１９）に合致すると判定した場合には、ユーザの非言語行動をアバタ骨格の遷移にそのまま反映させることはしない。この場合、第３の実施形態における画像生成システム１００は、違和感を与えない範囲でアバタ画像を生成する。
【０２７２】
これにより、アバタを見ている相手に違和感を与えるような画像が生成される可能性を更に低減させることができる。つまり、アバタを見ている相手に違和感を与えない画像を生成することができる。
【０２７３】
［第４の実施形態］
上記第１乃至第３の実施形態では、センサデータに基づいて生成されるアバタ骨格モデル候補について、時刻ｔ１と時刻ｔ１＋１との間の各アバタ骨格の遷移を判定した。また、第１乃至第３の実施形態では、アバタ骨格の遷移についての判定結果に基づいて、アバタの時系列の動きに制約をかけることで、他のユーザに違和感を与える画像が生成されることを回避した。
【０２７４】
これに対して、第４の実施形態では、実空間における障害物等の存在を加味して、アバタの時系列の動きに制約をかける。これにより、他のユーザに違和感を与える画像が生成されることを回避する。
【０２７５】
例えば、実空間において、深度センサとユーザとの間に机があったとする。また、机の下の手が深度センサが検出できるギリギリの位置にあったとする。この場合、深度データに基づいてアバタ骨格を遷移させた場合、アバタの手の骨格が違和感の出る遷移となるケースが多発することが想定される。
【０２７６】
このような場合において、従来は、例えば、リアルタイムに撮影した撮像画像から、動体検出（ユーザ等の動く物体を検出）を行い、静止している物体を障害物として検出していた。しかしながら、障害物が柔らかい布の場合と硬い机の場合とでは、アバタの骨格の遷移に影響を与える度合が変わってくる。このため、第４の実施形態では、過去のセンサデータに基づいて、アバタ骨格モデル候補を生成した際に頻繁に違和感が発生しているエリアを特定し、特定したエリアではアバタの骨格を遷移させないようにする。これにより、他のユーザに違和感を与える画像が生成されることを回避することが可能となる。以下、第４の実施形態の詳細について、第１の実施形態との相違点を中心に説明する。
【０２７７】
＜画像生成装置の制約部の機能構成＞
はじめに、第４の実施形態における画像生成装置の制約部の機能構成について説明する。図２３は、画像生成装置の制約部の機能構成を説明するための第４の図である。図２３（ａ）に示す要素のうち、図６（ａ）に示す要素と同様の機能を有する要素については、同じ符号を付すこととし、ここでは説明を省略する。
【０２７８】
図６（ａ）との相違点は、図２３（ａ）の場合、制約部１１５が、時系列違和感発生エリア抽出部２３０１、アバタ骨格遷移決定部（エリア回避）２３０２を有する点である。
【０２７９】
図２３（ｂ）に示すように、時系列違和感発生エリア抽出部２３０１は、ログ用ＤＢ１１９に格納された判定値ログテーブル１０００及びアバタ骨格ログテーブル１１００を参照することで、時系列違和感発生エリア情報（以下、「エリア情報」と称す）を生成する。
【０２８０】
具体的には、時系列違和感発生エリア抽出部２３０１は、判定値ログテーブル１０００より時系列違和感判定値に“高”と記録されたログデータの“ユーザの現在時刻”を抽出する。また、時系列違和感発生エリア抽出部２３０１は、抽出した“ユーザの現在時刻”に基づいて、アバタ骨格ログテーブル１１００を参照し、抽出した“ユーザの現在時刻”の前後において、アバタがどの位置座標からどの位置座標に遷移したかを判定する。これにより、時系列違和感発生エリア抽出部２３０１は、時刻ｔ１と時刻ｔ１＋１との間で、時系列違和感判定値が“高”となる位置座標のリストを作成することができる。
【０２８１】
時系列違和感発生エリア抽出部２３０１は、作成したリストを“時系列違和感発生エリア”として、エリア情報に記録する。なお、時系列違和感発生エリア抽出部２３０１は、時系列違和感発生エリアを記録する際、時系列違和感発生エリアを判定した時刻（開始時刻、終了時刻）、判定したログデータのユーザＩＤ、情報処理装置ＩＤ等を合わせて記録する。
【０２８２】
時系列違和感発生エリア抽出部２３０１では、時系列違和感発生エリアとして、時系列違和感発生座標群全体を包括するようなエリアを記録する。あるいは、時系列違和感発生エリア抽出部２３０１は、時系列違和感発生エリアとして、時系列違和感発生座標群のうち、密度の高いエリアを包括するような領域を記録する。あるいは、時系列違和感発生エリア抽出部２３０１は、時系列違和感発生座標群全体の重心から、例えば、半径が一定値以内の球により特定されるエリアを、時系列違和感発生エリアとして記録する。
【０２８３】
アバタ骨格遷移決定部（エリア回避）２３０２は、アバタ骨格モデル候補生成部６０２により生成されたアバタ骨格モデル候補について、各アバタ骨格の仮想空間での位置を判定する。また、アバタ骨格遷移決定部（エリア回避）２３０２は、ログ用ＤＢ１１９に格納されたエリア情報を参照し、各アバタ骨格の仮想空間での位置が、時系列違和感発生エリアに抵触するか否かを判定する。アバタ骨格遷移決定部（エリア回避）２３０２は、エリア情報を参照するにあたり、対応するユーザＩＤ、情報処理装置ＩＤと対応付けられた時系列違和感発生エリアを参照する。
【０２８４】
また、アバタ骨格遷移決定部（エリア回避）２３０２は、エリア情報２４００を参照するにあたり、時系列違和感発生エリアを判定した時刻が、現在時刻に比較的近いもののみを参照してもよい。例えば、アバタ骨格遷移決定部（エリア回避）２３０２は、過去半日の間に判定された時系列違和感発生エリアを参照する。
【０２８５】
更に、アバタ骨格遷移決定部（エリア回避）２３０２は、いずれかのアバタ骨格の仮想空間での位置が、時系列違和感発生エリアに抵触すると判定した場合、当該アバタ骨格の遷移はアバタ骨格モデルに反映させない。あるいは、アバタ骨格遷移決定部（エリア回避）２３０２は、いずれかのアバタ骨格の仮想空間での位置が、時系列違和感発生エリアに抵触すると判定した場合、当該アバタ骨格の遷移は、時系列違和感発生エリアを回避するようにアバタ骨格の遷移を決定する。なお、時系列違和感発生エリアを回避するようにアバタ骨格の遷移を決定するにあたっては、予め、仮想空間内において、時系列違和感発生エリアに視覚的には見えない障害物を設定するようにしてもよい。仮想空間内に障害物を設定しておくことで、アバタ骨格を当該障害物の位置に遷移させることを強制的に回避することができるからである。
【０２８６】
＜エリア情報の説明＞
次に、ログ用ＤＢ１１９に格納されるエリア情報について説明する。図２４は、エリア情報の一例を示す図である。図２４に示すように、エリア情報２４００は、情報の項目として、“ＤＢ記録時刻”、“時系列違和感発生エリアの判定時刻（開始）”、“時系列違和感発生エリアの判定時刻（終了）”を含む。更に、エリア情報２４００は、情報の項目として、“ユーザＩＤ”、“情報処理装置ＩＤ”、“時系列違和感発生エリア”を含む。
【０２８７】
“ＤＢ記録時刻”には、時系列違和感発生エリア抽出部２３０１が、ログ用ＤＢ１１９のエリア情報２４００に、時系列違和感発生エリアを記録した時点で付加されたタイムスタンプが記録される。
【０２８８】
“時系列違和感発生エリアの判定時刻（開始）”には、時系列違和感発生エリア抽出部２３０１が時系列違和感発生エリアの判定を開始した時刻が記録される。“時系列違和感発生エリアの判定時刻（終了）”には、時系列違和感発生エリア抽出部２３０１が時系列違和感発生エリアの判定を終了した時刻が記録される。
【０２８９】
なお、時系列違和感発生エリア抽出部２３０１は、一定時間ごとに、時系列違和感発生エリアを判定してもよい。あるいは、判定値ログテーブル１０００に新たに記録された時系列違和感判定値が一定量以上となった場合に、時系列違和感発生エリアを判定してもよい。あるいは、アバタ骨格ログテーブル１１００に新たに記録されたアバタ骨格モデルが一定量以上となった場合に、時系列違和感発生エリアを判定してもよい。
【０２９０】
“ユーザＩＤ”には、ユーザを識別する識別子が記録される。“情報処理装置ＩＤ”には、情報処理装置のＩＤが記録される。
【０２９１】
“時系列違和感発生エリア”には、ここでは時系列違和感判定値が“高”の位置座標を包含するようなエリアが格納される。図２４の例において、“Ｃｕｂｅ、Ｃ＝（０，９，−９）、Ｅ＝１”とは、仮想空間において、重心位置の座標が（０，９，−９）であり、一辺の長さが１の立方体のエリアを指す。
【０２９２】
以上の説明から明らかなように、第４の実施形態における画像生成システム１００は、時系列違和感判定値が“高”となる仮想空間内のエリアを特定し、特定したエリアにアバタ骨格が遷移することを回避する。
【０２９３】
これにより、アバタを見ている相手に違和感を与えるような画像が生成されることを回避することができる。つまり、アバタを見ている相手に違和感を与えない画像を生成することができる。
【０２９４】
［第５の実施形態］
上記第１の実施形態では、遷移区間定義情報８００を管理者等が予め規定するものとして説明した。これに対して、第５の実施形態では、ログ用ＤＢ１１９に格納された、アバタ骨格ログテーブル１１００を解析することで、遷移区間定義情報８００を逐次更新する。以下、第５の実施形態について詳細を説明する。
【０２９５】
＜画像生成システムの全体構成＞
はじめに、第５の実施形態における画像生成システムについて説明する。図２５は、画像生成システムの全体構成の一例を示す第２の図である。図１に示す画像生成システム１００との相違点は、図２５に示す画像生成システム１００の場合、画像生成装置１１０が、解析部２５００を有している点である。
【０２９６】
解析部２５００は、基本機能部及び制約部１１５が動作し、コミュニケーションサービスが提供されることで、アバタ骨格ログテーブル１１００が更新された場合に、これらのテーブルを解析する。
【０２９７】
また、解析部２５００は、解析結果に基づいて、定義情報用ＤＢ１１８に格納されている遷移区間定義情報８００を更新する。
【０２９８】
＜解析結果の一例＞
図２６は、解析部による解析結果の一例を示す図であり、所定の時間帯におけるアバタの右手の骨格の遷移区間の頻度について解析した結果を示す図である。図２６において、横軸はＸ軸に対する回転角度を表しており、縦軸は、遷移回数を表している。
【０２９９】
図２６の例によれば、＋方向では、０［度］から４５［度］の間の遷移頻度が高く、−方向では、３６０［度］〜２１０［度］の間の遷移頻度が高い。つまり、４５［度］〜２１０［度］の間の遷移区間が、低頻度となる。なお、解析部２５００は、低頻度であるか否かを判定する際に、遷移回数から求めた閾値を用いてもよいし、頻度値のヒストグラムから求めた閾値を用いてもよい。
【０３００】
＜画像生成装置の解析部の機能構成＞
次に、解析部２５００の詳細な機能構成について説明する。図２７は、解析部の機能構成の一例を示す図である。図２７に示すように、解析部２５００は、低頻度遷移区間抽出部２７０１、アバタ骨格遷移決定部（予測）２７０２、アバタ骨格モデル管理部（予測）２７０３、遷移区間更新部２７０４を有する。
【０３０１】
低頻度遷移区間抽出部２７０１は、ログ用ＤＢ１１９に格納されたアバタ骨格ログテーブル１１００の“遷移量”を読み出し、遷移区間の頻度を解析する。更に、低頻度遷移区間抽出部２７０１は、解析した遷移区間の頻度に基づいて、低頻度の遷移区間を抽出する。
【０３０２】
アバタ骨格ログテーブル１１００の“遷移量”には、全ての時間帯の全てのユーザに対するアバタ骨格の遷移が記録されている。低頻度遷移区間抽出部２７０１では、このうち、一定期間の“遷移量”のデータ（例えば、過去１時間分のアバタの右手の骨格の“遷移量”のデータ）を読み出し、遷移区間の頻度を解析する。なお、低頻度遷移区間抽出部２７０１では、アバタ骨格ログテーブル１１００の“表示アバタ骨格モデル”のデータではなく、“遷移量”のデータを読み出す。遷移量を用いる理由は、時系列違和感判定値が“中”または“高”と判定されたが遷移したケースの場合、必ずしも最短の遷移を時刻ｔ１＋１におけるアバタ骨格の遷移に決定していないため、実際に遷移した実績に基づく解析を行うためである。低頻度遷移区間抽出部２７０１では、＋符号または−符号のいずれかの符号の遷移が何回行われたのかを記録している“遷移量”のデータを読み出して、低頻度の遷移区間を抽出する。
【０３０３】
アバタ骨格遷移決定部（予測）２７０２は、低頻度遷移区間抽出部２７０１により抽出された低頻度の遷移区間について、違和感が出ると予想される時系列のアバタ骨格モデルの動きと、違和感が出ないと予想される時系列のアバタ骨格モデルの動きとを生成する。
【０３０４】
例えば、低頻度の遷移区間として、４５［度］〜２１０［度］が抽出されたとする。この場合、アバタ骨格遷移決定部（予測）２７０２は、＋方向と−方向の両方向から、違和感が出ると予想される時系列のアバタ骨格モデルの動きと、違和感が出ないと予想される時系列のアバタ骨格モデルの動きとを生成する。具体的には、アバタ骨格遷移決定部（予測）２７０２は、アバタの右手の骨格について、Ｘ軸に対する回転が、＋方向に４５［度］〜２１０［度］の動きと、−方向に２１０［度］〜４５［度］の動きとを生成する。
【０３０５】
なお、遷移区間定義情報８００によれば、アバタの右手の骨格において、“違和感の出る遷移区間定義（Ｘ軸に対する回転）”には、“４０＜Ｘ＜２２０”が規定されている。したがって、アバタ骨格遷移決定部（予測）２７０２が生成した、違和感が出ると予測されるアバタの右手の骨格の動きは、既に、遷移区間定義情報８００に規定されている範囲に含まれる。
【０３０６】
この場合、アバタ骨格遷移決定部（予測）２７０２は、違和感が出ないと予測されるアバタの右手の骨格の動きとして、＋方向について４０［度］〜４５［度］、−方向について２２０［度］〜２１０［度］を生成する。
【０３０７】
アバタ骨格モデル管理部（予測）２７０３は、アバタ骨格遷移決定部（予測）２７０２において生成されたアバタ骨格の遷移を表示する。具体的には、アバタ骨格モデル管理部（予測）２７０３は、アバタ骨格遷移決定部（予測）２７０２において生成されたアバタ骨格の遷移として、下記のアバタ骨格の遷移を表示する。
・Ｘ軸の＋方向において違和感が出ないと予測されるアバタ骨格の動き
・Ｘ軸の＋方向において違和感が出ると予測されるアバタ骨格の動き
・Ｘ軸の−方向において違和感が出ないと予測されるアバタ骨格の動き
・Ｘ軸の−方向において違和感が出ると予測されるアバタ骨格の動き
低頻度遷移区間抽出部２７０１において、低頻度の遷移区間として、Ｙ軸またはＺ軸に対する遷移区間が抽出された場合には、Ｙ軸またはＺ軸について、同様の処理が行われる。
【０３０８】
遷移区間更新部２７０４は、アバタ骨格モデル管理部（予測）２７０３により表示されたアバタ骨格の動きに対して、ユーザが違和感が出るか否かを判断した場合、判断結果を取得する。遷移区間更新部２７０４は、違和感が出る、または違和感が出ない、との判断結果に基づいて、遷移区間定義情報８００について、“違和感の出る遷移区間定義”を更新する。
【０３０９】
なお、ここでいうユーザとは、画像生成装置１１０を管理する管理者であってもよいし、画像生成システム１００を利用するユーザ１４０、１５０であってもよい。また、画像生成システム１００を利用するユーザの場合にあっては、いずれか１名のユーザであっても複数のユーザであってもよい。更に、複数のユーザの場合には、違和感が出るか否かの判断結果を、多数決処理することにより、あるいは平均化処理することにより、“違和感の出る遷移区間定義”を更新するようにしてもよい。
【０３１０】
なお、ユーザによる判断の結果、例えば、＋方向４０［度］〜４５［度］のアバタ骨格の遷移と、０［度］〜４５［度］のアバタ骨格の遷移が違和感がないと判断されたとする。また、−方向２２０［度］〜２１０［度］のアバタ骨格の遷移と、３６０［度］〜２１０［度］のアバタ骨格の遷移とが、違和感があると判断されたとする。あるいは、４０［度］〜４５［度］や２２０［度］〜２１０［度］だけでなく、これらを含む長い遷移をユーザに提示し、ユーザの判断を助ける形態があってもよい。あるいは、ユーザが正確に違和感が出る、出ない、の判断を行っているか否かを決定づけるために、確認したい遷移区間を含む複数通りのアバタ骨格の遷移をユーザに提示する形態があってもよい。
【０３１１】
この場合、遷移区間更新部２７０４は、遷移区間定義情報８００の“違和感の出る遷移区間定義（Ｘ軸に対する回転）”を、“４０＜Ｘ＜２２０”から“４５＜Ｘ＜２２０”へと更新する。
【０３１２】
なお、遷移区間更新部２７０４は、遷移区間定義情報８００だけでなく、組み合わせ条件定義情報１９００もあわせて更新するようにしてもよい。
【０３１３】
以上の説明から明らかなように、第５の実施形態における画像生成システム１００は、コミュニケーションサービスを提供することでログ用ＤＢ１１９に格納されたアバタ骨格ログテーブル１１００を解析する。また、第５の実施形態における画像生成システム１００は、解析結果に応じて、遷移区間定義情報８００を更新する。これにより、画像生成システム１００が利用される時間帯や、クライアント側システムが設置される環境等によって、違和感が出る動きが変化するような場合にも対応することができる。
【０３１４】
なお、遷移区間定義情報８００や違和感の出る遷移区間組み合わせ条件情報１８００等は、ユーザごと、クライアント側システムごと、クライアントアプリケーションごとに管理するようにしてもよい。
【０３１５】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
所定の人を第１のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第１のデータを取得する第１の取得手段と、
前記第１のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた第１の画像を生成して出力する生成手段と、
前記人を前記第１のタイミングより後の第２のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第２のデータを取得する第２の取得手段と、
前記第１のデータから前記第２のデータへの前記人の動作の変化の仕方に応じて、前記第２のデータに示される前記人の体の部位の位置を、前記人を表すアバタに反映させるか否かを決定する決定手段と、
反映させると決定した場合に、前記第２のデータに示される前記人の体の部位の位置を前記人を表すアバタに反映させた第２の画像を、前記第１の画像に代えて出力する出力手段と
を有することを特徴とする画像生成装置。
（付記２）
反映させないと決定した場合に、前記出力手段は、前記第１のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた前記第１の画像を継続して出力することを特徴とする付記１に記載の画像生成装置。
（付記３）
反映させないと決定した場合に、前記第１のデータと前記第２のデータとを用いて第３のデータを算出する算出手段を更に有し、
反映させないと決定した場合に、前記出力手段は、前記第３のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた第３の画像を、前記第１の画像に代えて出力することを特徴とする付記１に記載の画像生成装置。
（付記４）
前記生成手段は、
前記第１のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた前記第１の画像と、前記第２のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた前記第２の画像とを生成し、
前記決定手段は、
前記第１の画像から前記第２の画像への変化の仕方に応じて、前記第２の画像を前記第１の画像に代えて出力するか否かを決定することを特徴とする付記１に記載の画像生成装置。
（付記５）
前記決定手段は、
前記第１の画像から前記第２の画像への変化の仕方が、予め定められた条件を満たすか否かに応じて、反映させるか否かを決定することを特徴とする付記４に記載の画像生成装置。
（付記６）
前記決定手段は、
振る舞いの種別と接近傾向か回避傾向かの別とを対応付けて記憶する記憶部を参照し、前記第１のタイミングにおける前記人の振る舞い、前記第２のタイミングにおける前記人の振る舞いともに、他の人に対する接近傾向であった場合、または、前記第１のタイミングにおける前記人の振る舞い、前記第２のタイミングにおける前記人の振る舞いともに、前記他の人に対する回避傾向であった場合に、前記第２のデータに示される前記人の体の部位の位置を、前記人を表すアバタに反映させると決定することを特徴とする付記５に記載の画像生成装置。
（付記７）
前記決定手段は、前記第１のデータから前記第２のデータへの前記人の動作の変化が、所定の区間と抵触する変化であるか否かに応じて、反映させるか否かを決定し、
前記所定の区間は、前記人の動作の変化が発生しにくい区間を解析することで更新されることを特徴とする付記５に記載の画像生成装置。
（付記８）
所定の人を第１のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第１のデータを取得し、
前記第１のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた第１の画像を生成して出力し、
前記人を前記第１のタイミングより後の第２のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第２のデータを取得し、
前記第１のデータから前記第２のデータへの前記人の動作の変化の仕方に応じて、前記第２のデータに示される前記人の体の部位の位置を、前記人を表すアバタに反映させるか否かを決定し、
反映させると決定した場合に、前記第２のデータに示される前記人の体の部位の位置を前記人を表すアバタに反映させた第２の画像を、前記第１の画像に代えて出力する、
処理をコンピュータに実行させるための画像生成プログラム。
（付記９）
所定の人を第１のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第１のデータを取得し、
前記第１のデータにより示される前記人の体の部位の位置を、前記人を表すアバタに反映させた第１の画像を生成して出力し、
前記人を前記第１のタイミングより後の第２のタイミングでセンシングした結果得られた、該人の体の部位の位置を示す第２のデータを取得し、
前記第１のデータから前記第２のデータへの前記人の動作の変化の仕方に応じて、前記第２のデータに示される前記人の体の部位の位置を、前記人を表すアバタに反映させるか否かを決定し、
反映させると決定した場合に、前記第２のデータに示される前記人の体の部位の位置を前記人を表すアバタに反映させた第２の画像を、前記第１の画像に代えて出力する、
処理をコンピュータが実行する画像生成方法。
【０３１６】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０３１７】
１００              ：画像生成システム
１１０              ：画像生成装置
１１５              ：制約部
１１６              ：コンテンツ用ＤＢ
１１７              ：センサデータ用ＤＢ
１１８              ：定義情報用ＤＢ
１１９              ：ログ用ＤＢ
１２０、１３０      ：クライアント側システム
１２１、１３１      ：情報処理装置
１２２、１３２      ：情報処理部
１２３、１３３      ：情報提示装置
１２４、１３４      ：情報収集装置（頭部姿勢センサ）
１２５、１３５      ：情報収集装置（深度センサ）
１２６、１３６      ：情報収集装置（筋電位センサ）
２２０、２３０      ：アバタの画像
６０１              ：センサデータ処理部
６０２              ：アバタ骨格モデル候補生成部
６０３              ：時系列違和感判定部
６０４              ：アバタ骨格遷移決定部
６０５              ：アバタ骨格モデル管理部
８００              ：遷移区間定義情報
１０００            ：判定値ログテーブル
１１００            ：アバタ骨格ログテーブル
１２０１            ：社会的振る舞い管理部
１２０２            ：アバタ骨格モデル候補生成部（社会的振る舞い）
１２０３            ：アバタ骨格遷移決定部（社会的振る舞いの傾向）
１３００            ：ＡＰＩ定義情報
１４００            ：傾向定義情報
１７００            ：社会的振る舞いログテーブル
１８０１            ：第１の時系列違和感判定部
１８０２            ：第２の時系列違和感判定部
１９００            ：組み合わせ条件定義情報
２３０１            ：時系列違和感発生エリア抽出部
２３０２            ：アバタ骨格遷移決定部（エリア回避）
２４００            ：エリア情報
２５００            ：解析部
２７０１            ：低頻度遷移区間抽出部
２７０２            ：アバタ骨格遷移決定部（予測）
２７０３            ：アバタ骨格モデル管理部（予測）
２７０４            ：遷移区間更新部
【図１】
0006724582.tif 000002
【図２】
0006724582.tif 000003
【図３】
0006724582.tif 000004
【図４】
0006724582.tif 000005
【図５】
0006724582.tif 000006
【図６】
0006724582.tif 000007
【図７】
0006724582.tif 000008
【図８】
0006724582.tif 000009
【図９】
0006724582.tif 000010
【図１０】
0006724582.tif 000011
【図１１】
0006724582.tif 000012
【図１２】
0006724582.tif 000013
【図１３】
0006724582.tif 000014
【図１４】
0006724582.tif 000015
【図１５】
0006724582.tif 000016
【図１６】
0006724582.tif 000017
【図１７】
0006724582.tif 000018
【図１８】
0006724582.tif 000019
【図１９】
0006724582.tif 000020
【図２０】
0006724582.tif 000021
【図２１】
0006724582.tif 000022
【図２２】
0006724582.tif 000023
【図２３】
0006724582.tif 000024
【図２４】
0006724582.tif 000025
【図２５】
0006724582.tif 000026
【図２６】
0006724582.tif 000027
【図２７】
0006724582.tif 000028