(57)【要約】【課題】アバタを介して行われるコミュニケーションにおいて、相互の親密性のバランスを維持するようにアバタを動作させる。【解決手段】ユーザが実行した特定のアクションを検出した場合、アクションに対応付けてユーザの状態を記憶する記憶部を参照して、前記特定のアクションに対応する前記ユーザの状態を特定し、ユーザのアクション及び状態と、該ユーザがコミュニケーションをしている他のユーザのアクションを対応付けて記憶する記憶部を参照して、特定した前記ユーザの状態と一致するユーザの状態に対応付けられた他のユーザのアクション群を抽出し、抽出した前記アクション群と、前記ユーザに対して機械アバタが所定の期間に行ったアクションとを比較して、前記機械アバタのとるアクションを決定し、前記機械アバタに、決定した前記アクションの実行を指示する、処理をコンピュータに実行させる。【選択図】図７
2018073204.tif 000002
【特許請求の範囲】
【請求項１】
機械アバタのコミュニケーション対象として選択したユーザが実行した特定のアクションを検出した場合、ユーザごとに検出するアクションに対応付けてユーザの状態を記憶する記憶部を参照して、前記特定のアクションに対応する前記ユーザの状態を特定し、
ユーザのアクション及び状態と、該ユーザがコミュニケーションをしている他のユーザ、または機械アバタのアクションとを対応付けて記憶する記憶部を参照して、特定した前記ユーザの状態と一致、または類似するユーザの状態に対応付けられた他のユーザ、または機械アバタのアクション群を抽出し、
抽出した前記アクション群と、前記ユーザに対して前記機械アバタが所定の期間に行ったアクションとを比較して、前記機械アバタのとるアクションを決定し、
前記機械アバタに対して、決定した前記アクションの実行を指示する、
処理をコンピュータに実行させるためのアクション指示プログラム。
【請求項２】
特定した前記ユーザの状態は、
前記特定のアクションを検出した場合に前記ユーザによって行われる望ましい非言語動作、または、
前記特定のアクションを検出した場合に前記ユーザによって望ましい非言語動作が行われて、前記ユーザの状態が変化した場合の変化後の状態、
であることを特徴とする請求項１に記載のアクション指示プログラム。
【請求項３】
特定した前記ユーザの状態は、
前記特定のアクションを検出した場合に前記ユーザによって行われる望ましい社会的振る舞い、または、
前記特定のアクションを検出した場合に前記ユーザによって望ましい社会的振る舞いが行われ、ユーザの状態が変化した場合の変化後の状態、
であることを特徴とする請求項１に記載のアクション指示プログラム。
【請求項４】
特定した前記ユーザの状態と一致または類似するユーザの状態に対応付けられた他のユーザまたは機械アバタのアクション群を、前記ユーザが前記特定のアクションと一致または類似するアクションを実行した時間帯に近接する時間帯について前記記憶部を検索することで抽出することを特徴とする請求項１乃至３のいずれか１項に記載のアクション指示プログラム。
【請求項５】
特定した前記ユーザの状態と一致または類似するユーザの状態に対応付けられた他のユーザまたは機械アバタのアクション群Ｎ個のうちのＭ番目（１≦Ｍ≦Ｎ）のアクションと一致または類似するアクションを、前記ユーザに対して前記機械アバタが所定の期間に行った回数と、当該機械アバタが行ったアクションと近接する時間帯において、特定した前記ユーザの状態と一致または類似する状態へ前記ユーザの状態が変化した回数との比率を、前記Ｍ番目のアクションについての評価値として算出し、
前記Ｎ個のアクションについてのそれぞれの評価値に基づいて、評価値の高低によりＬ番目のアクションを、前記機械アバタがとるアクションに決定することを特徴とする請求項１乃至４のいずれか１項に記載のアクション指示プログラム。
【請求項６】
機械アバタのコミュニケーション対象として選択したユーザが実行した特定のアクションを検出した場合、ユーザごとに検出するアクションに対応付けてユーザの状態を記憶する記憶部を参照して、前記特定のアクションに対応する前記ユーザの状態を特定し、
ユーザのアクション及び状態と、該ユーザがコミュニケーションをしている他のユーザ、または機械アバタのアクションとを対応付けて記憶する記憶部を参照して、特定した前記ユーザの状態と一致、または類似するユーザの状態に対応付けられた他のユーザ、または機械アバタのアクション群を抽出し、
抽出した前記アクション群と、前記ユーザに対して前記機械アバタが所定の期間に行ったアクションとを比較して、前記機械アバタのとるアクションを決定し、
前記機械アバタに対して、決定した前記アクションの実行を指示する、
処理をコンピュータが実行するアクション指示方法。
【請求項７】
機械アバタのコミュニケーション対象として選択したユーザが実行した特定のアクションを検出した場合、ユーザごとに検出するアクションに対応付けてユーザの状態を記憶する記憶部を参照して、前記特定のアクションに対応する前記ユーザの状態を特定する特定手段と、
ユーザのアクション及び状態と、該ユーザがコミュニケーションをしている他のユーザ、または機械アバタのアクションとを対応付けて記憶する記憶部を参照して、特定した前記ユーザの状態と一致、または類似するユーザの状態に対応付けられた他のユーザ、または機械アバタのアクション群を抽出する抽出手段と、
抽出した前記アクション群と、前記ユーザに対して前記機械アバタが所定の期間に行ったアクションとを比較して、前記機械アバタのとるアクションを決定する決定手段と、
前記機械アバタに対して、決定した前記アクションの実行を指示する指示手段と
を有することを特徴とする画像生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクション指示プログラム、アクション指示方法及び画像生成装置に関する。
【背景技術】
【０００２】
従来より、仮想空間におけるアバタを介して、ユーザ同士で、あるいはユーザと機械との間でコミュニケーションを行うコミュニケーションサービスが知られている。
【０００３】
仮想空間においてアバタを介して、コミュニケーションを円滑に進め、相互の関係性を適切に構築するためには、実空間と同様、相互の親密性のバランスを維持するようにすることが重要である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１４−５１０３３６号公報
【特許文献２】特開２００５−１００３８２号公報
【特許文献３】特開２００８−２３３９４６号公報
【特許文献４】国際公開第２０１０／１３８５８２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このため、例えばユーザと機械とのコミュニケーションにおいては、ユーザの非言語動作（視線の交錯や身体的な近さ、身振り手振り、微笑み等のアクション）を解析し、解析結果を機械のアバタの動作に反映させることが求められる。
【０００６】
具体的には、ユーザが、相互の親密性のバランスを崩すような非言語動作を行った場合に、当該ユーザが、相互の親密性のバランスを維持するような非言語動作を行うように、機械のアバタを動作させることが求められる。
【０００７】
一つの側面では、アバタを介して行われるコミュニケーションにおいて、相互の親密性のバランスを維持するようにアバタを動作させることを目的としている。
【課題を解決するための手段】
【０００８】
一態様によれば、アクション指示プログラムは、
機械アバタのコミュニケーション対象として選択したユーザが実行した特定のアクションを検出した場合、ユーザごとに検出するアクションに対応付けてユーザの状態を記憶する記憶部を参照して、前記特定のアクションに対応する前記ユーザの状態を特定し、
ユーザのアクション及び状態と、該ユーザがコミュニケーションをしている他のユーザ、または機械アバタのアクションとを対応付けて記憶する記憶部を参照して、特定した前記ユーザの状態と一致、または類似するユーザの状態に対応付けられた他のユーザ、または機械アバタのアクション群を抽出し、
抽出した前記アクション群と、前記ユーザに対して前記機械アバタが所定の期間に行ったアクションとを比較して、前記機械アバタのとるアクションを決定し、
前記機械アバタに対して、決定した前記アクションの実行を指示する、
処理をコンピュータに実行させる。
【発明の効果】
【０００９】
アバタを介して行われるコミュニケーションにおいて、相互の親密性のバランスを維持するようにアバタを動作させることができる。
【図面の簡単な説明】
【００１０】
【図１】画像生成システムの全体構成の一例を示す図である。
【図２】仮想空間の画像の一例を示す図である。
【図３】アバタの画像の表現方法を説明するための第１の図である。
【図４】アバタの画像の表現方法を説明するための第２の図である。
【図５】画像生成装置のハードウェア構成の一例を示す図である。
【図６】ＨＭＤのハードウェア構成の一例を示す図である。
【図７】画像生成装置のアクション指示部の機能構成及び各ＤＢを示す第１の図である。
【図８】センサデータ用ＤＢに格納されるデータテーブルの一例を示す図である。
【図９】ログ用ＤＢに格納されたログテーブルの一例を示す第１の図である。
【図１０】ログ用ＤＢに格納されたログテーブルの一例を示す第２の図である。
【図１１】定義情報用ＤＢに格納される定義情報の一例を示す第１の図である。
【図１２】定義情報用ＤＢに格納される定義情報の一例を示す第２の図である。
【図１３】アクション指示部の機能を説明するための第１の図である。
【図１４】機械アバタの画像更新処理の第１のフローチャートである。
【図１５】アバタ表示情報のログデータの符号化方法の一例を示す図である。
【図１６】画像生成装置のアクション指示部の機能構成及び各ＤＢを示す第２の図である。
【図１７】ログ用ＤＢに格納されたログテーブルの一例を示す第３の図である。
【図１８】定義情報用ＤＢに格納される定義情報の一例を示す第３の図である。
【図１９】定義情報用ＤＢに格納される定義情報の一例を示す第４の図である。
【図２０】定義情報用ＤＢに格納される定義情報の一例を示す第５の図である。
【図２１】アクション指示部の機能を説明するための第２の図である。
【図２２】機械アバタの画像更新処理の第２のフローチャートである。
【図２３】アバタ表示情報のログデータ及び社会的振る舞いのログデータの符号化方法の一例を示す図である。
【図２４】画像生成装置のアクション指示部の機能構成及び各ＤＢを示す第３の図である。
【図２５】現在動作合成部による合成処理の詳細を示す図である。
【図２６】機械アバタの画像更新処理の第３のフローチャートである。
【図２７】画像生成装置のアクション指示部の機能構成及び各ＤＢを示す第４の図である。
【図２８】定義情報用ＤＢに格納される定義情報の一例を示す第６の図である。
【図２９】周波数解析部による周波数解析の一例を示す図である。
【図３０】機械アバタの画像更新処理の第４のフローチャートである。
【図３１】画像生成装置のアクション指示部の機能構成及び各ＤＢを示す第５の図である。
【図３２】定義情報用ＤＢに格納される定義情報の一例を示す第７の図である。
【図３３】機械アバタの画像更新処理の第５のフローチャートである。
【図３４】画像生成装置のアクション指示部の機能構成及び各ＤＢを示す第６の図である。
【図３５】切り替え動作合成部による合成処理の詳細を示す図である。
【図３６】機械アバタの画像更新処理の第６のフローチャートである。
【発明を実施するための形態】
【００１１】
はじめに、各実施形態における画像生成システムを説明する際に用いる用語の定義について簡単に説明する。以下の各実施形態において説明する画像生成システムは、互いに離間した場所にいるユーザ同士で、またはユーザと機械との間でコミュニケーションを行うための仮想空間を提供するシステムである。
【００１２】
ここでいう「仮想空間」とは、アバタの身体を骨格の位置や向きによって表現することができる空間を指す。このため、あるユーザが存在する実空間に、他のユーザのアバタがプロジェクションされ、実空間に存在するユーザ本人は、自身のアバタを見ることができないような空間も、仮想空間に含まれるものとする。
【００１３】
また、仮想空間において骨格によって身体の位置や向きが表現されるアバタのうち、実空間におけるユーザの非言語動作（アクション）と同期するように画像が生成されるアバタを、「ユーザアバタ」と称する。また、仮想空間において骨格によって身体の位置や向きが表現されるアバタのうち、コンピュータプログラムの指示により自律的に動作する機械のアバタを、「機械アバタ」と称する（ただし以下では、自律的に動作する機械自体も含めて、機械アバタと称する）。なお、「骨格」とは、仮想空間においてアバタの身体の各身体部位を示すオブジェクトであり、位置や向き等の情報を有している。
【００１４】
また、実空間におけるユーザの非言語動作のうち、コミュニケーション相手（コミュニケーション対象）に対する非言語動作を、「社会的振る舞い（Social  Behavior）」と称する。社会的振る舞いには、目を合わせる、同じ物をみる、相手の方に身体を向ける、相手に近づく、相手に微笑む等の各種非言語動作が含まれる。
【００１５】
続いて、各実施形態における画像生成システムの処理の概要について説明する。以下の各実施形態における画像生成システムは、仮想空間において機械アバタのコミュニケーション相手となるユーザの非言語動作を監視し、「特定の非言語動作」を行っていないかを判定する。そして、特定の非言語動作を行ったと判定した場合に、当該ユーザが、過去に特定の非言語動作を行った際にコミュニケーションを行っていたコミュニケーション相手の動作を参照する。そして、当該ユーザが、望ましい非言語動作（preferable  non-verbal  behavior）、及び望ましい非言語動作を含む動作系列を行うように、または、望ましい非言語動作を含む動作系列を行った後の状態（望ましいユーザ状態）となるように、当該コミュニケーション相手の動作に基づいて機械アバタの次の動作を決定する。なお、以下の各実施形態では、望ましい非言語動作を含む動作系列が行われたこと、及び、望ましいユーザ状態となったことを、合わせて、“望ましい変化後ユーザ状態”と呼ぶ。つまり、画像生成システムでは、ユーザが、“望ましい変化後ユーザ状態”となるための機械アバタの動作として、どのような動作が適切かを、ユーザの過去のコミュニケーション相手の動作を参照しながら判定し、機械アバタの次の動作に反映させる。
【００１６】
これにより、機械アバタは、ユーザの状態を機械アバタにとって望ましい状態に変化させるために、最も適切と判断した自らの動作を実行することができるようになる。この機械アバタの動作は、対話相手であるユーザにとって適切であること、及び、機械アバタ自身が実行する上で適切であることの両面から、適切さの判断が行われたうえで決定される。この結果、ユーザと機械アバタとのコミュニケーションを円滑に進め、相互の関係性を適切に構築することが可能となる。
【００１７】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１８】
［第１の実施形態］
＜画像生成システムの全体構成＞
はじめに、画像生成システムについて説明する。図１は、画像生成システムの全体構成の一例を示す図である。図１に示すように、画像生成システム１００は、サーバソフトウェアが配置される画像生成装置１１０と、クライアントアプリケーションソフトウェアが配置される情報処理装置１４１、１５１を含むクライアント側システム１４０、１５０とを有する。画像生成装置１１０と、クライアント側システム１４０、１５０とは、インターネットやＬＡＮ（Local  Area  Network）等に代表されるネットワーク１８０を介して接続される。
【００１９】
画像生成システム１００は、画像生成装置１１０と、クライアント側システム１４０、１５０とが、全体の処理を分割して実行することで、コミュニケーションサービスを提供する。ユーザ１６０（ユーザＩＤ＝“ｕｓｅｒＡ”）、ユーザ１７０（ユーザＩＤ＝“ｕｓｅｒＢ”）は、互いに離間した場所にて、画像生成システム１００が提供するコミュニケーションサービスを利用する。これにより、ユーザ１６０とユーザ１７０とは同じ仮想空間においてユーザアバタ（ユーザと対応付けた状態の画像）を介してコミュニケーションを行うことができる。
【００２０】
画像生成装置１１０は、ユーザ１６０、１７０をセンシングした結果得られたセンサデータを収集し、各種処理を行うサーバ装置である。
【００２１】
画像生成装置１１０には、サーバソフトウェアとしてのユーザアバタ基本機能プログラム、機械アバタ基本機能プログラム、アクション指示プログラムがインストールされている。これらのプログラムが実行されることで、画像生成装置１１０は、ユーザアバタ基本機能部、機械アバタ基本機能部及びアクション指示部１２５として機能する。
【００２２】
ユーザアバタ基本機能部には、センサデータ収集処理管理部１１１、ユーザアバタ情報表示処理部１１２、ユーザアバタ登録データ管理部１１３、ユーザアバタ表示履歴管理部１１４が含まれる。ユーザアバタ基本機能部は、コミュニケーションサービスを提供する際のユーザアバタに関する基本的な機能を実現する。
【００２３】
センサデータ収集処理管理部１１１は、ユーザ１６０、１７０をセンシングした結果得られたセンサデータを収集してセンサデータ用データベース（以下、ＤＢ（Database）と略す）１３２のデータテーブルに格納する。
【００２４】
ユーザアバタ情報表示処理部１１２は、センサデータ用ＤＢ１３２に格納されたセンサデータに基づいて、仮想空間におけるユーザアバタの画像を生成する。ユーザアバタ情報表示処理部１１２は、例えば、コンテンツ用ＤＢ１３１に格納されたアバタ骨格モデルを用いてユーザアバタの画像を生成する。アバタ骨格モデルとは、人型の画像であって、複数の骨格を用いて、ユーザの非言語動作に伴う各部位の動きを表現する画像である。ユーザアバタ情報表示処理部１１２は、各骨格について仮想空間における位置及び回転角度を算出し、算出した位置及び回転角度をアバタ骨格モデルに反映させることでユーザアバタの画像を生成する。
【００２５】
また、ユーザアバタ情報表示処理部１１２は、コンテンツ用ＤＢ１３１に格納された仮想空間の画像（背景画像）に、ユーザアバタの画像及び後述する機械アバタの画像を組み込みこむことで仮想空間用情報を生成（または更新）する。更に、ユーザアバタ情報表示処理部１１２は、生成または更新した仮想空間用情報を、クライアント側システム１４０、１５０に送信する。
【００２６】
ユーザアバタ登録データ管理部１１３は、ユーザアバタ情報表示処理部１１２が仮想空間用情報を生成して送信する際に用いる各種定義情報をコンテンツ用ＤＢ１３１、定義情報用ＤＢ１３３に登録する。
【００２７】
ユーザアバタ表示履歴管理部１１４は、ユーザアバタの画像の生成に用いられたログデータを、ログ用ＤＢ１３４のログテーブルに記録する。
【００２８】
機械アバタ基本機能部には、機械アバタ情報表示処理部１２１、機械アバタ登録データ管理部１２２、機械アバタ表示履歴管理部１２３が含まれる。機械アバタ基本機能部は、コミュニケーションサービスを提供する際の機械アバタに関する基本的な機能を実現する。
【００２９】
機械アバタ情報表示処理部１２１は、ユーザアバタ表示履歴管理部１１４によりログ用ＤＢ１３４に格納された、ユーザアバタの画像の生成に用いられたログデータを参照し、仮想空間における機械アバタの画像を生成する。機械アバタ情報表示処理部１２１は、コミュニケーション相手のユーザの非言語動作及び、機械アバタが有するコミュニケーション戦略に応じて、機械アバタが標準的な動作を行うように、機械アバタの画像を生成する。
【００３０】
また、機械アバタ情報表示処理部１２１は、生成した機械アバタの画像を、ユーザアバタ情報表示処理部１１２に通知する。これにより、ユーザアバタ情報表示処理部１１２により生成される仮想空間用情報に、機械アバタの画像が組み込まれることになる。
【００３１】
なお、機械アバタ情報表示処理部１２１は、アクション指示部１２５からの指示に基づいて、ユーザアバタ情報表示処理部１１２に通知する機械アバタの画像を変更する。
【００３２】
例えば、アクション指示部１２５にて生成した機械アバタの画像を、次の時刻で表示するようアクション指示部１２５から指示があった場合には、アクション指示部１２５にて生成した機械アバタの画像を、ユーザアバタ情報表示処理部１１２に通知する。
【００３３】
一方、標準的な動作を行うための機械アバタの画像を、次の時刻で表示するようアクション指示部１２５から指示があった場合には、機械アバタ情報表示処理部１２１にて生成した機械アバタの画像を、ユーザアバタ情報表示処理部１１２に通知する。
【００３４】
なお、アクション指示部１２５は、機械アバタの適切な画像を決定できなかった場合、機械アバタ情報表示処理部１２１に対して、標準的な動作を行うための機械アバタの画像を、次の時刻で表示するよう指示する。
【００３５】
機械アバタ登録データ管理部１２２は、機械アバタの画像を生成するのに用いる各種情報を、コンテンツ用ＤＢ１３１に登録する。
【００３６】
機械アバタ表示履歴管理部１２３は、機械アバタの画像の生成に用いられたログデータを、ログ用ＤＢ１３４のログテーブルに記録する。
【００３７】
アクション指示部１２５は、ユーザアバタの画像の生成に用いられたログデータを用いて、コミュニケーション相手のユーザの非言語動作を監視する。また、アクション指示部１２５は、監視結果に基づいて、コミュニケーション相手のユーザが、特定の非言語動作を行ったか否かを判定する。更に、アクション指示部１２５は、コミュニケーション相手のユーザが特定の非言語動作を行ったと判定した場合、当該ユーザが望ましい変化後ユーザ状態になるための、機械アバタの適切な画像を決定し、機械アバタ情報表示処理部１２１に指示する。
【００３８】
一方、アクション指示部１２５は、当該ユーザが望ましい変化後ユーザ状態になるための、機械アバタの適切な画像を決定できなかった場合、機械アバタ情報表示処理部１２１に対して、標準的な動作を行うための機械アバタの画像を表示するよう指示する。
【００３９】
このように、第１の実施形態における画像生成装置１１０では、コミュニケーション相手となるユーザが、特定の非言語動作を行ったと判定した場合、当該ユーザが、望ましい変化後ユーザ状態になるように、機械アバタの次の画像を決定する。つまり、ユーザが、望ましい変化後ユーザ状態になるようにするために、どのような動作が適切かを判定し、機械アバタの次の動作に反映させることができる。
【００４０】
続いて、クライアント側システムについて説明する。なお、クライアント側システム１４０とクライアント側システム１５０とは同様の構成を有していることから、ここでは、クライアント側システム１４０について説明する。
【００４１】
クライアント側システム１４０は、情報処理装置１４１、情報提示装置１４２、情報収集装置１４３〜１４５を有する。
【００４２】
情報処理装置１４１には、クライアントアプリケーションとしての情報処理プログラムがインストールされている。情報処理装置１４１は、情報収集装置１４３〜１４５から出力されるセンサデータを画像生成装置１１０に送信するとともに、画像生成装置１１０から送信される仮想空間用情報を受信し、情報提示装置１４２に出力する。
【００４３】
なお、第１の実施形態において、情報処理装置１４１は、ユーザ１６０を取り囲む環境埋め込み型端末に搭載されているものとして説明するが、情報処理装置１４１は、環境埋め込み型端末に搭載されていなくてもよい。例えば、情報処理装置１４１は、ＨＭＤ（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）等の揮発性メモリであり、主記憶部として機能する。ＲＡＭ５０３は、補助記憶部５０４に格納された各種プログラムがＣＰＵ５０１によって実行される際に展開される、作業領域を提供する。
【００７６】
補助記憶部５０４は、画像生成装置１１０にインストールされた各種プログラムや、各種プログラムを実行する際に用いる情報（各種コンテンツ、各種定義情報等）を格納する。また、補助記憶部５０４は、各種プログラムを実行することで取得される情報（センサデータ、ログデータ等）を格納する。
【００７７】
通信部５０５は、画像生成装置１１０に接続されるクライアント側システム１４０、１５０の情報処理装置１４１、１５１と通信するためのデバイスである。表示部５０６は、画像生成装置１１０の処理結果や処理状態を表示するデバイスである。操作部５０７は、画像生成装置１１０に対して各種指示を入力する際に用いられるデバイスである。
【００７８】
ドライブ部５０８は記録媒体５１０をセットするためのデバイスである。ここでいう記録媒体５１０には、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体５１０には、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等も含まれる。
【００７９】
なお、補助記憶部５０４にインストールされる各種プログラムは、例えば、配布された記録媒体５１０がドライブ部５０８にセットされ、記録媒体５１０に記録された各種プログラムがドライブ部５０８により読み出されることでインストールされる。あるいは、補助記憶部５０４にインストールされる各種プログラムは、通信部５０５を介してネットワーク１８０より受信することでインストールされてもよい。
【００８０】
なお、図５は、画像生成装置１１０のハードウェア構成として説明したが、クライアント側システム１４０に配された情報処理装置１４１及びクライアント側システム１５０に配された情報処理装置１５１のハードウェア構成も概ね同様である。
【００８１】
＜ＨＭＤのハードウェア構成＞
次に、ＨＭＤのハードウェア構成について説明する。図６は、ＨＭＤのハードウェア構成の一例を示す図である。図６に示すように、ＨＭＤは、ＣＰＵ６０１、ＲＯＭ６０２、ＲＡＭ６０３を備える。また、ＨＭＤは、補助記憶部６０４、通信部６０５を備える。ＨＭＤは、更に、操作部６０６、表示部１４２、頭部姿勢センサ１４３、Ｉ／Ｆ（Interface）部６０７を備え、これらの各部は、バス６０８を介して相互に接続されている。なお、ＨＭＤには、更に、音声出力装置（スピーカ等）及び音声取得装置（マイク等）が配されているが、第１の実施形態において、音声データの送受信の説明は省略するため、ここでも音声に関連する装置の説明は省略する。
【００８２】
ＣＰＵ６０１は、補助記憶部６０４にインストールされた各種プログラムを実行するコンピュータである。ＲＯＭ６０２は、不揮発性メモリである。ＲＯＭ６０２は、補助記憶部６０４に格納された各種プログラムをＣＰＵ６０１が実行するために必要な各種プログラム、データ等を格納する主記憶部である。具体的には、ＲＯＭ６０２はＢＩＯＳやＥＦＩ等のブートプログラム等を格納する。
【００８３】
ＲＡＭ６０３は、ＤＲＡＭやＳＲＡＭ等の揮発性メモリであり、主記憶部として機能する。ＲＡＭ６０３は、補助記憶部６０４に格納された各種プログラムがＣＰＵ６０１によって実行される際に展開される、作業領域を提供する。
【００８４】
補助記憶部６０４は、インストールされた各種プログラムや、各種プログラムを実行する際に用いる情報を格納する。通信部６０５は、情報処理装置１４１と通信するためのデバイスである。
【００８５】
操作部６０６は、ＨＭＤに対して各種指示を入力する際に用いられるデバイスである。表示部１４２は、画像生成装置１１０から情報処理装置１４１を介して送信された仮想空間用情報に含まれる仮想空間の画像を表示するデバイスである。
【００８６】
頭部姿勢センサ１４３は、実空間におけるユーザ１６０の非言語動作に含まれる“頭の向き”をセンシングし頭部姿勢データを出力する。
【００８７】
Ｉ／Ｆ部６０７は、筋電位センサ１４５と接続し、筋電位センサ１４５より出力された筋電位データを取得する。
【００８８】
取得した頭部姿勢データ、筋電位データ等のセンサデータは、通信部６０５により情報処理装置１４１に送信される。
【００８９】
なお、図６の例では、ＨＭＤが一体の装置として形成された場合について示したが、ＨＭＤは一体により形成されていても、別体の複数のデバイスにより形成されていてもよい。
【００９０】
＜画像生成装置のアクション指示部の機能構成及び各ＤＢの説明＞
次に、画像生成装置１１０のアクション指示部１２５の機能構成及び各ＤＢについて、図７を用いて説明する。図７は、画像生成装置のアクション指示部の機能構成及び各ＤＢを示す第１の図である。図７に示すように、アクション指示部１２５は、監視部７０１、類似時間帯検索部７０２、候補抽出部７０３、更新部７０４を有する。
【００９１】
また、センサデータ用ＤＢ１３２には、データテーブルとして、“筋電位データテーブル”、“頭部姿勢データテーブル”、“深度センサデータファイルテーブル”が格納される。定義情報用ＤＢ１３３には、定義情報として、“監視対象定義情報”、“コミュニケーション戦略定義情報”、“ユーザ状態確認用のＡＰＩ定義情報”が格納される。
【００９２】
更に、ログ用ＤＢ１３４には、ログテーブルとして、“アバタ表示情報に関するログテーブル”、“望ましい非言語動作に関するログテーブル”、“対話履歴に関するログテーブル”が含まれる。以下、各ＤＢに格納されるテーブルの詳細及びアクション指示部１２５が有する各部の機能の詳細について説明する。
【００９３】
＜各ＤＢに格納されるテーブルの説明＞
各ＤＢ（センサデータ用ＤＢ１３２、ログ用ＤＢ１３４、定義情報用ＤＢ１３３）に格納される各テーブルについて説明する。
【００９４】
（１）データテーブル
はじめに、センサデータ用ＤＢ１３２に格納されるデータテーブルについて説明する。図８に示すデータテーブルは、センサデータ収集処理管理部１１１により、センサデータ用ＤＢ１３２に格納される。
【００９５】
図８は、センサデータ用ＤＢに格納されるデータテーブルの一例を示す図である。このうち、図８（ａ）は、筋電位データが格納される筋電位データテーブル８１０を示している。図８（ａ）に示すように、筋電位データが格納される筋電位データテーブル８１０は、情報の項目として、“ＤＢ記録時刻”、“センサ記録時刻”、“ユーザ名”、“情報収集装置ＩＤ”、“筋電位活動値”を含む。
【００９６】
“ＤＢ記録時刻”には、クライアント側システム１４０、１５０から送信された筋電位データが、センサデータ用ＤＢ１３２に格納された時点で付加されるタイムスタンプが記録される。
【００９７】
“センサ記録時刻”には、筋電位センサ１４５、１５５がユーザ１６０、１７０をセンシングした時点で付加されたタイムスタンプが記録される。
【００９８】
“ユーザ名”には、筋電位センサ１４５、１５５によりセンシングされたユーザ１６０、１７０を識別する識別子が記録される。
【００９９】
“情報収集装置ＩＤ”には、筋電位センサを識別する識別子が記録される。筋電位センサは、センシングする部位によって異なる識別子を有している。図８（ａ）のデータ行のうちの１行目の“ＴｃＡ＿ｃ３＿ｚｙｇｏｍａｔｉｃｕｓ（ｃｈｅｅｋ）”は、頬をセンシングする筋電位センサの識別子である。また、図８（ａ）のデータ行のうちの２行目の“ＴｃＡ＿ｃ３＿ｏｒｂｉｃｕｌａｒｉｓ（ｕｎｄｅｒ  ｅｙｅ）”は、目の下をセンシングする筋電位センサの識別子である。更に、図８（ａ）のデータ行のうちの３行目の“ＴｃＡ＿ｃ３＿ｃｏｒｒｕｇａｔｏｒ（ｂｌｏｗ）”は、眉をセンシングする筋電位センサの識別子である。
【０１００】
“筋電位活動値”には、それぞれの筋電位センサでセンシングされた筋電位データの値が記録される。
【０１０１】
図８（ｂ）は、頭部姿勢データが格納される頭部姿勢データテーブル８２０を示している。図８（ｂ）に示すように、頭部姿勢データテーブル８２０に含まれる情報の項目は、筋電位データテーブル８１０に含まれる情報の項目と概ね同じである。
【０１０２】
なお、頭部姿勢データテーブル８２０の“情報収集装置ＩＤ”において、“ＴｃＡ＿ｃ１”とは、情報処理装置ＩＤが“ＴｃＡ”の情報処理装置に、情報収集装置の種類が“ｃ１”である情報収集装置が対応付けられていることを示している。具体的には、“ＴｃＡ＿ｃ１”は、情報処理装置１４１と対応付けられた頭部姿勢センサ１４３である。
【０１０３】
また、“頭部姿勢データ”には、頭部の位置を示すデータと、頭部の回転角度を示すデータとが記録される。
【０１０４】
図８（ｃ）は、深度センサデータが格納される深度センサデータファイルテーブル８３０を示している。図８（ｃ）に示すように、深度センサデータファイルテーブル８３０に含まれる情報の項目には、“ＤＢ記録時刻”、“ユーザ名”、“情報収集装置ＩＤ”の他、“センサ記録開始時刻”が含まれる。更に、深度センサデータファイルテーブル８３０に含まれる情報の項目には、“センサ記録終了時刻”、“深度センサデータ記録ファイルＵＲＩ”が含まれる。
【０１０５】
“センサ記録開始時刻”には、深度センサ１４４、１５４によりセンシングが開始された時刻が記録される。深度センサ１４４、１５４の場合、所定の記録長のファイルとして深度センサデータを出力する。“センサ記録開始時刻”には、それぞれのファイルに含まれる最初の深度センサデータをセンシングした時点で付加されたタイムスタンプが記録される。
【０１０６】
“センサ記録終了時刻”には、深度センサ１４４、１５４によりセンシングが終了した時刻が記録される。具体的には、所定の記録長のファイルに含まれる最後の深度センサデータをセンシングした時点で付加されたタイムスタンプが記録される。
【０１０７】
“深度センサデータ記録ファイルＵＲＩ”には、所定の記録長を有するファイルの格納場所を示すＵＲＩが記録される。
【０１０８】
なお、深度センサデータファイルテーブル８３０の“情報収集装置ＩＤ”において、“ＴｃＡ＿ｃ２”とは、情報処理装置ＩＤが“ＴｃＡ”の情報処理装置に、情報収集装置の種類が“ｃ２”である情報収集装置が対応付けられていることを示している。具体的には、“ＴｃＡ＿ｃ２”は、情報処理装置１４１と対応付けられた深度センサ１４４である。
【０１０９】
（２）ログテーブル
続いて、ログ用ＤＢ１３４に格納されるログテーブルについて説明する。図９及び図１０に示す各種ログテーブルは、ユーザアバタ表示履歴管理部１１４及び機械アバタ表示履歴管理部１２３により、ログ用ＤＢ１３４に格納される。
【０１１０】
図９は、ログ用ＤＢに格納されるログテーブルの一例を示す第１の図であり、アバタ表示情報に関するログテーブルを示す図である。アバタ表示情報に関するログテーブル９００は、アバタの画像を生成する際に用いたデータを格納する。
【０１１１】
図９に示すように、アバタ表示情報に関するログテーブル９００には、情報の項目として、“ＤＢ記録時刻”、“ユーザの現在時刻”、“ユーザ名”、“情報処理装置ＩＤ”、“ログタイプラベル”、“アバタ表示情報のログデータ”が含まれる。
【０１１２】
“ＤＢ記録時刻”には、アバタの画像を生成する際に用いたデータを、アバタ表示情報に関するログテーブル９００に格納した時刻が記録される。
【０１１３】
“ユーザの現在時刻”には、ユーザが非言語動作を行った時刻が記録される。“ユーザ名”には、非言語動作を行ったユーザを識別する識別子が記録される。
【０１１４】
“情報処理装置ＩＤ”には、非言語動作を行ったユーザを管理する情報処理装置を識別する識別子が記録される。
【０１１５】
“ログタイプラベル”には、アバタの画像を生成する際の表現方法を示す情報が記録される。図９の例では、アバタ骨格モデルを用いて非言語動作が表現されたことを示す“ｂｏｎｅ”と、メッシュを用いて非言語動作が表現されたことを示す“ｍｅｓｈ”とが記録されている。
【０１１６】
“アバタ表示情報のログデータ”には、アバタの画像を生成する際に用いたデータが、構造化されたリストとして記録される。
【０１１７】
図９のデータ行のうち１行目の例は、“２０１５年７月２７日１１時００分００秒０００”に、ユーザ名＝“ｕｓｅｒＡ”のユーザ１６０が非言語動作を行い、ユーザアバタの画像の頭部の骨格の位置座標が（０，１８，−１０）になったことを示している。また、ユーザアバタの画像の頭部の骨格の回転角度が（０，１，０）になったことを示している。また、当該位置座標及び回転角度を含む、アバタ表示情報のログデータが、ログ用ＤＢ１３４に“２０１５年７月２７日１１時００分００秒０２０”に記録されたことを示している。
【０１１８】
図１０は、ログ用ＤＢに格納されるログテーブルの一例を示す第２の図である。このうち、図１０（ａ）は、望ましい非言語動作に関するログテーブル１０１０を示す図である。望ましい非言語動作に関するログテーブル１０１０は、コミュニケーション戦略定義情報で定義されている、望ましい非言語動作を、当該ユーザが行ったか否かを示す情報が格納される。なお、特定の非言語動作をユーザが行った一定の期間のみ、図１０（ａ）に示す望ましい非言語動作に関するログテーブル１０１０へのログ記録処理を行う形態があってもよい。
【０１１９】
図１０（ａ）に示すように、望ましい非言語動作に関するログテーブル１０１０には、情報の項目として、“ＤＢ記録時刻”、“ユーザの現在時刻”、“ユーザ名”、“情報処理装置ＩＤ”、“望ましい非言語動作”、“確認結果”が含まれる。
【０１２０】
“ＤＢ記録時刻”には、ユーザが、望ましい変化後ユーザ状態に変化したか否かを示す確認結果が、望ましい非言語動作に関するログテーブル１０１０に格納された時刻が記録される。
【０１２１】
“ユーザの現在時刻”には、ユーザが、望ましい変化後ユーザ状態に変化した時刻が記録される。“ユーザ名”には、望ましい変化後ユーザ状態に変化したユーザを識別する識別子が記録される。
【０１２２】
“情報処理装置ＩＤ”には、望ましい変化後ユーザ状態に変化したユーザを管理する情報処理装置を識別する識別子が記録される。
【０１２３】
“望ましい非言語動作”には、望ましい変化後ユーザ状態が記録される。図１０の例は、望ましい変化後ユーザ状態として、ユーザが集中した状態に変化したか否かが確認されたことを示している。
【０１２４】
“確認結果”には、望ましい変化後ユーザ状態に変化したか否かを確認した場合の確認結果が記録される。図１０の例は、望ましい変化後ユーザ状態に変化したか否かを確認した結果、望ましい変化後ユーザ状態に変化したと判定されなかったこと（“ｆａｌｓｅ”）を示している。
【０１２５】
図１０（ｂ）は、対話履歴に関するログテーブル１０２０を示す図である。対話履歴に関するログテーブル１０２０は、仮想空間において行われた対話に関する情報が格納される。
【０１２６】
図１０（ｂ）に示すように、対話履歴に関するログテーブル１０２０には、情報の項目として、“対話の開始時刻”、“対話の終了時刻”、“ユーザ名１”、“ユーザ名２”が含まれる。
【０１２７】
“対話の開始時刻”には、対話を開始した時刻が記録される。“対話の終了時刻”には、対話を終了した時刻が記録される。
【０１２８】
“ユーザ名１”、“ユーザ名２”には、仮想空間においてユーザアバタを介して行われた対話に参加したユーザを識別する識別子が記録される。
【０１２９】
（３）定義情報
続いて、定義情報用ＤＢ１３３に格納される定義情報について説明する。図１１は、定義情報用ＤＢに格納される定義情報の一例を示す第１の図であり、監視対象定義情報１１００を示す図である。監視対象定義情報１１００は、特定の非言語動作をユーザが行ったことを検出するために、監視すべきユーザアバタの骨格、及び監視に用いるＡＰＩを定義する。
【０１３０】
監視対象定義情報１１００には、情報の項目として、“コミュニケーション相手のユーザ名”、“監視対象”、“トリガチェックＡＰＩ”が含まれる。
【０１３１】
“コミュニケーション相手のユーザ名”には、機械アバタがコミュニケーションを行うコミュニケーション相手のユーザを識別するための識別子が定義される。
【０１３２】
“監視対象”には、特定の非言語動作をユーザが行ったことを検出するために、監視すべきユーザアバタの骨格が定義される。
【０１３３】
“トリガチェックＡＰＩ”には監視に用いるＡＰＩが定義される。
【０１３４】
図１１に示した監視対象定義情報１１００のデータ行のうちの１行目の例は、ユーザ名＝“ｕｓｅｒＡ”のユーザアバタの“Ｂｏｎｅ＿Ｃｈｅｓｔ”の位置座標及び回転角度を、ＡＰＩ＝“ｉｓＳｉｇｈ”に入力することで、監視を行うことを示している。データ行のうちの１行目の例によれば、監視部７０１は、当該ユーザがため息をついたかを監視する。
【０１３５】
また、データ行のうちの２行目の例は、ユーザ名＝“ｕｓｅｒＡ”のユーザアバタの“Ｂｏｎｅ＿Ｈｅａｄ”等の位置座標及び回転角度を、ＡＰＩ＝“ｉｓＮａｐ”に入力することで監視を行うことを示している。データ行のうちの２行目の例によれば、監視部７０１は、当該ユーザが居眠りをしているかを監視する。
【０１３６】
また、データ行のうちの３行目の例は、ユーザ名＝“ｕｓｅｒＣ”のユーザアバタの“Ｂｏｎｅ＿Ｈｅａｄ”の位置座標及び回転角度を、ＡＰＩ＝“ｉｓＮａｐ”に入力することで監視を行うことを示している。データ行のうちの３行目の例によれば、監視部７０１は、当該ユーザが居眠りをしているかを監視する。
【０１３７】
更に、データ行のうちの４行目の例は、いずれかのユーザのユーザアバタの“Ｂｏｎｅ＿Ｈｅａｄ”、“Ｂｏｎｅ＿Ｃｈｅｓｔ”の位置座標及び回転角度を、ＡＰＩ＝“ｉｓＲｅｓｔｌｅｓ”に入力することで監視を行うことを示している。データ行のうちの４行目の例によれば、監視部７０１は、いずれかのユーザが、落ち着きのない状態であるかを監視する。
【０１３８】
図１２は、定義情報用ＤＢに格納される定義情報の一例を示す第２の図である。このうち、図１２（ａ）は、コミュニケーション戦略定義情報１２１０を示しており、図１２（ｂ）は、ユーザ状態確認用のＡＰＩ定義情報１２２０を示している。
【０１３９】
図１２（ａ）に示すように、コミュニケーション戦略定義情報１２１０は、コミュニケーション相手のユーザについて、当該ユーザが特定の非言語動作を行った場合における、機械アバタにとっての、望ましい変化後ユーザ状態を定義している。コミュニケーション戦略定義情報１２１０には、情報の項目として、“コミュニケーション相手のユーザ名”、“トリガとなる非言語動作”、“望ましい非言語動作”が含まれる。
【０１４０】
“コミュニケーション相手のユーザ名”には、機械アバタがコミュニケーションを行うコミュニケーション相手のユーザを識別するための識別子が定義される。
【０１４１】
“トリガとなる非言語動作”には、特定の非言語動作をユーザが行ったことを検出するための検出条件が定義される。“望ましい非言語動作”には、特定の非言語動作をユーザが行ったことが検出された場合の望ましい変化後ユーザ状態が定義される。
【０１４２】
図１２（ａ）のコミュニケーション戦略定義情報１２１０のデータ行のうちの１行目の例は、ユーザ名＝“ｕｓｅｒＡ”について、ＡＰＩ＝“ｉｓＳｉｇｈ”の出力が“ｔｒｕｅ”となる状態であった場合に、特定の非言語動作をユーザが行ったと判定することを示している。また、当該特定の非言語動作をユーザが行ったと判定した場合の望ましい変化後ユーザ状態が“Ｆｌｏｗ”であることを示している。
【０１４３】
また、データ行のうちの２行目の例は、いずれかのユーザについて、ＡＰＩ＝“ｉｓＲｅｓｔｌｅｓ”の出力が“ｔｒｕｅ”となる状態であった場合に、特定の非言語動作をユーザが行ったと判定することを示している。また、当該特定の非言語動作をユーザが行ったと判定した場合の望ましい変化後ユーザ状態が“Ｆｌｏｗ”であることを示している。
【０１４４】
一方、図１２（ｂ）に示すように、ユーザ状態確認用のＡＰＩ定義情報１２２０は、コミュニケーション相手のユーザが、ユーザ状態を確認するための確認方法を、システム内の呼び出し関数（ＡＰＩ）と、そのＡＰＩへの入力データと、そのＡＰＩからの出力データとによって定義している。ユーザ状態確認用のＡＰＩ定義情報１２２０には、情報の項目として、“ユーザ状態”、“入力対象データ”、“ユーザ状態確認用のＡＰＩ”が含まれる。
【０１４５】
“ユーザ状態”には、ＡＰＩからの出力データが定義される。当該ＡＰＩを望ましい変化後ユーザ状態を確認するために用いる場合には、望ましい変化後ユーザ状態が定義される。“入力対象データ”には、ＡＰＩへの入力データが定義される。当該ＡＰＩを望ましい変化後ユーザ状態を確認するために用いる場合には、望ましい変化後ユーザ状態を確認するのに用いる骨格が定義される。“ユーザ状態確認用のＡＰＩ”には、ＡＰＩの呼び出し関数名が定義される。当該ＡＰＩを望ましい変化後ユーザ状態を確認するために用いる場合には、当該確認の際に呼び出すＡＰＩの名前が定義される。
【０１４６】
図１２（ｂ）のユーザ状態確認用のＡＰＩ定義情報１２２０のデータ行のうちの１行目の例は、ｃｈｅｃｋＦｌｏｗというＡＰＩを用いることで、ユーザ状態が“Ｆｌｏｗ”であるか否かを確認できることを示している。また、当該ユーザの“Ｂｏｎｅ＿Ｈｅａｄ”、“Ｂｏｎｅ＿Ｓｐｉｎｅ”の位置座標及び回転角度を、ＡＰＩ＝“ｃｈｅｃｋＦｌｏｗ”に入力することで、当該確認を行うことを示している。
【０１４７】
データ行のうちの２行目の例は、ｃｈｅｃｋＳｍｉｌｅというＡＰＩを用いることで、ユーザ状態が“Ｓｍｉｌｅ”であるかどうかを確認できることを示している。また、当該ユーザの“Ｓｈａｐｅ＿Ｍｏｕｓｅ”の行列データを、ＡＰＩ＝“ｃｈｅｃｋＳｍｉｌｅ”に入力することで、当該確認を行うことを示している。
【０１４８】
＜アクション指示部の機能の説明＞
次に、画像生成装置１１０のアクション指示部１２５の各部の機能の詳細について説明する。図１３は、アクション指示部の機能を説明するための第１の図である。
【０１４９】
図１３に示すように、監視部７０１は、コミュニケーション相手となるユーザ（ここではユーザ１６０として説明する）のユーザアバタの画像を生成した際に用いたデータ（アバタ表示情報のログデータ）のうち、監視対象のログデータを監視する。いずれのデータを監視対象とするかは、定義情報用ＤＢ１３３に格納された監視対象定義情報１１００に基づいて決定する。
【０１５０】
監視部７０１は、監視対象のログデータについての監視結果に基づいて、ユーザ１６０が、特定の非言語動作を行ったか否かを判定する。また、監視部７０１は、ユーザ１６０が、特定の非言語動作を行ったと判定した場合、特定の非言語動作を行った時間帯を、類似時間帯検索部７０２に通知する。更に、監視部７０１は、コミュニケーション戦略定義情報１２１０を参照し、ユーザ１６０が特定の非言語動作を行った場合の望ましい変化後ユーザ状態を特定する。監視部７０１は、特定した望ましい変化後ユーザ状態を類似時間帯検索部７０２に通知する。
【０１５１】
具体例を挙げて説明する。監視部７０１は、時刻ｔ１−ｍから時刻ｔ１までのユーザ１６０のユーザアバタの画像２２０を生成した際に用いたＢｏｎｅ＿Ｃｈｅｓｔのログデータを、アバタ表示情報に関するログテーブル９００より取得し、ＡＰＩ＝“ｉｓＳｉｇｈ”に入力する。
【０１５２】
ここで、時刻ｔ１とは、仮想空間用情報を生成（更新）した更新時刻を表すものとする。また、時刻ｔ１−１とは、前回の仮想空間用情報の更新時刻を表し、時刻ｔ１＋１とは、次回の仮想空間用情報の更新時刻を表すものとする。したがって、時刻ｔ１―ｍとは、ｍ回前の仮想空間用情報の更新時刻を表す。なお、ここでいう更新時刻は、図９のＤＢ記録時刻を用いる形態があってもよい。
【０１５３】
入力の結果、“ｔｒｕｅ”が出力された場合、監視部７０１は、ユーザ１６０が特定の非言語動作を行った（ため息をついた）と判定する。ユーザ１６０がため息をついたと判定した場合、監視部７０１は、時刻ｔ１−ｍから時刻ｔ１までの時間帯を類似時間帯検索部７０２に通知する。また、監視部７０１は、コミュニケーション戦略定義情報１２１０を参照し、ユーザ１６０がため息をついた場合の望ましい変化後ユーザ状態が、“Ｆｌｏｗ”であることを特定する。監視部７０１は、特定した望ましい変化後ユーザ状態である“Ｆｌｏｗ”を類似時間帯検索部７０２に通知する。
【０１５４】
類似時間帯検索部７０２は、アバタ表示情報に関するログテーブル９００を参照し、監視部７０１より通知された時間帯のアバタ表示情報のログデータを読み出す。また、類似時間帯検索部７０２は、読み出したアバタ表示情報のログデータと類似するログデータ（アクション群）を、アバタ表示情報に関するログテーブル９００の中から検索する。具体的には、例えば、ため息をついたと判定された非言語動作に類似するログデータを検索する。
【０１５５】
また、類似時間帯検索部７０２は、検索したログデータに対応する時間帯以降の近接する時間帯について、望ましい非言語動作に関するログテーブル１０１０を参照する。参照の結果、類似時間帯検索部７０２は、ユーザ１６０が、望ましい変化後ユーザ状態に変化していたか否かを判定する。具体的には、例えば、ユーザ状態がＦｌｏｗへと変化したかどうかを判定する。
【０１５６】
更に、類似時間帯検索部７０２は、近接する時間帯において、ユーザ１６０が、望ましい変化後ユーザ状態に変化していたと判定した場合に、当該検索した時間帯を抽出し、候補抽出部７０３に通知する。なお、近接するいずれの時間帯においても、ユーザ１６０が望ましい変化後ユーザ状態に変化していなかったと判定した場合、類似時間帯検索部７０２は、標準的な動作を行うための機械アバタの画像を生成することを決定する。なお、類似時間帯検索部７０２による検索においては、ユーザ１６０本人の、一定期間より過去のログデータを検索対象に含めたり、システム内の全ユーザや、ユーザ１６０に類似するユーザのログデータを検索対象に含めたりする形態があってもよい。
【０１５７】
具体例を挙げて説明する。類似時間帯検索部７０２は、アバタ表示情報に関するログテーブル９００を参照する。また、類似時間帯検索部７０２は、ユーザ１６０について、時刻ｔ１−ｍから時刻ｔ１までの間のアバタ表示情報のログデータ（全ての骨格についての位置座標及び回転角度の時系列データ）を読み出す。なお、時刻ｔ１−ｍから時刻ｔ１までの全ての骨格についての位置座標及び回転角度の時系列データを、ここでは、「検索開始位置の時系列データ」と称する。
【０１５８】
続いて、類似時間帯検索部７０２は、アバタ表示情報に関するログテーブル９００における一定期間（例えば、過去１日間）のアバタ表示情報のログデータを参照し、検索開始位置の時系列データに類似している時系列データとなる時間帯を検索する。例えば、検索開始位置の時系列データが５秒間の時系列データであったとすると、時系列データの値をそのまま多次元のベクトルとして検索を行う。骨格の数が８０個であったとすると、類似時間帯検索部７０２は、骨格の位置座標についての８０次元のベクトルとして検索を行う。また、類似時間帯検索部７０２は、骨格の回転角度についての８０次元のベクトルとして検索を行う。
【０１５９】
検索の結果、図１３に示すように、時刻ｔａ〜時刻ｔａ＋ｎｓｅｃ、時刻ｔｂ〜時刻ｔｂ＋ｎｓｅｃ、時刻ｔｃ〜時刻ｔｃ＋ｎｓｅｃの時間帯を抽出したとする。なお、時刻ｔａ＋ｎｓｅｃとは、時刻ｔａからｎ秒後の仮想空間用情報の更新時刻を指す。
【０１６０】
類似時間帯検索部７０２は、抽出した各時間帯に近接する時間帯について、望ましい非言語動作に関するログテーブル１０１０を参照する。ここでは、抽出した各時間帯の開始時刻以降から３００［秒］以内の時間帯を、近接する時間帯として、望ましい非言語動作に関するログテーブル１０１０を参照する。
【０１６１】
例えば、類似時間帯検索部７０２は、望ましい非言語動作に関するログテーブル１０１０において、“ユーザの現在時刻”が、時刻ｔａ〜時刻ｔａ＋３００ｓｅｃの時間帯に含まれ、かつ“ユーザ名”がｕｓｅｒＡに対応する“Ｆｌｏｗ”の“確認結果”を参照する。参照の結果、“Ｆｌｏｗ”の“確認結果”が“ｆａｌｓｅ”となっていた場合、類似時間帯検索部７０２は、ユーザ１６０が、時刻ｔａ〜時刻ｔａ＋３００ｓｅｃの時間帯において、望ましい変化後ユーザ状態に変化しなかったと判定する。
【０１６２】
同様に、類似時間帯検索部７０２は、望ましい非言語動作に関するログテーブル１０１０において、“ユーザの現在時刻”が、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯に含まれ、かつ、“ユーザ名”がｕｓｅｒＡに対応する“Ｆｌｏｗ”の“確認結果”を参照する。参照の結果、“Ｆｌｏｗ”の“確認結果”が“ｔｒｕｅ”となっていた場合、類似時間帯検索部７０２は、ユーザ１６０が、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯において、望ましい変化後ユーザ状態に変化したと判定する。この場合、類似時間帯検索部７０２は、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯を、候補抽出部７０３に通知する。時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯は、過去１日間において、ユーザ１６０がため息をついた状態（“ｉｓＳｉｇｈ”の出力が“ｔｒｕｅ”となる状態）から、集中している状態（“ＩｓＦｌｏｗ”が“ｔｒｕｅ”の状態）に変化した時間帯であるといえる。
【０１６３】
同様に、類似時間帯検索部７０２は、望ましい非言語動作に関するログテーブル１０１０において、“ユーザの現在時刻”が、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯に含まれ、かつ、“ユーザ名”がｕｓｅｒＡに対応する“Ｆｌｏｗ”の“確認結果”を参照する。参照の結果、“Ｆｌｏｗ”の“確認結果”が“ｔｒｕｅ”となっていた場合、類似時間帯検索部７０２は、ユーザ１６０が、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯において、望ましい変化後ユーザ状態に変化したと判定する。この場合、類似時間帯検索部７０２は、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯を、候補抽出部７０３に通知する。時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯は、過去１日間において、ユーザ１６０がため息をついた状態（“ｉｓＳｉｇｈ”の出力が“ｔｒｕｅ”となる状態）から、集中している状態（“ＩｓＦｌｏｗ”が“ｔｒｕｅ”の状態）に変化した時間帯であるといえる。
【０１６４】
なお、本実施形態において、“ｉｓＳｉｇｈ”のように小文字ではじまる表現は、ユーザ状態を判定する関数を表す。一方、“ＩｓＦｌｏｗ”のように大文字ではじまる表現は、変数（ユーザ状態）を表す。したがって、“ＩｓＦｌｏｗ”という変数に“ｔｒｕｅ”が入っている場合には、ユーザ状態がＦｌｏｗであることを示し、“ＩｓＦｌｏｗ”という変数に“ｆａｌｓｅ”が入っている場合には、ユーザ状態がＦｌｏｗではないことを示す。
【０１６５】
候補抽出部７０３は、アバタ表示情報に関するログテーブル９００を参照し、類似時間帯検索部７０２より通知された時間帯に含まれるアバタ表示情報のログデータであって、ユーザ１６０のコミュニケーション相手のユーザまたは機械アバタのログデータを抽出する。候補抽出部７０３が抽出したログデータに含まれる各骨格の位置座標及び回転角度の時系列データを、以下では、「候補データ」と称する。候補抽出部７０３は、抽出した候補データを、更新部７０４に通知する。
【０１６６】
具体例を挙げて説明する。候補抽出部７０３は、類似時間帯検索部７０２より通知された時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯、及び、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯について、アバタ表示情報に関するログテーブル９００を参照する。また、候補抽出部７０３は、ユーザ１６０のコミュニケーション相手のユーザまたは機械アバタのログデータであって、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯、及び、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯のログデータを抽出する。
【０１６７】
なお、候補抽出部７０３は、ログデータを抽出するにあたり、対話履歴に関するログテーブル１０２０を参照する。対話履歴に関するログテーブル１０２０を参照することで、候補抽出部７０３は、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯において、ユーザ１６０がどのユーザまたは機械アバタとコミュニケーションを行っていたかを特定することができる。同様に、対話履歴に関するログテーブル１０２０を参照することで、候補抽出部７０３は、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯において、ユーザ１６０がどのユーザまたは機械アバタとコミュニケーションを行っていたかを特定することができる。
【０１６８】
ここで、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯において、ユーザ１６０が機械アバタＭ（例えば、画像２４０として表される機械アバタ）とコミュニケーションを行っていたとする。この場合、候補抽出部７０３は、アバタ表示情報に関するログテーブル９００から、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯の機械アバタＭのログデータを抽出する。
【０１６９】
なお、アバタ表示情報に関するログテーブル９００において、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯のログデータには、検索開始位置の時系列データに類似する時系列データの時間帯（「第１の時間帯」と称す）が含まれる。更に、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯のログデータには、ユーザ１６０が、望ましい変化後ユーザ状態に変化した時間帯（「第３の時間帯」と称す）が含まれる。したがって、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯について、候補抽出部７０３がアバタ表示情報に関するログテーブル９００から抽出する機械アバタＭのログデータは、第１の時間帯と第３の時間帯との間の「第２の時間帯」のログデータとなる。つまり、候補抽出部７０３は、第２の時間帯のログデータに含まれる各骨格の位置座標及び回転角度の時系列データを、候補データ１として更新部７０４に通知する。
【０１７０】
また、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯において、ユーザ１６０がユーザ１７０とコミュニケーションを行っていたとする。この場合、候補抽出部７０３は、アバタ表示情報に関するログテーブル９００から、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯のユーザ１７０のログデータを抽出する。
【０１７１】
なお、アバタ表示情報に関するログテーブル９００において、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯のログデータには、検索開始位置の時系列データに類似する時系列データの時間帯（第１の時間帯）が含まれる。更に、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯のログデータには、ユーザ１６０が、望ましい変化後ユーザ状態に変化した時間帯（第３の時間帯）が含まれる。したがって、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯について、候補抽出部７０３がアバタ表示情報に関するログテーブル９００から抽出するユーザ１７０のユーザアバタのログデータは、第１の時間帯と第３の時間帯との間の第２の時間帯のログデータとなる。つまり、候補抽出部７０３は、第２の時間帯のログデータに含まれる各骨格の位置座標及び回転角度の時系列データを、候補データ２として更新部７０４に通知する。
【０１７２】
更新部７０４は、候補抽出部７０３より通知された候補データの有効性を評価し、有効と評価した候補データに基づいて、時刻ｔ１＋１の機械アバタの画像を生成する。また、生成した時刻ｔ１＋１の機械アバタの画像を、機械アバタ情報表示処理部１２１に通知する。
【０１７３】
なお、更新部７０４は、候補データの有効性を評価するにあたり、過去に、候補データに類似するデータに基づいて生成した機械アバタの画像を表示したことがあるか否かを確認する。過去に表示したことがあると判定した場合には、更新部７０４は、表示したことで、ユーザ１６０が、望ましい変化後ユーザ状態に変化したか否かを確認する。更新部７０４は、確認結果に基づいて、候補データの有効性を評価し、有効と評価した候補データに基づいて生成した時刻ｔ１＋１の機械アバタの画像を、機械アバタ情報表示処理部１２１に通知する。
【０１７４】
なお、更新部７０４は、類似時間帯検索部７０２が、標準的な動作を行うための機械アバタの画像を生成することを決定していた場合には、機械アバタ情報表示処理部１２１に対して、標準的な動作を行うための機械アバタの画像を生成するよう指示する。
【０１７５】
更新部７０４の機能について、具体例を挙げて説明する。更新部７０４は、過去１週間分の対話履歴に関するログテーブル１０２０を参照し、ユーザ１６０と機械アバタとがコミュニケーションを行った時間帯を抽出する。また、更新部７０４は、過去１週間分のアバタ表示情報に関するログテーブル９００を参照し、抽出した時間帯におけるアバタ表示情報のログデータから導出される時系列データのうち、候補データ１及び候補データ２と同じまたは類似する時系列データを検索する。
【０１７６】
例えば、更新部７０４が、過去１週間の間に、候補データ１と同じまたは類似する時系列データを２箇所抽出したとする（時刻ｔｙ〜時刻ｔｙ＋ｎ、時刻ｔｚ〜時刻ｔｚ＋ｎ）。この場合、更新部７０４では、望ましい非言語動作に関するログテーブル１０１０を参照し、抽出した２箇所の時系列データそれぞれの後の時間帯において、ユーザ１６０が、望ましい変化後ユーザ状態に変化したか否かを判定する。
【０１７７】
ここで、抽出した２箇所の時系列データそれぞれの後の時間帯のうち、一方の時間帯において、ユーザ１６０が、望ましい変化後ユーザ状態に変化していたとする。この場合、更新部７０４は、候補データ１の評価値として、望ましい変化後ユーザ状態に変化した回数の比率（１／２）を算出する。
【０１７８】
一方、更新部７０４が、過去１週間の間に、候補データ２と同じまたは類似する時系列データを抽出しなかったとする。この場合、更新部７０４では、評価値として、望ましい変化後ユーザ状態に変化した回数の比率（０／０）を算出する。
【０１７９】
更新部７０４は、候補データ１の評価値と候補データ２の評価値とを比較し、候補データ１の評価値の方が大きいと判定すると、候補データ１に基づいて、時刻ｔ１＋１の機械アバタの画像を生成し、機械アバタ情報表示処理部１２１に通知する。
【０１８０】
なお、上記具体例では、ユーザ１６０と機械アバタとがコミュニケーションを行った時間帯を対象として、候補データ１及び候補データ２の評価を行った。しかしながら、評価時に、評価値０（一度も当該望ましい変化後ユーザ状態へ変化しなかった場合）を、最大の評価値とする実施の形態があってもよい。また、他のユーザと機械アバタとがコミュニケーションを行った時間帯を対象として、候補データ１及び候補データ２の評価を行うようにしてもよい。あるいは、ユーザ１６０と属性が類似しているユーザと機械アバタとがコミュニケーションを行った時間帯を対象として、候補データ１及び候補データ２の評価を行うようにしてもよい。
【０１８１】
＜機械アバタの画像更新処理＞
次に、機械アバタの画像更新処理の流れについて説明する。図１４は、機械アバタの画像更新処理の第１のフローチャートである。
【０１８２】
ステップＳ１４０１において、監視部７０１は、アバタ表示情報のログテーブル９００を参照し、ユーザ１６０のユーザアバタの画像の生成に用いられたデータのうち、監視対象のログデータを監視する。
【０１８３】
ステップＳ１４０２において、監視部７０１は、監視対象のログデータについての監視結果に基づいて、ユーザ１６０が、特定の非言語動作を行ったか否かを判定する。また、監視部７０１は、ユーザ１６０が、特定の非言語動作を行ったと判定した場合、特定の非言語動作を行った時間帯（時刻ｔ１−ｍから時刻ｔ１）を、類似時間帯検索部７０２に通知する。更に、監視部７０１は、ユーザ１６０が、特定の非言語動作を行ったと判定した場合、コミュニケーション戦略定義情報１２１０を参照することで、ユーザ１６０の望ましい変化後ユーザ状態を特定する。監視部７０１は、特定した望ましい変化後ユーザ状態を類似時間帯検索部７０２に通知する。
【０１８４】
ステップＳ１４０３において、類似時間帯検索部７０２は、アバタ表示情報に関するログテーブル９００を参照し、通知された時間帯のアバタ表示情報のログデータに類似するログデータを含む時間帯を抽出する。これにより、特定の非言語動作と類似する非言語動作が行われた時間帯が抽出される。
【０１８５】
ステップＳ１４０４において、類似時間帯検索部７０２は、抽出した時間帯に近接する時間帯において、ユーザ１６０が、望ましい変化後ユーザ状態に変化したか否かを判定する。
【０１８６】
近接する時間帯において、ユーザ１６０が望ましい変化後ユーザ状態に変化していなかったと判定した場合（ステップＳ１４０５においてＮｏ）、類似時間帯検索部７０２は、ステップＳ１４０６に進む。
【０１８７】
ステップＳ１４０６において、更新部７０４は、機械アバタ情報表示処理部１２１に対して、標準的な動作を行うための機械アバタの画像を生成するよう指示する。
【０１８８】
一方、近接する時間帯において、ユーザ１６０が望ましい変化後ユーザ状態に変化したと判定した場合（ステップＳ１４０５においてＹｅｓ）、類似時間帯検索部７０２は、ステップＳ１４０７に進む。
【０１８９】
ステップＳ１４０７において、候補抽出部７０３は、抽出された時間帯におけるユーザ１６０のコミュニケーション相手についてのアバタ表示情報のログデータに基づいて、候補データを抽出する。
【０１９０】
ステップＳ１４０８において、更新部７０４は、一定期間の過去に遡ってユーザ１６０と機械アバタとがコミュニケーションを行っている時間帯を参照する。
【０１９１】
ステップＳ１４０９において、更新部７０４は、参照した時間帯において、候補データと類似する時系列データを検索し、検索した時系列データの後の時間帯において、ユーザ１６０が、望ましい変化後ユーザ状態に変化していたか否かを判定する。また、更新部７０４は、判定結果に基づいて、候補データの有効性を評価する。これにより、機械アバタが過去に行った非言語動作に対するユーザの非言語動作に基づいて、候補データの有効性を評価することができる。
【０１９２】
ステップＳ１４１０において、更新部７０４は、有効な候補データに基づいて、時刻ｔ１＋１の機械アバタの画像を生成する。
【０１９３】
ステップＳ１４１１において、更新部７０４は、生成した機械アバタの画像を用いて表示を更新するよう、機械アバタ情報表示処理部１２１に指示する。
【０１９４】
以上の説明から明らかなように、第１の実施形態に係る画像生成システムは、コミュニケーション相手のユーザが特定の非言語動作を行った場合に、当該ユーザが過去にコミュニケーションを行ったユーザまたは機械アバタのログデータを参照する。そして、第１の実施形態に係る画像生成システムは、参照したログデータに基づいて、ユーザが望ましい変化後ユーザ状態になるのに有効な機械アバタの次の画像を生成する。
【０１９５】
これにより、第１の実施形態に係る画像生成システムによれば、コミュニケーション相手のユーザが、特定の非言語動作を行った場合に、機械アバタを適切に動作させることができる。
【０１９６】
この機械アバタの行う動作は、対話相手であるユーザにとって適切であること、及び、機械アバタ自身が実行する上で適切であること、の両方から適切さが判断されたうえで、決定される。
【０１９７】
これにより、第１の実施形態に係る画像生成システムによれば、ユーザと機械アバタとのコミュニケーションを円滑に進めることが可能となり、相互の関係を適切に構築することができる。
【０１９８】
つまり、第１の実施形態に係る画像生成システムによれば、対話相手のユーザが行う非言語動作に対して、機械アバタにとって、望ましい変化後のユーザ状態とは、何かをコミュニケーション戦略として持ち、当該対話相手のユーザが望ましい変化後の状態に導かれるよう、機械アバタの非言語動作を決定する。これにより、第１の実施形態に係る画像生成システムによれば、ユーザと機械アバタとのコミュニケーションを円滑に進めることが可能となり、相互の関係を適切に構築することができる。
【０１９９】
［第２の実施形態］
上記第１の実施形態では、類似時間帯検索部７０２が、アバタ表示情報に関するログテーブル９００のアバタ表示情報のログデータを参照し、検索開始位置の時系列データに類似する時系列データの時間帯を検索した。これに対して、第２の実施形態では、時系列データを５段階のラベルに分けることで符号化し、検索開始位置のラベルの変化と類似したラベルの変化が起こっている時間帯を検索する。
【０２００】
図１５は、アバタ表示情報のログデータの符号化方法の一例を示す図である。図１５の例は、アバタ表示情報のログデータのうち、骨格＝“Ｂｏｎｅ＿Ｃｈｅｓｔ”のＹ座標の位置の時系列データを示している。
【０２０１】
図１５に示すように、１秒ごとに符号化を行った場合、骨格＝“Ｂｏｎｅ＿Ｃｈｅｓｔ”のＹ座標の位置の時系列データは、時刻ｔ１から過去５秒間の間に、ラベル３→ラベル３→ラベル４→ラベル５→ラベル２と遷移することになる。このため、類似時間帯検索部７０２は、検索開始位置の時系列データを（３，３，４，５，２）と符号化することができる。
【０２０２】
同様の符号化方法により、アバタ表示情報に関するログテーブル９００に記録されたアバタ表示情報のログデータに基づいて導出される時系列データを符号化することで、類似時間帯検索部７０２は、符号化データを用いて、類似する時間帯を検索することができる。
【０２０３】
なお、類似時間帯検索部７０２は、符号化データを用いて類似時間帯を検索するにあたり、符号化データが１００％一致する時間帯を類似時間帯としてもよいし、符号化データが８０％一致する時間帯を類似時間帯としてもよい。つまり、一致するか否かの判定条件は、任意に設定できるものとする。
【０２０４】
また、類似時間帯検索部７０２は、類似時間帯を検索するにあたり、アバタ表示情報のログデータに含まれる全ての骨格について符号化データを生成し、全ての骨格について符号化データが一致する時間帯を類似時間帯として抽出する。ただし、類似時間帯検索部７０２は、一部の骨格（例えば、監視対象の骨格）について符号化データを生成し、当該骨格について符号化データが一致する時間帯を類似時間帯として抽出してもよい。また、類似時間帯検索部７０２は、一部の骨格の一部の位置座標または回転角度について符号化データを生成し、当該一部の骨格の一部の位置座標または回転角度についての符号化データが一致する時間帯を、類似時間帯として抽出してもよい。
【０２０５】
あるいは、類似時間帯検索部７０２は、全ての骨格について符号化データを生成し、骨格ごとに一致度を算出し、算出した一致度の統計値（例えば、平均値）に基づいて、類似時間帯を抽出してもよい。
【０２０６】
［第３の実施形態］
上記第１の実施形態では、類似時間帯検索部７０２が、アバタ表示情報に関するログテーブル９００を参照し、検索開始位置の時系列データに類似する時系列データの時間帯を検索した。これに対して、第３の実施形態では、更に、社会的振る舞いに関するログテーブルを参照し、検索開始位置の社会的振る舞いのログデータに類似するログデータの時間帯を検索する。これにより、第３の実施形態によれば、社会的振る舞いに基づく候補データを抽出することが可能となる。以下、第３の実施形態について、第１の実施形態との相違点を中心に説明する。
【０２０７】
＜画像生成装置のアクション指示部の機能構成及び各ＤＢの説明＞
はじめに、画像生成装置１１０のアクション指示部１２５の機能構成及び各ＤＢについて、図１６を用いて説明する。図１６は、画像生成装置のアクション指示部の機能構成及び各ＤＢを示す第２の図である。図１６に示すように、アクション指示部１２５は、監視部７０１、第１の類似時間帯検索部７０２、第２の類似時間帯検索部１６０１、第１の候補抽出部７０３、第２の候補抽出部１６０２、更新部１６０３を有する。
【０２０８】
なお、第１の類似時間帯検索部７０２は、図７の類似時間帯検索部７０２と同じ機能を有する。また、第１の候補抽出部７０３は、図７の候補抽出部７０３と同じ機能を有する。
【０２０９】
また、センサデータ用ＤＢ１３２には、図７で示した各種データテーブルが格納される。定義情報用ＤＢ１３３には、図７で示した各種定義情報に加え、“社会的振る舞い判定用のＡＰＩ定義情報”、“コミュニケーション戦略定義情報”、“ユーザ状態確認用のＡＰＩ定義情報”、“傾向定義情報”が格納される。
【０２１０】
更に、ログ用ＤＢ１３４には、図７で示した各種ログテーブルに加え、“社会的振る舞いに関するログテーブル”が含まれる。
【０２１１】
＜各ＤＢに格納されるテーブルの説明＞
次に、各ＤＢ（センサデータ用ＤＢ１３２、ログ用ＤＢ１３４、定義情報用ＤＢ１３３）に格納される各テーブルのうち、上記第１の実施形態において説明済みのテーブル以外のテーブルについて説明する。
【０２１２】
（１）ログテーブル
図１７は、ログ用ＤＢに格納されるログテーブルの一例を示す第３の図であり、社会的振る舞いに関するログテーブルを示す図である。社会的振る舞いに関するログテーブル１７００は、センサデータ収集処理管理部１１１が、センサデータを社会的振る舞い判定用のＡＰＩに入力することで算出した、社会的振る舞いに関する情報を記録したテーブルである。社会的振る舞いに関するログテーブル１７００は、センサデータ収集処理管理部１１１により、ログ用ＤＢ１３４に格納される。
【０２１３】
図１７に示すように、社会的振る舞いに関するログテーブル１７００には、情報の項目として、“ＤＢ記録時刻”、“社会的振る舞い判定時刻（開始）”、“社会的振る舞い判定時刻（終了）”が含まれる。更に、社会的振る舞いに関するログテーブル１７００には、情報の項目として、“ユーザ名”、“情報処理装置ＩＤ”、“社会的振る舞い”が含まれる。
【０２１４】
“ＤＢ記録時刻”には、社会的振る舞いのログデータが社会的振る舞いに関するログテーブル１７００に記録された時点で付加されたタイムスタンプが記録される。
【０２１５】
“社会的振る舞い判定時刻（開始）”、“社会的振る舞い判定時刻（終了）”には、ユーザが社会的振る舞いを開始した時刻と終了した時刻とが記録される。具体的には、社会的振る舞いが行われたと判定した際に用いた、所定の時間範囲のセンサデータの最初と最後のセンサデータにそれぞれ付加されたタイムスタンプが記録される。深度センサデータの場合には、社会的振る舞いが行われたと判定した際に用いた深度センサデータファイルに含まれる最初と最後の深度センサデータに付加されたタイムスタンプが記録される。ただし、深度センサデータファイルが長い場合には、社会的振る舞いのログデータの生成に実際に使用した深度センサデータのタイムスタンプに基づいて、社会的振る舞いを開始した時刻と終了した時刻とを正確に特定して記録するようにしてもよい。
【０２１６】
なお、センサデータ収集処理管理部１１１は、時刻ｔ１＋１にセンシングされたセンサデータより一定時間ｋだけ遡った時刻ｔ１＋１−ｋまでの時間範囲のセンサデータを用いて、時刻ｔ１＋１の社会的振る舞いのログデータを生成する。つまり、時間範囲＝時刻ｔ１＋１−ｋ〜時刻ｔ１＋１のセンサデータを用いて、時刻ｔ１＋１の社会的振る舞いのログデータを生成する。このため、例えば、センサデータ収集処理管理部１１１は、センサ記録終了時刻＝“２０１５／７／２７／１１：０１：０５．０００”（図８（ｃ）参照）より一定時間ｋだけ遡った深度センサデータを抽出する。そして、センサデータ収集処理管理部１１１は、当該抽出した深度センサデータに基づいて、当該時刻ｔ１＋１の社会的振る舞いを判定する。
【０２１７】
“ユーザ名”には、ユーザを識別する識別子が記録される。“情報処理装置ＩＤ”には、ユーザを管理する情報処理装置の識別子が記録される。
【０２１８】
“社会的振る舞い”には、更に、“タイプラベル”、“対象”、“ステージラベル”、“ログデータ”含まれる。
【０２１９】
“タイプラベル”には、社会的振る舞いの種類を示す情報が記録される。“対象”には、社会的振る舞いの対象となったユーザを識別する識別子が記録される。“ステージラベル”には、社会的振る舞いのステージラベルが記録される。社会的振る舞いのステージラベルは、社会的振る舞い判定用のＡＰＩにより出力され、記録される。例えば、社会的振る舞いが動きはじめの動作の場合には、ステージラベルとして“Ｓ（stroke）”が記録される。社会的振る舞いが動き始めた後のステイしている状態の場合には、ステージラベルとして“Ｈ（Hold）”が記録される。社会的振る舞いが元の位置に戻る動作の場合には、ステージラベルとして“Ｒ（Return）”が記録される。社会的振る舞いが準備動作の場合には、ステージラベルとして“Ｐ（Preparation）”が記録される。社会的振る舞いであるかどうかが不明瞭な動作や、社会的振る舞いの種類や、社会的振る舞いの相手、社会的振る舞いの長さ等が不明瞭な動作の場合には、ステージラベルとして“Ｕ（Unclear）”が記録される。
【０２２０】
“ログデータ”には、ユーザの行った社会的振る舞いがどのような骨格のログデータであったかが記録される。
【０２２１】
図１７のデータ行のうちの１行目の例は、ユーザ１６０（ユーザ名＝“ｕｓｅｒＡ”）が、ユーザ１７０（対象＝“ｕｓｅｒＢ”）に対して“ｂｏｄｙ−ｃｌｏｓｅ−ｔｏ”というタイプラベルの社会的振る舞いを行ったと判定したことを示している。また、図１７のデータ行のうちの１行目の例は、ユーザ１６０の行った社会的振る舞いにより、ユーザアバタの骨格（Ｂｏｎｅ＿Ｃｈｅｓｔ）が、位置を変更せずに、Ｘ軸に対して４［度］から１２［度］へと、＋８［度］回転したことを示している。
【０２２２】
（２）定義情報
図１８は、定義情報用ＤＢに格納される定義情報の一例を示す第３の図であり、社会的振る舞い判定用のＡＰＩ定義情報１８００を示す図である。社会的振る舞い判定用のＡＰＩ定義情報１８００は、センサデータ収集処理管理部１１１が、センサデータに基づいてユーザの社会的振る舞いを判定する際に用いるＡＰＩを定義する。
【０２２３】
図１８に示すように、社会的振る舞い判定用のＡＰＩ定義情報１８００には、情報の項目として、“情報収集装置ＩＤ”、“社会的振る舞い判定ＡＰＩ”、“センサデータ”、“社会的振る舞いタイプラベル”、“ＡＰＩ入力として必要な骨格”を含む。
【０２２４】
“情報収集装置ＩＤ”には、情報収集装置の種類を示す識別子が定義される。“社会的振る舞い判定ＡＰＩ”には、社会的振る舞いを判定する際に用いるＡＰＩが定義される。
【０２２５】
“センサデータ”には、社会的振る舞い判定ＡＰＩに入力されるセンサデータの種類が定義される。
【０２２６】
“社会的振る舞いタイプラベル”には、社会的振る舞い判定ＡＰＩにより判定される社会的振る舞いの種類が定義される。“ＡＰＩ入力として必要な骨格”には、社会的振る舞い判定ＡＰＩを用いて社会的振る舞いを判定するにあたり、当該ＡＰＩに入力すべき骨格の種類が定義される。
【０２２７】
図１８のデータ行のうちの１行目の例は、情報収集装置ＩＤ＝“ｃ２”により特定される深度センサ１４４によりセンシングされる深度センサデータが、“姿勢解析ＡＰＩ”に入力されることを示している。また、図１８のデータ行のうちの１行目の例は、ユーザの社会的振る舞いが、“ｂｏｄｙ−ｃｌｏｓｅ−ｔｏ”に該当するか否かが判定されることを示している。更に、図１８のデータ行のうちの１行目の例は、骨格＝“Ｂｏｎｅ−Ｃｈｅｓｔ”の動作に基づいて、“ｂｏｄｙ−ｃｌｏｓｅ−ｔｏ”に該当するか否かが判定されることを示している。
【０２２８】
また、図１８のデータ行のうちの２行目の例は、情報収集装置ＩＤ＝“ｃ２”により特定される深度センサ１４４によりセンシングされる深度センサデータが、“姿勢解析ＡＰＩ”に入力されることを示している。また、図１８のデータ行のうちの２行目の例は、ユーザ１６０の社会的振る舞いが、“ｂｏｄｙ−ｆａｒ−ｔｏ”に該当するか否かが判定されることを示している。更に、図１８のデータ行のうちの２行目の例は、骨格＝“Ｂｏｎｅ＿Ｃｈｅｓｔ”の動作に基づいて“ｂｏｄｙ−ｆａｒ−ｔｏ”に該当するか否かが判定されることを示している。
【０２２９】
また、図１８のデータ行のうちの３行目の例は、情報収集装置ＩＤ＝“ｃ１”により特定される頭部姿勢センサ１４３によりセンシングされる頭部姿勢データが、“顔向き解析ＡＰＩ”に入力されることを示している。また、図１８のデータ行のうちの３行目の例は、ユーザ１６０の社会的振る舞いが、“ｆａｃｅ−ｃｌｏｓｅ−ｔｏ”に該当するか否かが判定されることを示している。更に、図１８のデータ行のうちの３行目の例は、骨格＝“Ｂｏｎｅ＿Ｈｅａｄ”の動作に基づいて、“ｂｏｄｙ−ｃｌｏｓｅ−ｔｏ”に該当するか否かが判定されることを示している。
【０２３０】
更に、図１８のデータ行のうちの４行目の例は、情報収集装置ＩＤ＝“ｃ２”により特定される深度センサ１４４によりセンシングされる深度センサデータが、“姿勢解析ＡＰＩ”に入力されることを示している。また、図１８のデータ行のうちの４行目の例は、ユーザ１６０の社会的振る舞いが、“ｂｏｄｙｐａｒｔｓ−ｃｌｏｓｅ−ｔｏ”に該当するか否かが判定されることを示している。更に、図１８のデータ行のうちの４行目の例は、骨格＝“Ｂｏｎｅ＿ＬｅｆｔＨａｎｄ”及び“Ｂｏｎｅ＿ＲｉｇｈｔＨａｎｄ”の動作に基づいて、“ｂｏｄｙｐａｒｔｓ−ｃｌｏｓｅ−ｔｏ”に該当するかが判定されることを示している。
【０２３１】
図１９は、定義情報用ＤＢに格納される定義情報の一例を示す第４の図である。このうち、図１９（ａ）は、コミュニケーション戦略定義情報１９１０を示しており、図１９（ｂ）は、ユーザ状態確認用のＡＰＩ定義情報１９２０を示している。
【０２３２】
図１９（ａ）に示すように、コミュニケーション戦略定義情報１９１０は、コミュニケーション相手のユーザについて、当該ユーザが特定の非言語動作を行った場合における、機械アバタにとっての、望ましい変化後ユーザ状態を定義している。コミュニケーション戦略定義情報１９１０には、情報の項目として、“コミュニケーション相手のユーザ名”、“トリガとなる非言語動作”、“望ましい社会的振る舞い”が含まれる。
【０２３３】
“コミュニケーション相手のユーザ名”には、機械アバタがコミュニケーションを行うコミュニケーション相手のユーザを識別するための識別子が定義される。
【０２３４】
“トリガとなる非言語動作”には、特定の非言語動作をユーザが行ったことを検出するための検出条件が定義される。“望ましい社会的振る舞い”には、特定の非言語動作をユーザが行ったことを検出した場合の望ましい変化後ユーザ状態（望ましい社会的振る舞いが行われたこと、及び、望ましい社会的振る舞いが行われた後の状態になったこと）が定義される。
【０２３５】
図１９（ａ）のコミュニケーション戦略定義情報１９１０のデータ行のうちの１行目の例は、ユーザ名＝“ｕｓｅｒＡ”について、ＡＰＩ＝“ｉｓＳｉｇｈ”の出力が“ｔｒｕｅ”となる状態であった場合に、特定の非言語動作をユーザが行ったと判定することを示している。また、当該特定の非言語動作をユーザが行ったと判定した場合の望ましい変化後ユーザ状態が“ＳｏｃｉａｌＦｌｏｗ”であることを示している。
【０２３６】
一方、図１９（ｂ）に示すように、ユーザ状態確認用のＡＰＩ定義情報１９２０は、コミュニケーション相手のユーザが、ユーザ状態を確認するための確認方法、システム内の呼び出し関数（ＡＰＩ）と、そのＡＰＩへの入力データと、そのＡＰＩからの出力データとによって定義している。ユーザ状態確認用のＡＰＩ定義情報１９２０には、情報の項目として、“ユーザ状態”、“入力対象データ”、“ユーザ状態確認用のＡＰＩ”が含まれる。
【０２３７】
“ユーザ状態”には、ＡＰＩからの出力データが定義される。当該ＡＰＩを望ましい変化後ユーザ状態を確認するために用いる場合には、望ましい変化後ユーザ状態が定義される。“入力対象データ”には、ＡＰＩへの入力データが定義される。当該ＡＰＩを望ましい変化後ユーザ状態を確認するために用いる場合には、望ましい変化後ユーザ状態を確認するのに用いる骨格が定義される。“ユーザ状態確認用のＡＰＩ”には、ＡＰＩの呼び出し関数名が定義される。当該ＡＰＩを望ましい変化後ユーザ状態を確認するために用いる場合には、当該確認の際に呼び出すＡＰＩの名前が定義される。
【０２３８】
図１９（ｂ）のデータ行の１行目の例は、ｃｈｅｃｋＳｏｃｉａｌＦｌｏｗというＡＰＩを用いることで、ユーザ状態が“ＳｏｃｉａｌＦｌｏｗ”であるか否かを確認できることを示している。また、当該ユーザの社会的振る舞いのタイプラベルである“ｊｏｉｎｔａｔｔｅｎｔｉｏｎ−ｔｏ”、“ｕｐｐｅｒｂｏｄｙ−ｌｅａｎｆｏｒｗａｒｄ−ｔｏ”を入力対象データとして、当該ＡＰＩに入力することで、当該確認を行うことを示している。
【０２３９】
つまり、当該入力対象データを、当該ＡＰＩへ入力することで、“ＳｏｃｉａｌＦｌｏｗ”について、当該ＡＰＩより“ｔｒｕｅ”または“ｆａｌｓｅ”のいずれかが出力される。例えば、機械アバタが注意を向けているものと同じものにユーザが注意を傾けており、かつ、ユーザの上体が前傾している場合、“ＳｏｃｉａｌＦｌｏｗ”について、当該ＡＰＩからは“ｔｒｕｅ”が出力される。
【０２４０】
データ行のうちの２行目の例は、ｃｈｅｃｋＳｏｃｉａｌＳｍｉｌｅというＡＰＩを用いることで、ユーザ状態が“ＳｏｃｉａｌＳｍｉｌｅ”であるか否かを確認できることを示している。また、当該ユーザの社会的振る舞いのタイプラベルである“ｍｕｔｕａｌａｔｔｅｎｔｉｏｎ−ｔｏ”、“ｆａｃｅ−ｉｎｄｉｒｅｃｔ−ｔｏ”、“Ｓｈａｐｅ−Ｍｏｕｓｅ”を入力対象データとして、当該ＡＰＩに入力することで、当該確認を行うことを示している。
【０２４１】
つまり、ユーザが機械アバタと対話している時間帯の当該入力対象データを、当該ＡＰＩへ入力することで、“ＳｏｃｉａｌＳｍｉｌｅ”について、当該ＡＰＩより“ｔｒｕｅ”または“ｆａｌｓｅ”のいずれかが出力される。例えば、ユーザが機械アバタと相互に相手へ注意を向けており、かつ、ユーザの顔が機械アバタの方を向かず、かつ、ユーザが微笑んでいる、３つの状態が同時に成立した場合、当該ＡＰＩからは“ｔｒｕｅ”が出力される。
【０２４２】
なお、本実施形態においても、入力対象データは社会的振る舞いのタイプラベルのみでなく、第１の実施形態と同様に、この例で示したように、Ｓｈａｐｅ＿Ｍｏｕｓｅや、また、骨格等を、社会的振る舞いのタイプラベルと合わせて指定して使用する場合があってもよい。
【０２４３】
図２０は、定義情報用ＤＢに格納された定義情報の一例を示す第５の図である。図２０に示すように、傾向定義情報２０００には、情報の項目として、“社会的振る舞いのタイプラベル”、“接近傾向／回避傾向”が含まれる。
【０２４４】
“社会的振る舞いのタイプラベル”には、社会的振る舞いの種類が定義される。“接近傾向／回避傾向”には、社会的振る舞いの種類ごとに、接近傾向または回避傾向のいずれかが定義される。なお、傾向定義情報２０００の“社会的振る舞いのタイプラベル”に定義されるレコードは、以下のような動作を意味する。
【０２４５】
例えば、“ｂｏｄｙ−ｃｌｏｓｅ−ｔｏ”は、身体を相手に近づける動作を意味し、“ｂｏｄｙ−ｆａｒ−ｔｏ”は、身体を相手から遠ざける動作を意味する。“ｂｏｄｙｐａｒｔｓ−ｃｌｏｓｅ−ｔｏ”は、身体のパーツを相手に近づける動作を意味し、“ｂｏｄｙｐａｒｔｓ−ｆａｒ−ｔｏ”は、身体のパーツを相手から遠ざける動作を意味する。
【０２４６】
また、“ｍｕｔｕａｌａｔｔｅｎｔｉｏｎ−ｔｏ”は、お互いを見る動作を意味する。ただし、ここでいう、お互いを見る動作とは、お互いの顔を見つめ合う場合のみならず、例えば、一方が他方の手を見て、他方が一方の顔を見る動作等を含む。“ａｖｅｒｔｅｄａｔｔｅｎｔｉｏｎ−ｔｏ”は、相手から視線を外す動作を意味する。“ｊｏｉｎｔａｔｔｅｎｔｉｏｎ−ｔｏ”は、相手と同じものを見る動作を意味し、“ｆｏｌｌｏｗｉｎｇａｔｔｅｎｔｉｏｎ−ｔｏ”は、相手の見ているものを追いかけて見る動作を意味する。“ｓｈａｒｅｄａｔｔｅｎｔｉｏｎ−ｔｏ”は、相手と同じものを見ているとお互い知りながら見る動作を意味する。
【０２４７】
また、“ｆａｃｅ−ｃｌｏｓｅ−ｔｏ”は、顔を相手に近づける動作を意味し、“ｆａｃｅ−ｆａｒ−ｔｏ”は、顔を相手から遠ざける動作を意味する。“ｕｐｐｅｒｂｏｄｙ−ｌｅａｎｆｏｒｗａｒｄ−ｔｏ”は、上体を前傾する動作を意味し、“ｕｐｐｅｒｂｏｄｙ−ｌｅａｎｂａｃｋｗａｒｄ−ｔｏ”は、身体を後倒する動作を意味する。
【０２４８】
更に、“ｓｍｉｌｅ−ｔｏ”は、相手に対して微笑む動作を意味し、“ｎｏｓｍｉｌｅ−ｔｏ”は、相手に対して微笑まない動作を意味する。
【０２４９】
その他、図２０の傾向定義情報２０００に例示した動作以外の動作も、接近傾向の振る舞いまたは回避傾向の振る舞いとして、傾向定義情報２０００に定義されてもよい。例えば、接近傾向の振る舞いとして、顔を相手側に向ける動作や、身体を相手側に向ける動作が挙げられる。また、回避傾向の振る舞いとして、顔を相手から背ける動作や、身体を相手から背ける動作が挙げられる。
【０２５０】
＜アクション指示部の機能の説明＞
次に、画像生成装置１１０のアクション指示部１２５の各部の機能の詳細について説明する。図２１は、アクション指示部の機能を説明するための第２の図である。なお、図７を用いて説明済みの機能については、図２１において省略している。また、図１６に示した各部のうち、ここでは、特に、第２の類似時間帯検索部１６０１、第２の候補抽出部１６０２、更新部１６０３の機能について説明する。
【０２５１】
第２の類似時間帯検索部１６０１は、望ましい非言語動作に関するログテーブル１０１０を参照し、第１の類似時間帯検索部７０２が抽出した時間帯に近接する時間帯において、ユーザ１６０が、望ましい変化後ユーザ状態に変化したか否かを判定する。
【０２５２】
具体例を挙げて説明する。第１の類似時間帯検索部７０２が、時刻ｔａ〜時刻ｔａ＋ｎｓｅｃ、時刻ｔｂ〜時刻ｔｂ＋ｎｓｅｃ、時刻ｔｃ〜時刻ｔｃ＋ｎｓｅｃの時間帯を抽出したとする。第２の類似時間帯検索部１６０１は、抽出した各時間帯に近接する時間帯について、望ましい非言語動作に関するログテーブル１０１０を参照する。
【０２５３】
例えば、第２の類似時間帯検索部１６０１は、望ましい非言語動作に関するログテーブル１０１０において、下記の条件を満たす“確認結果”を参照する。
・“ユーザの現在時刻”が、時刻ｔａ〜時刻ｔａ＋３００ｓｅｃの時間帯に含まれる。
・“ユーザ名”がｕｓｅｒＡに対応する。
・“望ましい非言語動作”がＳｏｃｉａｌＦｌｏｗである。
【０２５４】
参照の結果、“確認結果”が“ｆａｌｓｅ”となっていた場合、第２の類似時間帯検索部１６０１は、ユーザ１６０が、望ましい変化後ユーザ状態に変化しなかったと判定する。
【０２５５】
同様に、第２の類似時間帯検索部１６０１は、望ましい非言語動作に関するログテーブル１０１０において、下記の条件を満たす“確認結果”を参照する。
・“ユーザの現在時刻”が、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯に含まれる。
・“ユーザ名”がｕｓｅｒＡに対応する。
・“望ましい非言語動作”がＳｏｃｉａｌＦｌｏｗである。
【０２５６】
参照の結果、“確認結果”が“ｔｒｕｅ”となっていた場合、第２の類似時間帯検索部１６０１は、ユーザ１６０が、望ましい変化後ユーザ状態に変化したと判定する。この場合、第２の類似時間帯検索部１６０１は、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯を、第２の候補抽出部１６０２に通知する。時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯は、過去１日間において、ユーザ１６０の状態がため息をついた状態から、協働の中で集中している状態に変化した時間帯である。なお、ため息をついた状態とは、“ｉｓＳｉｇｈ”の出力が“ｔｒｕｅ”となる状態である。また、説明に用いている協働の中で集中している状態とは、“ＳｏｃｉａｌＦｌｏｗ”の状態である。
【０２５７】
同様に、第２の類似時間帯検索部１６０１は、望ましい非言語動作に関するログテーブル１０１０において、下記の条件を満たす“確認結果”を参照する。
・“ユーザの現在時刻”が、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯に含まれる。
・“ユーザ名”がｕｓｅｒＡに対応する。
・“望ましい非言語動作”がＳｏｃｉａｌＦｌｏｗである。
【０２５８】
参照の結果、“確認結果”が“ｔｒｕｅ”となっていた場合、第２の類似時間帯検索部１６０１は、ユーザ１６０が、望ましい変化後ユーザ状態に変化したと判定する。この場合、第２の類似時間帯検索部１６０１は、時刻ｔｃ〜時刻ｔｃ＋３００の時間帯を、第２の候補抽出部１６０２に通知する。時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯は、過去１日間において、ユーザ１６０の状態がため息をついた状態から、協働して集中している状態に変化した時間帯である。
【０２５９】
第２の候補抽出部１６０２は、第２の類似時間帯検索部１６０１より通知された時間帯に基づいて第２の時間帯を識別する。
【０２６０】
第２の候補抽出部１６０２は、識別した第２の時間帯に基づいて、社会的振る舞いに関するログテーブル１７００を参照し、ユーザ１６０のコミュニケーション相手のユーザまたは機械アバタのログデータを抽出する。第２の候補抽出部１６０２は、抽出した社会的振る舞いのログデータに含まれる各骨格の位置座標及び回転角度の時系列データを、候補データとして更新部１６０３に通知する。
【０２６１】
なお、図２１の例は、時刻ｔｂ〜時刻ｔｂ＋３００ｓｅｃの時間帯のうちの第２の時間帯において、機械アバタＭのログデータが抽出されたことを示している（候補データ１）。具体的には、タイプラベル＝“ｆａｃｅ−ｄｉｒｅｃｔ”が“なし”から“あり”へと遷移し、タイプラベル＝“ｕｐｐｅｒ−ｂｏｄｙｐｏｓｅ−ｏｐｅｎ”が“あり”のまま推移した社会的振る舞いのログデータが抽出されたことを示している。
【０２６２】
また、図２１の例は、時刻ｔｃ〜時刻ｔｃ＋３００ｓｅｃの時間帯のうちの第２の時間帯において、ユーザ１７０のログデータが抽出されたことを示している（候補データ２）。具体的には、タイプラベル＝“ｆａｃｅ−ｄｉｒｅｃｔ”が“なし”のまま推移し、タイプラベル＝“ｂｏｄｙｐｏｓｉｔｉｏｎ−ｃｌｏｓｅ”が“なし”から“あり”へと遷移した社会的振る舞いのログデータが抽出されたことを示している。
【０２６３】
更新部１６０３は、第２の候補抽出部１６０２より通知された候補データの有効性を評価し、有効と評価した候補データに基づいて、時刻ｔ１＋１の機械アバタＭの画像を生成する。また、生成した時刻ｔ１＋１の機械アバタＭの画像を、機械アバタ情報表示処理部１２１に通知する。
【０２６４】
なお、更新部１６０３は、候補データのユーザに対する有効性を判定するために、過去に候補データに類似する社会的振る舞いを機械アバタがユーザ１６０に対して行ったことがあるかを確認する。行ったことがある場合、更新部１６０３は、ユーザ１６０が望ましい変化後ユーザ状態に変化したかどうかを確認する。ここでいう有効性とは、機械アバタがユーザ１６０に候補データに類似する社会的振る舞いを行った場合に、ユーザ１６０が望ましい変化後ユーザ状態に変化する可能性がどの程度あるかを示す。過去に候補データに類似する社会的振る舞いを機械アバタがユーザ１６０に対して行ったことがあると判定した場合、更新部１６０３は、ユーザ１６０に対して行ったことで、ユーザ１６０が望ましい変化後ユーザ状態に変化したか否かを確認する。更新部１６０３は、確認結果に基づいて、候補データの有効性を評価し、有効と評価した候補データに基づいて生成した時刻ｔ１＋１の機械アバタの画像を、機械アバタ情報表示処理部１２１に通知する。
【０２６５】
更新部１６０３の機能について、具体例を挙げて説明する。ここでは、第２の候補抽出部１６０２より通知された候補データの有効性を評価する場合について説明する。
【０２６６】
更新部１６０３は、過去１週間分の対話履歴に関するログテーブル１０２０を参照し、ユーザ１６０と機械アバタとがコミュニケーションを行った時間帯を抽出する。
【０２６７】
また、更新部１６０３は、過去１週間分の社会的振る舞いに関するログテーブル１７００を参照する。そして、更新部１６０３は、抽出した時間帯における社会的振る舞いのログデータから導出される時系列データであって、候補データ１及び候補データ２と同じまたは類似する時系列データを抽出する。
【０２６８】
例えば、更新部１６０３が、過去１週間の間に、候補データ１と同じまたは類似する時系列データを２箇所抽出したとする（時刻ｔｙ〜時刻ｔｙ＋ｎ、時刻ｔｚ〜時刻ｔｚ＋ｎ）。この場合、更新部１６０３では、望ましい非言語動作に関するログテーブル１０１０を参照し、抽出した２箇所の時系列データそれぞれの後の時間帯において、ユーザ１６０が、望ましい変化後ユーザ状態に変化したか否かを判定する。
【０２６９】
図２１の例は、抽出した２箇所の時系列データそれぞれの後の時間帯のうち、時刻ｔｙ〜時刻ｔｙ＋ｎの時間帯の後の時間帯においては、ユーザ１６０が、望ましい変化後ユーザ状態に変化しなかったことを示している。具体的には、時刻ｔｙ〜時刻ｔｙ＋ｎの時間帯の後の時間帯において、ユーザ１６０の社会的振る舞いは、“ｊｏｉｎｔａｔｔｅｎｔｉｏｎ−ｔｏ”及び“ｌｅａｎ−ｆｏｒｗａｒｄ−ｔｏ”とも“なし”のまま推移している。
【０２７０】
また、図２１の例は、抽出した２箇所の時系列データそれぞれの後の時間帯のうち、時刻ｔｚ〜時刻ｔｚ＋ｎの時間帯の後の時間帯においては、ユーザ１６０が、望ましい変化後ユーザ状態に変化したことを示している。具体的には、時刻ｔｚ〜時刻ｔｚ＋ｎの時間帯の後の時間帯において、ユーザ１６０の社会的振る舞いは、“ｊｏｉｎｔａｔｔｅｎｔｉｏｎ−ｔｏ”は“なし”のまま推移しているが、“ｌｅａｎ−ｆｏｒｗａｒｄ−ｔｏ”が“なし”から“あり”へと遷移している。この結果、更新部１６０３は、候補データ１について、評価値として、望ましい変化後ユーザ状態に変化した回数の比率（１／２）を算出する。
【０２７１】
一方、更新部１６０３は、過去１週間の間に、候補データ２と同じ時系列データを抽出しなかったとする。この場合、更新部１６０３は、候補データ２について、評価値として、望ましい変化後ユーザ状態に変化した回数の比率（０／０）を算出する。
【０２７２】
更新部１６０３は、候補データ１の評価値と候補データ２の評価値とを比較し、候補データ１の評価値の方が大きいと判定すると、候補データ１に基づいて、時刻ｔ１＋１の機械アバタの画像を生成し、機械アバタ情報表示処理部１２１に通知する。なお、評価値は、社会的振る舞いを行った回数が一度もない場合を高く評価する場合があってもよい。
【０２７３】
＜機械アバタの画像更新処理＞
次に、機械アバタの画像更新処理の流れについて説明する。図２２は、機械アバタの画像更新処理の第２のフローチャートであり、図１４に示す第１のフローチャートと平行して実行される。なお、図２２に示す各工程のうち、ステップＳ１４０１からステップＳ１４０３、ステップＳ１４０６、ステップＳ１４０８、ステップＳ１４１０〜Ｓ１４１１は、図１４の対応する工程と同じである。したがって、ここでは説明を省略する。
【０２７４】
ステップＳ２２０１において、第２の類似時間帯検索部１６０１は、第１の類似時間帯検索部７０２が抽出した時間帯に近接する時間帯において、ユーザ１６０が、望ましい変化後ユーザ状態に変化したか否かを判定する。
【０２７５】
近接する時間帯において、ユーザ１６０が望ましい変化後ユーザ状態に変化していなかったと判定した場合（ステップＳ２２０２においてＮｏ）、第２の類似時間帯検索部１６０１は、ステップＳ１４０６に進む。
【０２７６】
一方、近接する時間帯において、ユーザ１６０が望ましい変化後ユーザ状態に変化したと判定した場合（ステップＳ２２０２においてＹｅｓ）、第２の類似時間帯検索部１６０１は、ステップＳ２２０３に進む。
【０２７７】
ステップＳ２２０３において、第２の候補抽出部１６０２は、抽出された時間帯におけるユーザ１６０のコミュニケーション相手についての社会的振る舞いのログデータに基づいて、候補データを抽出する。
【０２７８】
ステップＳ２２０４において、更新部１６０３は、ステップＳ１４０８において参照した時間帯において、候補データと類似する時系列データを検索し、検索した時系列データの後の時間帯における、ユーザ１６０の社会的振る舞いを識別する。また、更新部１６０３は、識別した社会的振る舞いに基づいて、ユーザ１６０が、望ましい変化後ユーザ状態に変化していたか否かを判定し、判定結果に基づいて、候補データの有効性を評価する。
【０２７９】
以上の説明から明らかなように、第３の実施形態に係る画像生成システムは、コミュニケーション相手のユーザが特定の非言語動作を行った場合に、当該ユーザが過去にコミュニケーションを行ったユーザまたは機械アバタの社会的振る舞いを参照する。そして、第３の実施形態に係る画像生成システムは、参照した社会的振る舞いに基づいて、望ましい変化後ユーザ状態にするのに有効な機械アバタの次の画像を生成する。
【０２８０】
このように、社会的振る舞いを参照することで、候補データをより多く抽出することが可能になる。例えば、手を上げるという非言語動作であっても、上げるスピードや角度によって、アバタ骨格モデルの骨格の位置座標や回転角度は異なってくる。つまり、ユーザの目から見れば同じ非言語動作であっても、アバタ表示情報のログデータは完全に同じになるとは限らない。これに対して、社会的振る舞いのログデータは、コミュニケーション相手に対する非言語動作を示しているので、相手のいる方向へ手を上げるという同じような非言語動作であれば、同じ社会的振る舞いとして捉えることができる。この結果、機械アバタの画像更新処理において、社会的振る舞いを参照することで、第１の実施形態では抽出できなかった非言語動作も、候補データとして抽出することができる。
【０２８１】
［第４の実施形態］
上記第３の実施形態では、更新部１６０３が、アバタ表示情報に関するログテーブル９００または社会的振る舞いに関するログテーブル１７００を参照し、候補データと同じまたは類似する時系列データを検索した。
【０２８２】
これに対して、第４の実施形態では、候補データを符号化するとともに、アバタ表示情報のログデータ及び社会的振る舞いのログデータを符号化し、同じまたは類似する符号化データを検索する。
【０２８３】
図２３は、アバタ表示情報のログデータ及び社会的振る舞いのログデータの符号化方法の一例を示す図である。図２３において、グラフ２３１０は、機械アバタの各骨格のうち、“Ｂｏｎｅ＿Ｃｈｅｓｔ”のＹ座標の位置の時系列データを示している。
【０２８４】
なお、アバタ表示情報のログデータの符号化方法（５段階のラベルにわけることで符号化する方法）については、上記第２の実施形態において説明済みであるため、ここでは説明を省略する。
【０２８５】
一方、グラフ２３２０は、機械アバタのユーザ１６０（ユーザＩＤ＝“ｕｓｅｒＡ”）に対する社会的振る舞いのうち、“ｂｏｄｙ−ｃｌｏｓｅ−ｔｏ”のステージラベルの変化を示している。
【０２８６】
グラフ２３２０に示すように、第４の実施形態では、ステージラベルを１更新周期ごとに、３段階のラベルに符号化する。具体的には、ステージラベル＝“ｆａｌｓｅ”の場合には、ラベル１に符号化し、ステージラベル＝“Ｐ”、“Ｓ”、“Ｈ”、“Ｒ”の場合には、ラベル２に符号化する。また、ステージラベル＝“Ｕ”の場合には、ラベル３に符号化する。
【０２８７】
これにより、時刻ｔｙ＋１〜時刻ｔｙ＋ｎ−１の間の、機械アバタＭの社会的振る舞いのログデータを、（２，２，・・・１，１）と符号化することができる。なお、時刻ｔｙより前は、ユーザ１６０がため息をついた状態（“ｉｓＳｉｇｈ”の出力が“ｔｒｕｅ”となる状態）であり、時刻ｔｙ＋ｎより後は、ユーザ１６０が集中している状態（“ＳｏｃｉａｌＦｌｏｗ”の状態）である。
【０２８８】
図２３のグラフ２３１０及びグラフ２３２０の右側に、時刻ｔｙ＋１〜時刻ｔｙ＋ｎ−１の間のアバタ表示情報のログデータ及び社会的振る舞いのログデータを符号化した符号化データの例を示す。
【０２８９】
このように、アバタ表示情報のログデータ及び社会的振る舞いのログデータを符号化することで、更新部１６０３は、候補データと同じまたは類似するデータを検索するにあたり、符号化データを用いて検索することが可能となる。
【０２９０】
なお、上記説明では、社会的振る舞いのログデータを符号化するにあたり、ステージラベルを３段階のラベルに符号化したが、符号化方法はこれに限定されず、ステージラベルと同じ５段階のラベルに符号化してもよい。
【０２９１】
［第５の実施形態］
上記第３の実施形態において更新部１６０３は、ユーザ１６０が、望ましい変化後ユーザ状態に変化したか否かに応じて算出した評価値に基づいて、候補データの有効性を評価した。これに対して、第５の実施形態では、候補データと該候補データに類似する時系列データとの間の距離（類似度）を算出し、算出した距離の平均値を用いて評価値を重み付けすることで、重み付け評価値を算出する。
【０２９２】
なお、重み付け評価値の算出を、具体例を用いて説明するにあたり、候補データ１に類似する時系列データとして、第５の実施形態では、次の２つの候補データがある場合について説明する。
【０２９３】
１つの候補データは、ユーザＰのログデータをもとに抽出されたものであり、１つの候補データはユーザＱのログデータをもとに抽出されたものである。なお、それぞれの非言語動作群の候補データを、ＳＶｐｃ、ＳＶｑｃと表す。また、例えば、過去１週間の間に、機械アバタＭがユーザ１６０に対して、候補データＳＶｐｃと類似の非言語動作を行ったケースは６回、候補データＳＶｑｃと類似の非言語動作を行ったケースは２回あったとする。ＳＶｐｃと類似した６回の時間帯の機械アバタＭの社会的振る舞い群を、ＳＶｍｐ１、ＳＶｍｐ２、・・・ＳＶｍｐ６とする。同様に、ＳＶｑｃと類似した２回の時間帯の機械アバタＭの社会的振る舞い群を、ＳＶｍｑ１、ＳＶｍｑ２とする。
【０２９４】
第５の実施形態において、更新部１６０３は、ユーザＰの非言語動作群の候補データである“ＳＶｐｃ”の内訳を解析する。具体的には、更新部１６０３は、ＳＶｐｃが１００秒の社会的振る舞いのログデータであったとした場合、接近傾向の動作が占める時間が、５０秒であれば、接近傾向の動作が占める比率＝０．５と算出する。また、更新部１６０３は、回避傾向の動作が占める時間が、３０秒であれば、回避傾向の動作が占める比率＝０．３と算出する。接近傾向の動作が占める比率、及び、回避傾向の動作が占める比率を算出するのは、１つの時間帯に行われた非言語動作群と、複数の時間帯に行われた非言語動作群の類似を算出したい本実施形態において、一時間帯の中では、複数の非言語動作が行われるからである。つまり、上記比率を算出することで、一時間帯の中で行われる非言語動作群の中に含まれる社会的振る舞いの傾向を数値的に評価できるからである。
【０２９５】
例えば、２つの時間帯、それぞれに行われた非言語動作に含まれる接近行動の比率と回避傾向の比率の両者が近い場合、当該２つの非言語動作群の中に含まれる社会的振る舞いの傾向が近いため、その２つの時間帯の非言語動作は類似していたものと判断できる。
【０２９６】
そこで、更新部１６０３は、まず、ユーザＰの非言語動作群の候補データＳＶｐｃに類似した６回の時間帯の機械アバタの社会的振る舞いのログデータ群ＳＶｍｐ１〜ＳＶｍｐ６について、接近傾向の動作が占める比率と、回避傾向の動作が占める比率とを算出する。同様に、ユーザＱの非言語動作群の候補データＳＶｑｃに類似した２回の時間帯の機械アバタの社会的振る舞いのログデータ群ＳＶｍｑ１、ＳＶｍｑ２について、それぞれ、接近傾向の動作が占める比率と、回避傾向の動作が占める比率とを算出する。
【０２９７】
続いて、更新部１６０３は、ＳＶｐｃの接近傾向の比率と、ＳＶｍｐ１、ＳＶｍｐ２、ＳＶｍｐ３、ＳＶｍｐ４、ＳＶｍｐ５、ＳＶｍｐ６それぞれの接近傾向の比率との距離を算出する。また、更新部１６０３は、ＳＶｐｃの回避傾向の比率と、ＳＶｍｐ１、ＳＶｍｐ２、ＳＶｍｐ３、ＳＶｍｐ４、ＳＶｍｐ５、ＳＶｍｐ６それぞれの回避傾向の比率との距離を算出する。
【０２９８】
同様に、更新部１６０３は、ＳＶｑｃの接近傾向の比率と、ＳＶｍｑ１、ＳＶｍｑ２それぞれの接近傾向の比率との距離を算出する。また、更新部１６０３は、ＳＶｑｃの回避傾向の比率と、ＳＶｍｑ１、ＳＶｍｑ２それぞれの回避傾向の比率との距離を算出する。
【０２９９】
また、更新部１６０３は、接近傾向の比率について算出した距離について平均値を算出するとともに、回避傾向の比率について算出した距離について平均値を算出する。
【０３００】
更に、更新部１６０３は、候補データ１の評価値及び候補データ２の評価値を、それぞれ、算出した平均値を用いて重み付けし、重み付け評価値を算出する。
【０３０１】
更新部１６０３の上記機能について、具体例を挙げて説明する。ＳＶｐｃの接近傾向の比率＝０．５、ＳＶｍｐ１、ＳＶｍｐ２、ＳＶｍｐ３、ＳＶｍｐ４、ＳＶｍｐ５、ＳＶｍｐ６それぞれの接近傾向の比率＝（０．７，０．３，０．９，０，０，０．１）であるとする。この場合、ＳＶｐｃとの接近傾向の距離＝（０．２，−０．２，０．４，−０．５，−０．５，−０．４）となる。この結果、ＳＶｐｃの接近傾向の比率と、ＳＶｍｐ１〜ＳＶｍｐ６の接近傾向の比率との間の距離の平均値は、−０．１６となる。
【０３０２】
また、ＳＶｐｃの回避傾向の比率＝０．３、ＳＶｍｐ１、ＳＶｍｐ２、ＳＶｍｐ３、ＳＶｍｐ４、ＳＶｍｐ５、ＳＶｍｐ６それぞれの回避傾向の比率＝（０．４，０．２，０．１，０．５，０．９，０．７）であるとする。この場合、ＳＶｐｃとの回避傾向の距離＝（０．１，−０．１，−０．２，０．２，０．６，０．４）となる。この結果、ＳＶｐｃの回避傾向の比率と、ＳＶｍｐ１〜ＳＶｍｐ６の回避傾向の比率との間の距離の平均値は、０．１６となる。
【０３０３】
同様に、ＳＶｑｃの接近傾向の比率と、ＳＶｍｑ１〜ＳＶｍｑ２の接近傾向の比率との間の距離の平均値が、０．３と算出されたとする。
【０３０４】
また、ＳＶｑｃの回避傾向の比率と、ＳＶｍｑ１〜ＳＶｍｑ２の回避傾向の比率との間の距離の平均値が、０．１６と算出されたとする。
【０３０５】
この結果、更新部１６０３は、候補データ１の評価値（ここでは、“３／６”とする）を重み付けし、重み付け評価値＝（３／６）×（１−｜−０．１６｜×｜０．１６｜）を算出する。同様に、更新部１６０３は、候補データ２の評価値（ここでは、“１／２”とする）を重み付けし、重み付け評価値＝（１／２）×（１−｜−０．３｜×｜０．１６｜）を算出する。
【０３０６】
このように、社会的振る舞いのログデータを用いて評価値を重み付けすることで、接近傾向及び回避傾向の比率が類似している候補データほど（つまり、社会的振る舞いが類似している候補データほど）、評価値を高くすることができる。
【０３０７】
［第６の実施形態］
上記第５の実施形態では、抽出された候補データそれぞれの有効性を評価し、有効と評価した候補データを用いて、時刻ｔ１＋１の機械アバタの画像を生成した。これに対して、第６の実施形態では、機械アバタの直近の社会的振る舞いのログデータと、候補データに対応する社会的振る舞いのログデータとを合成し、合成データについて有効性を評価する。そして、有効と評価した合成データに対応する候補データを用いて、時刻ｔ１＋１の機械アバタの画像を生成する。以下、第６の実施形態について、上記第５の実施形態との相違点を中心に説明する。
【０３０８】
＜画像生成装置のアクション指示部の機能構成及び各ＤＢの説明＞
図２４は、画像生成装置のアクション指示部の機能構成及び各ＤＢを示す第３の図である。図１６との相違点は、現在動作合成部２４０１を有する点である。
【０３０９】
現在動作合成部２４０１は、現在時刻及び直近における機械アバタの社会的振る舞いのログデータと、第２の候補抽出部１６０２において抽出された候補データに対応する社会的振る舞いのログデータとを合成する。
【０３１０】
現在時刻及び直近（時刻ｔ１−５〜時刻ｔ１）における機械アバタの社会的振る舞いのログデータを符号化した符号化データを、“ＳＶｍｔ１”とする。また、機械アバタが行うべき非言語動作として次の２つの候補データがある場合について説明する。この例では、１つの候補データは、ユーザＰのログデータをもとに抽出されたものであり、１つの候補データは、ユーザＱのログデータをもとに抽出されたものである。候補データ１に対応する社会的振る舞いのログデータを符号化した符号化データを“ＳＶｐｃ”、候補データ２に対応する社会的振る舞いのログデータを符号化した符号化データを“ＳＶｑｃ”とする。
【０３１１】
現在動作合成部２４０１は、ＳＶｍｔ１とＳＶｐｃとを合成する。また、現在動作合成部２４０１は、ＳＶｍｔ１とＳＶｑｃとを合成する。図２５を用いて、現在動作合成部２４０１の合成処理の具体例について説明する。
【０３１２】
図２５は、現在動作合成部による合成処理の詳細を示す図である。図２５において、グラフ２５１０は、時刻ｔ１−５〜時刻ｔ１における機械アバタの社会的振る舞いのログデータのうち、“ｂｏｄｙ−ｃｌｏｓｅ−ｔｏ”のステージラベルの変化を示している。また、テーブル２５２０は、時刻ｔ１−５〜時刻ｔ１における機械アバタの社会的振る舞いのログデータの各タイプラベルのステージラベルを符号化した符号化データ（ＳＶｍｔ１）を示している。
【０３１３】
グラフ２５３０は、候補データ１に対応する社会的振る舞いのログデータのうち、“ｂｏｄｙ−ｃｌｏｓｅ−ｔｏ”のステージラベルの変化を示している。また、テーブル２５４０は、候補データ１に対応する社会的振る舞いのログデータを符号化した符号化データ（ＳＶｐｃ）を示している。
【０３１４】
更に、テーブル２５５０は、現在動作合成部による合成処理後の符号化データを示している。テーブル２５５０に示すように、現在動作合成部２４０１は、対応するタイプラベルごとに、符号化データを合成することで、合成データを生成する。
【０３１５】
例えば、現在動作合成部２４０１は、ＳＶｍｔ１に含まれる“ｂｏｄｙ−ｃｌｏｓｅ−ｔｏ”の符号化データ（２，２，２，１，１）と、ＳＶｐｃに含まれる“ｂｏｄｙ−ｃｌｏｓｅ−ｔｏ”の符号化データ（２，２，・・，１，１）とを合成する。これにより、合成データ（２，２，２，１，１，２，２，・・，１，１）を生成する。
【０３１６】
同様に、現在動作合成部２４０１は、ＳＶｍｔ１に含まれる“ｂｏｄｙ−ｆａｒ−ｔｏ”の符号化データ（１，１，１，２，１）と、ＳＶｐｃに含まれる“ｂｏｄｙ−ｆａｒ−ｔｏ”の符号化データ（２，２，・・，１，１）とを合成する。これにより、合成データ（１，１，１，２，１，２，２，・・，１，１）を生成する。
【０３１７】
＜機械アバタの画像更新処理＞
次に、機械アバタの画像更新処理の流れについて説明する。図２６は、機械アバタの画像更新処理の第３のフローチャートである。なお、図２６に示す各工程のうち、ステップＳ１４０１からステップＳ２２０３、ステップＳ１４０８、ステップＳ１４１０からステップＳ１４１１は、図２２の対応する工程と同じである。このため、ここでは説明を省略する。
【０３１８】
ステップＳ２６０１において、現在動作合成部２４０１は、現在時刻及び直近における機械アバタの社会的振る舞いのログデータと、第２の候補抽出部１６０２において抽出された候補データに対応する社会的振る舞いのログデータとを合成する。これにより、現在動作合成部２４０１は、合成データを生成する。
【０３１９】
ステップＳ２６０２において、更新部１６０３は、ステップＳ１４０８において参照した時間帯において、合成データと類似する符号化データを検索する。また、更新部１６０３は、検索した符号化データの後の時間帯において、ユーザ１６０が、望ましい変化後ユーザ状態に変化したか否かを判定する。また、更新部１６０３は、判定結果に基づいて、合成データの有効性を評価する。
【０３２０】
このように、合成データについて評価することで、第６の実施形態によれば、コミュニケーション相手のユーザが、望ましい変化後ユーザ状態に変化する可能性を高めることができる。
【０３２１】
［第７の実施形態］
上記第１乃至第６の実施形態において、監視部７０１は、監視対象のログデータについて、トリガチェックＡＰＩを用いて、ユーザ１６０が、特定の非言語動作を行ったか否かを判定した。これに対して、第７の実施形態では、監視対象のログデータについて周波数解析を行うことで、複数の周波数帯域に分離し、それぞれの周波数帯域のデータについて、トリガチェックＡＰＩを用いて、特定の非言語動作を行ったか否かを判定する。以下、第７の実施形態について、主に、第１の実施形態との相違点を中心に説明する。
【０３２２】
＜画像生成装置のアクション指示部の機能構成及び各ＤＢの説明＞
図２７は、画像生成装置のアクション指示部の機能構成及び各ＤＢを示す第４の図である。図２７に示すように、アクション指示部１２５は、図７に示した各部に加え、周波数解析部２７０１を有する。また、定義情報用ＤＢ１３３は、図１１に示した監視対象定義情報１１００とは異なる監視対象定義情報を有する。
【０３２３】
周波数解析部２７０１は、監視対象のログデータについて周波数解析を行い、例えば、高周波数帯域のデータと、中周波数帯域のデータと、低周波数帯域のデータとに分離する。周波数解析部２７０１は、例えば、ＥＭＤ（Empirical  Mode  Decomposition）等の手法により、周波数解析を行う。また、周波数解析部２７０１は、分離した監視対象のログデータのうち、ユーザ１６０の特定の非言語動作を検出するのに適した周波数帯域のデータを監視部７０１に通知する。
【０３２４】
＜定義情報用ＤＢに格納される監視対象定義情報の説明＞
図２８は、定義情報用ＤＢに格納される定義情報の一例を示す第４の図であり、監視対象定義情報２８００を示す図である。監視対象定義情報２８００には、監視対象定義情報１１００に含まれる情報の項目に加え、“機微振る舞いチェック”が含まれる。
【０３２５】
“機微振る舞いチェック”には、監視対象のログデータのうち、所定の周波数帯域のデータを用いて判定を行うか否かを示す情報が定義される。“ｔｒｕｅ”は、監視対象のログデータのうち、所定の周波数帯域のデータを用いて判定を行うこと示す。“ｆａｌｓｅ”は、監視対象のログデータ（所定の周波数帯域に分離する前のデータ）を用いて判定を行うことを示す。
【０３２６】
例えば、図２８の監視対象定義情報２８００のデータ行の５行目は、監視対象のログデータとして、“Ｂｏｎｅ＿Ｈｅａｄ”、“Ｂｏｎｅ＿Ｃｈｅｓｔ”が定義されており、“機微振る舞いチェック”には、“ｔｒｕｅ”が定義されている。
【０３２７】
このため、監視部７０１は、“Ｂｏｎｅ＿Ｈｅａｄ”及び“Ｂｏｎｅ＿Ｃｈｅｓｔ”については、各周波数帯ごと、もしくは事前に定められた特定の周波数帯のデータを、トリガチェックＡＰＩ＝“ｉｓＲｅｓｔｌｅｓ”に入力する。
【０３２８】
＜周波数解析の例＞
次に、周波数解析部２７０１による周波数解析の例について説明する。図２９は、周波数解析部による周波数解析の一例を示す図である。
【０３２９】
図２９に示すように、周波数解析部２７０１は、例えば、現在時刻及びその直近（時刻ｔ１−５から時刻ｔ１）の“Ｂｏｎｅ＿Ｃｈｅｓｔ”のＹ座標の位置の時系列データについて周波数解析を行い、高周波数帯域、中周波数帯域、低周波数帯域のデータに分離する。
【０３３０】
ユーザ１６０が“ｉｓＲｅｓｔｌｅｓ”の出力が“ｔｒｕｅ”となる状態（そわそわした、落ち着かない状態）であるか否かは、高周波数帯域のデータに依存する。このため、監視部７０１は、“Ｂｏｎｅ＿Ｃｈｅｓｔ”のＹ座標の位置の時系列データのうち、高周波数帯域の時系列データを用いて、ユーザ１６０の非言語動作トリガのチェックを行う。具体的には“ｉｓＲｅｓｔｌｅｓ”の出力が“ｔｒｕｅ”となる状態であるか否かを判定する。
【０３３１】
＜機械アバタの画像更新処理＞
次に、機械アバタの画像更新処理の流れについて説明する。図３０は、機械アバタの画像更新処理の第４のフローチャートである。なお、図３０に示す各工程のうち、ステップＳ１４０１からステップＳ１４１１は、図１４の対応する各工程と同じであるため、ここでは説明を省略する。
【０３３２】
ステップＳ３００１において、周波数解析部２７０１は、監視対象のログデータについて周波数解析を行い、例えば、高周波数帯域のデータと、中周波数帯域のデータと、低周波数帯域のデータとに分離する。また、周波数解析部２７０１は、分離した監視対象のログデータのうち、ユーザ１６０の特定の非言語動作を抽出するのに適した周波数帯域（例えば、高周波数帯域）のデータを監視部７０１に通知する。
【０３３３】
このように、第７の実施形態によれば、ユーザ１６０が特定の非言語動作を行ったか否かを判定するのに適した周波数帯域のデータを用いて、監視対象のログデータを判定する。これにより、ユーザ１６０が特定の非言語動作を行っているにも関わらず、監視部７０１が、見逃すといった事態を回避することが可能になる。例えば、他のゆったりとした動きと、小刻みにゆれているような動きが同時に起きている場合であっても、非言語動作として検知する必要のある小刻みにゆれている動きを、監視部７０１が見逃すといった事態を回避することが可能になる。
【０３３４】
［第８の実施形態］
上記第１乃至第６の実施形態において、監視部７０１は、監視対象のログデータについて、トリガチェックＡＰＩを用いて、ユーザ１６０が、特定の非言語動作を行ったか否かを判定した。これに対して、第８の実施形態では、監視対象のログデータについて周波数解析を行い、定常的な非言語動作を除いたうえで、トリガチェックＡＰＩに入力することで、ユーザ１６０が、特定の非言語動作を行ったか否かを判定する。なお、定常的な非言語動作とは、心臓の鼓動や呼吸に起因する動作を指す。以下、第８の実施形態について、主に、第１の実施形態との相違点を中心に説明する。
【０３３５】
＜画像生成装置のアクション指示部の機能構成及び各ＤＢの説明＞
図３１は、画像生成装置のアクション指示部の機能構成及び各ＤＢを示す第５の図である。図３１に示すように、アクション指示部１２５は、図７に示した各部に加え、非定常状態抽出部３１０１を有する。また、定義情報用ＤＢ１３３は、図１１、図２７に示した監視対象定義情報１１００とは異なる監視対象定義情報３２００を有する。
【０３３６】
非定常状態抽出部３１０１は、監視対象のログデータについて周波数解析を行い、例えば、高周波数帯域のデータと、中周波数帯域のデータと、低周波数帯域のデータとに分離する。非定常状態抽出部３１０１は、例えば、ＥＭＤ等の手法により、周波数解析を行う。また、非定常状態抽出部３１０１は、分離した監視対象のログデータのうち、定常的な非言語動作が現れやすいタイプラベルのデータであって、定常的な非言語動作が現れやすい周波数帯域のデータを除去したうえで、監視部７０１に通知する。つまり、非定常状態抽出部３１０１は、監視対象のデータから、非定常的な非言語動作が含まれるデータを抽出して、監視部７０１に通知する。
【０３３７】
具体例を挙げて説明する。例えば、心臓の鼓動は、一般的に、１分間に６０回から８０回の間とされており、１［Ｈｚ］付近の低周波の周波数帯域に含まれている。一方、各骨格のうち、“Ｂｏｎｅ＿Ｃｈｅｓｔ”は、心臓の位置に近い骨格であるので、位置座標が心臓の鼓動の影響を受けやすい。つまり、“Ｂｏｎｅ＿Ｃｈｅｓｔ”の位置座標の時系列データは、定常的な非言語動作が現れやすいタイプラベルのデータであるといえる。
【０３３８】
そこで、非定常状態抽出部３１０１は、特定のユーザについて、“Ｂｏｎｅ＿Ｃｈｅｓｔ”の位置座標の時系列データを、高周波数帯域のデータ（ＩＭＦｈｉｇｈ）と、中周波数帯域のデータ（ＩＭＦｍｉｄ）と、低周波数帯域のデータ（ＩＭＦｌｏｗ）とに分離する。定常的な非言語動作は、ＩＭＦｌｏｗに含まれることから、非定常状態抽出部３１０１は、ＩＭＦｌｏｗを除去し、ＩＭＦｈｉｇｈとＩＭＦｈｉｇｈとを、監視部７０１に通知する。
【０３３９】
＜定義情報用ＤＢに格納される監視対象定義情報の説明＞
図３２は、定義情報用ＤＢに格納される定義情報の一例を示す第５の図であり、監視対象定義情報３２００を示す図である。監視対象定義情報３２００には、監視対象定義情報１１００に含まれる情報の項目に加え、“定常的非言語動作フィルタリング”、“定常的非言語動作の周波数帯域”が含まれる。
【０３４０】
“定常的非言語動作フィルタリング”には、所定の周波数帯域の除去を行うか否かが定義される。
【０３４１】
“定常的非言語動作の周波数帯域”には、除去すべき周波数帯域が定義される。図３２の監視対象定義情報３２００のデータ行の２行目は、監視対象のデータとして、“Ｂｏｎｅ＿Ｈｅａｄ”、“Ｂｏｎｅ＿ＬｅｆｔＳｈｏｕｌｄｅｒ”、“Ｂｏｎｅ＿ＲｉｇｈｔＳｈｏｕｌｄｅｒ”が定義されている。このうち、監視部７０１は、“Ｂｏｎｅ＿Ｈｅａｄ”については、所定の周波数帯域に分離する前のデータを、トリガチェックＡＰＩ＝“ｉｓＮａｐ”に入力する。一方、“Ｂｏｎｅ＿ＬｅｆｔＳｈｏｕｌｄｅｒ”及び“Ｂｏｎｅ＿ＲｉｇｈｔＳｈｏｕｌｄｅｒ”については、高周波数帯域及び中周波数帯域のデータを、トリガチェックＡＰＩ＝“ｉｓＮａｐ”に入力する。低周波数帯域のデータには、定常的な非言語動作が含まれるためである。
【０３４２】
データ行の４行目は、監視対象のデータとして、“Ｂｏｎｅ＿Ｈｅａｄ”、“Ｂｏｎｅ＿Ｃｈｅｓｔ”が定義されている。このうち、監視部７０１は、“Ｂｏｎｅ＿Ｈｅａｄ”については、所定の周波数帯域に分離する前のデータを、トリガチェックＡＰＩ＝“ｉｓＲｅｓｔｌｅｓ”に入力する。一方、“Ｂｏｎｅ＿Ｃｈｅｓｔ”については、高周波数帯域及び中周波数帯域のデータを、トリガチェックＡＰＩ＝“ｉｓＮａｐ”に入力する。低周波数帯域のデータには、定常的な非言語動作が含まれるためである。
【０３４３】
＜機械アバタの画像更新処理＞
次に、機械アバタの画像更新処理の流れについて説明する。図３３は、機械アバタの画像更新処理の第５のフローチャートである。なお、図３３に示す各工程のうち、ステップＳ１４０１からステップＳ１４１１は、図１４の対応する各工程と同じであるため、ここでは説明を省略する。
【０３４４】
ステップＳ３３０１において、非定常状態抽出部３１０１は、監視対象のログデータについて周波数解析を行い、例えば、高周波数帯域のデータと、中周波数帯域のデータと、低周波数帯域のデータとに分離する。また、非定常状態抽出部３１０１は、分離した監視対象のログデータのうち、定常的な非言語動作が現れやすいタイプラベルのデータであって、定常的な非言語動作が現れやすい周波数帯域のデータを除去したうえで、監視部７０１に通知する。
【０３４５】
このように、第８の実施形態によれば、定常的な非言語動作が含まれる周波数帯域のデータを除いて、監視対象のログデータを判定する。これにより、ユーザ１６０の定常的な非言語動作を、特定の非言語動作と誤って判定するといった事態を回避することが可能になる。また、非言語動作の判定という目的のうえでは、ノイズデータとなる場合がある定常的非言語動作を除いた入力データを用いて非言語動作の有無を判定可能となり、判定精度の向上が可能になる。
【０３４６】
［第９の実施形態］
上記第６の実施形態では、機械アバタの現在時刻及び直近の社会的振る舞いのログデータと、候補データに対応する社会的振る舞いのログデータとを合成することで、合成データを生成した。これに対して、第９の実施形態では、合成データを生成するにあたり、機械アバタの直近のアバタ表示情報のログデータと、候補データとの間に、切り替え動作のデータを含める。切り替え動作とは、機械アバタの直近のアバタ表示情報のログデータと、候補データとを合成する際に、自然な動作となるように合成される、予め決められた動作をいい、例えば、まばたきや、長く目を閉じる動作、嘆息、うなずき、座りなおす動作、手で身体を触る動作等が含まれる。
【０３４７】
これにより、時刻ｔ１＋１の機械アバタの画像を表示した際に、時刻ｔ１の機械アバタの画像との間の違和感を低減させることができる。以下、第９の実施形態について説明する。
【０３４８】
＜画像生成装置のアクション指示部の機能構成及び各ＤＢの説明＞
図３４は、画像生成装置のアクション指示部の機能構成及び各ＤＢを示す第６の図である。図７との相違点は、切り替え動作合成部３４０１を有する点及び更新部３４０２の機能が更新部７０４の機能とは異なる点である。
【０３４９】
切り替え動作合成部３４０１は、現在時刻及び直近における機械アバタのアバタ表示情報のログデータと、切り替え動作のデータと、候補データとを合成する。
【０３５０】
ここで、現在時刻及び直近（時刻ｔ１−５〜時刻ｔ１）における機械アバタのアバタ表示情報のログデータを符号化した符号化データを、“ＡＢｍｔ１”とする。また、切り替え動作のデータを符号化した符号化データを、“ＡＢｃｃ１”、候補データ１（図７参照）を符号化した符号化データを、“ＡＢｐｃ”とする。切り替え動作合成部３４０１は、“ＡＢｍｔ１”、“ＡＢｃｃ１”、“ＡＢｐｃ”を合成する。
【０３５１】
図３５を参照しながら、具体例を挙げて説明する。図３５は、切り替え動作合成部による合成処理の詳細を示す図である。例えば、“Ｂｏｎｅ＿Ｃｈｅｓｔ”のＸ座標の位置の符号化データがそれぞれ、ＡＢｍｔ１＝２２２２、ＡＢｃｃ１＝定義なし（ＸＸＸ）、ＡＢｐｃ＝２２・・２２であったとする（テーブル３５１０、３５３０参照）。この場合、切り替え動作合成部３４０１により生成される合成データは、２２２２２ＸＸＸ２２・・２２となる（テーブル３５４０参照）。
【０３５２】
ここで、切り替え動作として、“Ｅｙｅｌｉｄ＿Ｓｈａｐｅ”の総合値“ｉｓＢｌｉｎｋ”が規定されていたとする（テーブル３５２０参照）。“Ｅｙｅｌｉｄ＿Ｓｈａｐｅ”の総合値“ｉｓＢｌｉｎｋ”とは、まぶたの閉状態を０、開状態を１として、目の周辺のメッシュの位置状態から、まばたきの様子を０〜１で表現した値をいう。
【０３５３】
この場合、切り替え動作として、Ｂｏｎｅ＿Ｃｈｅｓｔの位置座標に関する定義がなされていないため、“ＸＸＸ”の部分には、何も動作を行わないことを示す符号化データが自動挿入されることになる。
【０３５４】
ただし、切り替え動作として、Ｂｏｎｅ＿Ｃｈｅｓｔの位置座標に関する定義がなされていない場合に、“ＸＸＸ”の部分に、何らかの動作を行うことを示す符号化データを自動挿入するようにしてもよい。例えば、ＡＢｍｔ１の最後の符号化データ（“２”）と、ＡＢｐｃの最初の符号化データ（“２”）を半分ずつ複製して自動挿入するようにしてもよい。あるいは、ＡＢｍｔ１の最後の符号化データ（“１”）と、ＡＢｐｃの最初の符号化データ（“３”）との平均値（“２”）を複製して自動挿入するようにしてもよい。
【０３５５】
更新部３４０２は、切り替え動作合成部３４０１により生成された合成データの有効性を評価し、有効と評価した合成データに対応する切り替え動作のデータ及び候補データに基づいて、時刻ｔ１＋１の機械アバタの画像を生成する。
【０３５６】
ここで、切り替え動作合成部３４０１が合成データを生成した際に、切り替え動作（“ＸＸＸ”）の部分に、何も動作を行わないことを示す符号化データを自動挿入していたとする。この場合、更新部３４０２は、機械アバタの標準動作を示すデータを挿入する。機械アバタの標準動作とは、例えば、両腕をおろし、リラックスしながらフラフラしているような動作を指す。
【０３５７】
更新部３４０２は、切り替え動作（“ＸＸＸ”）全てを標準動作により置き換える。あるいは、更新部３４０２は、切り替え動作の前半部分については、現在時刻及び直近における非言語動作との間での自然な切り替えを実現する動作により置き換えるようにしてもよい。また、後半部分については、時刻ｔ１＋１における非言語動作との間で自然な切り替えを実現する動作により置き換えるようにしてもよい。
【０３５８】
また、切り替え動作合成部３４０１が合成データを生成した際に、切り替え動作（“ＸＸＸ”）の部分に、ＡＢｍｔ１の最後の符号化データ（“２”）と、ＡＢｐｃの最初の符号化データ（“２”）を半分ずつ複製して自動挿入していたとする。この場合、更新部３４０２は、複製した符号化データに対応するアバタ表示情報のログデータを複製して、切り替え動作のデータとして挿入する。
【０３５９】
また、更新部３４０２は、複数の切り替え動作の中から、適切な切り替え動作を選択する。具体的には、更新部３４０２は、切り替え動作を含む合成データと、切り替え動作を含まない合成データとの間の類似度を算出し、類似度の高い方の切り替え動作を選択する。更に、更新部３４０２は、選択した切り替え動作を含む合成データに対応する切り替え動作及び候補データを、時刻ｔ１＋１の機械アバタの画像を生成する際に用いる。これにより、切り替え動作が入ったことによる影響が少ない方の合成データに基づいて、時刻ｔ１＋１の機械アバタの画像を生成することができる。
【０３６０】
例えば、切り替え動作を含む合成データを、ＡＢｍｔ１＋ＡＢｃｃ１＋ＡＢｐｃ、及び、ＡＢｍｔ１＋ＡＢｃｃ２＋ＡＢｐｃとする。また、切り替え動作を含まない合成データを、ＡＢｍｔ１＋ＡＢｐｃとする。この場合、更新部３４０２は、ＡＢｍｔ１＋ＡＢｃｃ１＋ＡＢｐｃとＡＢｍｔ１＋ＡＢｐｃとの類似度と、ＡＢｍｔ１＋ＡＢｃｃ２＋ＡＢｐｃとＡＢｍｔ１＋ＡＢｐｃとの類似度とをそれぞれ算出する。
【０３６１】
ここで、更新部３４０２は、社会的振る舞いのログデータを符号化した符号化データを用いて、類似度を算出する。なお、非言語動作の類似度の算出処理は、アバタ骨格の時系列データの比較によって、各骨格や社会的振る舞いごとに求める形態があってもよい。以下、ＡＢｍｔ１＋ＡＢｃｃ１＋ＡＢｐｃとＡＢｍｔ１＋ＡＢｐｃとの類似度及びＡＢｍｔ１＋ＡＢｃｃ２＋ＡＢｐｃとＡＢｍｔ１＋ＡＢｐｃとの類似度を、第５の実施形態で例示したように、社会的振る舞いのログデータを符号化した符号化データを用いて算出する場合について説明する。なお、ＡＢｍｔ１、ＡＢｐｃは、共通の符号化データであるので、更新部３４０２は、ＡＢｍｔ１＋ＡＢｐｃとＡＢｃｃ１との類似度と、ＡＢｍｔ１＋ＡＢｐｃとＡＢｃｃ２との類似度を算出することになる。また、ＡＢｃｃ１及びＡＢｃｃ２は、ＡＢｍｔ１に含まれる最後の符号化データと、ＡＢｐｃに含まれる最初の符号化データとに基づいて生成することとし、ここでは、ＡＢｃｃ１’、ＡＢｃｃ２’と記載する。
【０３６２】
更新部３４０２は、ＡＢｍｔ１＋ＡＢｐｃの接近傾向の比率と、ＡＢｃｃ１’の接近傾向の比率との距離を算出する。ここでは、ＡＢｍｔ１＋ＡＢｐｃの接近傾向の比率と、ＡＢｃｃ１’の接近傾向の比率との距離として、−０．２が算出されたとする。また、更新部３４０２は、ＡＢｍｔ１＋ＡＢｐｃの回避傾向の比率と、ＡＢｃｃ１’の回避傾向の比率との距離を算出する。ここでは、ＡＢｍｔ１＋ＡＢｐｃの回避傾向の比率と、ＡＢｃｃ１’の回避傾向の比率との距離として、０．１５が算出されたとする。
【０３６３】
続いて、更新部３４０２は、ＡＢｍｔ１＋ＡＢｐｃの接近傾向の比率と、ＡＢｃｃ２’の接近傾向の比率との距離を算出する。ここでは、ＡＢｍｔ１＋ＡＢｐｃの接近傾向の比率と、ＡＢｃｃ２’の接近傾向の比率との距離として、−０．３が算出されたとする。また、更新部３４０２は、ＡＢｍｔ１＋ＡＢｐｃの回避傾向の比率と、ＡＢｃｃ２’の回避傾向の比率との距離を算出する。ここでは、ＡＢｍｔ１＋ＡＢｐｃの回避傾向の比率と、ＡＢｃｃ２’の回避傾向の比率との距離として、０．１０が算出されたとする。
【０３６４】
類似度＝１−（｜接近傾向の距離｜＋｜回避傾向の距離｜／２）とすると、ＡＢｍｔ１＋ＡＢｃｃ１’＋ＡＢｐｃとＡＢｍｔ１＋ＡＢｐｃとの類似度は、１−（｜−０．２｜＋｜０．１５｜／２）＝０．８２５となる。また、ＡＢｍｔ１＋ＡＢｃｃ２’＋ＡＢｐｃとＡＢｍｔ１＋ＡＢｐｃとの類似度は、１−（｜−０．３｜＋｜０．１０｜／２）＝０．８となる。
【０３６５】
この結果、更新部３４０２は、ＡＢｃｃ１’を適切な切り替え動作として選択する。更に、更新部３４０２は、適切な切り替え動作のデータであるＡＢｃｃ２’と候補データＡＢｐｃを含む、ＡＢｃｃ２’＋ＡＢｐｃに基づいて、時刻ｔ１＋１の機械アバタの画像を生成する。
【０３６６】
＜機械アバタの画像更新処理＞
次に、機械アバタの画像更新処理の流れについて説明する。図３６は、機械アバタの画像更新処理の第６のフローチャートである。なお、図３６に示す各工程のうち、ステップＳ１４０１からステップＳ１４０８、ステップＳ１４１０、Ｓ１４１１の各工程は、図１４の対応する各工程と同じであるため、ここでは説明を省略する。
【０３６７】
ステップＳ３６０１において、切り替え動作合成部３４０１は、現在時刻及び直近における機械アバタのアバタ表示情報のログデータと、切り替え動作のデータと、候補データとを合成し、合成データを生成する。
【０３６８】
ステップＳ３６０２において、更新部３４０２は、合成データの有効性を評価する。
【０３６９】
このように、適切な切り替え動作のデータを含めて機械アバタの画像を生成することで、第９の実施形態によれば、時刻ｔ１＋１の機械アバタの画像を表示した際に、時刻ｔ１の機械アバタの画像との間の違和感を低減させることができる。
【０３７０】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
機械アバタのコミュニケーション対象として選択したユーザが実行した特定のアクションを検出した場合、ユーザごとに検出するアクションに対応付けてユーザの状態を記憶する記憶部を参照して、前記特定のアクションに対応する前記ユーザの状態を特定し、
ユーザのアクション及び状態と、該ユーザがコミュニケーションをしている他のユーザ、または機械アバタのアクションとを対応付けて記憶する記憶部を参照して、特定した前記ユーザの状態と一致、または類似するユーザの状態に対応付けられた他のユーザ、または機械アバタのアクション群を抽出し、
抽出した前記アクション群と、前記ユーザに対して前記機械アバタが所定の期間に行ったアクションとを比較して、前記機械アバタのとるアクションを決定し、
前記機械アバタに対して、決定した前記アクションの実行を指示する、
処理をコンピュータに実行させるためのアクション指示プログラム。
（付記２）
特定した前記ユーザの状態は、
前記特定のアクションを検出した場合に前記ユーザによって行われる望ましい非言語動作、または、
前記特定のアクションを検出した場合に前記ユーザによって望ましい非言語動作が行われて、前記ユーザの状態が変化した場合の変化後の状態、
であることを特徴とする付記１に記載のアクション指示プログラム。
（付記３）
特定した前記ユーザの状態は、
前記特定のアクションを検出した場合に前記ユーザによって行われる望ましい社会的振る舞い、または、
前記特定のアクションを検出した場合に前記ユーザによって望ましい社会的振る舞いが行われ、ユーザの状態が変化した場合の変化後の状態、
であることを特徴とすることを特徴とする付記１に記載のアクション指示プログラム。
（付記４）
特定した前記ユーザの状態と一致または類似するユーザの状態に対応付けられた他のユーザまたは機械アバタのアクション群を、前記ユーザが前記特定のアクションと一致または類似するアクションを実行した時間帯に近接する時間帯について前記記憶部を検索することで抽出することを特徴とする付記１乃至３のいずれかの付記に記載のアクション指示プログラム。
（付記５）
特定した前記ユーザの状態と一致または類似するユーザの状態に対応付けられた他のユーザまたは機械アバタのアクション群Ｎ個のうちのＭ番目（１≦Ｍ≦Ｎ）のアクションと一致または類似するアクションを、前記ユーザに対して前記機械アバタが所定の期間に行った回数と、当該機械アバタが行ったアクションと近接する時間帯において、特定した前記ユーザの状態と一致または類似する状態へ前記ユーザの状態が変化した回数との比率を、前記Ｍ番目のアクションについての評価値として算出し、
前記Ｎ個のアクションについてのそれぞれの評価値に基づいて、評価値の高低によりＬ番目のアクションを、前記機械アバタがとるアクションに決定することを特徴とする付記１乃至４のいずれかの付記に記載のアクション指示プログラム。
（付記６）
前記ユーザが実行したアクションのうち、所定の周波数帯域のアクションを監視することで、前記特定のアクションを検出することを特徴とする付記１に記載のアクション指示プログラム。
（付記７）
前記ユーザが実行したアクションのうち、所定の周波数帯域以外のアクションを監視することで、前記特定のアクションを検出することを特徴とする付記１に記載のアクション指示プログラム。
（付記８）
前記機械アバタに対して、決定した前記アクションと、所定の切り替えアクションとを合成した合成アクションの実行を指示することを特徴とする付記１に記載のアクション指示プログラム。
（付記９）
機械アバタのコミュニケーション対象として選択したユーザが実行した特定のアクションを検出した場合、ユーザごとに検出するアクションに対応付けてユーザの状態を記憶する記憶部を参照して、前記特定のアクションに対応する前記ユーザの状態を特定し、
ユーザのアクション及び状態と、該ユーザがコミュニケーションをしている他のユーザ、または機械アバタのアクションとを対応付けて記憶する記憶部を参照して、特定した前記ユーザの状態と一致、または類似するユーザの状態に対応付けられた他のユーザ、または機械アバタのアクション群を抽出し、
抽出した前記アクション群と、前記ユーザに対して前記機械アバタが所定の期間に行ったアクションとを比較して、前記機械アバタのとるアクションを決定し、
前記機械アバタに対して、決定した前記アクションの実行を指示する、
処理をコンピュータが実行するアクション指示方法。
（付記１０）
機械アバタのコミュニケーション対象として選択したユーザが実行した特定のアクションを検出した場合、ユーザごとに検出するアクションに対応付けてユーザの状態を記憶する記憶部を参照して、前記特定のアクションに対応する前記ユーザの状態を特定する特定手段と、
ユーザのアクション及び状態と、該ユーザがコミュニケーションをしている他のユーザ、または機械アバタのアクションとを対応付けて記憶する記憶部を参照して、特定した前記ユーザの状態と一致、または類似するユーザの状態に対応付けられた他のユーザ、または機械アバタのアクション群を抽出する抽出手段と、
抽出した前記アクション群と、前記ユーザに対して前記機械アバタが所定の期間に行ったアクションとを比較して、前記機械アバタのとるアクションを決定する決定手段と、
前記機械アバタに対して、決定した前記アクションの実行を指示する指示手段と
を有することを特徴とする画像生成装置。
【０３７１】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０３７２】
１００              ：画像生成システム
１１０              ：画像生成装置
１２５              ：アクション指示部
１３１              ：コンテンツ用ＤＢ
１３２              ：センサデータ用ＤＢ
１３３              ：定義情報用ＤＢ
１３４              ：ログ用ＤＢ
１４０、１５０      ：クライアント側システム
１４１、１５１      ：情報処理装置
１４２、１５２      ：情報提示装置
１４３、１５３      ：情報収集装置（頭部姿勢センサ）
１４４、１５４      ：情報収集装置（深度センサ）
１４５、１５５      ：情報収集装置（筋電位センサ）
２２０、２３０      ：ユーザアバタの画像
２４０              ：機械アバタの画像
７０１              ：監視部
７０２              ：類似時間帯検索部（第１の類似時間帯検索部）
７０３              ：候補抽出部（第１の候補抽出部）
７０４              ：更新部
９００              ：アバタ表示情報に関するログテーブル
１０１０            ：望ましい非言語動作に関するログテーブル
１０２０            ：対話履歴に関するログテーブル
１１００            ：監視対象定義情報
１２１０            ：コミュニケーション戦略定義情報
１２２０            ：ユーザ状態確認用のＡＰＩ定義情報
１６０１            ：第２の類似時間帯検索部
１６０２            ：第２の候補抽出部
１６０３            ：更新部
１７００            ：社会的振る舞いに関するログテーブル
１８００            ：社会的振る舞い判定用のＡＰＩ定義情報
１９１０            ：コミュニケーション戦略定義情報
１９２０            ：ユーザ状態確認用のＡＰＩ定義情報
２０００            ：傾向定義情報
２４０１            ：現在動作合成部
２７０１            ：周波数解析部
３１０１            ：非定常状態抽出部
３４０１            ：切り替え動作合成部
３４０２            ：更新部
【図１】
2018073204.tif 000003
【図２】
2018073204.tif 000004
【図３】
2018073204.tif 000005
【図４】
2018073204.tif 000006
【図５】
2018073204.tif 000007
【図６】
2018073204.tif 000008
【図７】
2018073204.tif 000009
【図８】
2018073204.tif 000010
【図９】
2018073204.tif 000011
【図１０】
2018073204.tif 000012
【図１１】
2018073204.tif 000013
【図１２】
2018073204.tif 000014
【図１３】
2018073204.tif 000015
【図１４】
2018073204.tif 000016
【図１５】
2018073204.tif 000017
【図１６】
2018073204.tif 000018
【図１７】
2018073204.tif 000019
【図１８】
2018073204.tif 000020
【図１９】
2018073204.tif 000021
【図２０】
2018073204.tif 000022
【図２１】
2018073204.tif 000023
【図２２】
2018073204.tif 000024
【図２３】
2018073204.tif 000025
【図２４】
2018073204.tif 000026
【図２５】
2018073204.tif 000027
【図２６】
2018073204.tif 000028
【図２７】
2018073204.tif 000029
【図２８】
2018073204.tif 000030
【図２９】
2018073204.tif 000031
【図３０】
2018073204.tif 000032
【図３１】
2018073204.tif 000033
【図３２】
2018073204.tif 000034
【図３３】
2018073204.tif 000035
【図３４】
2018073204.tif 000036
【図３５】
2018073204.tif 000037
【図３６】
2018073204.tif 000038